From 3c4b278c4944f5b7b5c24f8d8d8204c40239e2fb Mon Sep 17 00:00:00 2001 From: Brandon Tilley Date: Sun, 7 Dec 2014 16:07:26 -0800 Subject: [PATCH] v1.5.1 --- CHANGELOG.md | 5 + bower.json | 2 +- build/fluxxor.js | 868 +++++++++--------- build/fluxxor.js.map | 2 +- build/fluxxor.min.js | 2 +- build/fluxxor.min.js.map | 2 +- examples/async/app/bundle.js | 4 +- examples/async/app/bundle.js.map | 2 +- examples/carousel/app/bundle.js | 4 +- examples/carousel/app/bundle.js.map | 2 +- examples/todo-basic/app/bundle.js | 4 +- examples/todo-basic/app/bundle.js.map | 2 +- package.json | 2 +- .../examples/carousel/carousel-bundle.js | 4 +- site/contents/guides/async-bundle.js | 4 +- site/contents/guides/todo-bundle.js | 4 +- version.js | 2 +- 17 files changed, 460 insertions(+), 455 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b5e2cd..20544d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +Version 1.5.1 +============= + +* Watch stores in `componentDidMount` instead of `componentWillMount` to make it harder to leak memory on the server + Version 1.5.0 ============= diff --git a/bower.json b/bower.json index 4ae2283..8377ff7 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "fluxxor", - "version": "1.5.0", + "version": "1.5.1", "main": "build/fluxxor.min.js", "description": "Flux architecture tools for React", "homepage": "", diff --git a/build/fluxxor.js b/build/fluxxor.js index 4bbce8f..e25cd5e 100644 --- a/build/fluxxor.js +++ b/build/fluxxor.js @@ -79,7 +79,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - module.exports = "1.5.0" + module.exports = "1.5.1" /***/ }, /* 2 */ @@ -439,7 +439,7 @@ return /******/ (function(modules) { // webpackBootstrap var StoreWatchMixin = function() { var storeNames = Array.prototype.slice.call(arguments); return { - componentWillMount: function() { + componentDidMount: function() { var flux = this.props.flux || this.context.flux; _each(storeNames, function(store) { flux.store(store).on("change", this._setStateFromFlux); @@ -1093,8 +1093,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseClone = __webpack_require__(29), - baseCreateCallback = __webpack_require__(30); + var baseClone = __webpack_require__(28), + baseCreateCallback = __webpack_require__(29); /** * Creates a clone of `value`. If `isDeep` is `true` nested objects will also @@ -1162,7 +1162,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createCallback = __webpack_require__(28), + var createCallback = __webpack_require__(41), forOwn = __webpack_require__(14); /** @@ -1226,9 +1226,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(30), + var baseCreateCallback = __webpack_require__(29), keys = __webpack_require__(15), - objectTypes = __webpack_require__(31); + objectTypes = __webpack_require__(30); /** * Iterates over own enumerable properties of an object, executing the callback @@ -1282,9 +1282,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(32), + var isNative = __webpack_require__(31), isObject = __webpack_require__(25), - shimKeys = __webpack_require__(33); + shimKeys = __webpack_require__(32); /* Native method shortcuts for methods with the same name as other `lodash` methods */ var nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys; @@ -1324,7 +1324,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createCallback = __webpack_require__(28), + var createCallback = __webpack_require__(41), forOwn = __webpack_require__(14); /** @@ -1471,15 +1471,15 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseIndexOf = __webpack_require__(34), - cacheIndexOf = __webpack_require__(35), - createCache = __webpack_require__(36), - getArray = __webpack_require__(37), + var baseIndexOf = __webpack_require__(33), + cacheIndexOf = __webpack_require__(34), + createCache = __webpack_require__(35), + getArray = __webpack_require__(36), isArguments = __webpack_require__(26), isArray = __webpack_require__(27), - largeArraySize = __webpack_require__(38), - releaseArray = __webpack_require__(39), - releaseObject = __webpack_require__(40); + largeArraySize = __webpack_require__(37), + releaseArray = __webpack_require__(38), + releaseObject = __webpack_require__(39); /** * Creates an array of unique values present in all provided arrays using @@ -1560,8 +1560,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseUniq = __webpack_require__(41), - createCallback = __webpack_require__(28); + var baseUniq = __webpack_require__(40), + createCallback = __webpack_require__(41); /** * Creates a duplicate-value-free version of an array using strict equality @@ -1635,7 +1635,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createCallback = __webpack_require__(28), + var createCallback = __webpack_require__(41), forOwn = __webpack_require__(14); /** @@ -1711,7 +1711,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(30), + var baseCreateCallback = __webpack_require__(29), forOwn = __webpack_require__(14); /** @@ -1814,7 +1814,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createCallback = __webpack_require__(28), + var createCallback = __webpack_require__(41), forOwn = __webpack_require__(14); /** @@ -1887,7 +1887,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var objectTypes = __webpack_require__(31); + var objectTypes = __webpack_require__(30); /** * Checks if `value` is the language type of Object. @@ -1978,7 +1978,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(32); + var isNative = __webpack_require__(31); /** `Object#toString` result shortcuts */ var arrayClass = '[object Array]'; @@ -2029,101 +2029,14 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(30), - baseIsEqual = __webpack_require__(42), - isObject = __webpack_require__(25), - keys = __webpack_require__(15), - property = __webpack_require__(54); - - /** - * Produces a callback bound to an optional `thisArg`. If `func` is a property - * name the created callback will return the property value for a given element. - * If `func` is an object the created callback will return `true` for elements - * that contain the equivalent object properties, otherwise it will return `false`. - * - * @static - * @memberOf _ - * @category Utilities - * @param {*} [func=identity] The value to convert to a callback. - * @param {*} [thisArg] The `this` binding of the created callback. - * @param {number} [argCount] The number of arguments the callback accepts. - * @returns {Function} Returns a callback function. - * @example - * - * var characters = [ - * { 'name': 'barney', 'age': 36 }, - * { 'name': 'fred', 'age': 40 } - * ]; - * - * // wrap to create custom callback shorthands - * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) { - * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback); - * return !match ? func(callback, thisArg) : function(object) { - * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3]; - * }; - * }); - * - * _.filter(characters, 'age__gt38'); - * // => [{ 'name': 'fred', 'age': 40 }] - */ - function createCallback(func, thisArg, argCount) { - var type = typeof func; - if (func == null || type == 'function') { - return baseCreateCallback(func, thisArg, argCount); - } - // handle "_.pluck" style callback shorthands - if (type != 'object') { - return property(func); - } - var props = keys(func), - key = props[0], - a = func[key]; - - // handle "_.where" style callback shorthands - if (props.length == 1 && a === a && !isObject(a)) { - // fast path the common case of providing an object with a single - // property containing a primitive value - return function(object) { - var b = object[key]; - return a === b && (a !== 0 || (1 / a == 1 / b)); - }; - } - return function(object) { - var length = props.length, - result = false; - - while (length--) { - if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) { - break; - } - } - return result; - }; - } - - module.exports = createCallback; - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * Lo-Dash 2.4.1 (Custom Build) - * Build: `lodash modularize modern exports="node" -o ./modern/` - * Copyright 2012-2013 The Dojo Foundation - * Based on Underscore.js 1.5.2 - * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - var assign = __webpack_require__(43), + var assign = __webpack_require__(42), forEach = __webpack_require__(22), forOwn = __webpack_require__(14), - getArray = __webpack_require__(37), + getArray = __webpack_require__(36), isArray = __webpack_require__(27), isObject = __webpack_require__(25), - releaseArray = __webpack_require__(39), - slice = __webpack_require__(44); + releaseArray = __webpack_require__(38), + slice = __webpack_require__(43); /** Used to match regexp flags from their coerced string values */ var reFlags = /\w*$/; @@ -2263,7 +2176,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 30 */ +/* 29 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2274,10 +2187,10 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var bind = __webpack_require__(45), - identity = __webpack_require__(55), - setBindData = __webpack_require__(46), - support = __webpack_require__(47); + var bind = __webpack_require__(44), + identity = __webpack_require__(54), + setBindData = __webpack_require__(45), + support = __webpack_require__(46); /** Used to detected named functions */ var reFuncName = /^\s*function[ \n\r\t]+\w/; @@ -2349,7 +2262,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 31 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2375,7 +2288,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 32 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2415,7 +2328,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 33 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2426,7 +2339,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var objectTypes = __webpack_require__(31); + var objectTypes = __webpack_require__(30); /** Used for native method references */ var objectProto = Object.prototype; @@ -2459,7 +2372,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 34 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2497,7 +2410,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 35 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2508,8 +2421,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseIndexOf = __webpack_require__(34), - keyPrefix = __webpack_require__(48); + var baseIndexOf = __webpack_require__(33), + keyPrefix = __webpack_require__(47); /** * An implementation of `_.contains` for cache objects that mimics the return @@ -2542,7 +2455,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 36 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2553,9 +2466,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var cachePush = __webpack_require__(49), - getObject = __webpack_require__(50), - releaseObject = __webpack_require__(40); + var cachePush = __webpack_require__(48), + getObject = __webpack_require__(49), + releaseObject = __webpack_require__(39); /** * Creates a cache object to optimize linear searches of large arrays. @@ -2593,7 +2506,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 37 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2604,7 +2517,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var arrayPool = __webpack_require__(51); + var arrayPool = __webpack_require__(50); /** * Gets an array from the array pool or creates a new one if the pool is empty. @@ -2620,7 +2533,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 38 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2639,7 +2552,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 39 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2650,8 +2563,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var arrayPool = __webpack_require__(51), - maxPoolSize = __webpack_require__(52); + var arrayPool = __webpack_require__(50), + maxPoolSize = __webpack_require__(51); /** * Releases the given array back to the array pool. @@ -2670,7 +2583,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 40 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2681,8 +2594,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var maxPoolSize = __webpack_require__(52), - objectPool = __webpack_require__(53); + var maxPoolSize = __webpack_require__(51), + objectPool = __webpack_require__(52); /** * Releases the given object back to the object pool. @@ -2705,7 +2618,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 41 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2716,13 +2629,13 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseIndexOf = __webpack_require__(34), - cacheIndexOf = __webpack_require__(35), - createCache = __webpack_require__(36), - getArray = __webpack_require__(37), - largeArraySize = __webpack_require__(38), - releaseArray = __webpack_require__(39), - releaseObject = __webpack_require__(40); + var baseIndexOf = __webpack_require__(33), + cacheIndexOf = __webpack_require__(34), + createCache = __webpack_require__(35), + getArray = __webpack_require__(36), + largeArraySize = __webpack_require__(37), + releaseArray = __webpack_require__(38), + releaseObject = __webpack_require__(39); /** * The base implementation of `_.uniq` without support for callback shorthands @@ -2775,7 +2688,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 42 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2786,211 +2699,83 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var forIn = __webpack_require__(56), - getArray = __webpack_require__(37), - isFunction = __webpack_require__(17), - objectTypes = __webpack_require__(31), - releaseArray = __webpack_require__(39); - - /** `Object#toString` result shortcuts */ - var argsClass = '[object Arguments]', - arrayClass = '[object Array]', - boolClass = '[object Boolean]', - dateClass = '[object Date]', - numberClass = '[object Number]', - objectClass = '[object Object]', - regexpClass = '[object RegExp]', - stringClass = '[object String]'; - - /** Used for native method references */ - var objectProto = Object.prototype; - - /** Used to resolve the internal [[Class]] of values */ - var toString = objectProto.toString; - - /** Native method shortcuts */ - var hasOwnProperty = objectProto.hasOwnProperty; + var baseCreateCallback = __webpack_require__(29), + baseIsEqual = __webpack_require__(53), + isObject = __webpack_require__(25), + keys = __webpack_require__(15), + property = __webpack_require__(55); /** - * The base implementation of `_.isEqual`, without support for `thisArg` binding, - * that allows partial "_.where" style comparisons. + * Produces a callback bound to an optional `thisArg`. If `func` is a property + * name the created callback will return the property value for a given element. + * If `func` is an object the created callback will return `true` for elements + * that contain the equivalent object properties, otherwise it will return `false`. * - * @private - * @param {*} a The value to compare. - * @param {*} b The other value to compare. - * @param {Function} [callback] The function to customize comparing values. - * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons. - * @param {Array} [stackA=[]] Tracks traversed `a` objects. - * @param {Array} [stackB=[]] Tracks traversed `b` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @static + * @memberOf _ + * @category Utilities + * @param {*} [func=identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of the created callback. + * @param {number} [argCount] The number of arguments the callback accepts. + * @returns {Function} Returns a callback function. + * @example + * + * var characters = [ + * { 'name': 'barney', 'age': 36 }, + * { 'name': 'fred', 'age': 40 } + * ]; + * + * // wrap to create custom callback shorthands + * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) { + * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback); + * return !match ? func(callback, thisArg) : function(object) { + * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3]; + * }; + * }); + * + * _.filter(characters, 'age__gt38'); + * // => [{ 'name': 'fred', 'age': 40 }] */ - function baseIsEqual(a, b, callback, isWhere, stackA, stackB) { - // used to indicate that when comparing objects, `a` has at least the properties of `b` - if (callback) { - var result = callback(a, b); - if (typeof result != 'undefined') { - return !!result; - } - } - // exit early for identical values - if (a === b) { - // treat `+0` vs. `-0` as not equal - return a !== 0 || (1 / a == 1 / b); - } - var type = typeof a, - otherType = typeof b; - - // exit early for unlike primitive values - if (a === a && - !(a && objectTypes[type]) && - !(b && objectTypes[otherType])) { - return false; + function createCallback(func, thisArg, argCount) { + var type = typeof func; + if (func == null || type == 'function') { + return baseCreateCallback(func, thisArg, argCount); } - // exit early for `null` and `undefined` avoiding ES3's Function#call behavior - // http://es5.github.io/#x15.3.4.4 - if (a == null || b == null) { - return a === b; + // handle "_.pluck" style callback shorthands + if (type != 'object') { + return property(func); } - // compare [[Class]] names - var className = toString.call(a), - otherClass = toString.call(b); + var props = keys(func), + key = props[0], + a = func[key]; - if (className == argsClass) { - className = objectClass; - } - if (otherClass == argsClass) { - otherClass = objectClass; - } - if (className != otherClass) { - return false; + // handle "_.where" style callback shorthands + if (props.length == 1 && a === a && !isObject(a)) { + // fast path the common case of providing an object with a single + // property containing a primitive value + return function(object) { + var b = object[key]; + return a === b && (a !== 0 || (1 / a == 1 / b)); + }; } - switch (className) { - case boolClass: - case dateClass: - // coerce dates and booleans to numbers, dates to milliseconds and booleans - // to `1` or `0` treating invalid dates coerced to `NaN` as not equal - return +a == +b; + return function(object) { + var length = props.length, + result = false; - case numberClass: - // treat `NaN` vs. `NaN` as equal - return (a != +a) - ? b != +b - // but treat `+0` vs. `-0` as not equal - : (a == 0 ? (1 / a == 1 / b) : a == +b); + while (length--) { + if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) { + break; + } + } + return result; + }; + } - case regexpClass: - case stringClass: - // coerce regexes to strings (http://es5.github.io/#x15.10.6.4) - // treat string primitives and their corresponding object instances as equal - return a == String(b); - } - var isArr = className == arrayClass; - if (!isArr) { - // unwrap any `lodash` wrapped values - var aWrapped = hasOwnProperty.call(a, '__wrapped__'), - bWrapped = hasOwnProperty.call(b, '__wrapped__'); - - if (aWrapped || bWrapped) { - return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB); - } - // exit for functions and DOM nodes - if (className != objectClass) { - return false; - } - // in older versions of Opera, `arguments` objects have `Array` constructors - var ctorA = a.constructor, - ctorB = b.constructor; - - // non `Object` object instances with different constructors are not equal - if (ctorA != ctorB && - !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) && - ('constructor' in a && 'constructor' in b) - ) { - return false; - } - } - // assume cyclic structures are equal - // the algorithm for detecting cyclic structures is adapted from ES 5.1 - // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3) - var initedStack = !stackA; - stackA || (stackA = getArray()); - stackB || (stackB = getArray()); - - var length = stackA.length; - while (length--) { - if (stackA[length] == a) { - return stackB[length] == b; - } - } - var size = 0; - result = true; - - // add `a` and `b` to the stack of traversed objects - stackA.push(a); - stackB.push(b); - - // recursively compare objects and arrays (susceptible to call stack limits) - if (isArr) { - // compare lengths to determine if a deep comparison is necessary - length = a.length; - size = b.length; - result = size == length; - - if (result || isWhere) { - // deep compare the contents, ignoring non-numeric properties - while (size--) { - var index = length, - value = b[size]; - - if (isWhere) { - while (index--) { - if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) { - break; - } - } - } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) { - break; - } - } - } - } - else { - // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys` - // which, in this case, is more costly - forIn(b, function(value, key, b) { - if (hasOwnProperty.call(b, key)) { - // count the number of properties. - size++; - // deep compare each property value. - return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB)); - } - }); - - if (result && !isWhere) { - // ensure both objects have the same number of properties - forIn(a, function(value, key, a) { - if (hasOwnProperty.call(a, key)) { - // `size` will be `-1` if `a` has more properties than `b` - return (result = --size > -1); - } - }); - } - } - stackA.pop(); - stackB.pop(); - - if (initedStack) { - releaseArray(stackA); - releaseArray(stackB); - } - return result; - } - - module.exports = baseIsEqual; + module.exports = createCallback; /***/ }, -/* 43 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3001,9 +2786,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(30), + var baseCreateCallback = __webpack_require__(29), keys = __webpack_require__(15), - objectTypes = __webpack_require__(31); + objectTypes = __webpack_require__(30); /** * Assigns own enumerable properties of source object(s) to the destination @@ -3066,7 +2851,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 44 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3110,7 +2895,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 45 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3121,8 +2906,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createWrapper = __webpack_require__(57), - slice = __webpack_require__(44); + var createWrapper = __webpack_require__(56), + slice = __webpack_require__(43); /** * Creates a function that, when called, invokes `func` with the `this` @@ -3156,7 +2941,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 46 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3167,8 +2952,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(32), - noop = __webpack_require__(58); + var isNative = __webpack_require__(31), + noop = __webpack_require__(57); /** Used as the property descriptor for `__bindData__` */ var descriptor = { @@ -3205,7 +2990,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 47 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** @@ -3216,7 +3001,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(32); + var isNative = __webpack_require__(31); /** Used to detect functions containing a `this` reference */ var reThis = /\bthis\b/; @@ -3252,7 +3037,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 48 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3271,7 +3056,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 49 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3282,7 +3067,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var keyPrefix = __webpack_require__(48); + var keyPrefix = __webpack_require__(47); /** * Adds a given value to the corresponding cache object. @@ -3315,7 +3100,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 50 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3326,7 +3111,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var objectPool = __webpack_require__(53); + var objectPool = __webpack_require__(52); /** * Gets an object from the object pool or creates a new one if the pool is empty. @@ -3356,7 +3141,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 51 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3375,7 +3160,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 52 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3394,7 +3179,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 53 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3413,7 +3198,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 54 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3424,42 +3209,211 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ + var forIn = __webpack_require__(58), + getArray = __webpack_require__(36), + isFunction = __webpack_require__(17), + objectTypes = __webpack_require__(30), + releaseArray = __webpack_require__(38); + + /** `Object#toString` result shortcuts */ + var argsClass = '[object Arguments]', + arrayClass = '[object Array]', + boolClass = '[object Boolean]', + dateClass = '[object Date]', + numberClass = '[object Number]', + objectClass = '[object Object]', + regexpClass = '[object RegExp]', + stringClass = '[object String]'; + + /** Used for native method references */ + var objectProto = Object.prototype; + + /** Used to resolve the internal [[Class]] of values */ + var toString = objectProto.toString; + + /** Native method shortcuts */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * Creates a "_.pluck" style function, which returns the `key` value of a - * given object. - * - * @static - * @memberOf _ - * @category Utilities - * @param {string} key The name of the property to retrieve. - * @returns {Function} Returns the new function. - * @example - * - * var characters = [ - * { 'name': 'fred', 'age': 40 }, - * { 'name': 'barney', 'age': 36 } - * ]; - * - * var getName = _.property('name'); - * - * _.map(characters, getName); - * // => ['barney', 'fred'] + * The base implementation of `_.isEqual`, without support for `thisArg` binding, + * that allows partial "_.where" style comparisons. * - * _.sortBy(characters, getName); - * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] + * @private + * @param {*} a The value to compare. + * @param {*} b The other value to compare. + * @param {Function} [callback] The function to customize comparing values. + * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `a` objects. + * @param {Array} [stackB=[]] Tracks traversed `b` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ - function property(key) { - return function(object) { - return object[key]; - }; + function baseIsEqual(a, b, callback, isWhere, stackA, stackB) { + // used to indicate that when comparing objects, `a` has at least the properties of `b` + if (callback) { + var result = callback(a, b); + if (typeof result != 'undefined') { + return !!result; + } + } + // exit early for identical values + if (a === b) { + // treat `+0` vs. `-0` as not equal + return a !== 0 || (1 / a == 1 / b); + } + var type = typeof a, + otherType = typeof b; + + // exit early for unlike primitive values + if (a === a && + !(a && objectTypes[type]) && + !(b && objectTypes[otherType])) { + return false; + } + // exit early for `null` and `undefined` avoiding ES3's Function#call behavior + // http://es5.github.io/#x15.3.4.4 + if (a == null || b == null) { + return a === b; + } + // compare [[Class]] names + var className = toString.call(a), + otherClass = toString.call(b); + + if (className == argsClass) { + className = objectClass; + } + if (otherClass == argsClass) { + otherClass = objectClass; + } + if (className != otherClass) { + return false; + } + switch (className) { + case boolClass: + case dateClass: + // coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal + return +a == +b; + + case numberClass: + // treat `NaN` vs. `NaN` as equal + return (a != +a) + ? b != +b + // but treat `+0` vs. `-0` as not equal + : (a == 0 ? (1 / a == 1 / b) : a == +b); + + case regexpClass: + case stringClass: + // coerce regexes to strings (http://es5.github.io/#x15.10.6.4) + // treat string primitives and their corresponding object instances as equal + return a == String(b); + } + var isArr = className == arrayClass; + if (!isArr) { + // unwrap any `lodash` wrapped values + var aWrapped = hasOwnProperty.call(a, '__wrapped__'), + bWrapped = hasOwnProperty.call(b, '__wrapped__'); + + if (aWrapped || bWrapped) { + return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB); + } + // exit for functions and DOM nodes + if (className != objectClass) { + return false; + } + // in older versions of Opera, `arguments` objects have `Array` constructors + var ctorA = a.constructor, + ctorB = b.constructor; + + // non `Object` object instances with different constructors are not equal + if (ctorA != ctorB && + !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) && + ('constructor' in a && 'constructor' in b) + ) { + return false; + } + } + // assume cyclic structures are equal + // the algorithm for detecting cyclic structures is adapted from ES 5.1 + // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3) + var initedStack = !stackA; + stackA || (stackA = getArray()); + stackB || (stackB = getArray()); + + var length = stackA.length; + while (length--) { + if (stackA[length] == a) { + return stackB[length] == b; + } + } + var size = 0; + result = true; + + // add `a` and `b` to the stack of traversed objects + stackA.push(a); + stackB.push(b); + + // recursively compare objects and arrays (susceptible to call stack limits) + if (isArr) { + // compare lengths to determine if a deep comparison is necessary + length = a.length; + size = b.length; + result = size == length; + + if (result || isWhere) { + // deep compare the contents, ignoring non-numeric properties + while (size--) { + var index = length, + value = b[size]; + + if (isWhere) { + while (index--) { + if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) { + break; + } + } + } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) { + break; + } + } + } + } + else { + // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys` + // which, in this case, is more costly + forIn(b, function(value, key, b) { + if (hasOwnProperty.call(b, key)) { + // count the number of properties. + size++; + // deep compare each property value. + return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB)); + } + }); + + if (result && !isWhere) { + // ensure both objects have the same number of properties + forIn(a, function(value, key, a) { + if (hasOwnProperty.call(a, key)) { + // `size` will be `-1` if `a` has more properties than `b` + return (result = --size > -1); + } + }); + } + } + stackA.pop(); + stackB.pop(); + + if (initedStack) { + releaseArray(stackA); + releaseArray(stackB); + } + return result; } - module.exports = property; + module.exports = baseIsEqual; /***/ }, -/* 55 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3493,7 +3447,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 56 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3504,56 +3458,42 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(30), - objectTypes = __webpack_require__(31); /** - * Iterates over own and inherited enumerable properties of an object, - * executing the callback for each property. The callback is bound to `thisArg` - * and invoked with three arguments; (value, key, object). Callbacks may exit - * iteration early by explicitly returning `false`. + * Creates a "_.pluck" style function, which returns the `key` value of a + * given object. * * @static * @memberOf _ - * @type Function - * @category Objects - * @param {Object} object The object to iterate over. - * @param {Function} [callback=identity] The function called per iteration. - * @param {*} [thisArg] The `this` binding of `callback`. - * @returns {Object} Returns `object`. + * @category Utilities + * @param {string} key The name of the property to retrieve. + * @returns {Function} Returns the new function. * @example * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } + * var characters = [ + * { 'name': 'fred', 'age': 40 }, + * { 'name': 'barney', 'age': 36 } + * ]; * - * Shape.prototype.move = function(x, y) { - * this.x += x; - * this.y += y; - * }; + * var getName = _.property('name'); * - * _.forIn(new Shape, function(value, key) { - * console.log(key); - * }); - * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments) + * _.map(characters, getName); + * // => ['barney', 'fred'] + * + * _.sortBy(characters, getName); + * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] */ - var forIn = function(collection, callback, thisArg) { - var index, iterable = collection, result = iterable; - if (!iterable) return result; - if (!objectTypes[typeof iterable]) return result; - callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3); - for (index in iterable) { - if (callback(iterable[index], index, collection) === false) return result; - } - return result - }; + function property(key) { + return function(object) { + return object[key]; + }; + } - module.exports = forIn; + module.exports = property; /***/ }, -/* 57 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3567,7 +3507,7 @@ return /******/ (function(modules) { // webpackBootstrap var baseBind = __webpack_require__(59), baseCreateWrapper = __webpack_require__(60), isFunction = __webpack_require__(17), - slice = __webpack_require__(44); + slice = __webpack_require__(43); /** * Used for `Array` method references. @@ -3665,7 +3605,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 58 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3696,6 +3636,66 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = noop; +/***/ }, +/* 58 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * Lo-Dash 2.4.1 (Custom Build) + * Build: `lodash modularize modern exports="node" -o ./modern/` + * Copyright 2012-2013 The Dojo Foundation + * Based on Underscore.js 1.5.2 + * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + var baseCreateCallback = __webpack_require__(29), + objectTypes = __webpack_require__(30); + + /** + * Iterates over own and inherited enumerable properties of an object, + * executing the callback for each property. The callback is bound to `thisArg` + * and invoked with three arguments; (value, key, object). Callbacks may exit + * iteration early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @type Function + * @category Objects + * @param {Object} object The object to iterate over. + * @param {Function} [callback=identity] The function called per iteration. + * @param {*} [thisArg] The `this` binding of `callback`. + * @returns {Object} Returns `object`. + * @example + * + * function Shape() { + * this.x = 0; + * this.y = 0; + * } + * + * Shape.prototype.move = function(x, y) { + * this.x += x; + * this.y += y; + * }; + * + * _.forIn(new Shape, function(value, key) { + * console.log(key); + * }); + * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments) + */ + var forIn = function(collection, callback, thisArg) { + var index, iterable = collection, result = iterable; + if (!iterable) return result; + if (!objectTypes[typeof iterable]) return result; + callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3); + for (index in iterable) { + if (callback(iterable[index], index, collection) === false) return result; + } + return result + }; + + module.exports = forIn; + + /***/ }, /* 59 */ /***/ function(module, exports, __webpack_require__) { @@ -3710,8 +3710,8 @@ return /******/ (function(modules) { // webpackBootstrap */ var baseCreate = __webpack_require__(61), isObject = __webpack_require__(25), - setBindData = __webpack_require__(46), - slice = __webpack_require__(44); + setBindData = __webpack_require__(45), + slice = __webpack_require__(43); /** * Used for `Array` method references. @@ -3778,8 +3778,8 @@ return /******/ (function(modules) { // webpackBootstrap */ var baseCreate = __webpack_require__(61), isObject = __webpack_require__(25), - setBindData = __webpack_require__(46), - slice = __webpack_require__(44); + setBindData = __webpack_require__(45), + slice = __webpack_require__(43); /** * Used for `Array` method references. @@ -3860,9 +3860,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(32), + var isNative = __webpack_require__(31), isObject = __webpack_require__(25), - noop = __webpack_require__(58); + noop = __webpack_require__(57); /* Native method shortcuts for methods with the same name as other `lodash` methods */ var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate; diff --git a/build/fluxxor.js.map b/build/fluxxor.js.map index 496b9a8..b35a076 100644 --- a/build/fluxxor.js.map +++ b/build/fluxxor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/universalModuleDefinition","webpack/bootstrap 68c8dc62f2b17b230e7e","./index.js","./version.js","./lib/dispatcher.js","./lib/flux.js","./lib/flux_mixin.js","./lib/flux_child_mixin.js","./lib/store_watch_mixin.js","./lib/create_store.js","./lib/store.js","./~/eventemitter3/index.js","./~/object-path/index.js","./~/inherits/inherits_browser.js","./~/lodash-node/modern/objects/clone.js","./~/lodash-node/modern/objects/mapValues.js","./~/lodash-node/modern/objects/forOwn.js","./~/lodash-node/modern/objects/keys.js","./~/lodash-node/modern/objects/findKey.js","./~/lodash-node/modern/objects/isFunction.js","./~/lodash-node/modern/objects/isString.js","./~/lodash-node/modern/arrays/intersection.js","./~/lodash-node/modern/arrays/uniq.js","./~/lodash-node/modern/collections/map.js","./~/lodash-node/modern/collections/forEach.js","./~/lodash-node/modern/collections/size.js","./~/lodash-node/modern/collections/reduce.js","./~/lodash-node/modern/objects/isObject.js","./~/lodash-node/modern/objects/isArguments.js","./~/lodash-node/modern/objects/isArray.js","./~/lodash-node/modern/functions/createCallback.js","./~/lodash-node/modern/internals/baseClone.js","./~/lodash-node/modern/internals/baseCreateCallback.js","./~/lodash-node/modern/internals/objectTypes.js","./~/lodash-node/modern/internals/isNative.js","./~/lodash-node/modern/internals/shimKeys.js","./~/lodash-node/modern/internals/baseIndexOf.js","./~/lodash-node/modern/internals/cacheIndexOf.js","./~/lodash-node/modern/internals/createCache.js","./~/lodash-node/modern/internals/getArray.js","./~/lodash-node/modern/internals/largeArraySize.js","./~/lodash-node/modern/internals/releaseArray.js","./~/lodash-node/modern/internals/releaseObject.js","./~/lodash-node/modern/internals/baseUniq.js","./~/lodash-node/modern/internals/baseIsEqual.js","./~/lodash-node/modern/objects/assign.js","./~/lodash-node/modern/internals/slice.js","./~/lodash-node/modern/functions/bind.js","./~/lodash-node/modern/internals/setBindData.js","./~/lodash-node/modern/support.js","./~/lodash-node/modern/internals/keyPrefix.js","./~/lodash-node/modern/internals/cachePush.js","./~/lodash-node/modern/internals/getObject.js","./~/lodash-node/modern/internals/arrayPool.js","./~/lodash-node/modern/internals/maxPoolSize.js","./~/lodash-node/modern/internals/objectPool.js","./~/lodash-node/modern/utilities/property.js","./~/lodash-node/modern/utilities/identity.js","./~/lodash-node/modern/objects/forIn.js","./~/lodash-node/modern/internals/createWrapper.js","./~/lodash-node/modern/utilities/noop.js","./~/lodash-node/modern/internals/baseBind.js","./~/lodash-node/modern/internals/baseCreateWrapper.js","./~/lodash-node/modern/internals/baseCreate.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;ACTA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA,wC;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,yB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAY;AACZ,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,8BAA6B,6BAA6B;AAC1D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,oBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACrEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA,2DAA0D,OAAO;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC,SAAS;AAClD;AACA;;AAEA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;;AAEA;AACA,4DAA2D;AAC3D,gEAA+D;AAC/D,oEAAmE;AACnE;AACA,2DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAoD,YAAY;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC3MA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAuC,SAAS;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,E;;;;;;AChPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA,iBAAgB,wBAAwB,kBAAkB,gBAAgB,EAAE;AAC5E,WAAU;AACV;AACA;AACA,eAAc,4BAA4B;AAC1C,kBAAiB;AACjB;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,uCAAuC;AACpD;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,YAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,iBAAiB;AAC9B;AACA;AACA;AACA,iBAAgB,+BAA+B;AAC/C,eAAc,gCAAgC;AAC9C,kBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,2BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D,6BAA6B,EAAE;AAC3F;AACA;AACA,oDAAmD,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS,GAAG,SAAS;AAC7C,YAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA,oCAAmC,gBAAgB,EAAE;AACrD;AACA;AACA,WAAU,iCAAiC,iBAAiB,gBAAgB,EAAE;AAC9E;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA,wCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA,eAAc,iCAAiC,iBAAiB,kBAAkB,EAAE;AACpF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,YAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,2BAA0B,yBAAyB;AACnD;AACA;AACA,KAAI,IAAI;AACR,WAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB,iCAAiC,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB,6BAA6B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,YAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,iBAAiB,GAAG,sBAAsB;AACvD,WAAU;AACV;AACA;AACA;AACA,KAAI;AACJ;AACA,kBAAiB;AACjB,sBAAqB,sCAAsC;AAC3D,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,KAAK;AAChB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA,IAAG,WAAW;AACd;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA6E,aAAa,EAAE;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,qDAAoD;;AAEpD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,8BAA8B,GAAG,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA,YAAW,MAAM;AACjB;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn ","\n// The module cache\nvar installedModules = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(installedModules[moduleId])\n\t\treturn installedModules[moduleId].exports;\n\t\n\t// Create a new module (and put it into the cache)\n\tvar module = installedModules[moduleId] = {\n\t\texports: {},\n\t\tid: moduleId,\n\t\tloaded: false\n\t};\n\t\n\t// Execute the module function\n\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\t\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = modules;\n\n// expose the module cache\n__webpack_require__.c = installedModules;\n\n// __webpack_public_path__\n__webpack_require__.p = \"\";\n\n\n// Load entry module and return exports\nreturn __webpack_require__(0);","var Dispatcher = require(\"./lib/dispatcher\"),\n Flux = require(\"./lib/flux\"),\n FluxMixin = require(\"./lib/flux_mixin\"),\n FluxChildMixin = require(\"./lib/flux_child_mixin\"),\n StoreWatchMixin = require(\"./lib/store_watch_mixin\"),\n createStore = require(\"./lib/create_store\");\n\nvar Fluxxor = {\n Dispatcher: Dispatcher,\n Flux: Flux,\n FluxMixin: FluxMixin,\n FluxChildMixin: FluxChildMixin,\n StoreWatchMixin: StoreWatchMixin,\n createStore: createStore,\n version: require(\"./version\")\n};\n\nmodule.exports = Fluxxor;\n","module.exports = \"1.5.0\"","var _clone = require(\"lodash-node/modern/objects/clone\"),\n _mapValues = require(\"lodash-node/modern/objects/mapValues\"),\n _forOwn = require(\"lodash-node/modern/objects/forOwn\"),\n _intersection = require(\"lodash-node/modern/arrays/intersection\"),\n _keys = require(\"lodash-node/modern/objects/keys\"),\n _map = require(\"lodash-node/modern/collections/map\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _size = require(\"lodash-node/modern/collections/size\"),\n _findKey = require(\"lodash-node/modern/objects/findKey\"),\n _uniq = require(\"lodash-node/modern/arrays/uniq\");\n\nvar Dispatcher = function(stores) {\n this.stores = {};\n this.currentDispatch = null;\n this.currentActionType = null;\n this.waitingToDispatch = [];\n\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nDispatcher.prototype.addStore = function(name, store) {\n store.dispatcher = this;\n this.stores[name] = store;\n};\n\nDispatcher.prototype.dispatch = function(action) {\n if (!action || !action.type) {\n throw new Error(\"Can only dispatch actions with a 'type' property\");\n }\n\n if (this.currentDispatch) {\n var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n this.currentActionType + \"') is being dispatched\";\n throw new Error(complaint);\n }\n\n this.waitingToDispatch = _clone(this.stores);\n\n this.currentActionType = action.type;\n this.currentDispatch = _mapValues(this.stores, function() {\n return { resolved: false, waitingOn: [], waitCallback: null };\n });\n\n try {\n this.doDispatchLoop(action);\n } finally {\n this.currentActionType = null;\n this.currentDispatch = null;\n }\n};\n\nDispatcher.prototype.doDispatchLoop = function(action) {\n var dispatch, canBeDispatchedTo, wasHandled = false,\n removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\n _forOwn(this.waitingToDispatch, function(value, key) {\n dispatch = this.currentDispatch[key];\n canBeDispatchedTo = !dispatch.waitingOn.length ||\n !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n if (canBeDispatchedTo) {\n if (dispatch.waitCallback) {\n var stores = _map(dispatch.waitingOn, function(key) {\n return this.stores[key];\n }, this);\n var fn = dispatch.waitCallback;\n dispatch.waitCallback = null;\n dispatch.waitingOn = [];\n dispatch.resolved = true;\n fn.apply(null, stores);\n wasHandled = true;\n } else {\n dispatch.resolved = true;\n var handled = this.stores[key].__handleAction__(action);\n if (handled) {\n wasHandled = true;\n }\n }\n\n dispatchedThisLoop.push(key);\n\n if (this.currentDispatch[key].resolved) {\n removeFromDispatchQueue.push(key);\n }\n }\n }, this);\n\n if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n }\n\n _each(removeFromDispatchQueue, function(key) {\n delete this.waitingToDispatch[key];\n }, this);\n\n if (_size(this.waitingToDispatch)) {\n this.doDispatchLoop(action);\n }\n\n if (!wasHandled && console && console.warn) {\n console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n }\n\n};\n\nDispatcher.prototype.waitForStores = function(store, stores, fn) {\n if (!this.currentDispatch) {\n throw new Error(\"Cannot wait unless an action is being dispatched\");\n }\n\n var waitingStoreName = _findKey(this.stores, function(val) {\n return val === store;\n });\n\n if (stores.indexOf(waitingStoreName) > -1) {\n throw new Error(\"A store cannot wait on itself\");\n }\n\n var dispatch = this.currentDispatch[waitingStoreName];\n\n if (dispatch.waitingOn.length) {\n throw new Error(waitingStoreName + \" already waiting on stores\");\n }\n\n _each(stores, function(storeName) {\n var storeDispatch = this.currentDispatch[storeName];\n if (!this.stores[storeName]) {\n throw new Error(\"Cannot wait for non-existent store \" + storeName);\n }\n if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n }\n }, this);\n\n dispatch.resolved = false;\n dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n dispatch.waitCallback = fn;\n};\n\nmodule.exports = Dispatcher;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n objectPath = require(\"object-path\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _reduce = require(\"lodash-node/modern/collections/reduce\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isString = require(\"lodash-node/modern/objects/isString\");\n\nvar Dispatcher = require(\"./dispatcher\");\n\nvar findLeaves = function(obj, path, callback) {\n path = path || [];\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (_isFunction(obj[key])) {\n callback(path.concat(key), obj[key]);\n } else {\n findLeaves(obj[key], path.concat(key), callback);\n }\n }\n }\n};\n\nvar Flux = function(stores, actions) {\n EventEmitter.call(this);\n this.dispatcher = new Dispatcher(stores);\n this.actions = {};\n this.stores = {};\n\n var dispatcher = this.dispatcher;\n var flux = this;\n this.dispatchBinder = {\n flux: flux,\n dispatch: function(type, payload) {\n try {\n flux.emit(\"dispatch\", type, payload);\n } finally {\n dispatcher.dispatch({type: type, payload: payload});\n }\n }\n };\n\n this.addActions(actions);\n this.addStores(stores);\n};\n\ninherits(Flux, EventEmitter);\n\nFlux.prototype.addActions = function(actions) {\n findLeaves(actions, [], this.addAction.bind(this));\n};\n\n// addAction has two signatures:\n// 1: string[, string, string, string...], actionFunction\n// 2: arrayOfStrings, actionFunction\nFlux.prototype.addAction = function() {\n if (arguments.length < 2) {\n throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n }\n\n var args = Array.prototype.slice.call(arguments);\n\n if (!_isFunction(args[args.length - 1])) {\n throw new Error(\"The last argument to addAction must be a function\");\n }\n\n var func = args.pop().bind(this.dispatchBinder);\n\n if (!_isString(args[0])) {\n args = args[0];\n }\n\n var leadingPaths = _reduce(args, function(acc, next) {\n if (acc) {\n var nextPath = acc[acc.length - 1].concat([next]);\n return acc.concat([nextPath]);\n } else {\n return [[next]];\n }\n }, null);\n\n // Detect trying to replace a function at any point in the path\n _each(leadingPaths, function(path) {\n if (_isFunction(objectPath.get(this.actions, path))) {\n throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n }\n }, this);\n\n // Detect trying to replace a namespace at the final point in the path\n if (objectPath.get(this.actions, args)) {\n throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n }\n\n objectPath.set(this.actions, args, func, true);\n};\n\nFlux.prototype.store = function(name) {\n return this.stores[name];\n};\n\nFlux.prototype.addStore = function(name, store) {\n if (name in this.stores) {\n throw new Error(\"A store named '\" + name + \"' already exists\");\n }\n store.flux = this;\n this.stores[name] = store;\n this.dispatcher.addStore(name, store);\n};\n\nFlux.prototype.addStores = function(stores) {\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nmodule.exports = Flux;\n","var FluxMixin = function(React) {\n return {\n componentWillMount: function() {\n if (!this.props.flux && (!this.context || !this.context.flux)) {\n var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n }\n },\n\n childContextTypes: {\n flux: React.PropTypes.object\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getChildContext: function() {\n return {\n flux: this.getFlux()\n };\n },\n\n getFlux: function() {\n return this.props.flux || (this.context && this.context.flux);\n }\n };\n};\n\nFluxMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n};\n\nmodule.exports = FluxMixin;\n","var FluxChildMixin = function(React) {\n return {\n componentWillMount: function() {\n if (console && console.warn) {\n var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n console.warn(message);\n }\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getFlux: function() {\n return this.context.flux;\n }\n };\n};\n\nFluxChildMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n};\n\nmodule.exports = FluxChildMixin;\n","var _each = require(\"lodash-node/modern/collections/forEach\");\n\nvar StoreWatchMixin = function() {\n var storeNames = Array.prototype.slice.call(arguments);\n return {\n componentWillMount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).on(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n componentWillUnmount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n _setStateFromFlux: function() {\n if(this.isMounted()) {\n this.setState(this.getStateFromFlux());\n }\n },\n\n getInitialState: function() {\n return this.getStateFromFlux();\n }\n };\n};\n\nStoreWatchMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n \"store names as parameters and returns the mixin, e.g.: \" +\n \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n};\n\nmodule.exports = StoreWatchMixin;\n","var _each = require(\"lodash-node/modern/collections/forEach\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n Store = require(\"./store\"),\n inherits = require(\"inherits\");\n\nvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\nvar createStore = function(spec) {\n _each(RESERVED_KEYS, function(key) {\n if (spec[key]) {\n throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n }\n });\n\n var constructor = function(options) {\n options = options || {};\n Store.call(this);\n\n for (var key in spec) {\n if (key === \"actions\") {\n this.bindActions(spec[key]);\n } else if (key === \"initialize\") {\n // do nothing\n } else if (_isFunction(spec[key])) {\n this[key] = spec[key].bind(this);\n } else {\n this[key] = spec[key];\n }\n }\n\n if (spec.initialize) {\n spec.initialize.call(this, options);\n }\n };\n\n inherits(constructor, Store);\n return constructor;\n};\n\nmodule.exports = createStore;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isObject = require(\"lodash-node/modern/objects/isObject\");\n\nfunction Store(dispatcher) {\n this.dispatcher = dispatcher;\n this.__actions__ = {};\n EventEmitter.call(this);\n}\n\ninherits(Store, EventEmitter);\n\nStore.prototype.__handleAction__ = function(action) {\n var handler;\n if (!!(handler = this.__actions__[action.type])) {\n if (_isFunction(handler)) {\n handler.call(this, action.payload, action.type);\n } else if (handler && _isFunction(this[handler])) {\n this[handler].call(this, action.payload, action.type);\n } else {\n throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n }\n return true;\n } else {\n return false;\n }\n};\n\nStore.prototype.bindActions = function() {\n var actions = Array.prototype.slice.call(arguments);\n\n if (actions.length > 1 && actions.length % 2 !== 0) {\n throw new Error(\"bindActions must take an even number of arguments.\");\n }\n\n var bindAction = function(type, handler) {\n if (!handler) {\n throw new Error(\"The handler for action type \" + type + \" is falsy\");\n }\n\n this.__actions__[type] = handler;\n }.bind(this);\n\n if (actions.length === 1 && _isObject(actions[0])) {\n actions = actions[0];\n for (var key in actions) {\n if (actions.hasOwnProperty(key)) {\n bindAction(key, actions[key]);\n }\n }\n } else {\n for (var i = 0; i < actions.length; i += 2) {\n var type = actions[i],\n handler = actions[i+1];\n\n if (!type) {\n throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n }\n\n bindAction(type, handler);\n }\n }\n};\n\nStore.prototype.waitFor = function(stores, fn) {\n this.dispatcher.waitForStores(this, stores, fn.bind(this));\n};\n\nmodule.exports = Store;\n","'use strict';\n\n/**\n * Representation of a single EventEmitter function.\n *\n * @param {Function} fn Event handler to be called.\n * @param {Mixed} context Context for function execution.\n * @param {Boolean} once Only emit once\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal EventEmitter interface that is molded against the Node.js\n * EventEmitter interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() { /* Nothing to set */ }\n\n/**\n * Holds the assigned EventEmitters by name.\n *\n * @type {Object}\n * @private\n */\nEventEmitter.prototype._events = undefined;\n\n/**\n * Return a list of assigned event listeners.\n *\n * @param {String} event The events that should be listed.\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n if (!this._events || !this._events[event]) return [];\n\n for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n ee.push(this._events[event][i].fn);\n }\n\n return ee;\n};\n\n/**\n * Emit an event to all registered event listeners.\n *\n * @param {String} event The name of the event.\n * @returns {Boolean} Indication if we've emitted an event.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n if (!this._events || !this._events[event]) return false;\n\n var listeners = this._events[event]\n , length = listeners.length\n , len = arguments.length\n , ee = listeners[0]\n , args\n , i, j;\n\n if (1 === length) {\n if (ee.once) this.removeListener(event, ee.fn, true);\n\n switch (len) {\n case 1: return ee.fn.call(ee.context), true;\n case 2: return ee.fn.call(ee.context, a1), true;\n case 3: return ee.fn.call(ee.context, a1, a2), true;\n case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n ee.fn.apply(ee.context, args);\n } else {\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Register a new EventListener for the given event.\n *\n * @param {String} event Name of the event.\n * @param {Functon} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE( fn, context || this ));\n\n return this;\n};\n\n/**\n * Add an EventListener that's only called once.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE(fn, context || this, true ));\n\n return this;\n};\n\n/**\n * Remove event listeners.\n *\n * @param {String} event The event we want to remove.\n * @param {Function} fn The listener that we need to find.\n * @param {Boolean} once Only remove once listeners.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n if (!this._events || !this._events[event]) return this;\n\n var listeners = this._events[event]\n , events = [];\n\n if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn && listeners[i].once !== once) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[event] = events;\n else this._events[event] = null;\n\n return this;\n};\n\n/**\n * Remove all listeners or only the listeners for the specified event.\n *\n * @param {String} event The event want to remove all listeners for.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n if (!this._events) return this;\n\n if (event) this._events[event] = null;\n else this._events = {};\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the module.\n//\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.EventEmitter2 = EventEmitter;\nEventEmitter.EventEmitter3 = EventEmitter;\n\nif ('object' === typeof module && module.exports) {\n module.exports = EventEmitter;\n}\n","(function (root, factory){\n 'use strict';\n\n /*istanbul ignore next:cant test*/\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else {\n // Browser globals\n root.objectPath = factory();\n }\n})(this, function(){\n 'use strict';\n\n var\n toStr = Object.prototype.toString,\n _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function isEmpty(value){\n if (!value) {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n } else {\n for (var i in value) {\n if (_hasOwnProperty.call(value, i)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function toString(type){\n return toStr.call(type);\n }\n\n function isNumber(value){\n return typeof value === 'number' || toString(value) === \"[object Number]\";\n }\n\n function isString(obj){\n return typeof obj === 'string' || toString(obj) === \"[object String]\";\n }\n\n function isObject(obj){\n return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n }\n\n function isArray(obj){\n return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n }\n\n function isBoolean(obj){\n return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n }\n\n function getKey(key){\n var intKey = parseInt(key);\n if (intKey.toString() === key) {\n return intKey;\n }\n return key;\n }\n\n function set(obj, path, value, doNotReplace){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isString(path)) {\n return set(obj, path.split('.'), value, doNotReplace);\n }\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n var oldVal = obj[currentPath];\n if (oldVal === void 0 || !doNotReplace) {\n obj[currentPath] = value;\n }\n return oldVal;\n }\n\n if (obj[currentPath] === void 0) {\n if (isNumber(currentPath)) {\n obj[currentPath] = [];\n } else {\n obj[currentPath] = {};\n }\n }\n\n return set(obj[currentPath], path.slice(1), value, doNotReplace);\n }\n\n function del(obj, path) {\n if (isNumber(path)) {\n path = [path];\n }\n\n if (isEmpty(obj)) {\n return void 0;\n }\n\n if (isEmpty(path)) {\n return obj;\n }\n if(isString(path)) {\n return del(obj, path.split('.'));\n }\n\n var currentPath = getKey(path[0]);\n var oldVal = obj[currentPath];\n\n if(path.length === 1) {\n if (oldVal !== void 0) {\n if (isArray(obj)) {\n obj.splice(currentPath, 1);\n } else {\n delete obj[currentPath];\n }\n }\n } else {\n if (obj[currentPath] !== void 0) {\n return del(obj[currentPath], path.slice(1));\n }\n }\n\n return obj;\n }\n\n var objectPath = {};\n\n objectPath.ensureExists = function (obj, path, value){\n return set(obj, path, value, true);\n };\n\n objectPath.set = function (obj, path, value, doNotReplace){\n return set(obj, path, value, doNotReplace);\n };\n\n objectPath.insert = function (obj, path, value, at){\n var arr = objectPath.get(obj, path);\n at = ~~at;\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n arr.splice(at, 0, value);\n };\n\n objectPath.empty = function(obj, path) {\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return void 0;\n }\n\n var value, i;\n if (!(value = objectPath.get(obj, path))) {\n return obj;\n }\n\n if (isString(value)) {\n return objectPath.set(obj, path, '');\n } else if (isBoolean(value)) {\n return objectPath.set(obj, path, false);\n } else if (isNumber(value)) {\n return objectPath.set(obj, path, 0);\n } else if (isArray(value)) {\n value.length = 0;\n } else if (isObject(value)) {\n for (i in value) {\n if (_hasOwnProperty.call(value, i)) {\n delete value[i];\n }\n }\n } else {\n return objectPath.set(obj, path, null);\n }\n };\n\n objectPath.push = function (obj, path /*, values */){\n var arr = objectPath.get(obj, path);\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n\n arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n };\n\n objectPath.coalesce = function (obj, paths, defaultValue) {\n var value;\n\n for (var i = 0, len = paths.length; i < len; i++) {\n if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n return value;\n }\n }\n\n return defaultValue;\n };\n\n objectPath.get = function (obj, path, defaultValue){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return defaultValue;\n }\n if (isString(path)) {\n return objectPath.get(obj, path.split('.'), defaultValue);\n }\n\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n if (obj[currentPath] === void 0) {\n return defaultValue;\n }\n return obj[currentPath];\n }\n\n return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n };\n\n objectPath.del = function(obj, path) {\n return del(obj, path);\n };\n\n return objectPath;\n});","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseClone = require('../internals/baseClone'),\n baseCreateCallback = require('../internals/baseCreateCallback');\n\n/**\n * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n * be cloned, otherwise they will be assigned by reference. If a callback\n * is provided it will be executed to produce the cloned values. If the\n * callback returns `undefined` cloning will be handled by the method instead.\n * The callback is bound to `thisArg` and invoked with one argument; (value).\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the cloned value.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * var shallow = _.clone(characters);\n * shallow[0] === characters[0];\n * // => true\n *\n * var deep = _.clone(characters, true);\n * deep[0] === characters[0];\n * // => false\n *\n * _.mixin({\n * 'clone': _.partialRight(_.clone, function(value) {\n * return _.isElement(value) ? value.cloneNode(false) : undefined;\n * })\n * });\n *\n * var clone = _.clone(document.body);\n * clone.childNodes.length;\n * // => 0\n */\nfunction clone(value, isDeep, callback, thisArg) {\n // allows working with \"Collections\" methods without using their `index`\n // and `collection` arguments for `isDeep` and `callback`\n if (typeof isDeep != 'boolean' && isDeep != null) {\n thisArg = callback;\n callback = isDeep;\n isDeep = false;\n }\n return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n}\n\nmodule.exports = clone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * Creates an object with the same keys as `object` and values generated by\n * running each own enumerable property of `object` through the callback.\n * The callback is bound to `thisArg` and invoked with three arguments;\n * (value, key, object).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n * @example\n *\n * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n *\n * var characters = {\n * 'fred': { 'name': 'fred', 'age': 40 },\n * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n * };\n *\n * // using \"_.pluck\" callback shorthand\n * _.mapValues(characters, 'age');\n * // => { 'fred': 40, 'pebbles': 1 }\n */\nfunction mapValues(object, callback, thisArg) {\n var result = {};\n callback = createCallback(callback, thisArg, 3);\n\n forOwn(object, function(value, key, object) {\n result[key] = callback(value, key, object);\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own enumerable properties of an object, executing the callback\n * for each property. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, key, object). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n * console.log(key);\n * });\n * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n */\nvar forOwn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forOwn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative'),\n isObject = require('./isObject'),\n shimKeys = require('../internals/shimKeys');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\n/**\n * Creates an array composed of the own enumerable property names of an object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n * @example\n *\n * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n if (!isObject(object)) {\n return [];\n }\n return nativeKeys(object);\n};\n\nmodule.exports = keys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * This method is like `_.findIndex` except that it returns the key of the\n * first element that passes the callback check, instead of the element itself.\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to search.\n * @param {Function|Object|string} [callback=identity] The function called per\n * iteration. If a property name or object is provided it will be used to\n * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n * @example\n *\n * var characters = {\n * 'barney': { 'age': 36, 'blocked': false },\n * 'fred': { 'age': 40, 'blocked': true },\n * 'pebbles': { 'age': 1, 'blocked': false }\n * };\n *\n * _.findKey(characters, function(chr) {\n * return chr.age < 40;\n * });\n * // => 'barney' (property order is not guaranteed across environments)\n *\n * // using \"_.where\" callback shorthand\n * _.findKey(characters, { 'age': 1 });\n * // => 'pebbles'\n *\n * // using \"_.pluck\" callback shorthand\n * _.findKey(characters, 'blocked');\n * // => 'fred'\n */\nfunction findKey(object, callback, thisArg) {\n var result;\n callback = createCallback(callback, thisArg, 3);\n forOwn(object, function(value, key, object) {\n if (callback(value, key, object)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = findKey;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is a function.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n */\nfunction isFunction(value) {\n return typeof value == 'function';\n}\n\nmodule.exports = isFunction;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is a string.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n * @example\n *\n * _.isString('fred');\n * // => true\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n value && typeof value == 'object' && toString.call(value) == stringClass || false;\n}\n\nmodule.exports = isString;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('../internals/baseIndexOf'),\n cacheIndexOf = require('../internals/cacheIndexOf'),\n createCache = require('../internals/createCache'),\n getArray = require('../internals/getArray'),\n isArguments = require('../objects/isArguments'),\n isArray = require('../objects/isArray'),\n largeArraySize = require('../internals/largeArraySize'),\n releaseArray = require('../internals/releaseArray'),\n releaseObject = require('../internals/releaseObject');\n\n/**\n * Creates an array of unique values present in all provided arrays using\n * strict equality for comparisons, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @category Arrays\n * @param {...Array} [array] The arrays to inspect.\n * @returns {Array} Returns an array of shared values.\n * @example\n *\n * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n * // => [1, 2]\n */\nfunction intersection() {\n var args = [],\n argsIndex = -1,\n argsLength = arguments.length,\n caches = getArray(),\n indexOf = baseIndexOf,\n trustIndexOf = indexOf === baseIndexOf,\n seen = getArray();\n\n while (++argsIndex < argsLength) {\n var value = arguments[argsIndex];\n if (isArray(value) || isArguments(value)) {\n args.push(value);\n caches.push(trustIndexOf && value.length >= largeArraySize &&\n createCache(argsIndex ? args[argsIndex] : seen));\n }\n }\n var array = args[0],\n index = -1,\n length = array ? array.length : 0,\n result = [];\n\n outer:\n while (++index < length) {\n var cache = caches[0];\n value = array[index];\n\n if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n argsIndex = argsLength;\n (cache || seen).push(value);\n while (--argsIndex) {\n cache = caches[argsIndex];\n if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n continue outer;\n }\n }\n result.push(value);\n }\n }\n while (argsLength--) {\n cache = caches[argsLength];\n if (cache) {\n releaseObject(cache);\n }\n }\n releaseArray(caches);\n releaseArray(seen);\n return result;\n}\n\nmodule.exports = intersection;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseUniq = require('../internals/baseUniq'),\n createCallback = require('../functions/createCallback');\n\n/**\n * Creates a duplicate-value-free version of an array using strict equality\n * for comparisons, i.e. `===`. If the array is sorted, providing\n * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n * each element of `array` is passed through the callback before uniqueness\n * is computed. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, index, array).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias unique\n * @category Arrays\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a duplicate-value-free array.\n * @example\n *\n * _.uniq([1, 2, 1, 3, 1]);\n * // => [1, 2, 3]\n *\n * _.uniq([1, 1, 2, 2, 3], true);\n * // => [1, 2, 3]\n *\n * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n * // => ['A', 'b', 'C']\n *\n * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n * // => [1, 2.5, 3]\n *\n * // using \"_.pluck\" callback shorthand\n * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniq(array, isSorted, callback, thisArg) {\n // juggle arguments\n if (typeof isSorted != 'boolean' && isSorted != null) {\n thisArg = callback;\n callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n isSorted = false;\n }\n if (callback != null) {\n callback = createCallback(callback, thisArg, 3);\n }\n return baseUniq(array, isSorted, callback);\n}\n\nmodule.exports = uniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Creates an array of values by running each element in the collection\n * through the callback. The callback is bound to `thisArg` and invoked with\n * three arguments; (value, index|key, collection).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias collect\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new array of the results of each `callback` execution.\n * @example\n *\n * _.map([1, 2, 3], function(num) { return num * 3; });\n * // => [3, 6, 9]\n *\n * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n * // => [3, 6, 9] (property order is not guaranteed across environments)\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // using \"_.pluck\" callback shorthand\n * _.map(characters, 'name');\n * // => ['barney', 'fred']\n */\nfunction map(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = createCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n var result = Array(length);\n while (++index < length) {\n result[index] = callback(collection[index], index, collection);\n }\n } else {\n result = [];\n forOwn(collection, function(value, key, collection) {\n result[++index] = callback(value, key, collection);\n });\n }\n return result;\n}\n\nmodule.exports = map;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Iterates over elements of a collection, executing the callback for each\n * element. The callback is bound to `thisArg` and invoked with three arguments;\n * (value, index|key, collection). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * Note: As with other \"Collections\" methods, objects with a `length` property\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n * may be used for object iteration.\n *\n * @static\n * @memberOf _\n * @alias each\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array|Object|string} Returns `collection`.\n * @example\n *\n * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n * // => logs each number and returns '1,2,3'\n *\n * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n * // => logs each number and returns the object (property order is not guaranteed across environments)\n */\nfunction forEach(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n while (++index < length) {\n if (callback(collection[index], index, collection) === false) {\n break;\n }\n }\n } else {\n forOwn(collection, callback);\n }\n return collection;\n}\n\nmodule.exports = forEach;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keys = require('../objects/keys');\n\n/**\n * Gets the size of the `collection` by returning `collection.length` for arrays\n * and array-like objects or the number of own enumerable properties for objects.\n *\n * @static\n * @memberOf _\n * @category Collections\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns `collection.length` or number of own enumerable properties.\n * @example\n *\n * _.size([1, 2]);\n * // => 2\n *\n * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n * // => 3\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n var length = collection ? collection.length : 0;\n return typeof length == 'number' ? length : keys(collection).length;\n}\n\nmodule.exports = size;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Reduces a collection to a value which is the accumulated result of running\n * each element in the collection through the callback, where each successive\n * callback execution consumes the return value of the previous execution. If\n * `accumulator` is not provided the first element of the collection will be\n * used as the initial `accumulator` value. The callback is bound to `thisArg`\n * and invoked with four arguments; (accumulator, value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @alias foldl, inject\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [accumulator] Initial value of the accumulator.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * var sum = _.reduce([1, 2, 3], function(sum, num) {\n * return sum + num;\n * });\n * // => 6\n *\n * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n * result[key] = num * 3;\n * return result;\n * }, {});\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n */\nfunction reduce(collection, callback, accumulator, thisArg) {\n if (!collection) return accumulator;\n var noaccum = arguments.length < 3;\n callback = createCallback(callback, thisArg, 4);\n\n var index = -1,\n length = collection.length;\n\n if (typeof length == 'number') {\n if (noaccum) {\n accumulator = collection[++index];\n }\n while (++index < length) {\n accumulator = callback(accumulator, collection[index], index, collection);\n }\n } else {\n forOwn(collection, function(value, index, collection) {\n accumulator = noaccum\n ? (noaccum = false, value)\n : callback(accumulator, value, index, collection)\n });\n }\n return accumulator;\n}\n\nmodule.exports = reduce;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('../internals/objectTypes');\n\n/**\n * Checks if `value` is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // check if the value is the ECMAScript language type of Object\n // http://es5.github.io/#x8\n // and avoid a V8 bug\n // http://code.google.com/p/v8/issues/detail?id=2291\n return !!(value && objectTypes[typeof value]);\n}\n\nmodule.exports = isObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n * @example\n *\n * (function() { return _.isArguments(arguments); })(1, 2, 3);\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == argsClass || false;\n}\n\nmodule.exports = isArguments;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative');\n\n/** `Object#toString` result shortcuts */\nvar arrayClass = '[object Array]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\n/**\n * Checks if `value` is an array.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n * @example\n *\n * (function() { return _.isArray(arguments); })();\n * // => false\n *\n * _.isArray([1, 2, 3]);\n * // => true\n */\nvar isArray = nativeIsArray || function(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == arrayClass || false;\n};\n\nmodule.exports = isArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n baseIsEqual = require('../internals/baseIsEqual'),\n isObject = require('../objects/isObject'),\n keys = require('../objects/keys'),\n property = require('../utilities/property');\n\n/**\n * Produces a callback bound to an optional `thisArg`. If `func` is a property\n * name the created callback will return the property value for a given element.\n * If `func` is an object the created callback will return `true` for elements\n * that contain the equivalent object properties, otherwise it will return `false`.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // wrap to create custom callback shorthands\n * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n * return !match ? func(callback, thisArg) : function(object) {\n * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n * };\n * });\n *\n * _.filter(characters, 'age__gt38');\n * // => [{ 'name': 'fred', 'age': 40 }]\n */\nfunction createCallback(func, thisArg, argCount) {\n var type = typeof func;\n if (func == null || type == 'function') {\n return baseCreateCallback(func, thisArg, argCount);\n }\n // handle \"_.pluck\" style callback shorthands\n if (type != 'object') {\n return property(func);\n }\n var props = keys(func),\n key = props[0],\n a = func[key];\n\n // handle \"_.where\" style callback shorthands\n if (props.length == 1 && a === a && !isObject(a)) {\n // fast path the common case of providing an object with a single\n // property containing a primitive value\n return function(object) {\n var b = object[key];\n return a === b && (a !== 0 || (1 / a == 1 / b));\n };\n }\n return function(object) {\n var length = props.length,\n result = false;\n\n while (length--) {\n if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n break;\n }\n }\n return result;\n };\n}\n\nmodule.exports = createCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar assign = require('../objects/assign'),\n forEach = require('../collections/forEach'),\n forOwn = require('../objects/forOwn'),\n getArray = require('./getArray'),\n isArray = require('../objects/isArray'),\n isObject = require('../objects/isObject'),\n releaseArray = require('./releaseArray'),\n slice = require('./slice');\n\n/** Used to match regexp flags from their coerced string values */\nvar reFlags = /\\w*$/;\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n funcClass = '[object Function]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used to identify object classifications that `_.clone` supports */\nvar cloneableClasses = {};\ncloneableClasses[funcClass] = false;\ncloneableClasses[argsClass] = cloneableClasses[arrayClass] =\ncloneableClasses[boolClass] = cloneableClasses[dateClass] =\ncloneableClasses[numberClass] = cloneableClasses[objectClass] =\ncloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to lookup a built-in constructor by [[Class]] */\nvar ctorByClass = {};\nctorByClass[arrayClass] = Array;\nctorByClass[boolClass] = Boolean;\nctorByClass[dateClass] = Date;\nctorByClass[funcClass] = Function;\nctorByClass[objectClass] = Object;\nctorByClass[numberClass] = Number;\nctorByClass[regexpClass] = RegExp;\nctorByClass[stringClass] = String;\n\n/**\n * The base implementation of `_.clone` without argument juggling or support\n * for `thisArg` binding.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, callback, stackA, stackB) {\n if (callback) {\n var result = callback(value);\n if (typeof result != 'undefined') {\n return result;\n }\n }\n // inspect [[Class]]\n var isObj = isObject(value);\n if (isObj) {\n var className = toString.call(value);\n if (!cloneableClasses[className]) {\n return value;\n }\n var ctor = ctorByClass[className];\n switch (className) {\n case boolClass:\n case dateClass:\n return new ctor(+value);\n\n case numberClass:\n case stringClass:\n return new ctor(value);\n\n case regexpClass:\n result = ctor(value.source, reFlags.exec(value));\n result.lastIndex = value.lastIndex;\n return result;\n }\n } else {\n return value;\n }\n var isArr = isArray(value);\n if (isDeep) {\n // check for circular references and return corresponding clone\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == value) {\n return stackB[length];\n }\n }\n result = isArr ? ctor(value.length) : {};\n }\n else {\n result = isArr ? slice(value) : assign({}, value);\n }\n // add array properties assigned by `RegExp#exec`\n if (isArr) {\n if (hasOwnProperty.call(value, 'index')) {\n result.index = value.index;\n }\n if (hasOwnProperty.call(value, 'input')) {\n result.input = value.input;\n }\n }\n // exit for shallow clone\n if (!isDeep) {\n return result;\n }\n // add the source value to the stack of traversed objects\n // and associate it with its clone\n stackA.push(value);\n stackB.push(result);\n\n // recursively populate clone (susceptible to call stack limits)\n (isArr ? forEach : forOwn)(value, function(objValue, key) {\n result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n });\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bind = require('../functions/bind'),\n identity = require('../utilities/identity'),\n setBindData = require('./setBindData'),\n support = require('../support');\n\n/** Used to detected named functions */\nvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/** Native method shortcuts */\nvar fnToString = Function.prototype.toString;\n\n/**\n * The base implementation of `_.createCallback` without support for creating\n * \"_.pluck\" or \"_.where\" style callbacks.\n *\n * @private\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n */\nfunction baseCreateCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n // exit early for no `thisArg` or already bound by `Function#bind`\n if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n return func;\n }\n var bindData = func.__bindData__;\n if (typeof bindData == 'undefined') {\n if (support.funcNames) {\n bindData = !func.name;\n }\n bindData = bindData || !support.funcDecomp;\n if (!bindData) {\n var source = fnToString.call(func);\n if (!support.funcNames) {\n bindData = !reFuncName.test(source);\n }\n if (!bindData) {\n // checks if `func` references the `this` keyword and stores the result\n bindData = reThis.test(source);\n setBindData(func, bindData);\n }\n }\n }\n // exit early if there are no `this` references or `func` is bound\n if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 2: return function(a, b) {\n return func.call(thisArg, a, b);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n }\n return bind(func, thisArg);\n}\n\nmodule.exports = baseCreateCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to determine if values are of the language type Object */\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\n\nmodule.exports = objectTypes;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Used to detect if a method is native */\nvar reNative = RegExp('^' +\n String(toString)\n .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n */\nfunction isNative(value) {\n return typeof value == 'function' && reNative.test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('./objectTypes');\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which produces an array of the\n * given object's own enumerable property names.\n *\n * @private\n * @type Function\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n */\nvar shimKeys = function(object) {\n var index, iterable = object, result = [];\n if (!iterable) return result;\n if (!(objectTypes[typeof object])) return result;\n for (index in iterable) {\n if (hasOwnProperty.call(iterable, index)) {\n result.push(index);\n }\n }\n return result\n};\n\nmodule.exports = shimKeys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * The base implementation of `_.indexOf` without support for binary searches\n * or `fromIndex` constraints.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value or `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n var index = (fromIndex || 0) - 1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n keyPrefix = require('./keyPrefix');\n\n/**\n * An implementation of `_.contains` for cache objects that mimics the return\n * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n *\n * @private\n * @param {Object} cache The cache object to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns `0` if `value` is found, else `-1`.\n */\nfunction cacheIndexOf(cache, value) {\n var type = typeof value;\n cache = cache.cache;\n\n if (type == 'boolean' || value == null) {\n return cache[value] ? 0 : -1;\n }\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value;\n cache = (cache = cache[type]) && cache[key];\n\n return type == 'object'\n ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n : (cache ? 0 : -1);\n}\n\nmodule.exports = cacheIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar cachePush = require('./cachePush'),\n getObject = require('./getObject'),\n releaseObject = require('./releaseObject');\n\n/**\n * Creates a cache object to optimize linear searches of large arrays.\n *\n * @private\n * @param {Array} [array=[]] The array to search.\n * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n */\nfunction createCache(array) {\n var index = -1,\n length = array.length,\n first = array[0],\n mid = array[(length / 2) | 0],\n last = array[length - 1];\n\n if (first && typeof first == 'object' &&\n mid && typeof mid == 'object' && last && typeof last == 'object') {\n return false;\n }\n var cache = getObject();\n cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\n var result = getObject();\n result.array = array;\n result.cache = cache;\n result.push = cachePush;\n\n while (++index < length) {\n result.push(array[index]);\n }\n return result;\n}\n\nmodule.exports = createCache;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool');\n\n/**\n * Gets an array from the array pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Array} The array from the pool.\n */\nfunction getArray() {\n return arrayPool.pop() || [];\n}\n\nmodule.exports = getArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the size when optimizations are enabled for large arrays */\nvar largeArraySize = 75;\n\nmodule.exports = largeArraySize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool'),\n maxPoolSize = require('./maxPoolSize');\n\n/**\n * Releases the given array back to the array pool.\n *\n * @private\n * @param {Array} [array] The array to release.\n */\nfunction releaseArray(array) {\n array.length = 0;\n if (arrayPool.length < maxPoolSize) {\n arrayPool.push(array);\n }\n}\n\nmodule.exports = releaseArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar maxPoolSize = require('./maxPoolSize'),\n objectPool = require('./objectPool');\n\n/**\n * Releases the given object back to the object pool.\n *\n * @private\n * @param {Object} [object] The object to release.\n */\nfunction releaseObject(object) {\n var cache = object.cache;\n if (cache) {\n releaseObject(cache);\n }\n object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n if (objectPool.length < maxPoolSize) {\n objectPool.push(object);\n }\n}\n\nmodule.exports = releaseObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n cacheIndexOf = require('./cacheIndexOf'),\n createCache = require('./createCache'),\n getArray = require('./getArray'),\n largeArraySize = require('./largeArraySize'),\n releaseArray = require('./releaseArray'),\n releaseObject = require('./releaseObject');\n\n/**\n * The base implementation of `_.uniq` without support for callback shorthands\n * or `thisArg` binding.\n *\n * @private\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function} [callback] The function called per iteration.\n * @returns {Array} Returns a duplicate-value-free array.\n */\nfunction baseUniq(array, isSorted, callback) {\n var index = -1,\n indexOf = baseIndexOf,\n length = array ? array.length : 0,\n result = [];\n\n var isLarge = !isSorted && length >= largeArraySize,\n seen = (callback || isLarge) ? getArray() : result;\n\n if (isLarge) {\n var cache = createCache(seen);\n indexOf = cacheIndexOf;\n seen = cache;\n }\n while (++index < length) {\n var value = array[index],\n computed = callback ? callback(value, index, array) : value;\n\n if (isSorted\n ? !index || seen[seen.length - 1] !== computed\n : indexOf(seen, computed) < 0\n ) {\n if (callback || isLarge) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n if (isLarge) {\n releaseArray(seen.array);\n releaseObject(seen);\n } else if (callback) {\n releaseArray(seen);\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar forIn = require('../objects/forIn'),\n getArray = require('./getArray'),\n isFunction = require('../objects/isFunction'),\n objectTypes = require('./objectTypes'),\n releaseArray = require('./releaseArray');\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n * that allows partial \"_.where\" style comparisons.\n *\n * @private\n * @param {*} a The value to compare.\n * @param {*} b The other value to compare.\n * @param {Function} [callback] The function to customize comparing values.\n * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n // used to indicate that when comparing objects, `a` has at least the properties of `b`\n if (callback) {\n var result = callback(a, b);\n if (typeof result != 'undefined') {\n return !!result;\n }\n }\n // exit early for identical values\n if (a === b) {\n // treat `+0` vs. `-0` as not equal\n return a !== 0 || (1 / a == 1 / b);\n }\n var type = typeof a,\n otherType = typeof b;\n\n // exit early for unlike primitive values\n if (a === a &&\n !(a && objectTypes[type]) &&\n !(b && objectTypes[otherType])) {\n return false;\n }\n // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n // http://es5.github.io/#x15.3.4.4\n if (a == null || b == null) {\n return a === b;\n }\n // compare [[Class]] names\n var className = toString.call(a),\n otherClass = toString.call(b);\n\n if (className == argsClass) {\n className = objectClass;\n }\n if (otherClass == argsClass) {\n otherClass = objectClass;\n }\n if (className != otherClass) {\n return false;\n }\n switch (className) {\n case boolClass:\n case dateClass:\n // coerce dates and booleans to numbers, dates to milliseconds and booleans\n // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n return +a == +b;\n\n case numberClass:\n // treat `NaN` vs. `NaN` as equal\n return (a != +a)\n ? b != +b\n // but treat `+0` vs. `-0` as not equal\n : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\n case regexpClass:\n case stringClass:\n // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n // treat string primitives and their corresponding object instances as equal\n return a == String(b);\n }\n var isArr = className == arrayClass;\n if (!isArr) {\n // unwrap any `lodash` wrapped values\n var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\n if (aWrapped || bWrapped) {\n return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n }\n // exit for functions and DOM nodes\n if (className != objectClass) {\n return false;\n }\n // in older versions of Opera, `arguments` objects have `Array` constructors\n var ctorA = a.constructor,\n ctorB = b.constructor;\n\n // non `Object` object instances with different constructors are not equal\n if (ctorA != ctorB &&\n !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n ('constructor' in a && 'constructor' in b)\n ) {\n return false;\n }\n }\n // assume cyclic structures are equal\n // the algorithm for detecting cyclic structures is adapted from ES 5.1\n // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == a) {\n return stackB[length] == b;\n }\n }\n var size = 0;\n result = true;\n\n // add `a` and `b` to the stack of traversed objects\n stackA.push(a);\n stackB.push(b);\n\n // recursively compare objects and arrays (susceptible to call stack limits)\n if (isArr) {\n // compare lengths to determine if a deep comparison is necessary\n length = a.length;\n size = b.length;\n result = size == length;\n\n if (result || isWhere) {\n // deep compare the contents, ignoring non-numeric properties\n while (size--) {\n var index = length,\n value = b[size];\n\n if (isWhere) {\n while (index--) {\n if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n }\n }\n else {\n // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n // which, in this case, is more costly\n forIn(b, function(value, key, b) {\n if (hasOwnProperty.call(b, key)) {\n // count the number of properties.\n size++;\n // deep compare each property value.\n return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n }\n });\n\n if (result && !isWhere) {\n // ensure both objects have the same number of properties\n forIn(a, function(value, key, a) {\n if (hasOwnProperty.call(a, key)) {\n // `size` will be `-1` if `a` has more properties than `b`\n return (result = --size > -1);\n }\n });\n }\n }\n stackA.pop();\n stackB.pop();\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseIsEqual;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources will overwrite property assignments of previous\n * sources. If a callback is provided it will be executed to produce the\n * assigned values. The callback is bound to `thisArg` and invoked with two\n * arguments; (objectValue, sourceValue).\n *\n * @static\n * @memberOf _\n * @type Function\n * @alias extend\n * @category Objects\n * @param {Object} object The destination object.\n * @param {...Object} [source] The source objects.\n * @param {Function} [callback] The function to customize assigning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns the destination object.\n * @example\n *\n * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n * // => { 'name': 'fred', 'employer': 'slate' }\n *\n * var defaults = _.partialRight(_.assign, function(a, b) {\n * return typeof a == 'undefined' ? b : a;\n * });\n *\n * var object = { 'name': 'barney' };\n * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n * // => { 'name': 'barney', 'employer': 'slate' }\n */\nvar assign = function(object, source, guard) {\n var index, iterable = object, result = iterable;\n if (!iterable) return result;\n var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\n if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n }\n while (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n }\n }\n }\n return result\n};\n\nmodule.exports = assign;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Slices the `collection` from the `start` index up to, but not including,\n * the `end` index.\n *\n * Note: This function is used instead of `Array#slice` to support node lists\n * in IE < 9 and to ensure dense arrays are returned.\n *\n * @private\n * @param {Array|Object|string} collection The collection to slice.\n * @param {number} start The start index.\n * @param {number} end The end index.\n * @returns {Array} Returns the new array.\n */\nfunction slice(array, start, end) {\n start || (start = 0);\n if (typeof end == 'undefined') {\n end = array ? array.length : 0;\n }\n var index = -1,\n length = end - start || 0,\n result = Array(length < 0 ? 0 : length);\n\n while (++index < length) {\n result[index] = array[start + index];\n }\n return result;\n}\n\nmodule.exports = slice;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createWrapper = require('../internals/createWrapper'),\n slice = require('../internals/slice');\n\n/**\n * Creates a function that, when called, invokes `func` with the `this`\n * binding of `thisArg` and prepends any additional `bind` arguments to those\n * provided to the bound function.\n *\n * @static\n * @memberOf _\n * @category Functions\n * @param {Function} func The function to bind.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {...*} [arg] Arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var func = function(greeting) {\n * return greeting + ' ' + this.name;\n * };\n *\n * func = _.bind(func, { 'name': 'fred' }, 'hi');\n * func();\n * // => 'hi fred'\n */\nfunction bind(func, thisArg) {\n return arguments.length > 2\n ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n : createWrapper(func, 1, null, null, thisArg);\n}\n\nmodule.exports = bind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n noop = require('../utilities/noop');\n\n/** Used as the property descriptor for `__bindData__` */\nvar descriptor = {\n 'configurable': false,\n 'enumerable': false,\n 'value': null,\n 'writable': false\n};\n\n/** Used to set meta data on functions */\nvar defineProperty = (function() {\n // IE 8 only accepts DOM elements\n try {\n var o = {},\n func = isNative(func = Object.defineProperty) && func,\n result = func(o, o, o) && func;\n } catch(e) { }\n return result;\n}());\n\n/**\n * Sets `this` binding data on a given function.\n *\n * @private\n * @param {Function} func The function to set data on.\n * @param {Array} value The data array to set.\n */\nvar setBindData = !defineProperty ? noop : function(func, value) {\n descriptor.value = value;\n defineProperty(func, '__bindData__', descriptor);\n};\n\nmodule.exports = setBindData;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./internals/isNative');\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/**\n * An object used to flag environments features.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n/**\n * Detect if functions can be decompiled by `Function#toString`\n * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\n/**\n * Detect if `Function#name` is supported (all but IE).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcNames = typeof Function.name == 'string';\n\nmodule.exports = support;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\nvar keyPrefix = +new Date + '';\n\nmodule.exports = keyPrefix;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keyPrefix = require('./keyPrefix');\n\n/**\n * Adds a given value to the corresponding cache object.\n *\n * @private\n * @param {*} value The value to add to the cache.\n */\nfunction cachePush(value) {\n var cache = this.cache,\n type = typeof value;\n\n if (type == 'boolean' || value == null) {\n cache[value] = true;\n } else {\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value,\n typeCache = cache[type] || (cache[type] = {});\n\n if (type == 'object') {\n (typeCache[key] || (typeCache[key] = [])).push(value);\n } else {\n typeCache[key] = true;\n }\n }\n}\n\nmodule.exports = cachePush;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectPool = require('./objectPool');\n\n/**\n * Gets an object from the object pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Object} The object from the pool.\n */\nfunction getObject() {\n return objectPool.pop() || {\n 'array': null,\n 'cache': null,\n 'criteria': null,\n 'false': false,\n 'index': 0,\n 'null': false,\n 'number': null,\n 'object': null,\n 'push': null,\n 'string': null,\n 'true': false,\n 'undefined': false,\n 'value': null\n };\n}\n\nmodule.exports = getObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar arrayPool = [];\n\nmodule.exports = arrayPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the max size of the `arrayPool` and `objectPool` */\nvar maxPoolSize = 40;\n\nmodule.exports = maxPoolSize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar objectPool = [];\n\nmodule.exports = objectPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Creates a \"_.pluck\" style function, which returns the `key` value of a\n * given object.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {string} key The name of the property to retrieve.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var characters = [\n * { 'name': 'fred', 'age': 40 },\n * { 'name': 'barney', 'age': 36 }\n * ];\n *\n * var getName = _.property('name');\n *\n * _.map(characters, getName);\n * // => ['barney', 'fred']\n *\n * _.sortBy(characters, getName);\n * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n */\nfunction property(key) {\n return function(object) {\n return object[key];\n };\n}\n\nmodule.exports = property;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own and inherited enumerable properties of an object,\n * executing the callback for each property. The callback is bound to `thisArg`\n * and invoked with three arguments; (value, key, object). Callbacks may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * Shape.prototype.move = function(x, y) {\n * this.x += x;\n * this.y += y;\n * };\n *\n * _.forIn(new Shape, function(value, key) {\n * console.log(key);\n * });\n * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n */\nvar forIn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n for (index in iterable) {\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forIn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseBind = require('./baseBind'),\n baseCreateWrapper = require('./baseCreateWrapper'),\n isFunction = require('../objects/isFunction'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push,\n unshift = arrayRef.unshift;\n\n/**\n * Creates a function that, when called, either curries or invokes `func`\n * with an optional `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to reference.\n * @param {number} bitmask The bitmask of method flags to compose.\n * The bitmask may be composed of the following flags:\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry`\n * 8 - `_.curry` (bound)\n * 16 - `_.partial`\n * 32 - `_.partialRight`\n * @param {Array} [partialArgs] An array of arguments to prepend to those\n * provided to the new function.\n * @param {Array} [partialRightArgs] An array of arguments to append to those\n * provided to the new function.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new function.\n */\nfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n isPartial = bitmask & 16,\n isPartialRight = bitmask & 32;\n\n if (!isBindKey && !isFunction(func)) {\n throw new TypeError;\n }\n if (isPartial && !partialArgs.length) {\n bitmask &= ~16;\n isPartial = partialArgs = false;\n }\n if (isPartialRight && !partialRightArgs.length) {\n bitmask &= ~32;\n isPartialRight = partialRightArgs = false;\n }\n var bindData = func && func.__bindData__;\n if (bindData && bindData !== true) {\n // clone `bindData`\n bindData = slice(bindData);\n if (bindData[2]) {\n bindData[2] = slice(bindData[2]);\n }\n if (bindData[3]) {\n bindData[3] = slice(bindData[3]);\n }\n // set `thisBinding` is not previously bound\n if (isBind && !(bindData[1] & 1)) {\n bindData[4] = thisArg;\n }\n // set if previously bound but not currently (subsequent curried functions)\n if (!isBind && bindData[1] & 1) {\n bitmask |= 8;\n }\n // set curried arity if not yet set\n if (isCurry && !(bindData[1] & 4)) {\n bindData[5] = arity;\n }\n // append partial left arguments\n if (isPartial) {\n push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n }\n // append partial right arguments\n if (isPartialRight) {\n unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n }\n // merge flags\n bindData[1] |= bitmask;\n return createWrapper.apply(null, bindData);\n }\n // fast path for `_.bind`\n var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n}\n\nmodule.exports = createWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A no-operation function.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.noop(object) === undefined;\n * // => true\n */\nfunction noop() {\n // no operation performed\n}\n\nmodule.exports = noop;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `_.bind` that creates the bound function and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new bound function.\n */\nfunction baseBind(bindData) {\n var func = bindData[0],\n partialArgs = bindData[2],\n thisArg = bindData[4];\n\n function bound() {\n // `Function#bind` spec\n // http://es5.github.io/#x15.3.4.5\n if (partialArgs) {\n // avoid `arguments` object deoptimizations by using `slice` instead\n // of `Array.prototype.slice.call` and not assigning `arguments` to a\n // variable as a ternary expression\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n // mimic the constructor's `return` behavior\n // http://es5.github.io/#x13.2.2\n if (this instanceof bound) {\n // ensure `new bound` is an instance of `func`\n var thisBinding = baseCreate(func.prototype),\n result = func.apply(thisBinding, args || arguments);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisArg, args || arguments);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseBind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `createWrapper` that creates the wrapper and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new function.\n */\nfunction baseCreateWrapper(bindData) {\n var func = bindData[0],\n bitmask = bindData[1],\n partialArgs = bindData[2],\n partialRightArgs = bindData[3],\n thisArg = bindData[4],\n arity = bindData[5];\n\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n key = func;\n\n function bound() {\n var thisBinding = isBind ? thisArg : this;\n if (partialArgs) {\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n if (partialRightArgs || isCurry) {\n args || (args = slice(arguments));\n if (partialRightArgs) {\n push.apply(args, partialRightArgs);\n }\n if (isCurry && args.length < arity) {\n bitmask |= 16 & ~32;\n return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n }\n }\n args || (args = arguments);\n if (isBindKey) {\n func = thisBinding[key];\n }\n if (this instanceof bound) {\n thisBinding = baseCreate(func.prototype);\n var result = func.apply(thisBinding, args);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisBinding, args);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseCreateWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n isObject = require('../objects/isObject'),\n noop = require('../utilities/noop');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(prototype, properties) {\n return isObject(prototype) ? nativeCreate(prototype) : {};\n}\n// fallback for browsers without `Object.create`\nif (!nativeCreate) {\n baseCreate = (function() {\n function Object() {}\n return function(prototype) {\n if (isObject(prototype)) {\n Object.prototype = prototype;\n var result = new Object;\n Object.prototype = null;\n }\n return result || global.Object();\n };\n }());\n}\n\nmodule.exports = baseCreate;\n"],"sourceRoot":"webpack-module://"} \ No newline at end of file +{"version":3,"sources":["webpack/universalModuleDefinition","webpack/bootstrap e1f326160725293f6fa4","./index.js","./version.js","./lib/dispatcher.js","./lib/flux.js","./lib/flux_mixin.js","./lib/flux_child_mixin.js","./lib/store_watch_mixin.js","./lib/create_store.js","./lib/store.js","./~/eventemitter3/index.js","./~/object-path/index.js","./~/inherits/inherits_browser.js","./~/lodash-node/modern/objects/clone.js","./~/lodash-node/modern/objects/mapValues.js","./~/lodash-node/modern/objects/forOwn.js","./~/lodash-node/modern/objects/keys.js","./~/lodash-node/modern/objects/findKey.js","./~/lodash-node/modern/objects/isFunction.js","./~/lodash-node/modern/objects/isString.js","./~/lodash-node/modern/arrays/intersection.js","./~/lodash-node/modern/arrays/uniq.js","./~/lodash-node/modern/collections/map.js","./~/lodash-node/modern/collections/forEach.js","./~/lodash-node/modern/collections/size.js","./~/lodash-node/modern/collections/reduce.js","./~/lodash-node/modern/objects/isObject.js","./~/lodash-node/modern/objects/isArguments.js","./~/lodash-node/modern/objects/isArray.js","./~/lodash-node/modern/internals/baseClone.js","./~/lodash-node/modern/internals/baseCreateCallback.js","./~/lodash-node/modern/internals/objectTypes.js","./~/lodash-node/modern/internals/isNative.js","./~/lodash-node/modern/internals/shimKeys.js","./~/lodash-node/modern/internals/baseIndexOf.js","./~/lodash-node/modern/internals/cacheIndexOf.js","./~/lodash-node/modern/internals/createCache.js","./~/lodash-node/modern/internals/getArray.js","./~/lodash-node/modern/internals/largeArraySize.js","./~/lodash-node/modern/internals/releaseArray.js","./~/lodash-node/modern/internals/releaseObject.js","./~/lodash-node/modern/internals/baseUniq.js","./~/lodash-node/modern/functions/createCallback.js","./~/lodash-node/modern/objects/assign.js","./~/lodash-node/modern/internals/slice.js","./~/lodash-node/modern/functions/bind.js","./~/lodash-node/modern/internals/setBindData.js","./~/lodash-node/modern/support.js","./~/lodash-node/modern/internals/keyPrefix.js","./~/lodash-node/modern/internals/cachePush.js","./~/lodash-node/modern/internals/getObject.js","./~/lodash-node/modern/internals/arrayPool.js","./~/lodash-node/modern/internals/maxPoolSize.js","./~/lodash-node/modern/internals/objectPool.js","./~/lodash-node/modern/internals/baseIsEqual.js","./~/lodash-node/modern/utilities/identity.js","./~/lodash-node/modern/utilities/property.js","./~/lodash-node/modern/internals/createWrapper.js","./~/lodash-node/modern/utilities/noop.js","./~/lodash-node/modern/objects/forIn.js","./~/lodash-node/modern/internals/baseBind.js","./~/lodash-node/modern/internals/baseCreateWrapper.js","./~/lodash-node/modern/internals/baseCreate.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;ACTA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA,wC;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjBA,yB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,aAAY;AACZ,IAAG;;AAEH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;;;;;;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,8BAA6B,6BAA6B;AAC1D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,oBAAmB,oBAAoB;AACvC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACrEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;;AAEzB;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;;AAEA,2DAA0D,OAAO;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAyC,SAAS;AAClD;AACA;;AAEA;AACA,IAAG;AACH,gBAAe,YAAY;AAC3B;;AAEA;AACA,4DAA2D;AAC3D,gEAA+D;AAC/D,oEAAmE;AACnE;AACA,2DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qDAAoD,YAAY;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC3MA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,EAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wCAAuC,SAAS;AAChD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAC,E;;;;;;AChPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAoE;AACpE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA,iBAAgB,wBAAwB,kBAAkB,gBAAgB,EAAE;AAC5E,WAAU;AACV;AACA;AACA,eAAc,4BAA4B;AAC1C,kBAAiB;AACjB;AACA;AACA;AACA;AACA,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,uCAAuC;AACpD;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,YAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,iBAAiB;AAC9B;AACA;AACA;AACA,iBAAgB,+BAA+B;AAC/C,eAAc,gCAAgC;AAC9C,kBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA,2BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA4D,6BAA6B,EAAE;AAC3F;AACA;AACA,oDAAmD,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS,GAAG,SAAS;AAC7C,YAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,uBAAuB;AAClC;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA,oCAAmC,gBAAgB,EAAE;AACrD;AACA;AACA,WAAU,iCAAiC,iBAAiB,gBAAgB,EAAE;AAC9E;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA,wCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA,eAAc,iCAAiC,iBAAiB,kBAAkB,EAAE;AACpF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,YAAW,iCAAiC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,2BAA0B,yBAAyB;AACnD;AACA;AACA,KAAI,IAAI;AACR,WAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB,iCAAiC,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB,6BAA6B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,YAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA,cAAa,iBAAiB,GAAG,sBAAsB;AACvD,WAAU;AACV;AACA;AACA;AACA,KAAI;AACJ;AACA,kBAAiB;AACjB,sBAAqB,sCAAsC;AAC3D,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,KAAK;AAChB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA,IAAG,WAAW;AACd;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA6E,aAAa,EAAE;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,qDAAoD;;AAEpD;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,8BAA8B;AACpC,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,8BAA8B,GAAG,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA,YAAW,MAAM;AACjB;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn ","\n// The module cache\nvar installedModules = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(installedModules[moduleId])\n\t\treturn installedModules[moduleId].exports;\n\t\n\t// Create a new module (and put it into the cache)\n\tvar module = installedModules[moduleId] = {\n\t\texports: {},\n\t\tid: moduleId,\n\t\tloaded: false\n\t};\n\t\n\t// Execute the module function\n\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\t\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = modules;\n\n// expose the module cache\n__webpack_require__.c = installedModules;\n\n// __webpack_public_path__\n__webpack_require__.p = \"\";\n\n\n// Load entry module and return exports\nreturn __webpack_require__(0);","var Dispatcher = require(\"./lib/dispatcher\"),\n Flux = require(\"./lib/flux\"),\n FluxMixin = require(\"./lib/flux_mixin\"),\n FluxChildMixin = require(\"./lib/flux_child_mixin\"),\n StoreWatchMixin = require(\"./lib/store_watch_mixin\"),\n createStore = require(\"./lib/create_store\");\n\nvar Fluxxor = {\n Dispatcher: Dispatcher,\n Flux: Flux,\n FluxMixin: FluxMixin,\n FluxChildMixin: FluxChildMixin,\n StoreWatchMixin: StoreWatchMixin,\n createStore: createStore,\n version: require(\"./version\")\n};\n\nmodule.exports = Fluxxor;\n","module.exports = \"1.5.1\"","var _clone = require(\"lodash-node/modern/objects/clone\"),\n _mapValues = require(\"lodash-node/modern/objects/mapValues\"),\n _forOwn = require(\"lodash-node/modern/objects/forOwn\"),\n _intersection = require(\"lodash-node/modern/arrays/intersection\"),\n _keys = require(\"lodash-node/modern/objects/keys\"),\n _map = require(\"lodash-node/modern/collections/map\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _size = require(\"lodash-node/modern/collections/size\"),\n _findKey = require(\"lodash-node/modern/objects/findKey\"),\n _uniq = require(\"lodash-node/modern/arrays/uniq\");\n\nvar Dispatcher = function(stores) {\n this.stores = {};\n this.currentDispatch = null;\n this.currentActionType = null;\n this.waitingToDispatch = [];\n\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nDispatcher.prototype.addStore = function(name, store) {\n store.dispatcher = this;\n this.stores[name] = store;\n};\n\nDispatcher.prototype.dispatch = function(action) {\n if (!action || !action.type) {\n throw new Error(\"Can only dispatch actions with a 'type' property\");\n }\n\n if (this.currentDispatch) {\n var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n this.currentActionType + \"') is being dispatched\";\n throw new Error(complaint);\n }\n\n this.waitingToDispatch = _clone(this.stores);\n\n this.currentActionType = action.type;\n this.currentDispatch = _mapValues(this.stores, function() {\n return { resolved: false, waitingOn: [], waitCallback: null };\n });\n\n try {\n this.doDispatchLoop(action);\n } finally {\n this.currentActionType = null;\n this.currentDispatch = null;\n }\n};\n\nDispatcher.prototype.doDispatchLoop = function(action) {\n var dispatch, canBeDispatchedTo, wasHandled = false,\n removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\n _forOwn(this.waitingToDispatch, function(value, key) {\n dispatch = this.currentDispatch[key];\n canBeDispatchedTo = !dispatch.waitingOn.length ||\n !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n if (canBeDispatchedTo) {\n if (dispatch.waitCallback) {\n var stores = _map(dispatch.waitingOn, function(key) {\n return this.stores[key];\n }, this);\n var fn = dispatch.waitCallback;\n dispatch.waitCallback = null;\n dispatch.waitingOn = [];\n dispatch.resolved = true;\n fn.apply(null, stores);\n wasHandled = true;\n } else {\n dispatch.resolved = true;\n var handled = this.stores[key].__handleAction__(action);\n if (handled) {\n wasHandled = true;\n }\n }\n\n dispatchedThisLoop.push(key);\n\n if (this.currentDispatch[key].resolved) {\n removeFromDispatchQueue.push(key);\n }\n }\n }, this);\n\n if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n }\n\n _each(removeFromDispatchQueue, function(key) {\n delete this.waitingToDispatch[key];\n }, this);\n\n if (_size(this.waitingToDispatch)) {\n this.doDispatchLoop(action);\n }\n\n if (!wasHandled && console && console.warn) {\n console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n }\n\n};\n\nDispatcher.prototype.waitForStores = function(store, stores, fn) {\n if (!this.currentDispatch) {\n throw new Error(\"Cannot wait unless an action is being dispatched\");\n }\n\n var waitingStoreName = _findKey(this.stores, function(val) {\n return val === store;\n });\n\n if (stores.indexOf(waitingStoreName) > -1) {\n throw new Error(\"A store cannot wait on itself\");\n }\n\n var dispatch = this.currentDispatch[waitingStoreName];\n\n if (dispatch.waitingOn.length) {\n throw new Error(waitingStoreName + \" already waiting on stores\");\n }\n\n _each(stores, function(storeName) {\n var storeDispatch = this.currentDispatch[storeName];\n if (!this.stores[storeName]) {\n throw new Error(\"Cannot wait for non-existent store \" + storeName);\n }\n if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n }\n }, this);\n\n dispatch.resolved = false;\n dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n dispatch.waitCallback = fn;\n};\n\nmodule.exports = Dispatcher;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n objectPath = require(\"object-path\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _reduce = require(\"lodash-node/modern/collections/reduce\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isString = require(\"lodash-node/modern/objects/isString\");\n\nvar Dispatcher = require(\"./dispatcher\");\n\nvar findLeaves = function(obj, path, callback) {\n path = path || [];\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (_isFunction(obj[key])) {\n callback(path.concat(key), obj[key]);\n } else {\n findLeaves(obj[key], path.concat(key), callback);\n }\n }\n }\n};\n\nvar Flux = function(stores, actions) {\n EventEmitter.call(this);\n this.dispatcher = new Dispatcher(stores);\n this.actions = {};\n this.stores = {};\n\n var dispatcher = this.dispatcher;\n var flux = this;\n this.dispatchBinder = {\n flux: flux,\n dispatch: function(type, payload) {\n try {\n flux.emit(\"dispatch\", type, payload);\n } finally {\n dispatcher.dispatch({type: type, payload: payload});\n }\n }\n };\n\n this.addActions(actions);\n this.addStores(stores);\n};\n\ninherits(Flux, EventEmitter);\n\nFlux.prototype.addActions = function(actions) {\n findLeaves(actions, [], this.addAction.bind(this));\n};\n\n// addAction has two signatures:\n// 1: string[, string, string, string...], actionFunction\n// 2: arrayOfStrings, actionFunction\nFlux.prototype.addAction = function() {\n if (arguments.length < 2) {\n throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n }\n\n var args = Array.prototype.slice.call(arguments);\n\n if (!_isFunction(args[args.length - 1])) {\n throw new Error(\"The last argument to addAction must be a function\");\n }\n\n var func = args.pop().bind(this.dispatchBinder);\n\n if (!_isString(args[0])) {\n args = args[0];\n }\n\n var leadingPaths = _reduce(args, function(acc, next) {\n if (acc) {\n var nextPath = acc[acc.length - 1].concat([next]);\n return acc.concat([nextPath]);\n } else {\n return [[next]];\n }\n }, null);\n\n // Detect trying to replace a function at any point in the path\n _each(leadingPaths, function(path) {\n if (_isFunction(objectPath.get(this.actions, path))) {\n throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n }\n }, this);\n\n // Detect trying to replace a namespace at the final point in the path\n if (objectPath.get(this.actions, args)) {\n throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n }\n\n objectPath.set(this.actions, args, func, true);\n};\n\nFlux.prototype.store = function(name) {\n return this.stores[name];\n};\n\nFlux.prototype.addStore = function(name, store) {\n if (name in this.stores) {\n throw new Error(\"A store named '\" + name + \"' already exists\");\n }\n store.flux = this;\n this.stores[name] = store;\n this.dispatcher.addStore(name, store);\n};\n\nFlux.prototype.addStores = function(stores) {\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nmodule.exports = Flux;\n","var FluxMixin = function(React) {\n return {\n componentWillMount: function() {\n if (!this.props.flux && (!this.context || !this.context.flux)) {\n var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n }\n },\n\n childContextTypes: {\n flux: React.PropTypes.object\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getChildContext: function() {\n return {\n flux: this.getFlux()\n };\n },\n\n getFlux: function() {\n return this.props.flux || (this.context && this.context.flux);\n }\n };\n};\n\nFluxMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n};\n\nmodule.exports = FluxMixin;\n","var FluxChildMixin = function(React) {\n return {\n componentWillMount: function() {\n if (console && console.warn) {\n var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n console.warn(message);\n }\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getFlux: function() {\n return this.context.flux;\n }\n };\n};\n\nFluxChildMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n};\n\nmodule.exports = FluxChildMixin;\n","var _each = require(\"lodash-node/modern/collections/forEach\");\n\nvar StoreWatchMixin = function() {\n var storeNames = Array.prototype.slice.call(arguments);\n return {\n componentDidMount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).on(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n componentWillUnmount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n _setStateFromFlux: function() {\n if(this.isMounted()) {\n this.setState(this.getStateFromFlux());\n }\n },\n\n getInitialState: function() {\n return this.getStateFromFlux();\n }\n };\n};\n\nStoreWatchMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n \"store names as parameters and returns the mixin, e.g.: \" +\n \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n};\n\nmodule.exports = StoreWatchMixin;\n","var _each = require(\"lodash-node/modern/collections/forEach\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n Store = require(\"./store\"),\n inherits = require(\"inherits\");\n\nvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\nvar createStore = function(spec) {\n _each(RESERVED_KEYS, function(key) {\n if (spec[key]) {\n throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n }\n });\n\n var constructor = function(options) {\n options = options || {};\n Store.call(this);\n\n for (var key in spec) {\n if (key === \"actions\") {\n this.bindActions(spec[key]);\n } else if (key === \"initialize\") {\n // do nothing\n } else if (_isFunction(spec[key])) {\n this[key] = spec[key].bind(this);\n } else {\n this[key] = spec[key];\n }\n }\n\n if (spec.initialize) {\n spec.initialize.call(this, options);\n }\n };\n\n inherits(constructor, Store);\n return constructor;\n};\n\nmodule.exports = createStore;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isObject = require(\"lodash-node/modern/objects/isObject\");\n\nfunction Store(dispatcher) {\n this.dispatcher = dispatcher;\n this.__actions__ = {};\n EventEmitter.call(this);\n}\n\ninherits(Store, EventEmitter);\n\nStore.prototype.__handleAction__ = function(action) {\n var handler;\n if (!!(handler = this.__actions__[action.type])) {\n if (_isFunction(handler)) {\n handler.call(this, action.payload, action.type);\n } else if (handler && _isFunction(this[handler])) {\n this[handler].call(this, action.payload, action.type);\n } else {\n throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n }\n return true;\n } else {\n return false;\n }\n};\n\nStore.prototype.bindActions = function() {\n var actions = Array.prototype.slice.call(arguments);\n\n if (actions.length > 1 && actions.length % 2 !== 0) {\n throw new Error(\"bindActions must take an even number of arguments.\");\n }\n\n var bindAction = function(type, handler) {\n if (!handler) {\n throw new Error(\"The handler for action type \" + type + \" is falsy\");\n }\n\n this.__actions__[type] = handler;\n }.bind(this);\n\n if (actions.length === 1 && _isObject(actions[0])) {\n actions = actions[0];\n for (var key in actions) {\n if (actions.hasOwnProperty(key)) {\n bindAction(key, actions[key]);\n }\n }\n } else {\n for (var i = 0; i < actions.length; i += 2) {\n var type = actions[i],\n handler = actions[i+1];\n\n if (!type) {\n throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n }\n\n bindAction(type, handler);\n }\n }\n};\n\nStore.prototype.waitFor = function(stores, fn) {\n this.dispatcher.waitForStores(this, stores, fn.bind(this));\n};\n\nmodule.exports = Store;\n","'use strict';\n\n/**\n * Representation of a single EventEmitter function.\n *\n * @param {Function} fn Event handler to be called.\n * @param {Mixed} context Context for function execution.\n * @param {Boolean} once Only emit once\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal EventEmitter interface that is molded against the Node.js\n * EventEmitter interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() { /* Nothing to set */ }\n\n/**\n * Holds the assigned EventEmitters by name.\n *\n * @type {Object}\n * @private\n */\nEventEmitter.prototype._events = undefined;\n\n/**\n * Return a list of assigned event listeners.\n *\n * @param {String} event The events that should be listed.\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n if (!this._events || !this._events[event]) return [];\n\n for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n ee.push(this._events[event][i].fn);\n }\n\n return ee;\n};\n\n/**\n * Emit an event to all registered event listeners.\n *\n * @param {String} event The name of the event.\n * @returns {Boolean} Indication if we've emitted an event.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n if (!this._events || !this._events[event]) return false;\n\n var listeners = this._events[event]\n , length = listeners.length\n , len = arguments.length\n , ee = listeners[0]\n , args\n , i, j;\n\n if (1 === length) {\n if (ee.once) this.removeListener(event, ee.fn, true);\n\n switch (len) {\n case 1: return ee.fn.call(ee.context), true;\n case 2: return ee.fn.call(ee.context, a1), true;\n case 3: return ee.fn.call(ee.context, a1, a2), true;\n case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n ee.fn.apply(ee.context, args);\n } else {\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Register a new EventListener for the given event.\n *\n * @param {String} event Name of the event.\n * @param {Functon} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE( fn, context || this ));\n\n return this;\n};\n\n/**\n * Add an EventListener that's only called once.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE(fn, context || this, true ));\n\n return this;\n};\n\n/**\n * Remove event listeners.\n *\n * @param {String} event The event we want to remove.\n * @param {Function} fn The listener that we need to find.\n * @param {Boolean} once Only remove once listeners.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n if (!this._events || !this._events[event]) return this;\n\n var listeners = this._events[event]\n , events = [];\n\n if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn && listeners[i].once !== once) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[event] = events;\n else this._events[event] = null;\n\n return this;\n};\n\n/**\n * Remove all listeners or only the listeners for the specified event.\n *\n * @param {String} event The event want to remove all listeners for.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n if (!this._events) return this;\n\n if (event) this._events[event] = null;\n else this._events = {};\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the module.\n//\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.EventEmitter2 = EventEmitter;\nEventEmitter.EventEmitter3 = EventEmitter;\n\nif ('object' === typeof module && module.exports) {\n module.exports = EventEmitter;\n}\n","(function (root, factory){\n 'use strict';\n\n /*istanbul ignore next:cant test*/\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else {\n // Browser globals\n root.objectPath = factory();\n }\n})(this, function(){\n 'use strict';\n\n var\n toStr = Object.prototype.toString,\n _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function isEmpty(value){\n if (!value) {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n } else {\n for (var i in value) {\n if (_hasOwnProperty.call(value, i)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function toString(type){\n return toStr.call(type);\n }\n\n function isNumber(value){\n return typeof value === 'number' || toString(value) === \"[object Number]\";\n }\n\n function isString(obj){\n return typeof obj === 'string' || toString(obj) === \"[object String]\";\n }\n\n function isObject(obj){\n return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n }\n\n function isArray(obj){\n return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n }\n\n function isBoolean(obj){\n return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n }\n\n function getKey(key){\n var intKey = parseInt(key);\n if (intKey.toString() === key) {\n return intKey;\n }\n return key;\n }\n\n function set(obj, path, value, doNotReplace){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isString(path)) {\n return set(obj, path.split('.'), value, doNotReplace);\n }\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n var oldVal = obj[currentPath];\n if (oldVal === void 0 || !doNotReplace) {\n obj[currentPath] = value;\n }\n return oldVal;\n }\n\n if (obj[currentPath] === void 0) {\n if (isNumber(currentPath)) {\n obj[currentPath] = [];\n } else {\n obj[currentPath] = {};\n }\n }\n\n return set(obj[currentPath], path.slice(1), value, doNotReplace);\n }\n\n function del(obj, path) {\n if (isNumber(path)) {\n path = [path];\n }\n\n if (isEmpty(obj)) {\n return void 0;\n }\n\n if (isEmpty(path)) {\n return obj;\n }\n if(isString(path)) {\n return del(obj, path.split('.'));\n }\n\n var currentPath = getKey(path[0]);\n var oldVal = obj[currentPath];\n\n if(path.length === 1) {\n if (oldVal !== void 0) {\n if (isArray(obj)) {\n obj.splice(currentPath, 1);\n } else {\n delete obj[currentPath];\n }\n }\n } else {\n if (obj[currentPath] !== void 0) {\n return del(obj[currentPath], path.slice(1));\n }\n }\n\n return obj;\n }\n\n var objectPath = {};\n\n objectPath.ensureExists = function (obj, path, value){\n return set(obj, path, value, true);\n };\n\n objectPath.set = function (obj, path, value, doNotReplace){\n return set(obj, path, value, doNotReplace);\n };\n\n objectPath.insert = function (obj, path, value, at){\n var arr = objectPath.get(obj, path);\n at = ~~at;\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n arr.splice(at, 0, value);\n };\n\n objectPath.empty = function(obj, path) {\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return void 0;\n }\n\n var value, i;\n if (!(value = objectPath.get(obj, path))) {\n return obj;\n }\n\n if (isString(value)) {\n return objectPath.set(obj, path, '');\n } else if (isBoolean(value)) {\n return objectPath.set(obj, path, false);\n } else if (isNumber(value)) {\n return objectPath.set(obj, path, 0);\n } else if (isArray(value)) {\n value.length = 0;\n } else if (isObject(value)) {\n for (i in value) {\n if (_hasOwnProperty.call(value, i)) {\n delete value[i];\n }\n }\n } else {\n return objectPath.set(obj, path, null);\n }\n };\n\n objectPath.push = function (obj, path /*, values */){\n var arr = objectPath.get(obj, path);\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n\n arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n };\n\n objectPath.coalesce = function (obj, paths, defaultValue) {\n var value;\n\n for (var i = 0, len = paths.length; i < len; i++) {\n if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n return value;\n }\n }\n\n return defaultValue;\n };\n\n objectPath.get = function (obj, path, defaultValue){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return defaultValue;\n }\n if (isString(path)) {\n return objectPath.get(obj, path.split('.'), defaultValue);\n }\n\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n if (obj[currentPath] === void 0) {\n return defaultValue;\n }\n return obj[currentPath];\n }\n\n return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n };\n\n objectPath.del = function(obj, path) {\n return del(obj, path);\n };\n\n return objectPath;\n});","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseClone = require('../internals/baseClone'),\n baseCreateCallback = require('../internals/baseCreateCallback');\n\n/**\n * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n * be cloned, otherwise they will be assigned by reference. If a callback\n * is provided it will be executed to produce the cloned values. If the\n * callback returns `undefined` cloning will be handled by the method instead.\n * The callback is bound to `thisArg` and invoked with one argument; (value).\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the cloned value.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * var shallow = _.clone(characters);\n * shallow[0] === characters[0];\n * // => true\n *\n * var deep = _.clone(characters, true);\n * deep[0] === characters[0];\n * // => false\n *\n * _.mixin({\n * 'clone': _.partialRight(_.clone, function(value) {\n * return _.isElement(value) ? value.cloneNode(false) : undefined;\n * })\n * });\n *\n * var clone = _.clone(document.body);\n * clone.childNodes.length;\n * // => 0\n */\nfunction clone(value, isDeep, callback, thisArg) {\n // allows working with \"Collections\" methods without using their `index`\n // and `collection` arguments for `isDeep` and `callback`\n if (typeof isDeep != 'boolean' && isDeep != null) {\n thisArg = callback;\n callback = isDeep;\n isDeep = false;\n }\n return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n}\n\nmodule.exports = clone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * Creates an object with the same keys as `object` and values generated by\n * running each own enumerable property of `object` through the callback.\n * The callback is bound to `thisArg` and invoked with three arguments;\n * (value, key, object).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n * @example\n *\n * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n *\n * var characters = {\n * 'fred': { 'name': 'fred', 'age': 40 },\n * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n * };\n *\n * // using \"_.pluck\" callback shorthand\n * _.mapValues(characters, 'age');\n * // => { 'fred': 40, 'pebbles': 1 }\n */\nfunction mapValues(object, callback, thisArg) {\n var result = {};\n callback = createCallback(callback, thisArg, 3);\n\n forOwn(object, function(value, key, object) {\n result[key] = callback(value, key, object);\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own enumerable properties of an object, executing the callback\n * for each property. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, key, object). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n * console.log(key);\n * });\n * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n */\nvar forOwn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forOwn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative'),\n isObject = require('./isObject'),\n shimKeys = require('../internals/shimKeys');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\n/**\n * Creates an array composed of the own enumerable property names of an object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n * @example\n *\n * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n if (!isObject(object)) {\n return [];\n }\n return nativeKeys(object);\n};\n\nmodule.exports = keys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * This method is like `_.findIndex` except that it returns the key of the\n * first element that passes the callback check, instead of the element itself.\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to search.\n * @param {Function|Object|string} [callback=identity] The function called per\n * iteration. If a property name or object is provided it will be used to\n * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n * @example\n *\n * var characters = {\n * 'barney': { 'age': 36, 'blocked': false },\n * 'fred': { 'age': 40, 'blocked': true },\n * 'pebbles': { 'age': 1, 'blocked': false }\n * };\n *\n * _.findKey(characters, function(chr) {\n * return chr.age < 40;\n * });\n * // => 'barney' (property order is not guaranteed across environments)\n *\n * // using \"_.where\" callback shorthand\n * _.findKey(characters, { 'age': 1 });\n * // => 'pebbles'\n *\n * // using \"_.pluck\" callback shorthand\n * _.findKey(characters, 'blocked');\n * // => 'fred'\n */\nfunction findKey(object, callback, thisArg) {\n var result;\n callback = createCallback(callback, thisArg, 3);\n forOwn(object, function(value, key, object) {\n if (callback(value, key, object)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = findKey;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is a function.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n */\nfunction isFunction(value) {\n return typeof value == 'function';\n}\n\nmodule.exports = isFunction;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is a string.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n * @example\n *\n * _.isString('fred');\n * // => true\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n value && typeof value == 'object' && toString.call(value) == stringClass || false;\n}\n\nmodule.exports = isString;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('../internals/baseIndexOf'),\n cacheIndexOf = require('../internals/cacheIndexOf'),\n createCache = require('../internals/createCache'),\n getArray = require('../internals/getArray'),\n isArguments = require('../objects/isArguments'),\n isArray = require('../objects/isArray'),\n largeArraySize = require('../internals/largeArraySize'),\n releaseArray = require('../internals/releaseArray'),\n releaseObject = require('../internals/releaseObject');\n\n/**\n * Creates an array of unique values present in all provided arrays using\n * strict equality for comparisons, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @category Arrays\n * @param {...Array} [array] The arrays to inspect.\n * @returns {Array} Returns an array of shared values.\n * @example\n *\n * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n * // => [1, 2]\n */\nfunction intersection() {\n var args = [],\n argsIndex = -1,\n argsLength = arguments.length,\n caches = getArray(),\n indexOf = baseIndexOf,\n trustIndexOf = indexOf === baseIndexOf,\n seen = getArray();\n\n while (++argsIndex < argsLength) {\n var value = arguments[argsIndex];\n if (isArray(value) || isArguments(value)) {\n args.push(value);\n caches.push(trustIndexOf && value.length >= largeArraySize &&\n createCache(argsIndex ? args[argsIndex] : seen));\n }\n }\n var array = args[0],\n index = -1,\n length = array ? array.length : 0,\n result = [];\n\n outer:\n while (++index < length) {\n var cache = caches[0];\n value = array[index];\n\n if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n argsIndex = argsLength;\n (cache || seen).push(value);\n while (--argsIndex) {\n cache = caches[argsIndex];\n if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n continue outer;\n }\n }\n result.push(value);\n }\n }\n while (argsLength--) {\n cache = caches[argsLength];\n if (cache) {\n releaseObject(cache);\n }\n }\n releaseArray(caches);\n releaseArray(seen);\n return result;\n}\n\nmodule.exports = intersection;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseUniq = require('../internals/baseUniq'),\n createCallback = require('../functions/createCallback');\n\n/**\n * Creates a duplicate-value-free version of an array using strict equality\n * for comparisons, i.e. `===`. If the array is sorted, providing\n * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n * each element of `array` is passed through the callback before uniqueness\n * is computed. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, index, array).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias unique\n * @category Arrays\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a duplicate-value-free array.\n * @example\n *\n * _.uniq([1, 2, 1, 3, 1]);\n * // => [1, 2, 3]\n *\n * _.uniq([1, 1, 2, 2, 3], true);\n * // => [1, 2, 3]\n *\n * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n * // => ['A', 'b', 'C']\n *\n * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n * // => [1, 2.5, 3]\n *\n * // using \"_.pluck\" callback shorthand\n * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniq(array, isSorted, callback, thisArg) {\n // juggle arguments\n if (typeof isSorted != 'boolean' && isSorted != null) {\n thisArg = callback;\n callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n isSorted = false;\n }\n if (callback != null) {\n callback = createCallback(callback, thisArg, 3);\n }\n return baseUniq(array, isSorted, callback);\n}\n\nmodule.exports = uniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Creates an array of values by running each element in the collection\n * through the callback. The callback is bound to `thisArg` and invoked with\n * three arguments; (value, index|key, collection).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias collect\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new array of the results of each `callback` execution.\n * @example\n *\n * _.map([1, 2, 3], function(num) { return num * 3; });\n * // => [3, 6, 9]\n *\n * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n * // => [3, 6, 9] (property order is not guaranteed across environments)\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // using \"_.pluck\" callback shorthand\n * _.map(characters, 'name');\n * // => ['barney', 'fred']\n */\nfunction map(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = createCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n var result = Array(length);\n while (++index < length) {\n result[index] = callback(collection[index], index, collection);\n }\n } else {\n result = [];\n forOwn(collection, function(value, key, collection) {\n result[++index] = callback(value, key, collection);\n });\n }\n return result;\n}\n\nmodule.exports = map;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Iterates over elements of a collection, executing the callback for each\n * element. The callback is bound to `thisArg` and invoked with three arguments;\n * (value, index|key, collection). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * Note: As with other \"Collections\" methods, objects with a `length` property\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n * may be used for object iteration.\n *\n * @static\n * @memberOf _\n * @alias each\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array|Object|string} Returns `collection`.\n * @example\n *\n * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n * // => logs each number and returns '1,2,3'\n *\n * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n * // => logs each number and returns the object (property order is not guaranteed across environments)\n */\nfunction forEach(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n while (++index < length) {\n if (callback(collection[index], index, collection) === false) {\n break;\n }\n }\n } else {\n forOwn(collection, callback);\n }\n return collection;\n}\n\nmodule.exports = forEach;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keys = require('../objects/keys');\n\n/**\n * Gets the size of the `collection` by returning `collection.length` for arrays\n * and array-like objects or the number of own enumerable properties for objects.\n *\n * @static\n * @memberOf _\n * @category Collections\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns `collection.length` or number of own enumerable properties.\n * @example\n *\n * _.size([1, 2]);\n * // => 2\n *\n * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n * // => 3\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n var length = collection ? collection.length : 0;\n return typeof length == 'number' ? length : keys(collection).length;\n}\n\nmodule.exports = size;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Reduces a collection to a value which is the accumulated result of running\n * each element in the collection through the callback, where each successive\n * callback execution consumes the return value of the previous execution. If\n * `accumulator` is not provided the first element of the collection will be\n * used as the initial `accumulator` value. The callback is bound to `thisArg`\n * and invoked with four arguments; (accumulator, value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @alias foldl, inject\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [accumulator] Initial value of the accumulator.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * var sum = _.reduce([1, 2, 3], function(sum, num) {\n * return sum + num;\n * });\n * // => 6\n *\n * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n * result[key] = num * 3;\n * return result;\n * }, {});\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n */\nfunction reduce(collection, callback, accumulator, thisArg) {\n if (!collection) return accumulator;\n var noaccum = arguments.length < 3;\n callback = createCallback(callback, thisArg, 4);\n\n var index = -1,\n length = collection.length;\n\n if (typeof length == 'number') {\n if (noaccum) {\n accumulator = collection[++index];\n }\n while (++index < length) {\n accumulator = callback(accumulator, collection[index], index, collection);\n }\n } else {\n forOwn(collection, function(value, index, collection) {\n accumulator = noaccum\n ? (noaccum = false, value)\n : callback(accumulator, value, index, collection)\n });\n }\n return accumulator;\n}\n\nmodule.exports = reduce;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('../internals/objectTypes');\n\n/**\n * Checks if `value` is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // check if the value is the ECMAScript language type of Object\n // http://es5.github.io/#x8\n // and avoid a V8 bug\n // http://code.google.com/p/v8/issues/detail?id=2291\n return !!(value && objectTypes[typeof value]);\n}\n\nmodule.exports = isObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n * @example\n *\n * (function() { return _.isArguments(arguments); })(1, 2, 3);\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == argsClass || false;\n}\n\nmodule.exports = isArguments;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative');\n\n/** `Object#toString` result shortcuts */\nvar arrayClass = '[object Array]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\n/**\n * Checks if `value` is an array.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n * @example\n *\n * (function() { return _.isArray(arguments); })();\n * // => false\n *\n * _.isArray([1, 2, 3]);\n * // => true\n */\nvar isArray = nativeIsArray || function(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == arrayClass || false;\n};\n\nmodule.exports = isArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar assign = require('../objects/assign'),\n forEach = require('../collections/forEach'),\n forOwn = require('../objects/forOwn'),\n getArray = require('./getArray'),\n isArray = require('../objects/isArray'),\n isObject = require('../objects/isObject'),\n releaseArray = require('./releaseArray'),\n slice = require('./slice');\n\n/** Used to match regexp flags from their coerced string values */\nvar reFlags = /\\w*$/;\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n funcClass = '[object Function]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used to identify object classifications that `_.clone` supports */\nvar cloneableClasses = {};\ncloneableClasses[funcClass] = false;\ncloneableClasses[argsClass] = cloneableClasses[arrayClass] =\ncloneableClasses[boolClass] = cloneableClasses[dateClass] =\ncloneableClasses[numberClass] = cloneableClasses[objectClass] =\ncloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to lookup a built-in constructor by [[Class]] */\nvar ctorByClass = {};\nctorByClass[arrayClass] = Array;\nctorByClass[boolClass] = Boolean;\nctorByClass[dateClass] = Date;\nctorByClass[funcClass] = Function;\nctorByClass[objectClass] = Object;\nctorByClass[numberClass] = Number;\nctorByClass[regexpClass] = RegExp;\nctorByClass[stringClass] = String;\n\n/**\n * The base implementation of `_.clone` without argument juggling or support\n * for `thisArg` binding.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, callback, stackA, stackB) {\n if (callback) {\n var result = callback(value);\n if (typeof result != 'undefined') {\n return result;\n }\n }\n // inspect [[Class]]\n var isObj = isObject(value);\n if (isObj) {\n var className = toString.call(value);\n if (!cloneableClasses[className]) {\n return value;\n }\n var ctor = ctorByClass[className];\n switch (className) {\n case boolClass:\n case dateClass:\n return new ctor(+value);\n\n case numberClass:\n case stringClass:\n return new ctor(value);\n\n case regexpClass:\n result = ctor(value.source, reFlags.exec(value));\n result.lastIndex = value.lastIndex;\n return result;\n }\n } else {\n return value;\n }\n var isArr = isArray(value);\n if (isDeep) {\n // check for circular references and return corresponding clone\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == value) {\n return stackB[length];\n }\n }\n result = isArr ? ctor(value.length) : {};\n }\n else {\n result = isArr ? slice(value) : assign({}, value);\n }\n // add array properties assigned by `RegExp#exec`\n if (isArr) {\n if (hasOwnProperty.call(value, 'index')) {\n result.index = value.index;\n }\n if (hasOwnProperty.call(value, 'input')) {\n result.input = value.input;\n }\n }\n // exit for shallow clone\n if (!isDeep) {\n return result;\n }\n // add the source value to the stack of traversed objects\n // and associate it with its clone\n stackA.push(value);\n stackB.push(result);\n\n // recursively populate clone (susceptible to call stack limits)\n (isArr ? forEach : forOwn)(value, function(objValue, key) {\n result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n });\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bind = require('../functions/bind'),\n identity = require('../utilities/identity'),\n setBindData = require('./setBindData'),\n support = require('../support');\n\n/** Used to detected named functions */\nvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/** Native method shortcuts */\nvar fnToString = Function.prototype.toString;\n\n/**\n * The base implementation of `_.createCallback` without support for creating\n * \"_.pluck\" or \"_.where\" style callbacks.\n *\n * @private\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n */\nfunction baseCreateCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n // exit early for no `thisArg` or already bound by `Function#bind`\n if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n return func;\n }\n var bindData = func.__bindData__;\n if (typeof bindData == 'undefined') {\n if (support.funcNames) {\n bindData = !func.name;\n }\n bindData = bindData || !support.funcDecomp;\n if (!bindData) {\n var source = fnToString.call(func);\n if (!support.funcNames) {\n bindData = !reFuncName.test(source);\n }\n if (!bindData) {\n // checks if `func` references the `this` keyword and stores the result\n bindData = reThis.test(source);\n setBindData(func, bindData);\n }\n }\n }\n // exit early if there are no `this` references or `func` is bound\n if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 2: return function(a, b) {\n return func.call(thisArg, a, b);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n }\n return bind(func, thisArg);\n}\n\nmodule.exports = baseCreateCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to determine if values are of the language type Object */\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\n\nmodule.exports = objectTypes;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Used to detect if a method is native */\nvar reNative = RegExp('^' +\n String(toString)\n .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n */\nfunction isNative(value) {\n return typeof value == 'function' && reNative.test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('./objectTypes');\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which produces an array of the\n * given object's own enumerable property names.\n *\n * @private\n * @type Function\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n */\nvar shimKeys = function(object) {\n var index, iterable = object, result = [];\n if (!iterable) return result;\n if (!(objectTypes[typeof object])) return result;\n for (index in iterable) {\n if (hasOwnProperty.call(iterable, index)) {\n result.push(index);\n }\n }\n return result\n};\n\nmodule.exports = shimKeys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * The base implementation of `_.indexOf` without support for binary searches\n * or `fromIndex` constraints.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value or `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n var index = (fromIndex || 0) - 1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n keyPrefix = require('./keyPrefix');\n\n/**\n * An implementation of `_.contains` for cache objects that mimics the return\n * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n *\n * @private\n * @param {Object} cache The cache object to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns `0` if `value` is found, else `-1`.\n */\nfunction cacheIndexOf(cache, value) {\n var type = typeof value;\n cache = cache.cache;\n\n if (type == 'boolean' || value == null) {\n return cache[value] ? 0 : -1;\n }\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value;\n cache = (cache = cache[type]) && cache[key];\n\n return type == 'object'\n ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n : (cache ? 0 : -1);\n}\n\nmodule.exports = cacheIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar cachePush = require('./cachePush'),\n getObject = require('./getObject'),\n releaseObject = require('./releaseObject');\n\n/**\n * Creates a cache object to optimize linear searches of large arrays.\n *\n * @private\n * @param {Array} [array=[]] The array to search.\n * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n */\nfunction createCache(array) {\n var index = -1,\n length = array.length,\n first = array[0],\n mid = array[(length / 2) | 0],\n last = array[length - 1];\n\n if (first && typeof first == 'object' &&\n mid && typeof mid == 'object' && last && typeof last == 'object') {\n return false;\n }\n var cache = getObject();\n cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\n var result = getObject();\n result.array = array;\n result.cache = cache;\n result.push = cachePush;\n\n while (++index < length) {\n result.push(array[index]);\n }\n return result;\n}\n\nmodule.exports = createCache;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool');\n\n/**\n * Gets an array from the array pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Array} The array from the pool.\n */\nfunction getArray() {\n return arrayPool.pop() || [];\n}\n\nmodule.exports = getArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the size when optimizations are enabled for large arrays */\nvar largeArraySize = 75;\n\nmodule.exports = largeArraySize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool'),\n maxPoolSize = require('./maxPoolSize');\n\n/**\n * Releases the given array back to the array pool.\n *\n * @private\n * @param {Array} [array] The array to release.\n */\nfunction releaseArray(array) {\n array.length = 0;\n if (arrayPool.length < maxPoolSize) {\n arrayPool.push(array);\n }\n}\n\nmodule.exports = releaseArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar maxPoolSize = require('./maxPoolSize'),\n objectPool = require('./objectPool');\n\n/**\n * Releases the given object back to the object pool.\n *\n * @private\n * @param {Object} [object] The object to release.\n */\nfunction releaseObject(object) {\n var cache = object.cache;\n if (cache) {\n releaseObject(cache);\n }\n object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n if (objectPool.length < maxPoolSize) {\n objectPool.push(object);\n }\n}\n\nmodule.exports = releaseObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n cacheIndexOf = require('./cacheIndexOf'),\n createCache = require('./createCache'),\n getArray = require('./getArray'),\n largeArraySize = require('./largeArraySize'),\n releaseArray = require('./releaseArray'),\n releaseObject = require('./releaseObject');\n\n/**\n * The base implementation of `_.uniq` without support for callback shorthands\n * or `thisArg` binding.\n *\n * @private\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function} [callback] The function called per iteration.\n * @returns {Array} Returns a duplicate-value-free array.\n */\nfunction baseUniq(array, isSorted, callback) {\n var index = -1,\n indexOf = baseIndexOf,\n length = array ? array.length : 0,\n result = [];\n\n var isLarge = !isSorted && length >= largeArraySize,\n seen = (callback || isLarge) ? getArray() : result;\n\n if (isLarge) {\n var cache = createCache(seen);\n indexOf = cacheIndexOf;\n seen = cache;\n }\n while (++index < length) {\n var value = array[index],\n computed = callback ? callback(value, index, array) : value;\n\n if (isSorted\n ? !index || seen[seen.length - 1] !== computed\n : indexOf(seen, computed) < 0\n ) {\n if (callback || isLarge) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n if (isLarge) {\n releaseArray(seen.array);\n releaseObject(seen);\n } else if (callback) {\n releaseArray(seen);\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n baseIsEqual = require('../internals/baseIsEqual'),\n isObject = require('../objects/isObject'),\n keys = require('../objects/keys'),\n property = require('../utilities/property');\n\n/**\n * Produces a callback bound to an optional `thisArg`. If `func` is a property\n * name the created callback will return the property value for a given element.\n * If `func` is an object the created callback will return `true` for elements\n * that contain the equivalent object properties, otherwise it will return `false`.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // wrap to create custom callback shorthands\n * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n * return !match ? func(callback, thisArg) : function(object) {\n * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n * };\n * });\n *\n * _.filter(characters, 'age__gt38');\n * // => [{ 'name': 'fred', 'age': 40 }]\n */\nfunction createCallback(func, thisArg, argCount) {\n var type = typeof func;\n if (func == null || type == 'function') {\n return baseCreateCallback(func, thisArg, argCount);\n }\n // handle \"_.pluck\" style callback shorthands\n if (type != 'object') {\n return property(func);\n }\n var props = keys(func),\n key = props[0],\n a = func[key];\n\n // handle \"_.where\" style callback shorthands\n if (props.length == 1 && a === a && !isObject(a)) {\n // fast path the common case of providing an object with a single\n // property containing a primitive value\n return function(object) {\n var b = object[key];\n return a === b && (a !== 0 || (1 / a == 1 / b));\n };\n }\n return function(object) {\n var length = props.length,\n result = false;\n\n while (length--) {\n if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n break;\n }\n }\n return result;\n };\n}\n\nmodule.exports = createCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources will overwrite property assignments of previous\n * sources. If a callback is provided it will be executed to produce the\n * assigned values. The callback is bound to `thisArg` and invoked with two\n * arguments; (objectValue, sourceValue).\n *\n * @static\n * @memberOf _\n * @type Function\n * @alias extend\n * @category Objects\n * @param {Object} object The destination object.\n * @param {...Object} [source] The source objects.\n * @param {Function} [callback] The function to customize assigning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns the destination object.\n * @example\n *\n * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n * // => { 'name': 'fred', 'employer': 'slate' }\n *\n * var defaults = _.partialRight(_.assign, function(a, b) {\n * return typeof a == 'undefined' ? b : a;\n * });\n *\n * var object = { 'name': 'barney' };\n * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n * // => { 'name': 'barney', 'employer': 'slate' }\n */\nvar assign = function(object, source, guard) {\n var index, iterable = object, result = iterable;\n if (!iterable) return result;\n var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\n if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n }\n while (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n }\n }\n }\n return result\n};\n\nmodule.exports = assign;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Slices the `collection` from the `start` index up to, but not including,\n * the `end` index.\n *\n * Note: This function is used instead of `Array#slice` to support node lists\n * in IE < 9 and to ensure dense arrays are returned.\n *\n * @private\n * @param {Array|Object|string} collection The collection to slice.\n * @param {number} start The start index.\n * @param {number} end The end index.\n * @returns {Array} Returns the new array.\n */\nfunction slice(array, start, end) {\n start || (start = 0);\n if (typeof end == 'undefined') {\n end = array ? array.length : 0;\n }\n var index = -1,\n length = end - start || 0,\n result = Array(length < 0 ? 0 : length);\n\n while (++index < length) {\n result[index] = array[start + index];\n }\n return result;\n}\n\nmodule.exports = slice;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createWrapper = require('../internals/createWrapper'),\n slice = require('../internals/slice');\n\n/**\n * Creates a function that, when called, invokes `func` with the `this`\n * binding of `thisArg` and prepends any additional `bind` arguments to those\n * provided to the bound function.\n *\n * @static\n * @memberOf _\n * @category Functions\n * @param {Function} func The function to bind.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {...*} [arg] Arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var func = function(greeting) {\n * return greeting + ' ' + this.name;\n * };\n *\n * func = _.bind(func, { 'name': 'fred' }, 'hi');\n * func();\n * // => 'hi fred'\n */\nfunction bind(func, thisArg) {\n return arguments.length > 2\n ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n : createWrapper(func, 1, null, null, thisArg);\n}\n\nmodule.exports = bind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n noop = require('../utilities/noop');\n\n/** Used as the property descriptor for `__bindData__` */\nvar descriptor = {\n 'configurable': false,\n 'enumerable': false,\n 'value': null,\n 'writable': false\n};\n\n/** Used to set meta data on functions */\nvar defineProperty = (function() {\n // IE 8 only accepts DOM elements\n try {\n var o = {},\n func = isNative(func = Object.defineProperty) && func,\n result = func(o, o, o) && func;\n } catch(e) { }\n return result;\n}());\n\n/**\n * Sets `this` binding data on a given function.\n *\n * @private\n * @param {Function} func The function to set data on.\n * @param {Array} value The data array to set.\n */\nvar setBindData = !defineProperty ? noop : function(func, value) {\n descriptor.value = value;\n defineProperty(func, '__bindData__', descriptor);\n};\n\nmodule.exports = setBindData;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./internals/isNative');\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/**\n * An object used to flag environments features.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n/**\n * Detect if functions can be decompiled by `Function#toString`\n * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\n/**\n * Detect if `Function#name` is supported (all but IE).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcNames = typeof Function.name == 'string';\n\nmodule.exports = support;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\nvar keyPrefix = +new Date + '';\n\nmodule.exports = keyPrefix;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keyPrefix = require('./keyPrefix');\n\n/**\n * Adds a given value to the corresponding cache object.\n *\n * @private\n * @param {*} value The value to add to the cache.\n */\nfunction cachePush(value) {\n var cache = this.cache,\n type = typeof value;\n\n if (type == 'boolean' || value == null) {\n cache[value] = true;\n } else {\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value,\n typeCache = cache[type] || (cache[type] = {});\n\n if (type == 'object') {\n (typeCache[key] || (typeCache[key] = [])).push(value);\n } else {\n typeCache[key] = true;\n }\n }\n}\n\nmodule.exports = cachePush;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectPool = require('./objectPool');\n\n/**\n * Gets an object from the object pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Object} The object from the pool.\n */\nfunction getObject() {\n return objectPool.pop() || {\n 'array': null,\n 'cache': null,\n 'criteria': null,\n 'false': false,\n 'index': 0,\n 'null': false,\n 'number': null,\n 'object': null,\n 'push': null,\n 'string': null,\n 'true': false,\n 'undefined': false,\n 'value': null\n };\n}\n\nmodule.exports = getObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar arrayPool = [];\n\nmodule.exports = arrayPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the max size of the `arrayPool` and `objectPool` */\nvar maxPoolSize = 40;\n\nmodule.exports = maxPoolSize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar objectPool = [];\n\nmodule.exports = objectPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar forIn = require('../objects/forIn'),\n getArray = require('./getArray'),\n isFunction = require('../objects/isFunction'),\n objectTypes = require('./objectTypes'),\n releaseArray = require('./releaseArray');\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n * that allows partial \"_.where\" style comparisons.\n *\n * @private\n * @param {*} a The value to compare.\n * @param {*} b The other value to compare.\n * @param {Function} [callback] The function to customize comparing values.\n * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n // used to indicate that when comparing objects, `a` has at least the properties of `b`\n if (callback) {\n var result = callback(a, b);\n if (typeof result != 'undefined') {\n return !!result;\n }\n }\n // exit early for identical values\n if (a === b) {\n // treat `+0` vs. `-0` as not equal\n return a !== 0 || (1 / a == 1 / b);\n }\n var type = typeof a,\n otherType = typeof b;\n\n // exit early for unlike primitive values\n if (a === a &&\n !(a && objectTypes[type]) &&\n !(b && objectTypes[otherType])) {\n return false;\n }\n // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n // http://es5.github.io/#x15.3.4.4\n if (a == null || b == null) {\n return a === b;\n }\n // compare [[Class]] names\n var className = toString.call(a),\n otherClass = toString.call(b);\n\n if (className == argsClass) {\n className = objectClass;\n }\n if (otherClass == argsClass) {\n otherClass = objectClass;\n }\n if (className != otherClass) {\n return false;\n }\n switch (className) {\n case boolClass:\n case dateClass:\n // coerce dates and booleans to numbers, dates to milliseconds and booleans\n // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n return +a == +b;\n\n case numberClass:\n // treat `NaN` vs. `NaN` as equal\n return (a != +a)\n ? b != +b\n // but treat `+0` vs. `-0` as not equal\n : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\n case regexpClass:\n case stringClass:\n // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n // treat string primitives and their corresponding object instances as equal\n return a == String(b);\n }\n var isArr = className == arrayClass;\n if (!isArr) {\n // unwrap any `lodash` wrapped values\n var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\n if (aWrapped || bWrapped) {\n return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n }\n // exit for functions and DOM nodes\n if (className != objectClass) {\n return false;\n }\n // in older versions of Opera, `arguments` objects have `Array` constructors\n var ctorA = a.constructor,\n ctorB = b.constructor;\n\n // non `Object` object instances with different constructors are not equal\n if (ctorA != ctorB &&\n !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n ('constructor' in a && 'constructor' in b)\n ) {\n return false;\n }\n }\n // assume cyclic structures are equal\n // the algorithm for detecting cyclic structures is adapted from ES 5.1\n // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == a) {\n return stackB[length] == b;\n }\n }\n var size = 0;\n result = true;\n\n // add `a` and `b` to the stack of traversed objects\n stackA.push(a);\n stackB.push(b);\n\n // recursively compare objects and arrays (susceptible to call stack limits)\n if (isArr) {\n // compare lengths to determine if a deep comparison is necessary\n length = a.length;\n size = b.length;\n result = size == length;\n\n if (result || isWhere) {\n // deep compare the contents, ignoring non-numeric properties\n while (size--) {\n var index = length,\n value = b[size];\n\n if (isWhere) {\n while (index--) {\n if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n }\n }\n else {\n // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n // which, in this case, is more costly\n forIn(b, function(value, key, b) {\n if (hasOwnProperty.call(b, key)) {\n // count the number of properties.\n size++;\n // deep compare each property value.\n return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n }\n });\n\n if (result && !isWhere) {\n // ensure both objects have the same number of properties\n forIn(a, function(value, key, a) {\n if (hasOwnProperty.call(a, key)) {\n // `size` will be `-1` if `a` has more properties than `b`\n return (result = --size > -1);\n }\n });\n }\n }\n stackA.pop();\n stackB.pop();\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseIsEqual;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Creates a \"_.pluck\" style function, which returns the `key` value of a\n * given object.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {string} key The name of the property to retrieve.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var characters = [\n * { 'name': 'fred', 'age': 40 },\n * { 'name': 'barney', 'age': 36 }\n * ];\n *\n * var getName = _.property('name');\n *\n * _.map(characters, getName);\n * // => ['barney', 'fred']\n *\n * _.sortBy(characters, getName);\n * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n */\nfunction property(key) {\n return function(object) {\n return object[key];\n };\n}\n\nmodule.exports = property;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseBind = require('./baseBind'),\n baseCreateWrapper = require('./baseCreateWrapper'),\n isFunction = require('../objects/isFunction'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push,\n unshift = arrayRef.unshift;\n\n/**\n * Creates a function that, when called, either curries or invokes `func`\n * with an optional `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to reference.\n * @param {number} bitmask The bitmask of method flags to compose.\n * The bitmask may be composed of the following flags:\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry`\n * 8 - `_.curry` (bound)\n * 16 - `_.partial`\n * 32 - `_.partialRight`\n * @param {Array} [partialArgs] An array of arguments to prepend to those\n * provided to the new function.\n * @param {Array} [partialRightArgs] An array of arguments to append to those\n * provided to the new function.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new function.\n */\nfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n isPartial = bitmask & 16,\n isPartialRight = bitmask & 32;\n\n if (!isBindKey && !isFunction(func)) {\n throw new TypeError;\n }\n if (isPartial && !partialArgs.length) {\n bitmask &= ~16;\n isPartial = partialArgs = false;\n }\n if (isPartialRight && !partialRightArgs.length) {\n bitmask &= ~32;\n isPartialRight = partialRightArgs = false;\n }\n var bindData = func && func.__bindData__;\n if (bindData && bindData !== true) {\n // clone `bindData`\n bindData = slice(bindData);\n if (bindData[2]) {\n bindData[2] = slice(bindData[2]);\n }\n if (bindData[3]) {\n bindData[3] = slice(bindData[3]);\n }\n // set `thisBinding` is not previously bound\n if (isBind && !(bindData[1] & 1)) {\n bindData[4] = thisArg;\n }\n // set if previously bound but not currently (subsequent curried functions)\n if (!isBind && bindData[1] & 1) {\n bitmask |= 8;\n }\n // set curried arity if not yet set\n if (isCurry && !(bindData[1] & 4)) {\n bindData[5] = arity;\n }\n // append partial left arguments\n if (isPartial) {\n push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n }\n // append partial right arguments\n if (isPartialRight) {\n unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n }\n // merge flags\n bindData[1] |= bitmask;\n return createWrapper.apply(null, bindData);\n }\n // fast path for `_.bind`\n var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n}\n\nmodule.exports = createWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A no-operation function.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.noop(object) === undefined;\n * // => true\n */\nfunction noop() {\n // no operation performed\n}\n\nmodule.exports = noop;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own and inherited enumerable properties of an object,\n * executing the callback for each property. The callback is bound to `thisArg`\n * and invoked with three arguments; (value, key, object). Callbacks may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * Shape.prototype.move = function(x, y) {\n * this.x += x;\n * this.y += y;\n * };\n *\n * _.forIn(new Shape, function(value, key) {\n * console.log(key);\n * });\n * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n */\nvar forIn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n for (index in iterable) {\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forIn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `_.bind` that creates the bound function and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new bound function.\n */\nfunction baseBind(bindData) {\n var func = bindData[0],\n partialArgs = bindData[2],\n thisArg = bindData[4];\n\n function bound() {\n // `Function#bind` spec\n // http://es5.github.io/#x15.3.4.5\n if (partialArgs) {\n // avoid `arguments` object deoptimizations by using `slice` instead\n // of `Array.prototype.slice.call` and not assigning `arguments` to a\n // variable as a ternary expression\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n // mimic the constructor's `return` behavior\n // http://es5.github.io/#x13.2.2\n if (this instanceof bound) {\n // ensure `new bound` is an instance of `func`\n var thisBinding = baseCreate(func.prototype),\n result = func.apply(thisBinding, args || arguments);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisArg, args || arguments);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseBind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `createWrapper` that creates the wrapper and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new function.\n */\nfunction baseCreateWrapper(bindData) {\n var func = bindData[0],\n bitmask = bindData[1],\n partialArgs = bindData[2],\n partialRightArgs = bindData[3],\n thisArg = bindData[4],\n arity = bindData[5];\n\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n key = func;\n\n function bound() {\n var thisBinding = isBind ? thisArg : this;\n if (partialArgs) {\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n if (partialRightArgs || isCurry) {\n args || (args = slice(arguments));\n if (partialRightArgs) {\n push.apply(args, partialRightArgs);\n }\n if (isCurry && args.length < arity) {\n bitmask |= 16 & ~32;\n return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n }\n }\n args || (args = arguments);\n if (isBindKey) {\n func = thisBinding[key];\n }\n if (this instanceof bound) {\n thisBinding = baseCreate(func.prototype);\n var result = func.apply(thisBinding, args);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisBinding, args);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseCreateWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n isObject = require('../objects/isObject'),\n noop = require('../utilities/noop');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(prototype, properties) {\n return isObject(prototype) ? nativeCreate(prototype) : {};\n}\n// fallback for browsers without `Object.create`\nif (!nativeCreate) {\n baseCreate = (function() {\n function Object() {}\n return function(prototype) {\n if (isObject(prototype)) {\n Object.prototype = prototype;\n var result = new Object;\n Object.prototype = null;\n }\n return result || global.Object();\n };\n }());\n}\n\nmodule.exports = baseCreate;\n"],"sourceRoot":"webpack-module://"} \ No newline at end of file diff --git a/build/fluxxor.min.js b/build/fluxxor.min.js index 66e9830..c5bcaac 100644 --- a/build/fluxxor.min.js +++ b/build/fluxxor.min.js @@ -1,4 +1,4 @@ -!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):"object"==typeof exports?exports.Fluxxor=n():t.Fluxxor=n()}(this,function(){return function(t){function n(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var e={};return n.m=t,n.c=e,n.p="",n(0)}([function(t,n,e){var r=e(17),o=e(30),i=e(32),u=e(31),s=e(34),a=e(29),c={Dispatcher:r,Flux:o,FluxMixin:i,FluxChildMixin:u,StoreWatchMixin:s,createStore:a,version:e(61)};t.exports=c},function(t,n,e){var r=e(3),o=e(10),i=e(4),u=function(t,n,e){var u,s=t,a=s;if(!s)return a;if(!i[typeof s])return a;n=n&&"undefined"==typeof e?n:r(n,e,3);for(var c=-1,f=i[typeof s]&&o(s),p=f?f.length:0;++co?0:o);++r-1)throw new Error("A store cannot wait on itself");var o=this.currentDispatch[r];if(o.waitingOn.length)throw new Error(r+" already waiting on stores");c(n,function(t){var n=this.currentDispatch[t];if(!this.stores[t])throw new Error("Cannot wait for non-existent store "+t);if(n.waitingOn.indexOf(r)>-1)throw new Error("Circular wait detected between "+r+" and "+t)},this),o.resolved=!1,o.waitingOn=l(o.waitingOn.concat(n)),o.waitCallback=e},t.exports=h},function(t){"use strict";function n(t,n,e){this.fn=t,this.context=n,this.once=e||!1}function e(){}e.prototype._events=void 0,e.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];for(var n=0,e=this._events[t].length,r=[];e>n;n++)r.push(this._events[t][n].fn);return r},e.prototype.emit=function(t,n,e,r,o,i){if(!this._events||!this._events[t])return!1;var u,s,a,c=this._events[t],f=c.length,p=arguments.length,l=c[0];if(1===f){switch(l.once&&this.removeListener(t,l.fn,!0),p){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,n),!0;case 3:return l.fn.call(l.context,n,e),!0;case 4:return l.fn.call(l.context,n,e,r),!0;case 5:return l.fn.call(l.context,n,e,r,o),!0;case 6:return l.fn.call(l.context,n,e,r,o,i),!0}for(s=1,u=new Array(p-1);p>s;s++)u[s-1]=arguments[s];l.fn.apply(l.context,u)}else for(s=0;f>s;s++)switch(c[s].once&&this.removeListener(t,c[s].fn,!0),p){case 1:c[s].fn.call(c[s].context);break;case 2:c[s].fn.call(c[s].context,n);break;case 3:c[s].fn.call(c[s].context,n,e);break;default:if(!u)for(a=1,u=new Array(p-1);p>a;a++)u[a-1]=arguments[a];c[s].fn.apply(c[s].context,u)}return!0},e.prototype.on=function(t,e,r){return this._events||(this._events={}),this._events[t]||(this._events[t]=[]),this._events[t].push(new n(e,r||this)),this},e.prototype.once=function(t,e,r){return this._events||(this._events={}),this._events[t]||(this._events[t]=[]),this._events[t].push(new n(e,r||this,!0)),this},e.prototype.removeListener=function(t,n,e){if(!this._events||!this._events[t])return this;var r=this._events[t],o=[];if(n)for(var i=0,u=r.length;u>i;i++)r[i].fn!==n&&r[i].once!==e&&o.push(r[i]);return this._events[t]=o.length?o:null,this},e.prototype.removeAllListeners=function(t){return this._events?(t?this._events[t]=null:this._events={},this):this},e.prototype.off=e.prototype.removeListener,e.prototype.addListener=e.prototype.on,e.prototype.setMaxListeners=function(){return this},e.EventEmitter=e,e.EventEmitter2=e,e.EventEmitter3=e,"object"==typeof t&&t.exports&&(t.exports=e)},function(t){var n=[];t.exports=n},function(t,n,e){(function(n){function r(t){return i(t)?u(t):{}}var o=e(7),i=e(2),u=(e(28),o(u=Object.create)&&u);u||(r=function(){function t(){}return function(e){if(i(e)){t.prototype=e;var r=new t;t.prototype=null}return r||n.Object()}}()),t.exports=r}).call(n,function(){return this}())},function(t,n,e){function r(t,n){var e=typeof n;if(t=t.cache,"boolean"==e||null==n)return t[n]?0:-1;"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:i+n;return t=(t=t[e])&&t[r],"object"==e?t&&o(t,n)>-1?0:-1:t?0:-1}var o=e(14),i=e(23);t.exports=r},function(t,n,e){function r(t){var n=-1,e=t.length,r=t[0],u=t[e/2|0],s=t[e-1];if(r&&"object"==typeof r&&u&&"object"==typeof u&&s&&"object"==typeof s)return!1;var a=i();a["false"]=a["null"]=a["true"]=a.undefined=!1;var c=i();for(c.array=t,c.cache=a,c.push=o;++n1&&t.length%2!==0)throw new Error("bindActions must take an even number of arguments.");var n=function(t,n){if(!n)throw new Error("The handler for action type "+t+" is falsy");this.__actions__[t]=n}.bind(this);if(1===t.length&&s(t[0])){t=t[0];for(var e in t)t.hasOwnProperty(e)&&n(e,t[e])}else for(var r=0;r=f&&u(n?t[n]:y)))}var d=t[0],g=-1,b=d?d.length:0,w=[];t:for(;++g2?o(t,17,i(arguments,2),null,n):o(t,1,null,null,n)}var o=e(47),i=e(8);t.exports=r},function(t,n,e){function r(t){function n(){if(r){var t=s(r);c.apply(t,arguments)}if(this instanceof n){var u=o(e.prototype),f=e.apply(u,t||arguments);return i(f)?f:u}return e.apply(a,t||arguments)}var e=t[0],r=t[2],a=t[4];return u(n,t),n}var o=e(20),i=e(2),u=e(16),s=e(8),a=[],c=a.push;t.exports=r},function(t,n,e){function r(t,n,e,h,v){if(e){var d=e(t);if("undefined"!=typeof d)return d}var b=c(t);if(!b)return t;var j=A.call(t);if(!_[j])return t;var O=S[j];switch(j){case y:case x:return new O(+t);case g:case m:return new O(t);case w:return d=O(t.source,l.exec(t)),d.lastIndex=t.lastIndex,d}var E=a(t);if(n){var D=!h;h||(h=s()),v||(v=s());for(var T=h.length;T--;)if(h[T]==t)return v[T];d=E?O(t.length):{}}else d=E?p(t):o({},t);return E&&(F.call(t,"index")&&(d.index=t.index),F.call(t,"input")&&(d.input=t.input)),n?(h.push(t),v.push(d),(E?i:u)(t,function(t,o){d[o]=r(t,n,e,h,v)}),D&&(f(h),f(v)),d):d}var o=e(50),i=e(5),u=e(1),s=e(11),a=e(27),c=e(2),f=e(12),p=e(8),l=/\w*$/,h="[object Arguments]",v="[object Array]",y="[object Boolean]",x="[object Date]",d="[object Function]",g="[object Number]",b="[object Object]",w="[object RegExp]",m="[object String]",_={};_[d]=!1,_[h]=_[v]=_[y]=_[x]=_[g]=_[b]=_[w]=_[m]=!0;var j=Object.prototype,A=j.toString,F=j.hasOwnProperty,S={};S[v]=Array,S[y]=Boolean,S[x]=Date,S[d]=Function,S[b]=Object,S[g]=Number,S[w]=RegExp,S[m]=String,t.exports=r},function(t,n,e){function r(t){function n(){var t=v?l:this;if(f){var u=s(f);c.apply(u,arguments)}if((p||x)&&(u||(u=s(arguments)),p&&c.apply(u,p),x&&u.length-1:void 0});return w.pop(),m.pop(),C&&(a(w),a(m)),_}var o=e(53),i=e(11),u=e(9),s=e(4),a=e(12),c="[object Arguments]",f="[object Array]",p="[object Boolean]",l="[object Date]",h="[object Number]",v="[object Object]",y="[object RegExp]",x="[object String]",d=Object.prototype,g=d.toString,b=d.hasOwnProperty;t.exports=r},function(t,n,e){function r(t,n,e){var r=-1,p=o,l=t?t.length:0,h=[],v=!n&&l>=a,y=e||v?s():h;if(v){var x=u(y);p=i,y=x}for(;++r3&&"function"==typeof c[p-2])var l=r(c[--p-1],c[p--],2);else p>2&&"function"==typeof c[p-1]&&(l=c[--p]);for(;++fo;o++)if(void 0!==(r=l.get(t,n[o])))return r;return e},l.get=function(n,o,i){if(e(o)&&(o=[o]),t(o))return n;if(t(n))return i;if(r(o))return l.get(n,o.split("."),i);var u=s(o[0]);return 1===o.length?void 0===n[u]?i:n[u]:l.get(n[u],o.slice(1),i)},l.del=function(t,n){return c(t,n)},l})},function(t){t.exports="1.5.0"}])}); +!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):"object"==typeof exports?exports.Fluxxor=n():t.Fluxxor=n()}(this,function(){return function(t){function n(r){if(e[r])return e[r].exports;var o=e[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var e={};return n.m=t,n.c=e,n.p="",n(0)}([function(t,n,e){var r=e(17),o=e(30),i=e(32),u=e(31),s=e(34),a=e(29),c={Dispatcher:r,Flux:o,FluxMixin:i,FluxChildMixin:u,StoreWatchMixin:s,createStore:a,version:e(61)};t.exports=c},function(t,n,e){var r=e(3),o=e(10),i=e(4),u=function(t,n,e){var u,s=t,a=s;if(!s)return a;if(!i[typeof s])return a;n=n&&"undefined"==typeof e?n:r(n,e,3);for(var c=-1,f=i[typeof s]&&o(s),p=f?f.length:0;++co?0:o);++r-1)throw new Error("A store cannot wait on itself");var o=this.currentDispatch[r];if(o.waitingOn.length)throw new Error(r+" already waiting on stores");c(n,function(t){var n=this.currentDispatch[t];if(!this.stores[t])throw new Error("Cannot wait for non-existent store "+t);if(n.waitingOn.indexOf(r)>-1)throw new Error("Circular wait detected between "+r+" and "+t)},this),o.resolved=!1,o.waitingOn=l(o.waitingOn.concat(n)),o.waitCallback=e},t.exports=h},function(t){"use strict";function n(t,n,e){this.fn=t,this.context=n,this.once=e||!1}function e(){}e.prototype._events=void 0,e.prototype.listeners=function(t){if(!this._events||!this._events[t])return[];for(var n=0,e=this._events[t].length,r=[];e>n;n++)r.push(this._events[t][n].fn);return r},e.prototype.emit=function(t,n,e,r,o,i){if(!this._events||!this._events[t])return!1;var u,s,a,c=this._events[t],f=c.length,p=arguments.length,l=c[0];if(1===f){switch(l.once&&this.removeListener(t,l.fn,!0),p){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,n),!0;case 3:return l.fn.call(l.context,n,e),!0;case 4:return l.fn.call(l.context,n,e,r),!0;case 5:return l.fn.call(l.context,n,e,r,o),!0;case 6:return l.fn.call(l.context,n,e,r,o,i),!0}for(s=1,u=new Array(p-1);p>s;s++)u[s-1]=arguments[s];l.fn.apply(l.context,u)}else for(s=0;f>s;s++)switch(c[s].once&&this.removeListener(t,c[s].fn,!0),p){case 1:c[s].fn.call(c[s].context);break;case 2:c[s].fn.call(c[s].context,n);break;case 3:c[s].fn.call(c[s].context,n,e);break;default:if(!u)for(a=1,u=new Array(p-1);p>a;a++)u[a-1]=arguments[a];c[s].fn.apply(c[s].context,u)}return!0},e.prototype.on=function(t,e,r){return this._events||(this._events={}),this._events[t]||(this._events[t]=[]),this._events[t].push(new n(e,r||this)),this},e.prototype.once=function(t,e,r){return this._events||(this._events={}),this._events[t]||(this._events[t]=[]),this._events[t].push(new n(e,r||this,!0)),this},e.prototype.removeListener=function(t,n,e){if(!this._events||!this._events[t])return this;var r=this._events[t],o=[];if(n)for(var i=0,u=r.length;u>i;i++)r[i].fn!==n&&r[i].once!==e&&o.push(r[i]);return this._events[t]=o.length?o:null,this},e.prototype.removeAllListeners=function(t){return this._events?(t?this._events[t]=null:this._events={},this):this},e.prototype.off=e.prototype.removeListener,e.prototype.addListener=e.prototype.on,e.prototype.setMaxListeners=function(){return this},e.EventEmitter=e,e.EventEmitter2=e,e.EventEmitter3=e,"object"==typeof t&&t.exports&&(t.exports=e)},function(t){var n=[];t.exports=n},function(t,n,e){(function(n){function r(t){return i(t)?u(t):{}}var o=e(7),i=e(2),u=(e(28),o(u=Object.create)&&u);u||(r=function(){function t(){}return function(e){if(i(e)){t.prototype=e;var r=new t;t.prototype=null}return r||n.Object()}}()),t.exports=r}).call(n,function(){return this}())},function(t,n,e){function r(t,n){var e=typeof n;if(t=t.cache,"boolean"==e||null==n)return t[n]?0:-1;"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:i+n;return t=(t=t[e])&&t[r],"object"==e?t&&o(t,n)>-1?0:-1:t?0:-1}var o=e(14),i=e(23);t.exports=r},function(t,n,e){function r(t){var n=-1,e=t.length,r=t[0],u=t[e/2|0],s=t[e-1];if(r&&"object"==typeof r&&u&&"object"==typeof u&&s&&"object"==typeof s)return!1;var a=i();a["false"]=a["null"]=a["true"]=a.undefined=!1;var c=i();for(c.array=t,c.cache=a,c.push=o;++n1&&t.length%2!==0)throw new Error("bindActions must take an even number of arguments.");var n=function(t,n){if(!n)throw new Error("The handler for action type "+t+" is falsy");this.__actions__[t]=n}.bind(this);if(1===t.length&&s(t[0])){t=t[0];for(var e in t)t.hasOwnProperty(e)&&n(e,t[e])}else for(var r=0;r=f&&u(n?t[n]:y)))}var d=t[0],g=-1,b=d?d.length:0,w=[];t:for(;++g2?o(t,17,i(arguments,2),null,n):o(t,1,null,null,n)}var o=e(47),i=e(8);t.exports=r},function(t,n,e){function r(t){function n(){if(r){var t=s(r);c.apply(t,arguments)}if(this instanceof n){var u=o(e.prototype),f=e.apply(u,t||arguments);return i(f)?f:u}return e.apply(a,t||arguments)}var e=t[0],r=t[2],a=t[4];return u(n,t),n}var o=e(20),i=e(2),u=e(16),s=e(8),a=[],c=a.push;t.exports=r},function(t,n,e){function r(t,n,e,h,v){if(e){var d=e(t);if("undefined"!=typeof d)return d}var b=c(t);if(!b)return t;var j=A.call(t);if(!_[j])return t;var O=S[j];switch(j){case y:case x:return new O(+t);case g:case m:return new O(t);case w:return d=O(t.source,l.exec(t)),d.lastIndex=t.lastIndex,d}var E=a(t);if(n){var D=!h;h||(h=s()),v||(v=s());for(var T=h.length;T--;)if(h[T]==t)return v[T];d=E?O(t.length):{}}else d=E?p(t):o({},t);return E&&(F.call(t,"index")&&(d.index=t.index),F.call(t,"input")&&(d.input=t.input)),n?(h.push(t),v.push(d),(E?i:u)(t,function(t,o){d[o]=r(t,n,e,h,v)}),D&&(f(h),f(v)),d):d}var o=e(50),i=e(5),u=e(1),s=e(11),a=e(27),c=e(2),f=e(12),p=e(8),l=/\w*$/,h="[object Arguments]",v="[object Array]",y="[object Boolean]",x="[object Date]",d="[object Function]",g="[object Number]",b="[object Object]",w="[object RegExp]",m="[object String]",_={};_[d]=!1,_[h]=_[v]=_[y]=_[x]=_[g]=_[b]=_[w]=_[m]=!0;var j=Object.prototype,A=j.toString,F=j.hasOwnProperty,S={};S[v]=Array,S[y]=Boolean,S[x]=Date,S[d]=Function,S[b]=Object,S[g]=Number,S[w]=RegExp,S[m]=String,t.exports=r},function(t,n,e){function r(t){function n(){var t=v?l:this;if(f){var u=s(f);c.apply(u,arguments)}if((p||x)&&(u||(u=s(arguments)),p&&c.apply(u,p),x&&u.length-1:void 0});return w.pop(),m.pop(),C&&(a(w),a(m)),_}var o=e(53),i=e(11),u=e(9),s=e(4),a=e(12),c="[object Arguments]",f="[object Array]",p="[object Boolean]",l="[object Date]",h="[object Number]",v="[object Object]",y="[object RegExp]",x="[object String]",d=Object.prototype,g=d.toString,b=d.hasOwnProperty;t.exports=r},function(t,n,e){function r(t,n,e){var r=-1,p=o,l=t?t.length:0,h=[],v=!n&&l>=a,y=e||v?s():h;if(v){var x=u(y);p=i,y=x}for(;++r3&&"function"==typeof c[p-2])var l=r(c[--p-1],c[p--],2);else p>2&&"function"==typeof c[p-1]&&(l=c[--p]);for(;++fo;o++)if(void 0!==(r=l.get(t,n[o])))return r;return e},l.get=function(n,o,i){if(e(o)&&(o=[o]),t(o))return n;if(t(n))return i;if(r(o))return l.get(n,o.split("."),i);var u=s(o[0]);return 1===o.length?void 0===n[u]?i:n[u]:l.get(n[u],o.slice(1),i)},l.del=function(t,n){return c(t,n)},l})},function(t){t.exports="1.5.1"}])}); /* //@ sourceMappingURL=fluxxor.min.js.map */ \ No newline at end of file diff --git a/build/fluxxor.min.js.map b/build/fluxxor.min.js.map index 41876b3..bbacc5e 100644 --- a/build/fluxxor.min.js.map +++ b/build/fluxxor.min.js.map @@ -1 +1 @@ -{"version":3,"file":"fluxxor.min.js","sources":["webpack/universalModuleDefinition","fluxxor.min.js","webpack/bootstrap fd3ac0f4b7261bd77ac2*","./index.js","./~/lodash-node/modern/objects/forOwn.js","./~/lodash-node/modern/objects/isObject.js","./~/lodash-node/modern/internals/baseCreateCallback.js","./~/lodash-node/modern/internals/objectTypes.js","./~/lodash-node/modern/collections/forEach.js","./~/lodash-node/modern/functions/createCallback.js","./~/lodash-node/modern/internals/isNative.js","./~/lodash-node/modern/internals/slice.js","./~/lodash-node/modern/objects/isFunction.js","./~/lodash-node/modern/objects/keys.js","./~/lodash-node/modern/internals/getArray.js","./~/lodash-node/modern/internals/releaseArray.js","./~/inherits/inherits_browser.js","./~/lodash-node/modern/internals/baseIndexOf.js","./~/lodash-node/modern/internals/releaseObject.js","./~/lodash-node/modern/internals/setBindData.js","./lib/dispatcher.js","./~/eventemitter3/index.js","./~/lodash-node/modern/internals/arrayPool.js","./~/lodash-node/modern/internals/baseCreate.js","./~/lodash-node/modern/internals/cacheIndexOf.js","./~/lodash-node/modern/internals/createCache.js","./~/lodash-node/modern/internals/keyPrefix.js","./~/lodash-node/modern/internals/largeArraySize.js","./~/lodash-node/modern/internals/maxPoolSize.js","./~/lodash-node/modern/internals/objectPool.js","./~/lodash-node/modern/objects/isArray.js","./~/lodash-node/modern/utilities/noop.js","./lib/create_store.js","./lib/flux.js","./lib/flux_child_mixin.js","./lib/flux_mixin.js","./lib/store.js","./lib/store_watch_mixin.js","./~/lodash-node/modern/arrays/intersection.js","./~/lodash-node/modern/arrays/uniq.js","./~/lodash-node/modern/collections/map.js","./~/lodash-node/modern/collections/reduce.js","./~/lodash-node/modern/collections/size.js","./~/lodash-node/modern/functions/bind.js","./~/lodash-node/modern/internals/baseBind.js","./~/lodash-node/modern/internals/baseClone.js","./~/lodash-node/modern/internals/baseCreateWrapper.js","./~/lodash-node/modern/internals/baseIsEqual.js","./~/lodash-node/modern/internals/baseUniq.js","./~/lodash-node/modern/internals/cachePush.js","./~/lodash-node/modern/internals/createWrapper.js","./~/lodash-node/modern/internals/getObject.js","./~/lodash-node/modern/internals/shimKeys.js","./~/lodash-node/modern/objects/assign.js","./~/lodash-node/modern/objects/clone.js","./~/lodash-node/modern/objects/findKey.js","./~/lodash-node/modern/objects/forIn.js","./~/lodash-node/modern/objects/isArguments.js","./~/lodash-node/modern/objects/isString.js","./~/lodash-node/modern/objects/mapValues.js","./~/lodash-node/modern/support.js","./~/lodash-node/modern/utilities/identity.js","./~/lodash-node/modern/utilities/property.js","./~/object-path/index.js","./version.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Dispatcher","Flux","FluxMixin","FluxChildMixin","StoreWatchMixin","createStore","Fluxxor","version","baseCreateCallback","keys","objectTypes","forOwn","collection","callback","thisArg","index","iterable","result","ownIndex","ownProps","length","isObject","value","func","argCount","identity","bindData","__bindData__","support","funcNames","name","funcDecomp","source","fnToString","reFuncName","test","reThis","setBindData","a","b","accumulator","bind","Function","prototype","toString","boolean","function","object","number","string","undefined","forEach","createCallback","type","property","props","key","baseIsEqual","isNative","reNative","objectProto","Object","RegExp","String","replace","slice","array","start","end","Array","isFunction","shimKeys","nativeKeys","getArray","arrayPool","pop","releaseArray","maxPoolSize","push","create","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","baseIndexOf","fromIndex","releaseObject","cache","criteria","objectPool","noop","descriptor","defineProperty","o","e","_clone","_mapValues","_forOwn","_intersection","_keys","_map","_each","_size","_findKey","_uniq","stores","currentDispatch","currentActionType","waitingToDispatch","hasOwnProperty","addStore","store","dispatcher","dispatch","action","Error","complaint","resolved","waitingOn","waitCallback","doDispatchLoop","canBeDispatchedTo","wasHandled","removeFromDispatchQueue","dispatchedThisLoop","fn","apply","handled","__handleAction__","storesWithCircularWaits","join","console","warn","waitForStores","waitingStoreName","val","indexOf","storeName","storeDispatch","concat","EE","context","once","EventEmitter","_events","listeners","event","i","l","ee","emit","a1","a2","a3","a4","a5","args","j","len","arguments","removeListener","on","events","removeAllListeners","off","addListener","setMaxListeners","EventEmitter2","EventEmitter3","global","baseCreate","nativeCreate","cacheIndexOf","keyPrefix","createCache","first","mid","last","getObject","cachePush","Date","largeArraySize","arrayClass","nativeIsArray","isArray","_isFunction","Store","inherits","RESERVED_KEYS","spec","options","bindActions","initialize","objectPath","_reduce","_isString","findLeaves","obj","path","actions","flux","dispatchBinder","payload","addActions","addStores","addAction","leadingPaths","acc","next","nextPath","get","set","React","componentWillMount","namePart","displayName","message","contextTypes","PropTypes","getFlux","childContextTypes","getChildContext","__actions__","_isObject","handler","bindAction","waitFor","storeNames","_setStateFromFlux","componentWillUnmount","isMounted","setState","getStateFromFlux","getInitialState","intersection","argsIndex","argsLength","caches","trustIndexOf","seen","isArguments","outer","uniq","isSorted","baseUniq","map","reduce","noaccum","size","createWrapper","baseBind","bound","partialArgs","thisBinding","arrayRef","baseClone","isDeep","stackA","stackB","isObj","className","cloneableClasses","ctorByClass","boolClass","dateClass","numberClass","stringClass","regexpClass","reFlags","exec","lastIndex","isArr","initedStack","assign","input","objValue","argsClass","funcClass","objectClass","Boolean","Number","baseCreateWrapper","isBind","partialRightArgs","isCurry","arity","bitmask","isCurryBound","isBindKey","isWhere","otherType","otherClass","aWrapped","bWrapped","__wrapped__","ctorA","ctorB","forIn","isLarge","computed","typeCache","isPartial","isPartialRight","TypeError","unshift","creater","false","null","true","guard","clone","findKey","isString","mapValues","WinRTError","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isEmpty","_hasOwnProperty","toStr","isNumber","isBoolean","getKey","intKey","parseInt","doNotReplace","split","currentPath","oldVal","del","splice","ensureExists","insert","at","arr","empty","coalesce","paths","defaultValue"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn ","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/ \t\t\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/******/ \t\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/ \t\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/ \t\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/ \t\n/******/ \t\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Dispatcher = __webpack_require__(17),\n\t Flux = __webpack_require__(30),\n\t FluxMixin = __webpack_require__(32),\n\t FluxChildMixin = __webpack_require__(31),\n\t StoreWatchMixin = __webpack_require__(34),\n\t createStore = __webpack_require__(29);\n\t\n\tvar Fluxxor = {\n\t Dispatcher: Dispatcher,\n\t Flux: Flux,\n\t FluxMixin: FluxMixin,\n\t FluxChildMixin: FluxChildMixin,\n\t StoreWatchMixin: StoreWatchMixin,\n\t createStore: createStore,\n\t version: __webpack_require__(61)\n\t};\n\t\n\tmodule.exports = Fluxxor;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t keys = __webpack_require__(10),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Iterates over own enumerable properties of an object, executing the callback\n\t * for each property. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, key, object). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n\t */\n\tvar forOwn = function(collection, callback, thisArg) {\n\t var index, iterable = collection, result = iterable;\n\t if (!iterable) return result;\n\t if (!objectTypes[typeof iterable]) return result;\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t var ownIndex = -1,\n\t ownProps = objectTypes[typeof iterable] && keys(iterable),\n\t length = ownProps ? ownProps.length : 0;\n\t\n\t while (++ownIndex < length) {\n\t index = ownProps[ownIndex];\n\t if (callback(iterable[index], index, collection) === false) return result;\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = forOwn;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Checks if `value` is the language type of Object.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // check if the value is the ECMAScript language type of Object\n\t // http://es5.github.io/#x8\n\t // and avoid a V8 bug\n\t // http://code.google.com/p/v8/issues/detail?id=2291\n\t return !!(value && objectTypes[typeof value]);\n\t}\n\t\n\tmodule.exports = isObject;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar bind = __webpack_require__(40),\n\t identity = __webpack_require__(58),\n\t setBindData = __webpack_require__(16),\n\t support = __webpack_require__(57);\n\t\n\t/** Used to detected named functions */\n\tvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\t\n\t/** Used to detect functions containing a `this` reference */\n\tvar reThis = /\\bthis\\b/;\n\t\n\t/** Native method shortcuts */\n\tvar fnToString = Function.prototype.toString;\n\t\n\t/**\n\t * The base implementation of `_.createCallback` without support for creating\n\t * \"_.pluck\" or \"_.where\" style callbacks.\n\t *\n\t * @private\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t */\n\tfunction baseCreateCallback(func, thisArg, argCount) {\n\t if (typeof func != 'function') {\n\t return identity;\n\t }\n\t // exit early for no `thisArg` or already bound by `Function#bind`\n\t if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n\t return func;\n\t }\n\t var bindData = func.__bindData__;\n\t if (typeof bindData == 'undefined') {\n\t if (support.funcNames) {\n\t bindData = !func.name;\n\t }\n\t bindData = bindData || !support.funcDecomp;\n\t if (!bindData) {\n\t var source = fnToString.call(func);\n\t if (!support.funcNames) {\n\t bindData = !reFuncName.test(source);\n\t }\n\t if (!bindData) {\n\t // checks if `func` references the `this` keyword and stores the result\n\t bindData = reThis.test(source);\n\t setBindData(func, bindData);\n\t }\n\t }\n\t }\n\t // exit early if there are no `this` references or `func` is bound\n\t if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n\t return func;\n\t }\n\t switch (argCount) {\n\t case 1: return function(value) {\n\t return func.call(thisArg, value);\n\t };\n\t case 2: return function(a, b) {\n\t return func.call(thisArg, a, b);\n\t };\n\t case 3: return function(value, index, collection) {\n\t return func.call(thisArg, value, index, collection);\n\t };\n\t case 4: return function(accumulator, value, index, collection) {\n\t return func.call(thisArg, accumulator, value, index, collection);\n\t };\n\t }\n\t return bind(func, thisArg);\n\t}\n\t\n\tmodule.exports = baseCreateCallback;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to determine if values are of the language type Object */\n\tvar objectTypes = {\n\t 'boolean': false,\n\t 'function': true,\n\t 'object': true,\n\t 'number': false,\n\t 'string': false,\n\t 'undefined': false\n\t};\n\t\n\tmodule.exports = objectTypes;\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Iterates over elements of a collection, executing the callback for each\n\t * element. The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * Note: As with other \"Collections\" methods, objects with a `length` property\n\t * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n\t * may be used for object iteration.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias each\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array|Object|string} Returns `collection`.\n\t * @example\n\t *\n\t * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n\t * // => logs each number and returns '1,2,3'\n\t *\n\t * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n\t * // => logs each number and returns the object (property order is not guaranteed across environments)\n\t */\n\tfunction forEach(collection, callback, thisArg) {\n\t var index = -1,\n\t length = collection ? collection.length : 0;\n\t\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t if (typeof length == 'number') {\n\t while (++index < length) {\n\t if (callback(collection[index], index, collection) === false) {\n\t break;\n\t }\n\t }\n\t } else {\n\t forOwn(collection, callback);\n\t }\n\t return collection;\n\t}\n\t\n\tmodule.exports = forEach;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t baseIsEqual = __webpack_require__(44),\n\t isObject = __webpack_require__(2),\n\t keys = __webpack_require__(10),\n\t property = __webpack_require__(59);\n\t\n\t/**\n\t * Produces a callback bound to an optional `thisArg`. If `func` is a property\n\t * name the created callback will return the property value for a given element.\n\t * If `func` is an object the created callback will return `true` for elements\n\t * that contain the equivalent object properties, otherwise it will return `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // wrap to create custom callback shorthands\n\t * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n\t * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n\t * return !match ? func(callback, thisArg) : function(object) {\n\t * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n\t * };\n\t * });\n\t *\n\t * _.filter(characters, 'age__gt38');\n\t * // => [{ 'name': 'fred', 'age': 40 }]\n\t */\n\tfunction createCallback(func, thisArg, argCount) {\n\t var type = typeof func;\n\t if (func == null || type == 'function') {\n\t return baseCreateCallback(func, thisArg, argCount);\n\t }\n\t // handle \"_.pluck\" style callback shorthands\n\t if (type != 'object') {\n\t return property(func);\n\t }\n\t var props = keys(func),\n\t key = props[0],\n\t a = func[key];\n\t\n\t // handle \"_.where\" style callback shorthands\n\t if (props.length == 1 && a === a && !isObject(a)) {\n\t // fast path the common case of providing an object with a single\n\t // property containing a primitive value\n\t return function(object) {\n\t var b = object[key];\n\t return a === b && (a !== 0 || (1 / a == 1 / b));\n\t };\n\t }\n\t return function(object) {\n\t var length = props.length,\n\t result = false;\n\t\n\t while (length--) {\n\t if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n\t break;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\t\n\tmodule.exports = createCallback;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Used to detect if a method is native */\n\tvar reNative = RegExp('^' +\n\t String(toString)\n\t .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\t .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n\t);\n\t\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n\t */\n\tfunction isNative(value) {\n\t return typeof value == 'function' && reNative.test(value);\n\t}\n\t\n\tmodule.exports = isNative;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Slices the `collection` from the `start` index up to, but not including,\n\t * the `end` index.\n\t *\n\t * Note: This function is used instead of `Array#slice` to support node lists\n\t * in IE < 9 and to ensure dense arrays are returned.\n\t *\n\t * @private\n\t * @param {Array|Object|string} collection The collection to slice.\n\t * @param {number} start The start index.\n\t * @param {number} end The end index.\n\t * @returns {Array} Returns the new array.\n\t */\n\tfunction slice(array, start, end) {\n\t start || (start = 0);\n\t if (typeof end == 'undefined') {\n\t end = array ? array.length : 0;\n\t }\n\t var index = -1,\n\t length = end - start || 0,\n\t result = Array(length < 0 ? 0 : length);\n\t\n\t while (++index < length) {\n\t result[index] = array[start + index];\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = slice;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Checks if `value` is a function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t */\n\tfunction isFunction(value) {\n\t return typeof value == 'function';\n\t}\n\t\n\tmodule.exports = isFunction;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t isObject = __webpack_require__(2),\n\t shimKeys = __webpack_require__(49);\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\t\n\t/**\n\t * Creates an array composed of the own enumerable property names of an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t * @example\n\t *\n\t * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n\t */\n\tvar keys = !nativeKeys ? shimKeys : function(object) {\n\t if (!isObject(object)) {\n\t return [];\n\t }\n\t return nativeKeys(object);\n\t};\n\t\n\tmodule.exports = keys;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar arrayPool = __webpack_require__(19);\n\t\n\t/**\n\t * Gets an array from the array pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Array} The array from the pool.\n\t */\n\tfunction getArray() {\n\t return arrayPool.pop() || [];\n\t}\n\t\n\tmodule.exports = getArray;\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar arrayPool = __webpack_require__(19),\n\t maxPoolSize = __webpack_require__(25);\n\t\n\t/**\n\t * Releases the given array back to the array pool.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to release.\n\t */\n\tfunction releaseArray(array) {\n\t array.length = 0;\n\t if (arrayPool.length < maxPoolSize) {\n\t arrayPool.push(array);\n\t }\n\t}\n\t\n\tmodule.exports = releaseArray;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tif (typeof Object.create === 'function') {\n\t // implementation from standard node.js 'util' module\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t };\n\t} else {\n\t // old school shim for old browsers\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t var TempCtor = function () {}\n\t TempCtor.prototype = superCtor.prototype\n\t ctor.prototype = new TempCtor()\n\t ctor.prototype.constructor = ctor\n\t }\n\t}\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * The base implementation of `_.indexOf` without support for binary searches\n\t * or `fromIndex` constraints.\n\t *\n\t * @private\n\t * @param {Array} array The array to search.\n\t * @param {*} value The value to search for.\n\t * @param {number} [fromIndex=0] The index to search from.\n\t * @returns {number} Returns the index of the matched value or `-1`.\n\t */\n\tfunction baseIndexOf(array, value, fromIndex) {\n\t var index = (fromIndex || 0) - 1,\n\t length = array ? array.length : 0;\n\t\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\tmodule.exports = baseIndexOf;\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar maxPoolSize = __webpack_require__(25),\n\t objectPool = __webpack_require__(26);\n\t\n\t/**\n\t * Releases the given object back to the object pool.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to release.\n\t */\n\tfunction releaseObject(object) {\n\t var cache = object.cache;\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n\t if (objectPool.length < maxPoolSize) {\n\t objectPool.push(object);\n\t }\n\t}\n\t\n\tmodule.exports = releaseObject;\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t noop = __webpack_require__(28);\n\t\n\t/** Used as the property descriptor for `__bindData__` */\n\tvar descriptor = {\n\t 'configurable': false,\n\t 'enumerable': false,\n\t 'value': null,\n\t 'writable': false\n\t};\n\t\n\t/** Used to set meta data on functions */\n\tvar defineProperty = (function() {\n\t // IE 8 only accepts DOM elements\n\t try {\n\t var o = {},\n\t func = isNative(func = Object.defineProperty) && func,\n\t result = func(o, o, o) && func;\n\t } catch(e) { }\n\t return result;\n\t}());\n\t\n\t/**\n\t * Sets `this` binding data on a given function.\n\t *\n\t * @private\n\t * @param {Function} func The function to set data on.\n\t * @param {Array} value The data array to set.\n\t */\n\tvar setBindData = !defineProperty ? noop : function(func, value) {\n\t descriptor.value = value;\n\t defineProperty(func, '__bindData__', descriptor);\n\t};\n\t\n\tmodule.exports = setBindData;\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _clone = __webpack_require__(51),\n\t _mapValues = __webpack_require__(56),\n\t _forOwn = __webpack_require__(1),\n\t _intersection = __webpack_require__(35),\n\t _keys = __webpack_require__(10),\n\t _map = __webpack_require__(37),\n\t _each = __webpack_require__(5),\n\t _size = __webpack_require__(39),\n\t _findKey = __webpack_require__(52),\n\t _uniq = __webpack_require__(36);\n\t\n\tvar Dispatcher = function(stores) {\n\t this.stores = {};\n\t this.currentDispatch = null;\n\t this.currentActionType = null;\n\t this.waitingToDispatch = [];\n\t\n\t for (var key in stores) {\n\t if (stores.hasOwnProperty(key)) {\n\t this.addStore(key, stores[key]);\n\t }\n\t }\n\t};\n\t\n\tDispatcher.prototype.addStore = function(name, store) {\n\t store.dispatcher = this;\n\t this.stores[name] = store;\n\t};\n\t\n\tDispatcher.prototype.dispatch = function(action) {\n\t if (!action || !action.type) {\n\t throw new Error(\"Can only dispatch actions with a 'type' property\");\n\t }\n\t\n\t if (this.currentDispatch) {\n\t var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n\t this.currentActionType + \"') is being dispatched\";\n\t throw new Error(complaint);\n\t }\n\t\n\t this.waitingToDispatch = _clone(this.stores);\n\t\n\t this.currentActionType = action.type;\n\t this.currentDispatch = _mapValues(this.stores, function() {\n\t return { resolved: false, waitingOn: [], waitCallback: null };\n\t });\n\t\n\t try {\n\t this.doDispatchLoop(action);\n\t } finally {\n\t this.currentActionType = null;\n\t this.currentDispatch = null;\n\t }\n\t};\n\t\n\tDispatcher.prototype.doDispatchLoop = function(action) {\n\t var dispatch, canBeDispatchedTo, wasHandled = false,\n\t removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\t\n\t _forOwn(this.waitingToDispatch, function(value, key) {\n\t dispatch = this.currentDispatch[key];\n\t canBeDispatchedTo = !dispatch.waitingOn.length ||\n\t !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n\t if (canBeDispatchedTo) {\n\t if (dispatch.waitCallback) {\n\t var stores = _map(dispatch.waitingOn, function(key) {\n\t return this.stores[key];\n\t }, this);\n\t var fn = dispatch.waitCallback;\n\t dispatch.waitCallback = null;\n\t dispatch.waitingOn = [];\n\t dispatch.resolved = true;\n\t fn.apply(null, stores);\n\t wasHandled = true;\n\t } else {\n\t dispatch.resolved = true;\n\t var handled = this.stores[key].__handleAction__(action);\n\t if (handled) {\n\t wasHandled = true;\n\t }\n\t }\n\t\n\t dispatchedThisLoop.push(key);\n\t\n\t if (this.currentDispatch[key].resolved) {\n\t removeFromDispatchQueue.push(key);\n\t }\n\t }\n\t }, this);\n\t\n\t if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n\t var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n\t throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n\t }\n\t\n\t _each(removeFromDispatchQueue, function(key) {\n\t delete this.waitingToDispatch[key];\n\t }, this);\n\t\n\t if (_size(this.waitingToDispatch)) {\n\t this.doDispatchLoop(action);\n\t }\n\t\n\t if (!wasHandled && console && console.warn) {\n\t console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n\t }\n\t\n\t};\n\t\n\tDispatcher.prototype.waitForStores = function(store, stores, fn) {\n\t if (!this.currentDispatch) {\n\t throw new Error(\"Cannot wait unless an action is being dispatched\");\n\t }\n\t\n\t var waitingStoreName = _findKey(this.stores, function(val) {\n\t return val === store;\n\t });\n\t\n\t if (stores.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"A store cannot wait on itself\");\n\t }\n\t\n\t var dispatch = this.currentDispatch[waitingStoreName];\n\t\n\t if (dispatch.waitingOn.length) {\n\t throw new Error(waitingStoreName + \" already waiting on stores\");\n\t }\n\t\n\t _each(stores, function(storeName) {\n\t var storeDispatch = this.currentDispatch[storeName];\n\t if (!this.stores[storeName]) {\n\t throw new Error(\"Cannot wait for non-existent store \" + storeName);\n\t }\n\t if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n\t }\n\t }, this);\n\t\n\t dispatch.resolved = false;\n\t dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n\t dispatch.waitCallback = fn;\n\t};\n\t\n\tmodule.exports = Dispatcher;\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Representation of a single EventEmitter function.\n\t *\n\t * @param {Function} fn Event handler to be called.\n\t * @param {Mixed} context Context for function execution.\n\t * @param {Boolean} once Only emit once\n\t * @api private\n\t */\n\tfunction EE(fn, context, once) {\n\t this.fn = fn;\n\t this.context = context;\n\t this.once = once || false;\n\t}\n\t\n\t/**\n\t * Minimal EventEmitter interface that is molded against the Node.js\n\t * EventEmitter interface.\n\t *\n\t * @constructor\n\t * @api public\n\t */\n\tfunction EventEmitter() { /* Nothing to set */ }\n\t\n\t/**\n\t * Holds the assigned EventEmitters by name.\n\t *\n\t * @type {Object}\n\t * @private\n\t */\n\tEventEmitter.prototype._events = undefined;\n\t\n\t/**\n\t * Return a list of assigned event listeners.\n\t *\n\t * @param {String} event The events that should be listed.\n\t * @returns {Array}\n\t * @api public\n\t */\n\tEventEmitter.prototype.listeners = function listeners(event) {\n\t if (!this._events || !this._events[event]) return [];\n\t\n\t for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n\t ee.push(this._events[event][i].fn);\n\t }\n\t\n\t return ee;\n\t};\n\t\n\t/**\n\t * Emit an event to all registered event listeners.\n\t *\n\t * @param {String} event The name of the event.\n\t * @returns {Boolean} Indication if we've emitted an event.\n\t * @api public\n\t */\n\tEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n\t if (!this._events || !this._events[event]) return false;\n\t\n\t var listeners = this._events[event]\n\t , length = listeners.length\n\t , len = arguments.length\n\t , ee = listeners[0]\n\t , args\n\t , i, j;\n\t\n\t if (1 === length) {\n\t if (ee.once) this.removeListener(event, ee.fn, true);\n\t\n\t switch (len) {\n\t case 1: return ee.fn.call(ee.context), true;\n\t case 2: return ee.fn.call(ee.context, a1), true;\n\t case 3: return ee.fn.call(ee.context, a1, a2), true;\n\t case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n\t case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n\t case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n\t }\n\t\n\t for (i = 1, args = new Array(len -1); i < len; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t\n\t ee.fn.apply(ee.context, args);\n\t } else {\n\t for (i = 0; i < length; i++) {\n\t if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\t\n\t switch (len) {\n\t case 1: listeners[i].fn.call(listeners[i].context); break;\n\t case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n\t case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n\t default:\n\t if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n\t args[j - 1] = arguments[j];\n\t }\n\t\n\t listeners[i].fn.apply(listeners[i].context, args);\n\t }\n\t }\n\t }\n\t\n\t return true;\n\t};\n\t\n\t/**\n\t * Register a new EventListener for the given event.\n\t *\n\t * @param {String} event Name of the event.\n\t * @param {Functon} fn Callback function.\n\t * @param {Mixed} context The context of the function.\n\t * @api public\n\t */\n\tEventEmitter.prototype.on = function on(event, fn, context) {\n\t if (!this._events) this._events = {};\n\t if (!this._events[event]) this._events[event] = [];\n\t this._events[event].push(new EE( fn, context || this ));\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Add an EventListener that's only called once.\n\t *\n\t * @param {String} event Name of the event.\n\t * @param {Function} fn Callback function.\n\t * @param {Mixed} context The context of the function.\n\t * @api public\n\t */\n\tEventEmitter.prototype.once = function once(event, fn, context) {\n\t if (!this._events) this._events = {};\n\t if (!this._events[event]) this._events[event] = [];\n\t this._events[event].push(new EE(fn, context || this, true ));\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove event listeners.\n\t *\n\t * @param {String} event The event we want to remove.\n\t * @param {Function} fn The listener that we need to find.\n\t * @param {Boolean} once Only remove once listeners.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n\t if (!this._events || !this._events[event]) return this;\n\t\n\t var listeners = this._events[event]\n\t , events = [];\n\t\n\t if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n\t if (listeners[i].fn !== fn && listeners[i].once !== once) {\n\t events.push(listeners[i]);\n\t }\n\t }\n\t\n\t //\n\t // Reset the array, or remove it completely if we have no more listeners.\n\t //\n\t if (events.length) this._events[event] = events;\n\t else this._events[event] = null;\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove all listeners or only the listeners for the specified event.\n\t *\n\t * @param {String} event The event want to remove all listeners for.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n\t if (!this._events) return this;\n\t\n\t if (event) this._events[event] = null;\n\t else this._events = {};\n\t\n\t return this;\n\t};\n\t\n\t//\n\t// Alias methods names because people roll like that.\n\t//\n\tEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\tEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\t\n\t//\n\t// This function doesn't apply anymore.\n\t//\n\tEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n\t return this;\n\t};\n\t\n\t//\n\t// Expose the module.\n\t//\n\tEventEmitter.EventEmitter = EventEmitter;\n\tEventEmitter.EventEmitter2 = EventEmitter;\n\tEventEmitter.EventEmitter3 = EventEmitter;\n\t\n\tif ('object' === typeof module && module.exports) {\n\t module.exports = EventEmitter;\n\t}\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to pool arrays and objects used internally */\n\tvar arrayPool = [];\n\t\n\tmodule.exports = arrayPool;\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t isObject = __webpack_require__(2),\n\t noop = __webpack_require__(28);\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\t\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(prototype, properties) {\n\t return isObject(prototype) ? nativeCreate(prototype) : {};\n\t}\n\t// fallback for browsers without `Object.create`\n\tif (!nativeCreate) {\n\t baseCreate = (function() {\n\t function Object() {}\n\t return function(prototype) {\n\t if (isObject(prototype)) {\n\t Object.prototype = prototype;\n\t var result = new Object;\n\t Object.prototype = null;\n\t }\n\t return result || global.Object();\n\t };\n\t }());\n\t}\n\t\n\tmodule.exports = baseCreate;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t keyPrefix = __webpack_require__(23);\n\t\n\t/**\n\t * An implementation of `_.contains` for cache objects that mimics the return\n\t * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n\t *\n\t * @private\n\t * @param {Object} cache The cache object to inspect.\n\t * @param {*} value The value to search for.\n\t * @returns {number} Returns `0` if `value` is found, else `-1`.\n\t */\n\tfunction cacheIndexOf(cache, value) {\n\t var type = typeof value;\n\t cache = cache.cache;\n\t\n\t if (type == 'boolean' || value == null) {\n\t return cache[value] ? 0 : -1;\n\t }\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value;\n\t cache = (cache = cache[type]) && cache[key];\n\t\n\t return type == 'object'\n\t ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n\t : (cache ? 0 : -1);\n\t}\n\t\n\tmodule.exports = cacheIndexOf;\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar cachePush = __webpack_require__(46),\n\t getObject = __webpack_require__(48),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * Creates a cache object to optimize linear searches of large arrays.\n\t *\n\t * @private\n\t * @param {Array} [array=[]] The array to search.\n\t * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n\t */\n\tfunction createCache(array) {\n\t var index = -1,\n\t length = array.length,\n\t first = array[0],\n\t mid = array[(length / 2) | 0],\n\t last = array[length - 1];\n\t\n\t if (first && typeof first == 'object' &&\n\t mid && typeof mid == 'object' && last && typeof last == 'object') {\n\t return false;\n\t }\n\t var cache = getObject();\n\t cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\t\n\t var result = getObject();\n\t result.array = array;\n\t result.cache = cache;\n\t result.push = cachePush;\n\t\n\t while (++index < length) {\n\t result.push(array[index]);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = createCache;\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\n\tvar keyPrefix = +new Date + '';\n\t\n\tmodule.exports = keyPrefix;\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used as the size when optimizations are enabled for large arrays */\n\tvar largeArraySize = 75;\n\t\n\tmodule.exports = largeArraySize;\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used as the max size of the `arrayPool` and `objectPool` */\n\tvar maxPoolSize = 40;\n\t\n\tmodule.exports = maxPoolSize;\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to pool arrays and objects used internally */\n\tvar objectPool = [];\n\t\n\tmodule.exports = objectPool;\n\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7);\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar arrayClass = '[object Array]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\t\n\t/**\n\t * Checks if `value` is an array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArray(arguments); })();\n\t * // => false\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t */\n\tvar isArray = nativeIsArray || function(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == arrayClass || false;\n\t};\n\t\n\tmodule.exports = isArray;\n\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * A no-operation function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.noop(object) === undefined;\n\t * // => true\n\t */\n\tfunction noop() {\n\t // no operation performed\n\t}\n\t\n\tmodule.exports = noop;\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _each = __webpack_require__(5),\n\t _isFunction = __webpack_require__(9),\n\t Store = __webpack_require__(33),\n\t inherits = __webpack_require__(13);\n\t\n\tvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\t\n\tvar createStore = function(spec) {\n\t _each(RESERVED_KEYS, function(key) {\n\t if (spec[key]) {\n\t throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n\t }\n\t });\n\t\n\t var constructor = function(options) {\n\t options = options || {};\n\t Store.call(this);\n\t\n\t for (var key in spec) {\n\t if (key === \"actions\") {\n\t this.bindActions(spec[key]);\n\t } else if (key === \"initialize\") {\n\t // do nothing\n\t } else if (_isFunction(spec[key])) {\n\t this[key] = spec[key].bind(this);\n\t } else {\n\t this[key] = spec[key];\n\t }\n\t }\n\t\n\t if (spec.initialize) {\n\t spec.initialize.call(this, options);\n\t }\n\t };\n\t\n\t inherits(constructor, Store);\n\t return constructor;\n\t};\n\t\n\tmodule.exports = createStore;\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar EventEmitter = __webpack_require__(18),\n\t inherits = __webpack_require__(13),\n\t objectPath = __webpack_require__(60),\n\t _each = __webpack_require__(5),\n\t _reduce = __webpack_require__(38),\n\t _isFunction = __webpack_require__(9),\n\t _isString = __webpack_require__(55);\n\t\n\tvar Dispatcher = __webpack_require__(17);\n\t\n\tvar findLeaves = function(obj, path, callback) {\n\t path = path || [];\n\t\n\t for (var key in obj) {\n\t if (obj.hasOwnProperty(key)) {\n\t if (_isFunction(obj[key])) {\n\t callback(path.concat(key), obj[key]);\n\t } else {\n\t findLeaves(obj[key], path.concat(key), callback);\n\t }\n\t }\n\t }\n\t};\n\t\n\tvar Flux = function(stores, actions) {\n\t EventEmitter.call(this);\n\t this.dispatcher = new Dispatcher(stores);\n\t this.actions = {};\n\t this.stores = {};\n\t\n\t var dispatcher = this.dispatcher;\n\t var flux = this;\n\t this.dispatchBinder = {\n\t flux: flux,\n\t dispatch: function(type, payload) {\n\t try {\n\t flux.emit(\"dispatch\", type, payload);\n\t } finally {\n\t dispatcher.dispatch({type: type, payload: payload});\n\t }\n\t }\n\t };\n\t\n\t this.addActions(actions);\n\t this.addStores(stores);\n\t};\n\t\n\tinherits(Flux, EventEmitter);\n\t\n\tFlux.prototype.addActions = function(actions) {\n\t findLeaves(actions, [], this.addAction.bind(this));\n\t};\n\t\n\t// addAction has two signatures:\n\t// 1: string[, string, string, string...], actionFunction\n\t// 2: arrayOfStrings, actionFunction\n\tFlux.prototype.addAction = function() {\n\t if (arguments.length < 2) {\n\t throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n\t }\n\t\n\t var args = Array.prototype.slice.call(arguments);\n\t\n\t if (!_isFunction(args[args.length - 1])) {\n\t throw new Error(\"The last argument to addAction must be a function\");\n\t }\n\t\n\t var func = args.pop().bind(this.dispatchBinder);\n\t\n\t if (!_isString(args[0])) {\n\t args = args[0];\n\t }\n\t\n\t var leadingPaths = _reduce(args, function(acc, next) {\n\t if (acc) {\n\t var nextPath = acc[acc.length - 1].concat([next]);\n\t return acc.concat([nextPath]);\n\t } else {\n\t return [[next]];\n\t }\n\t }, null);\n\t\n\t // Detect trying to replace a function at any point in the path\n\t _each(leadingPaths, function(path) {\n\t if (_isFunction(objectPath.get(this.actions, path))) {\n\t throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n\t }\n\t }, this);\n\t\n\t // Detect trying to replace a namespace at the final point in the path\n\t if (objectPath.get(this.actions, args)) {\n\t throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n\t }\n\t\n\t objectPath.set(this.actions, args, func, true);\n\t};\n\t\n\tFlux.prototype.store = function(name) {\n\t return this.stores[name];\n\t};\n\t\n\tFlux.prototype.addStore = function(name, store) {\n\t if (name in this.stores) {\n\t throw new Error(\"A store named '\" + name + \"' already exists\");\n\t }\n\t store.flux = this;\n\t this.stores[name] = store;\n\t this.dispatcher.addStore(name, store);\n\t};\n\t\n\tFlux.prototype.addStores = function(stores) {\n\t for (var key in stores) {\n\t if (stores.hasOwnProperty(key)) {\n\t this.addStore(key, stores[key]);\n\t }\n\t }\n\t};\n\t\n\tmodule.exports = Flux;\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FluxChildMixin = function(React) {\n\t return {\n\t componentWillMount: function() {\n\t if (console && console.warn) {\n\t var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n\t message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n\t \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n\t console.warn(message);\n\t }\n\t },\n\t\n\t contextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t getFlux: function() {\n\t return this.context.flux;\n\t }\n\t };\n\t};\n\t\n\tFluxChildMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n\t \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n\t};\n\t\n\tmodule.exports = FluxChildMixin;\n\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FluxMixin = function(React) {\n\t return {\n\t componentWillMount: function() {\n\t if (!this.props.flux && (!this.context || !this.context.flux)) {\n\t var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n\t throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n\t }\n\t },\n\t\n\t childContextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t contextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t getChildContext: function() {\n\t return {\n\t flux: this.getFlux()\n\t };\n\t },\n\t\n\t getFlux: function() {\n\t return this.props.flux || (this.context && this.context.flux);\n\t }\n\t };\n\t};\n\t\n\tFluxMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n\t \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n\t};\n\t\n\tmodule.exports = FluxMixin;\n\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar EventEmitter = __webpack_require__(18),\n\t inherits = __webpack_require__(13),\n\t _isFunction = __webpack_require__(9),\n\t _isObject = __webpack_require__(2);\n\t\n\tfunction Store(dispatcher) {\n\t this.dispatcher = dispatcher;\n\t this.__actions__ = {};\n\t EventEmitter.call(this);\n\t}\n\t\n\tinherits(Store, EventEmitter);\n\t\n\tStore.prototype.__handleAction__ = function(action) {\n\t var handler;\n\t if (!!(handler = this.__actions__[action.type])) {\n\t if (_isFunction(handler)) {\n\t handler.call(this, action.payload, action.type);\n\t } else if (handler && _isFunction(this[handler])) {\n\t this[handler].call(this, action.payload, action.type);\n\t } else {\n\t throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n\t }\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t};\n\t\n\tStore.prototype.bindActions = function() {\n\t var actions = Array.prototype.slice.call(arguments);\n\t\n\t if (actions.length > 1 && actions.length % 2 !== 0) {\n\t throw new Error(\"bindActions must take an even number of arguments.\");\n\t }\n\t\n\t var bindAction = function(type, handler) {\n\t if (!handler) {\n\t throw new Error(\"The handler for action type \" + type + \" is falsy\");\n\t }\n\t\n\t this.__actions__[type] = handler;\n\t }.bind(this);\n\t\n\t if (actions.length === 1 && _isObject(actions[0])) {\n\t actions = actions[0];\n\t for (var key in actions) {\n\t if (actions.hasOwnProperty(key)) {\n\t bindAction(key, actions[key]);\n\t }\n\t }\n\t } else {\n\t for (var i = 0; i < actions.length; i += 2) {\n\t var type = actions[i],\n\t handler = actions[i+1];\n\t\n\t if (!type) {\n\t throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n\t }\n\t\n\t bindAction(type, handler);\n\t }\n\t }\n\t};\n\t\n\tStore.prototype.waitFor = function(stores, fn) {\n\t this.dispatcher.waitForStores(this, stores, fn.bind(this));\n\t};\n\t\n\tmodule.exports = Store;\n\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _each = __webpack_require__(5);\n\t\n\tvar StoreWatchMixin = function() {\n\t var storeNames = Array.prototype.slice.call(arguments);\n\t return {\n\t componentWillMount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _each(storeNames, function(store) {\n\t flux.store(store).on(\"change\", this._setStateFromFlux);\n\t }, this);\n\t },\n\t\n\t componentWillUnmount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _each(storeNames, function(store) {\n\t flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n\t }, this);\n\t },\n\t\n\t _setStateFromFlux: function() {\n\t if(this.isMounted()) {\n\t this.setState(this.getStateFromFlux());\n\t }\n\t },\n\t\n\t getInitialState: function() {\n\t return this.getStateFromFlux();\n\t }\n\t };\n\t};\n\t\n\tStoreWatchMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n\t \"store names as parameters and returns the mixin, e.g.: \" +\n\t \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n\t};\n\t\n\tmodule.exports = StoreWatchMixin;\n\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t cacheIndexOf = __webpack_require__(21),\n\t createCache = __webpack_require__(22),\n\t getArray = __webpack_require__(11),\n\t isArguments = __webpack_require__(54),\n\t isArray = __webpack_require__(27),\n\t largeArraySize = __webpack_require__(24),\n\t releaseArray = __webpack_require__(12),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * Creates an array of unique values present in all provided arrays using\n\t * strict equality for comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {...Array} [array] The arrays to inspect.\n\t * @returns {Array} Returns an array of shared values.\n\t * @example\n\t *\n\t * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n\t * // => [1, 2]\n\t */\n\tfunction intersection() {\n\t var args = [],\n\t argsIndex = -1,\n\t argsLength = arguments.length,\n\t caches = getArray(),\n\t indexOf = baseIndexOf,\n\t trustIndexOf = indexOf === baseIndexOf,\n\t seen = getArray();\n\t\n\t while (++argsIndex < argsLength) {\n\t var value = arguments[argsIndex];\n\t if (isArray(value) || isArguments(value)) {\n\t args.push(value);\n\t caches.push(trustIndexOf && value.length >= largeArraySize &&\n\t createCache(argsIndex ? args[argsIndex] : seen));\n\t }\n\t }\n\t var array = args[0],\n\t index = -1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t outer:\n\t while (++index < length) {\n\t var cache = caches[0];\n\t value = array[index];\n\t\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n\t argsIndex = argsLength;\n\t (cache || seen).push(value);\n\t while (--argsIndex) {\n\t cache = caches[argsIndex];\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n\t continue outer;\n\t }\n\t }\n\t result.push(value);\n\t }\n\t }\n\t while (argsLength--) {\n\t cache = caches[argsLength];\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t }\n\t releaseArray(caches);\n\t releaseArray(seen);\n\t return result;\n\t}\n\t\n\tmodule.exports = intersection;\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseUniq = __webpack_require__(45),\n\t createCallback = __webpack_require__(6);\n\t\n\t/**\n\t * Creates a duplicate-value-free version of an array using strict equality\n\t * for comparisons, i.e. `===`. If the array is sorted, providing\n\t * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n\t * each element of `array` is passed through the callback before uniqueness\n\t * is computed. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias unique\n\t * @category Arrays\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t * @example\n\t *\n\t * _.uniq([1, 2, 1, 3, 1]);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq([1, 1, 2, 2, 3], true);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n\t * // => ['A', 'b', 'C']\n\t *\n\t * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n\t * // => [1, 2.5, 3]\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n\t * // => [{ 'x': 1 }, { 'x': 2 }]\n\t */\n\tfunction uniq(array, isSorted, callback, thisArg) {\n\t // juggle arguments\n\t if (typeof isSorted != 'boolean' && isSorted != null) {\n\t thisArg = callback;\n\t callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n\t isSorted = false;\n\t }\n\t if (callback != null) {\n\t callback = createCallback(callback, thisArg, 3);\n\t }\n\t return baseUniq(array, isSorted, callback);\n\t}\n\t\n\tmodule.exports = uniq;\n\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Creates an array of values by running each element in the collection\n\t * through the callback. The callback is bound to `thisArg` and invoked with\n\t * three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias collect\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.map([1, 2, 3], function(num) { return num * 3; });\n\t * // => [3, 6, 9]\n\t *\n\t * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n\t * // => [3, 6, 9] (property order is not guaranteed across environments)\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.map(characters, 'name');\n\t * // => ['barney', 'fred']\n\t */\n\tfunction map(collection, callback, thisArg) {\n\t var index = -1,\n\t length = collection ? collection.length : 0;\n\t\n\t callback = createCallback(callback, thisArg, 3);\n\t if (typeof length == 'number') {\n\t var result = Array(length);\n\t while (++index < length) {\n\t result[index] = callback(collection[index], index, collection);\n\t }\n\t } else {\n\t result = [];\n\t forOwn(collection, function(value, key, collection) {\n\t result[++index] = callback(value, key, collection);\n\t });\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = map;\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Reduces a collection to a value which is the accumulated result of running\n\t * each element in the collection through the callback, where each successive\n\t * callback execution consumes the return value of the previous execution. If\n\t * `accumulator` is not provided the first element of the collection will be\n\t * used as the initial `accumulator` value. The callback is bound to `thisArg`\n\t * and invoked with four arguments; (accumulator, value, index|key, collection).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias foldl, inject\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [accumulator] Initial value of the accumulator.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the accumulated value.\n\t * @example\n\t *\n\t * var sum = _.reduce([1, 2, 3], function(sum, num) {\n\t * return sum + num;\n\t * });\n\t * // => 6\n\t *\n\t * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n\t * result[key] = num * 3;\n\t * return result;\n\t * }, {});\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t */\n\tfunction reduce(collection, callback, accumulator, thisArg) {\n\t if (!collection) return accumulator;\n\t var noaccum = arguments.length < 3;\n\t callback = createCallback(callback, thisArg, 4);\n\t\n\t var index = -1,\n\t length = collection.length;\n\t\n\t if (typeof length == 'number') {\n\t if (noaccum) {\n\t accumulator = collection[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = callback(accumulator, collection[index], index, collection);\n\t }\n\t } else {\n\t forOwn(collection, function(value, index, collection) {\n\t accumulator = noaccum\n\t ? (noaccum = false, value)\n\t : callback(accumulator, value, index, collection)\n\t });\n\t }\n\t return accumulator;\n\t}\n\t\n\tmodule.exports = reduce;\n\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar keys = __webpack_require__(10);\n\t\n\t/**\n\t * Gets the size of the `collection` by returning `collection.length` for arrays\n\t * and array-like objects or the number of own enumerable properties for objects.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to inspect.\n\t * @returns {number} Returns `collection.length` or number of own enumerable properties.\n\t * @example\n\t *\n\t * _.size([1, 2]);\n\t * // => 2\n\t *\n\t * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => 3\n\t *\n\t * _.size('pebbles');\n\t * // => 7\n\t */\n\tfunction size(collection) {\n\t var length = collection ? collection.length : 0;\n\t return typeof length == 'number' ? length : keys(collection).length;\n\t}\n\t\n\tmodule.exports = size;\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createWrapper = __webpack_require__(47),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Creates a function that, when called, invokes `func` with the `this`\n\t * binding of `thisArg` and prepends any additional `bind` arguments to those\n\t * provided to the bound function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to bind.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new bound function.\n\t * @example\n\t *\n\t * var func = function(greeting) {\n\t * return greeting + ' ' + this.name;\n\t * };\n\t *\n\t * func = _.bind(func, { 'name': 'fred' }, 'hi');\n\t * func();\n\t * // => 'hi fred'\n\t */\n\tfunction bind(func, thisArg) {\n\t return arguments.length > 2\n\t ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n\t : createWrapper(func, 1, null, null, thisArg);\n\t}\n\t\n\tmodule.exports = bind;\n\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreate = __webpack_require__(20),\n\t isObject = __webpack_require__(2),\n\t setBindData = __webpack_require__(16),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push;\n\t\n\t/**\n\t * The base implementation of `_.bind` that creates the bound function and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new bound function.\n\t */\n\tfunction baseBind(bindData) {\n\t var func = bindData[0],\n\t partialArgs = bindData[2],\n\t thisArg = bindData[4];\n\t\n\t function bound() {\n\t // `Function#bind` spec\n\t // http://es5.github.io/#x15.3.4.5\n\t if (partialArgs) {\n\t // avoid `arguments` object deoptimizations by using `slice` instead\n\t // of `Array.prototype.slice.call` and not assigning `arguments` to a\n\t // variable as a ternary expression\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t // mimic the constructor's `return` behavior\n\t // http://es5.github.io/#x13.2.2\n\t if (this instanceof bound) {\n\t // ensure `new bound` is an instance of `func`\n\t var thisBinding = baseCreate(func.prototype),\n\t result = func.apply(thisBinding, args || arguments);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisArg, args || arguments);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t}\n\t\n\tmodule.exports = baseBind;\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar assign = __webpack_require__(50),\n\t forEach = __webpack_require__(5),\n\t forOwn = __webpack_require__(1),\n\t getArray = __webpack_require__(11),\n\t isArray = __webpack_require__(27),\n\t isObject = __webpack_require__(2),\n\t releaseArray = __webpack_require__(12),\n\t slice = __webpack_require__(8);\n\t\n\t/** Used to match regexp flags from their coerced string values */\n\tvar reFlags = /\\w*$/;\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]',\n\t arrayClass = '[object Array]',\n\t boolClass = '[object Boolean]',\n\t dateClass = '[object Date]',\n\t funcClass = '[object Function]',\n\t numberClass = '[object Number]',\n\t objectClass = '[object Object]',\n\t regexpClass = '[object RegExp]',\n\t stringClass = '[object String]';\n\t\n\t/** Used to identify object classifications that `_.clone` supports */\n\tvar cloneableClasses = {};\n\tcloneableClasses[funcClass] = false;\n\tcloneableClasses[argsClass] = cloneableClasses[arrayClass] =\n\tcloneableClasses[boolClass] = cloneableClasses[dateClass] =\n\tcloneableClasses[numberClass] = cloneableClasses[objectClass] =\n\tcloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to lookup a built-in constructor by [[Class]] */\n\tvar ctorByClass = {};\n\tctorByClass[arrayClass] = Array;\n\tctorByClass[boolClass] = Boolean;\n\tctorByClass[dateClass] = Date;\n\tctorByClass[funcClass] = Function;\n\tctorByClass[objectClass] = Object;\n\tctorByClass[numberClass] = Number;\n\tctorByClass[regexpClass] = RegExp;\n\tctorByClass[stringClass] = String;\n\t\n\t/**\n\t * The base implementation of `_.clone` without argument juggling or support\n\t * for `thisArg` binding.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {Array} [stackA=[]] Tracks traversed source objects.\n\t * @param {Array} [stackB=[]] Associates clones with source counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, callback, stackA, stackB) {\n\t if (callback) {\n\t var result = callback(value);\n\t if (typeof result != 'undefined') {\n\t return result;\n\t }\n\t }\n\t // inspect [[Class]]\n\t var isObj = isObject(value);\n\t if (isObj) {\n\t var className = toString.call(value);\n\t if (!cloneableClasses[className]) {\n\t return value;\n\t }\n\t var ctor = ctorByClass[className];\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t return new ctor(+value);\n\t\n\t case numberClass:\n\t case stringClass:\n\t return new ctor(value);\n\t\n\t case regexpClass:\n\t result = ctor(value.source, reFlags.exec(value));\n\t result.lastIndex = value.lastIndex;\n\t return result;\n\t }\n\t } else {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isDeep) {\n\t // check for circular references and return corresponding clone\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == value) {\n\t return stackB[length];\n\t }\n\t }\n\t result = isArr ? ctor(value.length) : {};\n\t }\n\t else {\n\t result = isArr ? slice(value) : assign({}, value);\n\t }\n\t // add array properties assigned by `RegExp#exec`\n\t if (isArr) {\n\t if (hasOwnProperty.call(value, 'index')) {\n\t result.index = value.index;\n\t }\n\t if (hasOwnProperty.call(value, 'input')) {\n\t result.input = value.input;\n\t }\n\t }\n\t // exit for shallow clone\n\t if (!isDeep) {\n\t return result;\n\t }\n\t // add the source value to the stack of traversed objects\n\t // and associate it with its clone\n\t stackA.push(value);\n\t stackB.push(result);\n\t\n\t // recursively populate clone (susceptible to call stack limits)\n\t (isArr ? forEach : forOwn)(value, function(objValue, key) {\n\t result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n\t });\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseClone;\n\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreate = __webpack_require__(20),\n\t isObject = __webpack_require__(2),\n\t setBindData = __webpack_require__(16),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push;\n\t\n\t/**\n\t * The base implementation of `createWrapper` that creates the wrapper and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseCreateWrapper(bindData) {\n\t var func = bindData[0],\n\t bitmask = bindData[1],\n\t partialArgs = bindData[2],\n\t partialRightArgs = bindData[3],\n\t thisArg = bindData[4],\n\t arity = bindData[5];\n\t\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t key = func;\n\t\n\t function bound() {\n\t var thisBinding = isBind ? thisArg : this;\n\t if (partialArgs) {\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t if (partialRightArgs || isCurry) {\n\t args || (args = slice(arguments));\n\t if (partialRightArgs) {\n\t push.apply(args, partialRightArgs);\n\t }\n\t if (isCurry && args.length < arity) {\n\t bitmask |= 16 & ~32;\n\t return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n\t }\n\t }\n\t args || (args = arguments);\n\t if (isBindKey) {\n\t func = thisBinding[key];\n\t }\n\t if (this instanceof bound) {\n\t thisBinding = baseCreate(func.prototype);\n\t var result = func.apply(thisBinding, args);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisBinding, args);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t}\n\t\n\tmodule.exports = baseCreateWrapper;\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar forIn = __webpack_require__(53),\n\t getArray = __webpack_require__(11),\n\t isFunction = __webpack_require__(9),\n\t objectTypes = __webpack_require__(4),\n\t releaseArray = __webpack_require__(12);\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]',\n\t arrayClass = '[object Array]',\n\t boolClass = '[object Boolean]',\n\t dateClass = '[object Date]',\n\t numberClass = '[object Number]',\n\t objectClass = '[object Object]',\n\t regexpClass = '[object RegExp]',\n\t stringClass = '[object String]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n\t * that allows partial \"_.where\" style comparisons.\n\t *\n\t * @private\n\t * @param {*} a The value to compare.\n\t * @param {*} b The other value to compare.\n\t * @param {Function} [callback] The function to customize comparing values.\n\t * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n\t * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n\t * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t */\n\tfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n\t // used to indicate that when comparing objects, `a` has at least the properties of `b`\n\t if (callback) {\n\t var result = callback(a, b);\n\t if (typeof result != 'undefined') {\n\t return !!result;\n\t }\n\t }\n\t // exit early for identical values\n\t if (a === b) {\n\t // treat `+0` vs. `-0` as not equal\n\t return a !== 0 || (1 / a == 1 / b);\n\t }\n\t var type = typeof a,\n\t otherType = typeof b;\n\t\n\t // exit early for unlike primitive values\n\t if (a === a &&\n\t !(a && objectTypes[type]) &&\n\t !(b && objectTypes[otherType])) {\n\t return false;\n\t }\n\t // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n\t // http://es5.github.io/#x15.3.4.4\n\t if (a == null || b == null) {\n\t return a === b;\n\t }\n\t // compare [[Class]] names\n\t var className = toString.call(a),\n\t otherClass = toString.call(b);\n\t\n\t if (className == argsClass) {\n\t className = objectClass;\n\t }\n\t if (otherClass == argsClass) {\n\t otherClass = objectClass;\n\t }\n\t if (className != otherClass) {\n\t return false;\n\t }\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t // coerce dates and booleans to numbers, dates to milliseconds and booleans\n\t // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n\t return +a == +b;\n\t\n\t case numberClass:\n\t // treat `NaN` vs. `NaN` as equal\n\t return (a != +a)\n\t ? b != +b\n\t // but treat `+0` vs. `-0` as not equal\n\t : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\t\n\t case regexpClass:\n\t case stringClass:\n\t // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n\t // treat string primitives and their corresponding object instances as equal\n\t return a == String(b);\n\t }\n\t var isArr = className == arrayClass;\n\t if (!isArr) {\n\t // unwrap any `lodash` wrapped values\n\t var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n\t bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\t\n\t if (aWrapped || bWrapped) {\n\t return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n\t }\n\t // exit for functions and DOM nodes\n\t if (className != objectClass) {\n\t return false;\n\t }\n\t // in older versions of Opera, `arguments` objects have `Array` constructors\n\t var ctorA = a.constructor,\n\t ctorB = b.constructor;\n\t\n\t // non `Object` object instances with different constructors are not equal\n\t if (ctorA != ctorB &&\n\t !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n\t ('constructor' in a && 'constructor' in b)\n\t ) {\n\t return false;\n\t }\n\t }\n\t // assume cyclic structures are equal\n\t // the algorithm for detecting cyclic structures is adapted from ES 5.1\n\t // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == a) {\n\t return stackB[length] == b;\n\t }\n\t }\n\t var size = 0;\n\t result = true;\n\t\n\t // add `a` and `b` to the stack of traversed objects\n\t stackA.push(a);\n\t stackB.push(b);\n\t\n\t // recursively compare objects and arrays (susceptible to call stack limits)\n\t if (isArr) {\n\t // compare lengths to determine if a deep comparison is necessary\n\t length = a.length;\n\t size = b.length;\n\t result = size == length;\n\t\n\t if (result || isWhere) {\n\t // deep compare the contents, ignoring non-numeric properties\n\t while (size--) {\n\t var index = length,\n\t value = b[size];\n\t\n\t if (isWhere) {\n\t while (index--) {\n\t if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n\t // which, in this case, is more costly\n\t forIn(b, function(value, key, b) {\n\t if (hasOwnProperty.call(b, key)) {\n\t // count the number of properties.\n\t size++;\n\t // deep compare each property value.\n\t return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n\t }\n\t });\n\t\n\t if (result && !isWhere) {\n\t // ensure both objects have the same number of properties\n\t forIn(a, function(value, key, a) {\n\t if (hasOwnProperty.call(a, key)) {\n\t // `size` will be `-1` if `a` has more properties than `b`\n\t return (result = --size > -1);\n\t }\n\t });\n\t }\n\t }\n\t stackA.pop();\n\t stackB.pop();\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseIsEqual;\n\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t cacheIndexOf = __webpack_require__(21),\n\t createCache = __webpack_require__(22),\n\t getArray = __webpack_require__(11),\n\t largeArraySize = __webpack_require__(24),\n\t releaseArray = __webpack_require__(12),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * The base implementation of `_.uniq` without support for callback shorthands\n\t * or `thisArg` binding.\n\t *\n\t * @private\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function} [callback] The function called per iteration.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t */\n\tfunction baseUniq(array, isSorted, callback) {\n\t var index = -1,\n\t indexOf = baseIndexOf,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t var isLarge = !isSorted && length >= largeArraySize,\n\t seen = (callback || isLarge) ? getArray() : result;\n\t\n\t if (isLarge) {\n\t var cache = createCache(seen);\n\t indexOf = cacheIndexOf;\n\t seen = cache;\n\t }\n\t while (++index < length) {\n\t var value = array[index],\n\t computed = callback ? callback(value, index, array) : value;\n\t\n\t if (isSorted\n\t ? !index || seen[seen.length - 1] !== computed\n\t : indexOf(seen, computed) < 0\n\t ) {\n\t if (callback || isLarge) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t }\n\t if (isLarge) {\n\t releaseArray(seen.array);\n\t releaseObject(seen);\n\t } else if (callback) {\n\t releaseArray(seen);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseUniq;\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar keyPrefix = __webpack_require__(23);\n\t\n\t/**\n\t * Adds a given value to the corresponding cache object.\n\t *\n\t * @private\n\t * @param {*} value The value to add to the cache.\n\t */\n\tfunction cachePush(value) {\n\t var cache = this.cache,\n\t type = typeof value;\n\t\n\t if (type == 'boolean' || value == null) {\n\t cache[value] = true;\n\t } else {\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value,\n\t typeCache = cache[type] || (cache[type] = {});\n\t\n\t if (type == 'object') {\n\t (typeCache[key] || (typeCache[key] = [])).push(value);\n\t } else {\n\t typeCache[key] = true;\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = cachePush;\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseBind = __webpack_require__(41),\n\t baseCreateWrapper = __webpack_require__(43),\n\t isFunction = __webpack_require__(9),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push,\n\t unshift = arrayRef.unshift;\n\t\n\t/**\n\t * Creates a function that, when called, either curries or invokes `func`\n\t * with an optional `this` binding and partially applied arguments.\n\t *\n\t * @private\n\t * @param {Function|string} func The function or method name to reference.\n\t * @param {number} bitmask The bitmask of method flags to compose.\n\t * The bitmask may be composed of the following flags:\n\t * 1 - `_.bind`\n\t * 2 - `_.bindKey`\n\t * 4 - `_.curry`\n\t * 8 - `_.curry` (bound)\n\t * 16 - `_.partial`\n\t * 32 - `_.partialRight`\n\t * @param {Array} [partialArgs] An array of arguments to prepend to those\n\t * provided to the new function.\n\t * @param {Array} [partialRightArgs] An array of arguments to append to those\n\t * provided to the new function.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {number} [arity] The arity of `func`.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t isPartial = bitmask & 16,\n\t isPartialRight = bitmask & 32;\n\t\n\t if (!isBindKey && !isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t if (isPartial && !partialArgs.length) {\n\t bitmask &= ~16;\n\t isPartial = partialArgs = false;\n\t }\n\t if (isPartialRight && !partialRightArgs.length) {\n\t bitmask &= ~32;\n\t isPartialRight = partialRightArgs = false;\n\t }\n\t var bindData = func && func.__bindData__;\n\t if (bindData && bindData !== true) {\n\t // clone `bindData`\n\t bindData = slice(bindData);\n\t if (bindData[2]) {\n\t bindData[2] = slice(bindData[2]);\n\t }\n\t if (bindData[3]) {\n\t bindData[3] = slice(bindData[3]);\n\t }\n\t // set `thisBinding` is not previously bound\n\t if (isBind && !(bindData[1] & 1)) {\n\t bindData[4] = thisArg;\n\t }\n\t // set if previously bound but not currently (subsequent curried functions)\n\t if (!isBind && bindData[1] & 1) {\n\t bitmask |= 8;\n\t }\n\t // set curried arity if not yet set\n\t if (isCurry && !(bindData[1] & 4)) {\n\t bindData[5] = arity;\n\t }\n\t // append partial left arguments\n\t if (isPartial) {\n\t push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n\t }\n\t // append partial right arguments\n\t if (isPartialRight) {\n\t unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n\t }\n\t // merge flags\n\t bindData[1] |= bitmask;\n\t return createWrapper.apply(null, bindData);\n\t }\n\t // fast path for `_.bind`\n\t var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n\t return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n\t}\n\t\n\tmodule.exports = createWrapper;\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectPool = __webpack_require__(26);\n\t\n\t/**\n\t * Gets an object from the object pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Object} The object from the pool.\n\t */\n\tfunction getObject() {\n\t return objectPool.pop() || {\n\t 'array': null,\n\t 'cache': null,\n\t 'criteria': null,\n\t 'false': false,\n\t 'index': 0,\n\t 'null': false,\n\t 'number': null,\n\t 'object': null,\n\t 'push': null,\n\t 'string': null,\n\t 'true': false,\n\t 'undefined': false,\n\t 'value': null\n\t };\n\t}\n\t\n\tmodule.exports = getObject;\n\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectTypes = __webpack_require__(4);\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * A fallback implementation of `Object.keys` which produces an array of the\n\t * given object's own enumerable property names.\n\t *\n\t * @private\n\t * @type Function\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t */\n\tvar shimKeys = function(object) {\n\t var index, iterable = object, result = [];\n\t if (!iterable) return result;\n\t if (!(objectTypes[typeof object])) return result;\n\t for (index in iterable) {\n\t if (hasOwnProperty.call(iterable, index)) {\n\t result.push(index);\n\t }\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = shimKeys;\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t keys = __webpack_require__(10),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Assigns own enumerable properties of source object(s) to the destination\n\t * object. Subsequent sources will overwrite property assignments of previous\n\t * sources. If a callback is provided it will be executed to produce the\n\t * assigned values. The callback is bound to `thisArg` and invoked with two\n\t * arguments; (objectValue, sourceValue).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @alias extend\n\t * @category Objects\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [source] The source objects.\n\t * @param {Function} [callback] The function to customize assigning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the destination object.\n\t * @example\n\t *\n\t * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n\t * // => { 'name': 'fred', 'employer': 'slate' }\n\t *\n\t * var defaults = _.partialRight(_.assign, function(a, b) {\n\t * return typeof a == 'undefined' ? b : a;\n\t * });\n\t *\n\t * var object = { 'name': 'barney' };\n\t * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n\t * // => { 'name': 'barney', 'employer': 'slate' }\n\t */\n\tvar assign = function(object, source, guard) {\n\t var index, iterable = object, result = iterable;\n\t if (!iterable) return result;\n\t var args = arguments,\n\t argsIndex = 0,\n\t argsLength = typeof guard == 'number' ? 2 : args.length;\n\t if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n\t var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n\t } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n\t callback = args[--argsLength];\n\t }\n\t while (++argsIndex < argsLength) {\n\t iterable = args[argsIndex];\n\t if (iterable && objectTypes[typeof iterable]) {\n\t var ownIndex = -1,\n\t ownProps = objectTypes[typeof iterable] && keys(iterable),\n\t length = ownProps ? ownProps.length : 0;\n\t\n\t while (++ownIndex < length) {\n\t index = ownProps[ownIndex];\n\t result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n\t }\n\t }\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseClone = __webpack_require__(42),\n\t baseCreateCallback = __webpack_require__(3);\n\t\n\t/**\n\t * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n\t * be cloned, otherwise they will be assigned by reference. If a callback\n\t * is provided it will be executed to produce the cloned values. If the\n\t * callback returns `undefined` cloning will be handled by the method instead.\n\t * The callback is bound to `thisArg` and invoked with one argument; (value).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the cloned value.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * var shallow = _.clone(characters);\n\t * shallow[0] === characters[0];\n\t * // => true\n\t *\n\t * var deep = _.clone(characters, true);\n\t * deep[0] === characters[0];\n\t * // => false\n\t *\n\t * _.mixin({\n\t * 'clone': _.partialRight(_.clone, function(value) {\n\t * return _.isElement(value) ? value.cloneNode(false) : undefined;\n\t * })\n\t * });\n\t *\n\t * var clone = _.clone(document.body);\n\t * clone.childNodes.length;\n\t * // => 0\n\t */\n\tfunction clone(value, isDeep, callback, thisArg) {\n\t // allows working with \"Collections\" methods without using their `index`\n\t // and `collection` arguments for `isDeep` and `callback`\n\t if (typeof isDeep != 'boolean' && isDeep != null) {\n\t thisArg = callback;\n\t callback = isDeep;\n\t isDeep = false;\n\t }\n\t return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n\t}\n\t\n\tmodule.exports = clone;\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * This method is like `_.findIndex` except that it returns the key of the\n\t * first element that passes the callback check, instead of the element itself.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to search.\n\t * @param {Function|Object|string} [callback=identity] The function called per\n\t * iteration. If a property name or object is provided it will be used to\n\t * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n\t * @example\n\t *\n\t * var characters = {\n\t * 'barney': { 'age': 36, 'blocked': false },\n\t * 'fred': { 'age': 40, 'blocked': true },\n\t * 'pebbles': { 'age': 1, 'blocked': false }\n\t * };\n\t *\n\t * _.findKey(characters, function(chr) {\n\t * return chr.age < 40;\n\t * });\n\t * // => 'barney' (property order is not guaranteed across environments)\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findKey(characters, { 'age': 1 });\n\t * // => 'pebbles'\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findKey(characters, 'blocked');\n\t * // => 'fred'\n\t */\n\tfunction findKey(object, callback, thisArg) {\n\t var result;\n\t callback = createCallback(callback, thisArg, 3);\n\t forOwn(object, function(value, key, object) {\n\t if (callback(value, key, object)) {\n\t result = key;\n\t return false;\n\t }\n\t });\n\t return result;\n\t}\n\t\n\tmodule.exports = findKey;\n\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Iterates over own and inherited enumerable properties of an object,\n\t * executing the callback for each property. The callback is bound to `thisArg`\n\t * and invoked with three arguments; (value, key, object). Callbacks may exit\n\t * iteration early by explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * Shape.prototype.move = function(x, y) {\n\t * this.x += x;\n\t * this.y += y;\n\t * };\n\t *\n\t * _.forIn(new Shape, function(value, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n\t */\n\tvar forIn = function(collection, callback, thisArg) {\n\t var index, iterable = collection, result = iterable;\n\t if (!iterable) return result;\n\t if (!objectTypes[typeof iterable]) return result;\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t for (index in iterable) {\n\t if (callback(iterable[index], index, collection) === false) return result;\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = forIn;\n\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArguments(arguments); })(1, 2, 3);\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == argsClass || false;\n\t}\n\t\n\tmodule.exports = isArguments;\n\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar stringClass = '[object String]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is a string.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n\t * @example\n\t *\n\t * _.isString('fred');\n\t * // => true\n\t */\n\tfunction isString(value) {\n\t return typeof value == 'string' ||\n\t value && typeof value == 'object' && toString.call(value) == stringClass || false;\n\t}\n\t\n\tmodule.exports = isString;\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Creates an object with the same keys as `object` and values generated by\n\t * running each own enumerable property of `object` through the callback.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, key, object).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t *\n\t * var characters = {\n\t * 'fred': { 'name': 'fred', 'age': 40 },\n\t * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n\t * };\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.mapValues(characters, 'age');\n\t * // => { 'fred': 40, 'pebbles': 1 }\n\t */\n\tfunction mapValues(object, callback, thisArg) {\n\t var result = {};\n\t callback = createCallback(callback, thisArg, 3);\n\t\n\t forOwn(object, function(value, key, object) {\n\t result[key] = callback(value, key, object);\n\t });\n\t return result;\n\t}\n\t\n\tmodule.exports = mapValues;\n\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7);\n\t\n\t/** Used to detect functions containing a `this` reference */\n\tvar reThis = /\\bthis\\b/;\n\t\n\t/**\n\t * An object used to flag environments features.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Object\n\t */\n\tvar support = {};\n\t\n\t/**\n\t * Detect if functions can be decompiled by `Function#toString`\n\t * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\tsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\t\n\t/**\n\t * Detect if `Function#name` is supported (all but IE).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\tsupport.funcNames = typeof Function.name == 'string';\n\t\n\tmodule.exports = support;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * This method returns the first argument provided to it.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.identity(object) === object;\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tmodule.exports = identity;\n\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Creates a \"_.pluck\" style function, which returns the `key` value of a\n\t * given object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} key The name of the property to retrieve.\n\t * @returns {Function} Returns the new function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'fred', 'age': 40 },\n\t * { 'name': 'barney', 'age': 36 }\n\t * ];\n\t *\n\t * var getName = _.property('name');\n\t *\n\t * _.map(characters, getName);\n\t * // => ['barney', 'fred']\n\t *\n\t * _.sortBy(characters, getName);\n\t * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n\t */\n\tfunction property(key) {\n\t return function(object) {\n\t return object[key];\n\t };\n\t}\n\t\n\tmodule.exports = property;\n\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory){\n\t 'use strict';\n\t\n\t /*istanbul ignore next:cant test*/\n\t if (typeof module === 'object' && typeof module.exports === 'object') {\n\t module.exports = factory();\n\t } else if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (factory.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else {\n\t // Browser globals\n\t root.objectPath = factory();\n\t }\n\t})(this, function(){\n\t 'use strict';\n\t\n\t var\n\t toStr = Object.prototype.toString,\n\t _hasOwnProperty = Object.prototype.hasOwnProperty;\n\t\n\t function isEmpty(value){\n\t if (!value) {\n\t return true;\n\t }\n\t if (isArray(value) && value.length === 0) {\n\t return true;\n\t } else {\n\t for (var i in value) {\n\t if (_hasOwnProperty.call(value, i)) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t }\n\t }\n\t\n\t function toString(type){\n\t return toStr.call(type);\n\t }\n\t\n\t function isNumber(value){\n\t return typeof value === 'number' || toString(value) === \"[object Number]\";\n\t }\n\t\n\t function isString(obj){\n\t return typeof obj === 'string' || toString(obj) === \"[object String]\";\n\t }\n\t\n\t function isObject(obj){\n\t return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n\t }\n\t\n\t function isArray(obj){\n\t return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n\t }\n\t\n\t function isBoolean(obj){\n\t return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n\t }\n\t\n\t function getKey(key){\n\t var intKey = parseInt(key);\n\t if (intKey.toString() === key) {\n\t return intKey;\n\t }\n\t return key;\n\t }\n\t\n\t function set(obj, path, value, doNotReplace){\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isString(path)) {\n\t return set(obj, path.split('.'), value, doNotReplace);\n\t }\n\t var currentPath = getKey(path[0]);\n\t\n\t if (path.length === 1) {\n\t var oldVal = obj[currentPath];\n\t if (oldVal === void 0 || !doNotReplace) {\n\t obj[currentPath] = value;\n\t }\n\t return oldVal;\n\t }\n\t\n\t if (obj[currentPath] === void 0) {\n\t if (isNumber(currentPath)) {\n\t obj[currentPath] = [];\n\t } else {\n\t obj[currentPath] = {};\n\t }\n\t }\n\t\n\t return set(obj[currentPath], path.slice(1), value, doNotReplace);\n\t }\n\t\n\t function del(obj, path) {\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t\n\t if (isEmpty(obj)) {\n\t return void 0;\n\t }\n\t\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if(isString(path)) {\n\t return del(obj, path.split('.'));\n\t }\n\t\n\t var currentPath = getKey(path[0]);\n\t var oldVal = obj[currentPath];\n\t\n\t if(path.length === 1) {\n\t if (oldVal !== void 0) {\n\t if (isArray(obj)) {\n\t obj.splice(currentPath, 1);\n\t } else {\n\t delete obj[currentPath];\n\t }\n\t }\n\t } else {\n\t if (obj[currentPath] !== void 0) {\n\t return del(obj[currentPath], path.slice(1));\n\t }\n\t }\n\t\n\t return obj;\n\t }\n\t\n\t var objectPath = {};\n\t\n\t objectPath.ensureExists = function (obj, path, value){\n\t return set(obj, path, value, true);\n\t };\n\t\n\t objectPath.set = function (obj, path, value, doNotReplace){\n\t return set(obj, path, value, doNotReplace);\n\t };\n\t\n\t objectPath.insert = function (obj, path, value, at){\n\t var arr = objectPath.get(obj, path);\n\t at = ~~at;\n\t if (!isArray(arr)) {\n\t arr = [];\n\t objectPath.set(obj, path, arr);\n\t }\n\t arr.splice(at, 0, value);\n\t };\n\t\n\t objectPath.empty = function(obj, path) {\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isEmpty(obj)) {\n\t return void 0;\n\t }\n\t\n\t var value, i;\n\t if (!(value = objectPath.get(obj, path))) {\n\t return obj;\n\t }\n\t\n\t if (isString(value)) {\n\t return objectPath.set(obj, path, '');\n\t } else if (isBoolean(value)) {\n\t return objectPath.set(obj, path, false);\n\t } else if (isNumber(value)) {\n\t return objectPath.set(obj, path, 0);\n\t } else if (isArray(value)) {\n\t value.length = 0;\n\t } else if (isObject(value)) {\n\t for (i in value) {\n\t if (_hasOwnProperty.call(value, i)) {\n\t delete value[i];\n\t }\n\t }\n\t } else {\n\t return objectPath.set(obj, path, null);\n\t }\n\t };\n\t\n\t objectPath.push = function (obj, path /*, values */){\n\t var arr = objectPath.get(obj, path);\n\t if (!isArray(arr)) {\n\t arr = [];\n\t objectPath.set(obj, path, arr);\n\t }\n\t\n\t arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n\t };\n\t\n\t objectPath.coalesce = function (obj, paths, defaultValue) {\n\t var value;\n\t\n\t for (var i = 0, len = paths.length; i < len; i++) {\n\t if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n\t return value;\n\t }\n\t }\n\t\n\t return defaultValue;\n\t };\n\t\n\t objectPath.get = function (obj, path, defaultValue){\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isEmpty(obj)) {\n\t return defaultValue;\n\t }\n\t if (isString(path)) {\n\t return objectPath.get(obj, path.split('.'), defaultValue);\n\t }\n\t\n\t var currentPath = getKey(path[0]);\n\t\n\t if (path.length === 1) {\n\t if (obj[currentPath] === void 0) {\n\t return defaultValue;\n\t }\n\t return obj[currentPath];\n\t }\n\t\n\t return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n\t };\n\t\n\t objectPath.del = function(obj, path) {\n\t return del(obj, path);\n\t };\n\t\n\t return objectPath;\n\t});\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"1.5.0\"\n\n/***/ }\n/******/ ])\n})\n","\n// The module cache\nvar installedModules = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(installedModules[moduleId])\n\t\treturn installedModules[moduleId].exports;\n\t\n\t// Create a new module (and put it into the cache)\n\tvar module = installedModules[moduleId] = {\n\t\texports: {},\n\t\tid: moduleId,\n\t\tloaded: false\n\t};\n\t\n\t// Execute the module function\n\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\t\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = modules;\n\n// expose the module cache\n__webpack_require__.c = installedModules;\n\n// __webpack_public_path__\n__webpack_require__.p = \"\";\n\n\n// Load entry module and return exports\nreturn __webpack_require__(0);","var Dispatcher = require(\"./lib/dispatcher\"),\n Flux = require(\"./lib/flux\"),\n FluxMixin = require(\"./lib/flux_mixin\"),\n FluxChildMixin = require(\"./lib/flux_child_mixin\"),\n StoreWatchMixin = require(\"./lib/store_watch_mixin\"),\n createStore = require(\"./lib/create_store\");\n\nvar Fluxxor = {\n Dispatcher: Dispatcher,\n Flux: Flux,\n FluxMixin: FluxMixin,\n FluxChildMixin: FluxChildMixin,\n StoreWatchMixin: StoreWatchMixin,\n createStore: createStore,\n version: require(\"./version\")\n};\n\nmodule.exports = Fluxxor;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own enumerable properties of an object, executing the callback\n * for each property. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, key, object). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n * console.log(key);\n * });\n * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n */\nvar forOwn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forOwn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('../internals/objectTypes');\n\n/**\n * Checks if `value` is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // check if the value is the ECMAScript language type of Object\n // http://es5.github.io/#x8\n // and avoid a V8 bug\n // http://code.google.com/p/v8/issues/detail?id=2291\n return !!(value && objectTypes[typeof value]);\n}\n\nmodule.exports = isObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bind = require('../functions/bind'),\n identity = require('../utilities/identity'),\n setBindData = require('./setBindData'),\n support = require('../support');\n\n/** Used to detected named functions */\nvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/** Native method shortcuts */\nvar fnToString = Function.prototype.toString;\n\n/**\n * The base implementation of `_.createCallback` without support for creating\n * \"_.pluck\" or \"_.where\" style callbacks.\n *\n * @private\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n */\nfunction baseCreateCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n // exit early for no `thisArg` or already bound by `Function#bind`\n if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n return func;\n }\n var bindData = func.__bindData__;\n if (typeof bindData == 'undefined') {\n if (support.funcNames) {\n bindData = !func.name;\n }\n bindData = bindData || !support.funcDecomp;\n if (!bindData) {\n var source = fnToString.call(func);\n if (!support.funcNames) {\n bindData = !reFuncName.test(source);\n }\n if (!bindData) {\n // checks if `func` references the `this` keyword and stores the result\n bindData = reThis.test(source);\n setBindData(func, bindData);\n }\n }\n }\n // exit early if there are no `this` references or `func` is bound\n if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 2: return function(a, b) {\n return func.call(thisArg, a, b);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n }\n return bind(func, thisArg);\n}\n\nmodule.exports = baseCreateCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to determine if values are of the language type Object */\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\n\nmodule.exports = objectTypes;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Iterates over elements of a collection, executing the callback for each\n * element. The callback is bound to `thisArg` and invoked with three arguments;\n * (value, index|key, collection). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * Note: As with other \"Collections\" methods, objects with a `length` property\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n * may be used for object iteration.\n *\n * @static\n * @memberOf _\n * @alias each\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array|Object|string} Returns `collection`.\n * @example\n *\n * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n * // => logs each number and returns '1,2,3'\n *\n * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n * // => logs each number and returns the object (property order is not guaranteed across environments)\n */\nfunction forEach(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n while (++index < length) {\n if (callback(collection[index], index, collection) === false) {\n break;\n }\n }\n } else {\n forOwn(collection, callback);\n }\n return collection;\n}\n\nmodule.exports = forEach;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n baseIsEqual = require('../internals/baseIsEqual'),\n isObject = require('../objects/isObject'),\n keys = require('../objects/keys'),\n property = require('../utilities/property');\n\n/**\n * Produces a callback bound to an optional `thisArg`. If `func` is a property\n * name the created callback will return the property value for a given element.\n * If `func` is an object the created callback will return `true` for elements\n * that contain the equivalent object properties, otherwise it will return `false`.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // wrap to create custom callback shorthands\n * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n * return !match ? func(callback, thisArg) : function(object) {\n * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n * };\n * });\n *\n * _.filter(characters, 'age__gt38');\n * // => [{ 'name': 'fred', 'age': 40 }]\n */\nfunction createCallback(func, thisArg, argCount) {\n var type = typeof func;\n if (func == null || type == 'function') {\n return baseCreateCallback(func, thisArg, argCount);\n }\n // handle \"_.pluck\" style callback shorthands\n if (type != 'object') {\n return property(func);\n }\n var props = keys(func),\n key = props[0],\n a = func[key];\n\n // handle \"_.where\" style callback shorthands\n if (props.length == 1 && a === a && !isObject(a)) {\n // fast path the common case of providing an object with a single\n // property containing a primitive value\n return function(object) {\n var b = object[key];\n return a === b && (a !== 0 || (1 / a == 1 / b));\n };\n }\n return function(object) {\n var length = props.length,\n result = false;\n\n while (length--) {\n if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n break;\n }\n }\n return result;\n };\n}\n\nmodule.exports = createCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Used to detect if a method is native */\nvar reNative = RegExp('^' +\n String(toString)\n .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n */\nfunction isNative(value) {\n return typeof value == 'function' && reNative.test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Slices the `collection` from the `start` index up to, but not including,\n * the `end` index.\n *\n * Note: This function is used instead of `Array#slice` to support node lists\n * in IE < 9 and to ensure dense arrays are returned.\n *\n * @private\n * @param {Array|Object|string} collection The collection to slice.\n * @param {number} start The start index.\n * @param {number} end The end index.\n * @returns {Array} Returns the new array.\n */\nfunction slice(array, start, end) {\n start || (start = 0);\n if (typeof end == 'undefined') {\n end = array ? array.length : 0;\n }\n var index = -1,\n length = end - start || 0,\n result = Array(length < 0 ? 0 : length);\n\n while (++index < length) {\n result[index] = array[start + index];\n }\n return result;\n}\n\nmodule.exports = slice;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is a function.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n */\nfunction isFunction(value) {\n return typeof value == 'function';\n}\n\nmodule.exports = isFunction;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative'),\n isObject = require('./isObject'),\n shimKeys = require('../internals/shimKeys');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\n/**\n * Creates an array composed of the own enumerable property names of an object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n * @example\n *\n * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n if (!isObject(object)) {\n return [];\n }\n return nativeKeys(object);\n};\n\nmodule.exports = keys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool');\n\n/**\n * Gets an array from the array pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Array} The array from the pool.\n */\nfunction getArray() {\n return arrayPool.pop() || [];\n}\n\nmodule.exports = getArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool'),\n maxPoolSize = require('./maxPoolSize');\n\n/**\n * Releases the given array back to the array pool.\n *\n * @private\n * @param {Array} [array] The array to release.\n */\nfunction releaseArray(array) {\n array.length = 0;\n if (arrayPool.length < maxPoolSize) {\n arrayPool.push(array);\n }\n}\n\nmodule.exports = releaseArray;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * The base implementation of `_.indexOf` without support for binary searches\n * or `fromIndex` constraints.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value or `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n var index = (fromIndex || 0) - 1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar maxPoolSize = require('./maxPoolSize'),\n objectPool = require('./objectPool');\n\n/**\n * Releases the given object back to the object pool.\n *\n * @private\n * @param {Object} [object] The object to release.\n */\nfunction releaseObject(object) {\n var cache = object.cache;\n if (cache) {\n releaseObject(cache);\n }\n object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n if (objectPool.length < maxPoolSize) {\n objectPool.push(object);\n }\n}\n\nmodule.exports = releaseObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n noop = require('../utilities/noop');\n\n/** Used as the property descriptor for `__bindData__` */\nvar descriptor = {\n 'configurable': false,\n 'enumerable': false,\n 'value': null,\n 'writable': false\n};\n\n/** Used to set meta data on functions */\nvar defineProperty = (function() {\n // IE 8 only accepts DOM elements\n try {\n var o = {},\n func = isNative(func = Object.defineProperty) && func,\n result = func(o, o, o) && func;\n } catch(e) { }\n return result;\n}());\n\n/**\n * Sets `this` binding data on a given function.\n *\n * @private\n * @param {Function} func The function to set data on.\n * @param {Array} value The data array to set.\n */\nvar setBindData = !defineProperty ? noop : function(func, value) {\n descriptor.value = value;\n defineProperty(func, '__bindData__', descriptor);\n};\n\nmodule.exports = setBindData;\n","var _clone = require(\"lodash-node/modern/objects/clone\"),\n _mapValues = require(\"lodash-node/modern/objects/mapValues\"),\n _forOwn = require(\"lodash-node/modern/objects/forOwn\"),\n _intersection = require(\"lodash-node/modern/arrays/intersection\"),\n _keys = require(\"lodash-node/modern/objects/keys\"),\n _map = require(\"lodash-node/modern/collections/map\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _size = require(\"lodash-node/modern/collections/size\"),\n _findKey = require(\"lodash-node/modern/objects/findKey\"),\n _uniq = require(\"lodash-node/modern/arrays/uniq\");\n\nvar Dispatcher = function(stores) {\n this.stores = {};\n this.currentDispatch = null;\n this.currentActionType = null;\n this.waitingToDispatch = [];\n\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nDispatcher.prototype.addStore = function(name, store) {\n store.dispatcher = this;\n this.stores[name] = store;\n};\n\nDispatcher.prototype.dispatch = function(action) {\n if (!action || !action.type) {\n throw new Error(\"Can only dispatch actions with a 'type' property\");\n }\n\n if (this.currentDispatch) {\n var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n this.currentActionType + \"') is being dispatched\";\n throw new Error(complaint);\n }\n\n this.waitingToDispatch = _clone(this.stores);\n\n this.currentActionType = action.type;\n this.currentDispatch = _mapValues(this.stores, function() {\n return { resolved: false, waitingOn: [], waitCallback: null };\n });\n\n try {\n this.doDispatchLoop(action);\n } finally {\n this.currentActionType = null;\n this.currentDispatch = null;\n }\n};\n\nDispatcher.prototype.doDispatchLoop = function(action) {\n var dispatch, canBeDispatchedTo, wasHandled = false,\n removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\n _forOwn(this.waitingToDispatch, function(value, key) {\n dispatch = this.currentDispatch[key];\n canBeDispatchedTo = !dispatch.waitingOn.length ||\n !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n if (canBeDispatchedTo) {\n if (dispatch.waitCallback) {\n var stores = _map(dispatch.waitingOn, function(key) {\n return this.stores[key];\n }, this);\n var fn = dispatch.waitCallback;\n dispatch.waitCallback = null;\n dispatch.waitingOn = [];\n dispatch.resolved = true;\n fn.apply(null, stores);\n wasHandled = true;\n } else {\n dispatch.resolved = true;\n var handled = this.stores[key].__handleAction__(action);\n if (handled) {\n wasHandled = true;\n }\n }\n\n dispatchedThisLoop.push(key);\n\n if (this.currentDispatch[key].resolved) {\n removeFromDispatchQueue.push(key);\n }\n }\n }, this);\n\n if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n }\n\n _each(removeFromDispatchQueue, function(key) {\n delete this.waitingToDispatch[key];\n }, this);\n\n if (_size(this.waitingToDispatch)) {\n this.doDispatchLoop(action);\n }\n\n if (!wasHandled && console && console.warn) {\n console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n }\n\n};\n\nDispatcher.prototype.waitForStores = function(store, stores, fn) {\n if (!this.currentDispatch) {\n throw new Error(\"Cannot wait unless an action is being dispatched\");\n }\n\n var waitingStoreName = _findKey(this.stores, function(val) {\n return val === store;\n });\n\n if (stores.indexOf(waitingStoreName) > -1) {\n throw new Error(\"A store cannot wait on itself\");\n }\n\n var dispatch = this.currentDispatch[waitingStoreName];\n\n if (dispatch.waitingOn.length) {\n throw new Error(waitingStoreName + \" already waiting on stores\");\n }\n\n _each(stores, function(storeName) {\n var storeDispatch = this.currentDispatch[storeName];\n if (!this.stores[storeName]) {\n throw new Error(\"Cannot wait for non-existent store \" + storeName);\n }\n if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n }\n }, this);\n\n dispatch.resolved = false;\n dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n dispatch.waitCallback = fn;\n};\n\nmodule.exports = Dispatcher;\n","'use strict';\n\n/**\n * Representation of a single EventEmitter function.\n *\n * @param {Function} fn Event handler to be called.\n * @param {Mixed} context Context for function execution.\n * @param {Boolean} once Only emit once\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal EventEmitter interface that is molded against the Node.js\n * EventEmitter interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() { /* Nothing to set */ }\n\n/**\n * Holds the assigned EventEmitters by name.\n *\n * @type {Object}\n * @private\n */\nEventEmitter.prototype._events = undefined;\n\n/**\n * Return a list of assigned event listeners.\n *\n * @param {String} event The events that should be listed.\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n if (!this._events || !this._events[event]) return [];\n\n for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n ee.push(this._events[event][i].fn);\n }\n\n return ee;\n};\n\n/**\n * Emit an event to all registered event listeners.\n *\n * @param {String} event The name of the event.\n * @returns {Boolean} Indication if we've emitted an event.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n if (!this._events || !this._events[event]) return false;\n\n var listeners = this._events[event]\n , length = listeners.length\n , len = arguments.length\n , ee = listeners[0]\n , args\n , i, j;\n\n if (1 === length) {\n if (ee.once) this.removeListener(event, ee.fn, true);\n\n switch (len) {\n case 1: return ee.fn.call(ee.context), true;\n case 2: return ee.fn.call(ee.context, a1), true;\n case 3: return ee.fn.call(ee.context, a1, a2), true;\n case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n ee.fn.apply(ee.context, args);\n } else {\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Register a new EventListener for the given event.\n *\n * @param {String} event Name of the event.\n * @param {Functon} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE( fn, context || this ));\n\n return this;\n};\n\n/**\n * Add an EventListener that's only called once.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE(fn, context || this, true ));\n\n return this;\n};\n\n/**\n * Remove event listeners.\n *\n * @param {String} event The event we want to remove.\n * @param {Function} fn The listener that we need to find.\n * @param {Boolean} once Only remove once listeners.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n if (!this._events || !this._events[event]) return this;\n\n var listeners = this._events[event]\n , events = [];\n\n if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn && listeners[i].once !== once) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[event] = events;\n else this._events[event] = null;\n\n return this;\n};\n\n/**\n * Remove all listeners or only the listeners for the specified event.\n *\n * @param {String} event The event want to remove all listeners for.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n if (!this._events) return this;\n\n if (event) this._events[event] = null;\n else this._events = {};\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the module.\n//\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.EventEmitter2 = EventEmitter;\nEventEmitter.EventEmitter3 = EventEmitter;\n\nif ('object' === typeof module && module.exports) {\n module.exports = EventEmitter;\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar arrayPool = [];\n\nmodule.exports = arrayPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n isObject = require('../objects/isObject'),\n noop = require('../utilities/noop');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(prototype, properties) {\n return isObject(prototype) ? nativeCreate(prototype) : {};\n}\n// fallback for browsers without `Object.create`\nif (!nativeCreate) {\n baseCreate = (function() {\n function Object() {}\n return function(prototype) {\n if (isObject(prototype)) {\n Object.prototype = prototype;\n var result = new Object;\n Object.prototype = null;\n }\n return result || global.Object();\n };\n }());\n}\n\nmodule.exports = baseCreate;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n keyPrefix = require('./keyPrefix');\n\n/**\n * An implementation of `_.contains` for cache objects that mimics the return\n * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n *\n * @private\n * @param {Object} cache The cache object to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns `0` if `value` is found, else `-1`.\n */\nfunction cacheIndexOf(cache, value) {\n var type = typeof value;\n cache = cache.cache;\n\n if (type == 'boolean' || value == null) {\n return cache[value] ? 0 : -1;\n }\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value;\n cache = (cache = cache[type]) && cache[key];\n\n return type == 'object'\n ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n : (cache ? 0 : -1);\n}\n\nmodule.exports = cacheIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar cachePush = require('./cachePush'),\n getObject = require('./getObject'),\n releaseObject = require('./releaseObject');\n\n/**\n * Creates a cache object to optimize linear searches of large arrays.\n *\n * @private\n * @param {Array} [array=[]] The array to search.\n * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n */\nfunction createCache(array) {\n var index = -1,\n length = array.length,\n first = array[0],\n mid = array[(length / 2) | 0],\n last = array[length - 1];\n\n if (first && typeof first == 'object' &&\n mid && typeof mid == 'object' && last && typeof last == 'object') {\n return false;\n }\n var cache = getObject();\n cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\n var result = getObject();\n result.array = array;\n result.cache = cache;\n result.push = cachePush;\n\n while (++index < length) {\n result.push(array[index]);\n }\n return result;\n}\n\nmodule.exports = createCache;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\nvar keyPrefix = +new Date + '';\n\nmodule.exports = keyPrefix;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the size when optimizations are enabled for large arrays */\nvar largeArraySize = 75;\n\nmodule.exports = largeArraySize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the max size of the `arrayPool` and `objectPool` */\nvar maxPoolSize = 40;\n\nmodule.exports = maxPoolSize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar objectPool = [];\n\nmodule.exports = objectPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative');\n\n/** `Object#toString` result shortcuts */\nvar arrayClass = '[object Array]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\n/**\n * Checks if `value` is an array.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n * @example\n *\n * (function() { return _.isArray(arguments); })();\n * // => false\n *\n * _.isArray([1, 2, 3]);\n * // => true\n */\nvar isArray = nativeIsArray || function(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == arrayClass || false;\n};\n\nmodule.exports = isArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A no-operation function.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.noop(object) === undefined;\n * // => true\n */\nfunction noop() {\n // no operation performed\n}\n\nmodule.exports = noop;\n","var _each = require(\"lodash-node/modern/collections/forEach\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n Store = require(\"./store\"),\n inherits = require(\"inherits\");\n\nvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\nvar createStore = function(spec) {\n _each(RESERVED_KEYS, function(key) {\n if (spec[key]) {\n throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n }\n });\n\n var constructor = function(options) {\n options = options || {};\n Store.call(this);\n\n for (var key in spec) {\n if (key === \"actions\") {\n this.bindActions(spec[key]);\n } else if (key === \"initialize\") {\n // do nothing\n } else if (_isFunction(spec[key])) {\n this[key] = spec[key].bind(this);\n } else {\n this[key] = spec[key];\n }\n }\n\n if (spec.initialize) {\n spec.initialize.call(this, options);\n }\n };\n\n inherits(constructor, Store);\n return constructor;\n};\n\nmodule.exports = createStore;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n objectPath = require(\"object-path\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _reduce = require(\"lodash-node/modern/collections/reduce\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isString = require(\"lodash-node/modern/objects/isString\");\n\nvar Dispatcher = require(\"./dispatcher\");\n\nvar findLeaves = function(obj, path, callback) {\n path = path || [];\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (_isFunction(obj[key])) {\n callback(path.concat(key), obj[key]);\n } else {\n findLeaves(obj[key], path.concat(key), callback);\n }\n }\n }\n};\n\nvar Flux = function(stores, actions) {\n EventEmitter.call(this);\n this.dispatcher = new Dispatcher(stores);\n this.actions = {};\n this.stores = {};\n\n var dispatcher = this.dispatcher;\n var flux = this;\n this.dispatchBinder = {\n flux: flux,\n dispatch: function(type, payload) {\n try {\n flux.emit(\"dispatch\", type, payload);\n } finally {\n dispatcher.dispatch({type: type, payload: payload});\n }\n }\n };\n\n this.addActions(actions);\n this.addStores(stores);\n};\n\ninherits(Flux, EventEmitter);\n\nFlux.prototype.addActions = function(actions) {\n findLeaves(actions, [], this.addAction.bind(this));\n};\n\n// addAction has two signatures:\n// 1: string[, string, string, string...], actionFunction\n// 2: arrayOfStrings, actionFunction\nFlux.prototype.addAction = function() {\n if (arguments.length < 2) {\n throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n }\n\n var args = Array.prototype.slice.call(arguments);\n\n if (!_isFunction(args[args.length - 1])) {\n throw new Error(\"The last argument to addAction must be a function\");\n }\n\n var func = args.pop().bind(this.dispatchBinder);\n\n if (!_isString(args[0])) {\n args = args[0];\n }\n\n var leadingPaths = _reduce(args, function(acc, next) {\n if (acc) {\n var nextPath = acc[acc.length - 1].concat([next]);\n return acc.concat([nextPath]);\n } else {\n return [[next]];\n }\n }, null);\n\n // Detect trying to replace a function at any point in the path\n _each(leadingPaths, function(path) {\n if (_isFunction(objectPath.get(this.actions, path))) {\n throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n }\n }, this);\n\n // Detect trying to replace a namespace at the final point in the path\n if (objectPath.get(this.actions, args)) {\n throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n }\n\n objectPath.set(this.actions, args, func, true);\n};\n\nFlux.prototype.store = function(name) {\n return this.stores[name];\n};\n\nFlux.prototype.addStore = function(name, store) {\n if (name in this.stores) {\n throw new Error(\"A store named '\" + name + \"' already exists\");\n }\n store.flux = this;\n this.stores[name] = store;\n this.dispatcher.addStore(name, store);\n};\n\nFlux.prototype.addStores = function(stores) {\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nmodule.exports = Flux;\n","var FluxChildMixin = function(React) {\n return {\n componentWillMount: function() {\n if (console && console.warn) {\n var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n console.warn(message);\n }\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getFlux: function() {\n return this.context.flux;\n }\n };\n};\n\nFluxChildMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n};\n\nmodule.exports = FluxChildMixin;\n","var FluxMixin = function(React) {\n return {\n componentWillMount: function() {\n if (!this.props.flux && (!this.context || !this.context.flux)) {\n var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n }\n },\n\n childContextTypes: {\n flux: React.PropTypes.object\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getChildContext: function() {\n return {\n flux: this.getFlux()\n };\n },\n\n getFlux: function() {\n return this.props.flux || (this.context && this.context.flux);\n }\n };\n};\n\nFluxMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n};\n\nmodule.exports = FluxMixin;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isObject = require(\"lodash-node/modern/objects/isObject\");\n\nfunction Store(dispatcher) {\n this.dispatcher = dispatcher;\n this.__actions__ = {};\n EventEmitter.call(this);\n}\n\ninherits(Store, EventEmitter);\n\nStore.prototype.__handleAction__ = function(action) {\n var handler;\n if (!!(handler = this.__actions__[action.type])) {\n if (_isFunction(handler)) {\n handler.call(this, action.payload, action.type);\n } else if (handler && _isFunction(this[handler])) {\n this[handler].call(this, action.payload, action.type);\n } else {\n throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n }\n return true;\n } else {\n return false;\n }\n};\n\nStore.prototype.bindActions = function() {\n var actions = Array.prototype.slice.call(arguments);\n\n if (actions.length > 1 && actions.length % 2 !== 0) {\n throw new Error(\"bindActions must take an even number of arguments.\");\n }\n\n var bindAction = function(type, handler) {\n if (!handler) {\n throw new Error(\"The handler for action type \" + type + \" is falsy\");\n }\n\n this.__actions__[type] = handler;\n }.bind(this);\n\n if (actions.length === 1 && _isObject(actions[0])) {\n actions = actions[0];\n for (var key in actions) {\n if (actions.hasOwnProperty(key)) {\n bindAction(key, actions[key]);\n }\n }\n } else {\n for (var i = 0; i < actions.length; i += 2) {\n var type = actions[i],\n handler = actions[i+1];\n\n if (!type) {\n throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n }\n\n bindAction(type, handler);\n }\n }\n};\n\nStore.prototype.waitFor = function(stores, fn) {\n this.dispatcher.waitForStores(this, stores, fn.bind(this));\n};\n\nmodule.exports = Store;\n","var _each = require(\"lodash-node/modern/collections/forEach\");\n\nvar StoreWatchMixin = function() {\n var storeNames = Array.prototype.slice.call(arguments);\n return {\n componentWillMount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).on(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n componentWillUnmount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n _setStateFromFlux: function() {\n if(this.isMounted()) {\n this.setState(this.getStateFromFlux());\n }\n },\n\n getInitialState: function() {\n return this.getStateFromFlux();\n }\n };\n};\n\nStoreWatchMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n \"store names as parameters and returns the mixin, e.g.: \" +\n \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n};\n\nmodule.exports = StoreWatchMixin;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('../internals/baseIndexOf'),\n cacheIndexOf = require('../internals/cacheIndexOf'),\n createCache = require('../internals/createCache'),\n getArray = require('../internals/getArray'),\n isArguments = require('../objects/isArguments'),\n isArray = require('../objects/isArray'),\n largeArraySize = require('../internals/largeArraySize'),\n releaseArray = require('../internals/releaseArray'),\n releaseObject = require('../internals/releaseObject');\n\n/**\n * Creates an array of unique values present in all provided arrays using\n * strict equality for comparisons, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @category Arrays\n * @param {...Array} [array] The arrays to inspect.\n * @returns {Array} Returns an array of shared values.\n * @example\n *\n * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n * // => [1, 2]\n */\nfunction intersection() {\n var args = [],\n argsIndex = -1,\n argsLength = arguments.length,\n caches = getArray(),\n indexOf = baseIndexOf,\n trustIndexOf = indexOf === baseIndexOf,\n seen = getArray();\n\n while (++argsIndex < argsLength) {\n var value = arguments[argsIndex];\n if (isArray(value) || isArguments(value)) {\n args.push(value);\n caches.push(trustIndexOf && value.length >= largeArraySize &&\n createCache(argsIndex ? args[argsIndex] : seen));\n }\n }\n var array = args[0],\n index = -1,\n length = array ? array.length : 0,\n result = [];\n\n outer:\n while (++index < length) {\n var cache = caches[0];\n value = array[index];\n\n if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n argsIndex = argsLength;\n (cache || seen).push(value);\n while (--argsIndex) {\n cache = caches[argsIndex];\n if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n continue outer;\n }\n }\n result.push(value);\n }\n }\n while (argsLength--) {\n cache = caches[argsLength];\n if (cache) {\n releaseObject(cache);\n }\n }\n releaseArray(caches);\n releaseArray(seen);\n return result;\n}\n\nmodule.exports = intersection;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseUniq = require('../internals/baseUniq'),\n createCallback = require('../functions/createCallback');\n\n/**\n * Creates a duplicate-value-free version of an array using strict equality\n * for comparisons, i.e. `===`. If the array is sorted, providing\n * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n * each element of `array` is passed through the callback before uniqueness\n * is computed. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, index, array).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias unique\n * @category Arrays\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a duplicate-value-free array.\n * @example\n *\n * _.uniq([1, 2, 1, 3, 1]);\n * // => [1, 2, 3]\n *\n * _.uniq([1, 1, 2, 2, 3], true);\n * // => [1, 2, 3]\n *\n * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n * // => ['A', 'b', 'C']\n *\n * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n * // => [1, 2.5, 3]\n *\n * // using \"_.pluck\" callback shorthand\n * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniq(array, isSorted, callback, thisArg) {\n // juggle arguments\n if (typeof isSorted != 'boolean' && isSorted != null) {\n thisArg = callback;\n callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n isSorted = false;\n }\n if (callback != null) {\n callback = createCallback(callback, thisArg, 3);\n }\n return baseUniq(array, isSorted, callback);\n}\n\nmodule.exports = uniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Creates an array of values by running each element in the collection\n * through the callback. The callback is bound to `thisArg` and invoked with\n * three arguments; (value, index|key, collection).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias collect\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new array of the results of each `callback` execution.\n * @example\n *\n * _.map([1, 2, 3], function(num) { return num * 3; });\n * // => [3, 6, 9]\n *\n * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n * // => [3, 6, 9] (property order is not guaranteed across environments)\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // using \"_.pluck\" callback shorthand\n * _.map(characters, 'name');\n * // => ['barney', 'fred']\n */\nfunction map(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = createCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n var result = Array(length);\n while (++index < length) {\n result[index] = callback(collection[index], index, collection);\n }\n } else {\n result = [];\n forOwn(collection, function(value, key, collection) {\n result[++index] = callback(value, key, collection);\n });\n }\n return result;\n}\n\nmodule.exports = map;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Reduces a collection to a value which is the accumulated result of running\n * each element in the collection through the callback, where each successive\n * callback execution consumes the return value of the previous execution. If\n * `accumulator` is not provided the first element of the collection will be\n * used as the initial `accumulator` value. The callback is bound to `thisArg`\n * and invoked with four arguments; (accumulator, value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @alias foldl, inject\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [accumulator] Initial value of the accumulator.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * var sum = _.reduce([1, 2, 3], function(sum, num) {\n * return sum + num;\n * });\n * // => 6\n *\n * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n * result[key] = num * 3;\n * return result;\n * }, {});\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n */\nfunction reduce(collection, callback, accumulator, thisArg) {\n if (!collection) return accumulator;\n var noaccum = arguments.length < 3;\n callback = createCallback(callback, thisArg, 4);\n\n var index = -1,\n length = collection.length;\n\n if (typeof length == 'number') {\n if (noaccum) {\n accumulator = collection[++index];\n }\n while (++index < length) {\n accumulator = callback(accumulator, collection[index], index, collection);\n }\n } else {\n forOwn(collection, function(value, index, collection) {\n accumulator = noaccum\n ? (noaccum = false, value)\n : callback(accumulator, value, index, collection)\n });\n }\n return accumulator;\n}\n\nmodule.exports = reduce;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keys = require('../objects/keys');\n\n/**\n * Gets the size of the `collection` by returning `collection.length` for arrays\n * and array-like objects or the number of own enumerable properties for objects.\n *\n * @static\n * @memberOf _\n * @category Collections\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns `collection.length` or number of own enumerable properties.\n * @example\n *\n * _.size([1, 2]);\n * // => 2\n *\n * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n * // => 3\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n var length = collection ? collection.length : 0;\n return typeof length == 'number' ? length : keys(collection).length;\n}\n\nmodule.exports = size;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createWrapper = require('../internals/createWrapper'),\n slice = require('../internals/slice');\n\n/**\n * Creates a function that, when called, invokes `func` with the `this`\n * binding of `thisArg` and prepends any additional `bind` arguments to those\n * provided to the bound function.\n *\n * @static\n * @memberOf _\n * @category Functions\n * @param {Function} func The function to bind.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {...*} [arg] Arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var func = function(greeting) {\n * return greeting + ' ' + this.name;\n * };\n *\n * func = _.bind(func, { 'name': 'fred' }, 'hi');\n * func();\n * // => 'hi fred'\n */\nfunction bind(func, thisArg) {\n return arguments.length > 2\n ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n : createWrapper(func, 1, null, null, thisArg);\n}\n\nmodule.exports = bind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `_.bind` that creates the bound function and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new bound function.\n */\nfunction baseBind(bindData) {\n var func = bindData[0],\n partialArgs = bindData[2],\n thisArg = bindData[4];\n\n function bound() {\n // `Function#bind` spec\n // http://es5.github.io/#x15.3.4.5\n if (partialArgs) {\n // avoid `arguments` object deoptimizations by using `slice` instead\n // of `Array.prototype.slice.call` and not assigning `arguments` to a\n // variable as a ternary expression\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n // mimic the constructor's `return` behavior\n // http://es5.github.io/#x13.2.2\n if (this instanceof bound) {\n // ensure `new bound` is an instance of `func`\n var thisBinding = baseCreate(func.prototype),\n result = func.apply(thisBinding, args || arguments);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisArg, args || arguments);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseBind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar assign = require('../objects/assign'),\n forEach = require('../collections/forEach'),\n forOwn = require('../objects/forOwn'),\n getArray = require('./getArray'),\n isArray = require('../objects/isArray'),\n isObject = require('../objects/isObject'),\n releaseArray = require('./releaseArray'),\n slice = require('./slice');\n\n/** Used to match regexp flags from their coerced string values */\nvar reFlags = /\\w*$/;\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n funcClass = '[object Function]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used to identify object classifications that `_.clone` supports */\nvar cloneableClasses = {};\ncloneableClasses[funcClass] = false;\ncloneableClasses[argsClass] = cloneableClasses[arrayClass] =\ncloneableClasses[boolClass] = cloneableClasses[dateClass] =\ncloneableClasses[numberClass] = cloneableClasses[objectClass] =\ncloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to lookup a built-in constructor by [[Class]] */\nvar ctorByClass = {};\nctorByClass[arrayClass] = Array;\nctorByClass[boolClass] = Boolean;\nctorByClass[dateClass] = Date;\nctorByClass[funcClass] = Function;\nctorByClass[objectClass] = Object;\nctorByClass[numberClass] = Number;\nctorByClass[regexpClass] = RegExp;\nctorByClass[stringClass] = String;\n\n/**\n * The base implementation of `_.clone` without argument juggling or support\n * for `thisArg` binding.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, callback, stackA, stackB) {\n if (callback) {\n var result = callback(value);\n if (typeof result != 'undefined') {\n return result;\n }\n }\n // inspect [[Class]]\n var isObj = isObject(value);\n if (isObj) {\n var className = toString.call(value);\n if (!cloneableClasses[className]) {\n return value;\n }\n var ctor = ctorByClass[className];\n switch (className) {\n case boolClass:\n case dateClass:\n return new ctor(+value);\n\n case numberClass:\n case stringClass:\n return new ctor(value);\n\n case regexpClass:\n result = ctor(value.source, reFlags.exec(value));\n result.lastIndex = value.lastIndex;\n return result;\n }\n } else {\n return value;\n }\n var isArr = isArray(value);\n if (isDeep) {\n // check for circular references and return corresponding clone\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == value) {\n return stackB[length];\n }\n }\n result = isArr ? ctor(value.length) : {};\n }\n else {\n result = isArr ? slice(value) : assign({}, value);\n }\n // add array properties assigned by `RegExp#exec`\n if (isArr) {\n if (hasOwnProperty.call(value, 'index')) {\n result.index = value.index;\n }\n if (hasOwnProperty.call(value, 'input')) {\n result.input = value.input;\n }\n }\n // exit for shallow clone\n if (!isDeep) {\n return result;\n }\n // add the source value to the stack of traversed objects\n // and associate it with its clone\n stackA.push(value);\n stackB.push(result);\n\n // recursively populate clone (susceptible to call stack limits)\n (isArr ? forEach : forOwn)(value, function(objValue, key) {\n result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n });\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `createWrapper` that creates the wrapper and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new function.\n */\nfunction baseCreateWrapper(bindData) {\n var func = bindData[0],\n bitmask = bindData[1],\n partialArgs = bindData[2],\n partialRightArgs = bindData[3],\n thisArg = bindData[4],\n arity = bindData[5];\n\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n key = func;\n\n function bound() {\n var thisBinding = isBind ? thisArg : this;\n if (partialArgs) {\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n if (partialRightArgs || isCurry) {\n args || (args = slice(arguments));\n if (partialRightArgs) {\n push.apply(args, partialRightArgs);\n }\n if (isCurry && args.length < arity) {\n bitmask |= 16 & ~32;\n return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n }\n }\n args || (args = arguments);\n if (isBindKey) {\n func = thisBinding[key];\n }\n if (this instanceof bound) {\n thisBinding = baseCreate(func.prototype);\n var result = func.apply(thisBinding, args);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisBinding, args);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseCreateWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar forIn = require('../objects/forIn'),\n getArray = require('./getArray'),\n isFunction = require('../objects/isFunction'),\n objectTypes = require('./objectTypes'),\n releaseArray = require('./releaseArray');\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n * that allows partial \"_.where\" style comparisons.\n *\n * @private\n * @param {*} a The value to compare.\n * @param {*} b The other value to compare.\n * @param {Function} [callback] The function to customize comparing values.\n * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n // used to indicate that when comparing objects, `a` has at least the properties of `b`\n if (callback) {\n var result = callback(a, b);\n if (typeof result != 'undefined') {\n return !!result;\n }\n }\n // exit early for identical values\n if (a === b) {\n // treat `+0` vs. `-0` as not equal\n return a !== 0 || (1 / a == 1 / b);\n }\n var type = typeof a,\n otherType = typeof b;\n\n // exit early for unlike primitive values\n if (a === a &&\n !(a && objectTypes[type]) &&\n !(b && objectTypes[otherType])) {\n return false;\n }\n // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n // http://es5.github.io/#x15.3.4.4\n if (a == null || b == null) {\n return a === b;\n }\n // compare [[Class]] names\n var className = toString.call(a),\n otherClass = toString.call(b);\n\n if (className == argsClass) {\n className = objectClass;\n }\n if (otherClass == argsClass) {\n otherClass = objectClass;\n }\n if (className != otherClass) {\n return false;\n }\n switch (className) {\n case boolClass:\n case dateClass:\n // coerce dates and booleans to numbers, dates to milliseconds and booleans\n // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n return +a == +b;\n\n case numberClass:\n // treat `NaN` vs. `NaN` as equal\n return (a != +a)\n ? b != +b\n // but treat `+0` vs. `-0` as not equal\n : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\n case regexpClass:\n case stringClass:\n // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n // treat string primitives and their corresponding object instances as equal\n return a == String(b);\n }\n var isArr = className == arrayClass;\n if (!isArr) {\n // unwrap any `lodash` wrapped values\n var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\n if (aWrapped || bWrapped) {\n return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n }\n // exit for functions and DOM nodes\n if (className != objectClass) {\n return false;\n }\n // in older versions of Opera, `arguments` objects have `Array` constructors\n var ctorA = a.constructor,\n ctorB = b.constructor;\n\n // non `Object` object instances with different constructors are not equal\n if (ctorA != ctorB &&\n !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n ('constructor' in a && 'constructor' in b)\n ) {\n return false;\n }\n }\n // assume cyclic structures are equal\n // the algorithm for detecting cyclic structures is adapted from ES 5.1\n // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == a) {\n return stackB[length] == b;\n }\n }\n var size = 0;\n result = true;\n\n // add `a` and `b` to the stack of traversed objects\n stackA.push(a);\n stackB.push(b);\n\n // recursively compare objects and arrays (susceptible to call stack limits)\n if (isArr) {\n // compare lengths to determine if a deep comparison is necessary\n length = a.length;\n size = b.length;\n result = size == length;\n\n if (result || isWhere) {\n // deep compare the contents, ignoring non-numeric properties\n while (size--) {\n var index = length,\n value = b[size];\n\n if (isWhere) {\n while (index--) {\n if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n }\n }\n else {\n // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n // which, in this case, is more costly\n forIn(b, function(value, key, b) {\n if (hasOwnProperty.call(b, key)) {\n // count the number of properties.\n size++;\n // deep compare each property value.\n return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n }\n });\n\n if (result && !isWhere) {\n // ensure both objects have the same number of properties\n forIn(a, function(value, key, a) {\n if (hasOwnProperty.call(a, key)) {\n // `size` will be `-1` if `a` has more properties than `b`\n return (result = --size > -1);\n }\n });\n }\n }\n stackA.pop();\n stackB.pop();\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseIsEqual;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n cacheIndexOf = require('./cacheIndexOf'),\n createCache = require('./createCache'),\n getArray = require('./getArray'),\n largeArraySize = require('./largeArraySize'),\n releaseArray = require('./releaseArray'),\n releaseObject = require('./releaseObject');\n\n/**\n * The base implementation of `_.uniq` without support for callback shorthands\n * or `thisArg` binding.\n *\n * @private\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function} [callback] The function called per iteration.\n * @returns {Array} Returns a duplicate-value-free array.\n */\nfunction baseUniq(array, isSorted, callback) {\n var index = -1,\n indexOf = baseIndexOf,\n length = array ? array.length : 0,\n result = [];\n\n var isLarge = !isSorted && length >= largeArraySize,\n seen = (callback || isLarge) ? getArray() : result;\n\n if (isLarge) {\n var cache = createCache(seen);\n indexOf = cacheIndexOf;\n seen = cache;\n }\n while (++index < length) {\n var value = array[index],\n computed = callback ? callback(value, index, array) : value;\n\n if (isSorted\n ? !index || seen[seen.length - 1] !== computed\n : indexOf(seen, computed) < 0\n ) {\n if (callback || isLarge) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n if (isLarge) {\n releaseArray(seen.array);\n releaseObject(seen);\n } else if (callback) {\n releaseArray(seen);\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keyPrefix = require('./keyPrefix');\n\n/**\n * Adds a given value to the corresponding cache object.\n *\n * @private\n * @param {*} value The value to add to the cache.\n */\nfunction cachePush(value) {\n var cache = this.cache,\n type = typeof value;\n\n if (type == 'boolean' || value == null) {\n cache[value] = true;\n } else {\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value,\n typeCache = cache[type] || (cache[type] = {});\n\n if (type == 'object') {\n (typeCache[key] || (typeCache[key] = [])).push(value);\n } else {\n typeCache[key] = true;\n }\n }\n}\n\nmodule.exports = cachePush;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseBind = require('./baseBind'),\n baseCreateWrapper = require('./baseCreateWrapper'),\n isFunction = require('../objects/isFunction'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push,\n unshift = arrayRef.unshift;\n\n/**\n * Creates a function that, when called, either curries or invokes `func`\n * with an optional `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to reference.\n * @param {number} bitmask The bitmask of method flags to compose.\n * The bitmask may be composed of the following flags:\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry`\n * 8 - `_.curry` (bound)\n * 16 - `_.partial`\n * 32 - `_.partialRight`\n * @param {Array} [partialArgs] An array of arguments to prepend to those\n * provided to the new function.\n * @param {Array} [partialRightArgs] An array of arguments to append to those\n * provided to the new function.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new function.\n */\nfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n isPartial = bitmask & 16,\n isPartialRight = bitmask & 32;\n\n if (!isBindKey && !isFunction(func)) {\n throw new TypeError;\n }\n if (isPartial && !partialArgs.length) {\n bitmask &= ~16;\n isPartial = partialArgs = false;\n }\n if (isPartialRight && !partialRightArgs.length) {\n bitmask &= ~32;\n isPartialRight = partialRightArgs = false;\n }\n var bindData = func && func.__bindData__;\n if (bindData && bindData !== true) {\n // clone `bindData`\n bindData = slice(bindData);\n if (bindData[2]) {\n bindData[2] = slice(bindData[2]);\n }\n if (bindData[3]) {\n bindData[3] = slice(bindData[3]);\n }\n // set `thisBinding` is not previously bound\n if (isBind && !(bindData[1] & 1)) {\n bindData[4] = thisArg;\n }\n // set if previously bound but not currently (subsequent curried functions)\n if (!isBind && bindData[1] & 1) {\n bitmask |= 8;\n }\n // set curried arity if not yet set\n if (isCurry && !(bindData[1] & 4)) {\n bindData[5] = arity;\n }\n // append partial left arguments\n if (isPartial) {\n push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n }\n // append partial right arguments\n if (isPartialRight) {\n unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n }\n // merge flags\n bindData[1] |= bitmask;\n return createWrapper.apply(null, bindData);\n }\n // fast path for `_.bind`\n var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n}\n\nmodule.exports = createWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectPool = require('./objectPool');\n\n/**\n * Gets an object from the object pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Object} The object from the pool.\n */\nfunction getObject() {\n return objectPool.pop() || {\n 'array': null,\n 'cache': null,\n 'criteria': null,\n 'false': false,\n 'index': 0,\n 'null': false,\n 'number': null,\n 'object': null,\n 'push': null,\n 'string': null,\n 'true': false,\n 'undefined': false,\n 'value': null\n };\n}\n\nmodule.exports = getObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('./objectTypes');\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which produces an array of the\n * given object's own enumerable property names.\n *\n * @private\n * @type Function\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n */\nvar shimKeys = function(object) {\n var index, iterable = object, result = [];\n if (!iterable) return result;\n if (!(objectTypes[typeof object])) return result;\n for (index in iterable) {\n if (hasOwnProperty.call(iterable, index)) {\n result.push(index);\n }\n }\n return result\n};\n\nmodule.exports = shimKeys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources will overwrite property assignments of previous\n * sources. If a callback is provided it will be executed to produce the\n * assigned values. The callback is bound to `thisArg` and invoked with two\n * arguments; (objectValue, sourceValue).\n *\n * @static\n * @memberOf _\n * @type Function\n * @alias extend\n * @category Objects\n * @param {Object} object The destination object.\n * @param {...Object} [source] The source objects.\n * @param {Function} [callback] The function to customize assigning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns the destination object.\n * @example\n *\n * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n * // => { 'name': 'fred', 'employer': 'slate' }\n *\n * var defaults = _.partialRight(_.assign, function(a, b) {\n * return typeof a == 'undefined' ? b : a;\n * });\n *\n * var object = { 'name': 'barney' };\n * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n * // => { 'name': 'barney', 'employer': 'slate' }\n */\nvar assign = function(object, source, guard) {\n var index, iterable = object, result = iterable;\n if (!iterable) return result;\n var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\n if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n }\n while (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n }\n }\n }\n return result\n};\n\nmodule.exports = assign;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseClone = require('../internals/baseClone'),\n baseCreateCallback = require('../internals/baseCreateCallback');\n\n/**\n * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n * be cloned, otherwise they will be assigned by reference. If a callback\n * is provided it will be executed to produce the cloned values. If the\n * callback returns `undefined` cloning will be handled by the method instead.\n * The callback is bound to `thisArg` and invoked with one argument; (value).\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the cloned value.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * var shallow = _.clone(characters);\n * shallow[0] === characters[0];\n * // => true\n *\n * var deep = _.clone(characters, true);\n * deep[0] === characters[0];\n * // => false\n *\n * _.mixin({\n * 'clone': _.partialRight(_.clone, function(value) {\n * return _.isElement(value) ? value.cloneNode(false) : undefined;\n * })\n * });\n *\n * var clone = _.clone(document.body);\n * clone.childNodes.length;\n * // => 0\n */\nfunction clone(value, isDeep, callback, thisArg) {\n // allows working with \"Collections\" methods without using their `index`\n // and `collection` arguments for `isDeep` and `callback`\n if (typeof isDeep != 'boolean' && isDeep != null) {\n thisArg = callback;\n callback = isDeep;\n isDeep = false;\n }\n return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n}\n\nmodule.exports = clone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * This method is like `_.findIndex` except that it returns the key of the\n * first element that passes the callback check, instead of the element itself.\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to search.\n * @param {Function|Object|string} [callback=identity] The function called per\n * iteration. If a property name or object is provided it will be used to\n * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n * @example\n *\n * var characters = {\n * 'barney': { 'age': 36, 'blocked': false },\n * 'fred': { 'age': 40, 'blocked': true },\n * 'pebbles': { 'age': 1, 'blocked': false }\n * };\n *\n * _.findKey(characters, function(chr) {\n * return chr.age < 40;\n * });\n * // => 'barney' (property order is not guaranteed across environments)\n *\n * // using \"_.where\" callback shorthand\n * _.findKey(characters, { 'age': 1 });\n * // => 'pebbles'\n *\n * // using \"_.pluck\" callback shorthand\n * _.findKey(characters, 'blocked');\n * // => 'fred'\n */\nfunction findKey(object, callback, thisArg) {\n var result;\n callback = createCallback(callback, thisArg, 3);\n forOwn(object, function(value, key, object) {\n if (callback(value, key, object)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = findKey;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own and inherited enumerable properties of an object,\n * executing the callback for each property. The callback is bound to `thisArg`\n * and invoked with three arguments; (value, key, object). Callbacks may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * Shape.prototype.move = function(x, y) {\n * this.x += x;\n * this.y += y;\n * };\n *\n * _.forIn(new Shape, function(value, key) {\n * console.log(key);\n * });\n * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n */\nvar forIn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n for (index in iterable) {\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forIn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n * @example\n *\n * (function() { return _.isArguments(arguments); })(1, 2, 3);\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == argsClass || false;\n}\n\nmodule.exports = isArguments;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is a string.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n * @example\n *\n * _.isString('fred');\n * // => true\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n value && typeof value == 'object' && toString.call(value) == stringClass || false;\n}\n\nmodule.exports = isString;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * Creates an object with the same keys as `object` and values generated by\n * running each own enumerable property of `object` through the callback.\n * The callback is bound to `thisArg` and invoked with three arguments;\n * (value, key, object).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n * @example\n *\n * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n *\n * var characters = {\n * 'fred': { 'name': 'fred', 'age': 40 },\n * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n * };\n *\n * // using \"_.pluck\" callback shorthand\n * _.mapValues(characters, 'age');\n * // => { 'fred': 40, 'pebbles': 1 }\n */\nfunction mapValues(object, callback, thisArg) {\n var result = {};\n callback = createCallback(callback, thisArg, 3);\n\n forOwn(object, function(value, key, object) {\n result[key] = callback(value, key, object);\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./internals/isNative');\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/**\n * An object used to flag environments features.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n/**\n * Detect if functions can be decompiled by `Function#toString`\n * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\n/**\n * Detect if `Function#name` is supported (all but IE).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcNames = typeof Function.name == 'string';\n\nmodule.exports = support;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Creates a \"_.pluck\" style function, which returns the `key` value of a\n * given object.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {string} key The name of the property to retrieve.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var characters = [\n * { 'name': 'fred', 'age': 40 },\n * { 'name': 'barney', 'age': 36 }\n * ];\n *\n * var getName = _.property('name');\n *\n * _.map(characters, getName);\n * // => ['barney', 'fred']\n *\n * _.sortBy(characters, getName);\n * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n */\nfunction property(key) {\n return function(object) {\n return object[key];\n };\n}\n\nmodule.exports = property;\n","(function (root, factory){\n 'use strict';\n\n /*istanbul ignore next:cant test*/\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else {\n // Browser globals\n root.objectPath = factory();\n }\n})(this, function(){\n 'use strict';\n\n var\n toStr = Object.prototype.toString,\n _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function isEmpty(value){\n if (!value) {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n } else {\n for (var i in value) {\n if (_hasOwnProperty.call(value, i)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function toString(type){\n return toStr.call(type);\n }\n\n function isNumber(value){\n return typeof value === 'number' || toString(value) === \"[object Number]\";\n }\n\n function isString(obj){\n return typeof obj === 'string' || toString(obj) === \"[object String]\";\n }\n\n function isObject(obj){\n return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n }\n\n function isArray(obj){\n return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n }\n\n function isBoolean(obj){\n return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n }\n\n function getKey(key){\n var intKey = parseInt(key);\n if (intKey.toString() === key) {\n return intKey;\n }\n return key;\n }\n\n function set(obj, path, value, doNotReplace){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isString(path)) {\n return set(obj, path.split('.'), value, doNotReplace);\n }\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n var oldVal = obj[currentPath];\n if (oldVal === void 0 || !doNotReplace) {\n obj[currentPath] = value;\n }\n return oldVal;\n }\n\n if (obj[currentPath] === void 0) {\n if (isNumber(currentPath)) {\n obj[currentPath] = [];\n } else {\n obj[currentPath] = {};\n }\n }\n\n return set(obj[currentPath], path.slice(1), value, doNotReplace);\n }\n\n function del(obj, path) {\n if (isNumber(path)) {\n path = [path];\n }\n\n if (isEmpty(obj)) {\n return void 0;\n }\n\n if (isEmpty(path)) {\n return obj;\n }\n if(isString(path)) {\n return del(obj, path.split('.'));\n }\n\n var currentPath = getKey(path[0]);\n var oldVal = obj[currentPath];\n\n if(path.length === 1) {\n if (oldVal !== void 0) {\n if (isArray(obj)) {\n obj.splice(currentPath, 1);\n } else {\n delete obj[currentPath];\n }\n }\n } else {\n if (obj[currentPath] !== void 0) {\n return del(obj[currentPath], path.slice(1));\n }\n }\n\n return obj;\n }\n\n var objectPath = {};\n\n objectPath.ensureExists = function (obj, path, value){\n return set(obj, path, value, true);\n };\n\n objectPath.set = function (obj, path, value, doNotReplace){\n return set(obj, path, value, doNotReplace);\n };\n\n objectPath.insert = function (obj, path, value, at){\n var arr = objectPath.get(obj, path);\n at = ~~at;\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n arr.splice(at, 0, value);\n };\n\n objectPath.empty = function(obj, path) {\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return void 0;\n }\n\n var value, i;\n if (!(value = objectPath.get(obj, path))) {\n return obj;\n }\n\n if (isString(value)) {\n return objectPath.set(obj, path, '');\n } else if (isBoolean(value)) {\n return objectPath.set(obj, path, false);\n } else if (isNumber(value)) {\n return objectPath.set(obj, path, 0);\n } else if (isArray(value)) {\n value.length = 0;\n } else if (isObject(value)) {\n for (i in value) {\n if (_hasOwnProperty.call(value, i)) {\n delete value[i];\n }\n }\n } else {\n return objectPath.set(obj, path, null);\n }\n };\n\n objectPath.push = function (obj, path /*, values */){\n var arr = objectPath.get(obj, path);\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n\n arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n };\n\n objectPath.coalesce = function (obj, paths, defaultValue) {\n var value;\n\n for (var i = 0, len = paths.length; i < len; i++) {\n if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n return value;\n }\n }\n\n return defaultValue;\n };\n\n objectPath.get = function (obj, path, defaultValue){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return defaultValue;\n }\n if (isString(path)) {\n return objectPath.get(obj, path.split('.'), defaultValue);\n }\n\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n if (obj[currentPath] === void 0) {\n return defaultValue;\n }\n return obj[currentPath];\n }\n\n return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n };\n\n objectPath.del = function(obj, path) {\n return del(obj, path);\n };\n\n return objectPath;\n});","module.exports = \"1.5.0\""],"sourceRoot":"webpack-module://"} \ No newline at end of file +{"version":3,"file":"fluxxor.min.js","sources":["webpack/universalModuleDefinition","fluxxor.min.js","webpack/bootstrap 217b97046bb9f3862978*","./index.js","./~/lodash-node/modern/objects/forOwn.js","./~/lodash-node/modern/objects/isObject.js","./~/lodash-node/modern/internals/baseCreateCallback.js","./~/lodash-node/modern/internals/objectTypes.js","./~/lodash-node/modern/collections/forEach.js","./~/lodash-node/modern/functions/createCallback.js","./~/lodash-node/modern/internals/isNative.js","./~/lodash-node/modern/internals/slice.js","./~/lodash-node/modern/objects/isFunction.js","./~/lodash-node/modern/objects/keys.js","./~/lodash-node/modern/internals/getArray.js","./~/lodash-node/modern/internals/releaseArray.js","./~/inherits/inherits_browser.js","./~/lodash-node/modern/internals/baseIndexOf.js","./~/lodash-node/modern/internals/releaseObject.js","./~/lodash-node/modern/internals/setBindData.js","./lib/dispatcher.js","./~/eventemitter3/index.js","./~/lodash-node/modern/internals/arrayPool.js","./~/lodash-node/modern/internals/baseCreate.js","./~/lodash-node/modern/internals/cacheIndexOf.js","./~/lodash-node/modern/internals/createCache.js","./~/lodash-node/modern/internals/keyPrefix.js","./~/lodash-node/modern/internals/largeArraySize.js","./~/lodash-node/modern/internals/maxPoolSize.js","./~/lodash-node/modern/internals/objectPool.js","./~/lodash-node/modern/objects/isArray.js","./~/lodash-node/modern/utilities/noop.js","./lib/create_store.js","./lib/flux.js","./lib/flux_child_mixin.js","./lib/flux_mixin.js","./lib/store.js","./lib/store_watch_mixin.js","./~/lodash-node/modern/arrays/intersection.js","./~/lodash-node/modern/arrays/uniq.js","./~/lodash-node/modern/collections/map.js","./~/lodash-node/modern/collections/reduce.js","./~/lodash-node/modern/collections/size.js","./~/lodash-node/modern/functions/bind.js","./~/lodash-node/modern/internals/baseBind.js","./~/lodash-node/modern/internals/baseClone.js","./~/lodash-node/modern/internals/baseCreateWrapper.js","./~/lodash-node/modern/internals/baseIsEqual.js","./~/lodash-node/modern/internals/baseUniq.js","./~/lodash-node/modern/internals/cachePush.js","./~/lodash-node/modern/internals/createWrapper.js","./~/lodash-node/modern/internals/getObject.js","./~/lodash-node/modern/internals/shimKeys.js","./~/lodash-node/modern/objects/assign.js","./~/lodash-node/modern/objects/clone.js","./~/lodash-node/modern/objects/findKey.js","./~/lodash-node/modern/objects/forIn.js","./~/lodash-node/modern/objects/isArguments.js","./~/lodash-node/modern/objects/isString.js","./~/lodash-node/modern/objects/mapValues.js","./~/lodash-node/modern/support.js","./~/lodash-node/modern/utilities/identity.js","./~/lodash-node/modern/utilities/property.js","./~/object-path/index.js","./version.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Dispatcher","Flux","FluxMixin","FluxChildMixin","StoreWatchMixin","createStore","Fluxxor","version","baseCreateCallback","keys","objectTypes","forOwn","collection","callback","thisArg","index","iterable","result","ownIndex","ownProps","length","isObject","value","func","argCount","identity","bindData","__bindData__","support","funcNames","name","funcDecomp","source","fnToString","reFuncName","test","reThis","setBindData","a","b","accumulator","bind","Function","prototype","toString","boolean","function","object","number","string","undefined","forEach","createCallback","type","property","props","key","baseIsEqual","isNative","reNative","objectProto","Object","RegExp","String","replace","slice","array","start","end","Array","isFunction","shimKeys","nativeKeys","getArray","arrayPool","pop","releaseArray","maxPoolSize","push","create","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","baseIndexOf","fromIndex","releaseObject","cache","criteria","objectPool","noop","descriptor","defineProperty","o","e","_clone","_mapValues","_forOwn","_intersection","_keys","_map","_each","_size","_findKey","_uniq","stores","currentDispatch","currentActionType","waitingToDispatch","hasOwnProperty","addStore","store","dispatcher","dispatch","action","Error","complaint","resolved","waitingOn","waitCallback","doDispatchLoop","canBeDispatchedTo","wasHandled","removeFromDispatchQueue","dispatchedThisLoop","fn","apply","handled","__handleAction__","storesWithCircularWaits","join","console","warn","waitForStores","waitingStoreName","val","indexOf","storeName","storeDispatch","concat","EE","context","once","EventEmitter","_events","listeners","event","i","l","ee","emit","a1","a2","a3","a4","a5","args","j","len","arguments","removeListener","on","events","removeAllListeners","off","addListener","setMaxListeners","EventEmitter2","EventEmitter3","global","baseCreate","nativeCreate","cacheIndexOf","keyPrefix","createCache","first","mid","last","getObject","cachePush","Date","largeArraySize","arrayClass","nativeIsArray","isArray","_isFunction","Store","inherits","RESERVED_KEYS","spec","options","bindActions","initialize","objectPath","_reduce","_isString","findLeaves","obj","path","actions","flux","dispatchBinder","payload","addActions","addStores","addAction","leadingPaths","acc","next","nextPath","get","set","React","componentWillMount","namePart","displayName","message","contextTypes","PropTypes","getFlux","childContextTypes","getChildContext","__actions__","_isObject","handler","bindAction","waitFor","storeNames","componentDidMount","_setStateFromFlux","componentWillUnmount","isMounted","setState","getStateFromFlux","getInitialState","intersection","argsIndex","argsLength","caches","trustIndexOf","seen","isArguments","outer","uniq","isSorted","baseUniq","map","reduce","noaccum","size","createWrapper","baseBind","bound","partialArgs","thisBinding","arrayRef","baseClone","isDeep","stackA","stackB","isObj","className","cloneableClasses","ctorByClass","boolClass","dateClass","numberClass","stringClass","regexpClass","reFlags","exec","lastIndex","isArr","initedStack","assign","input","objValue","argsClass","funcClass","objectClass","Boolean","Number","baseCreateWrapper","isBind","partialRightArgs","isCurry","arity","bitmask","isCurryBound","isBindKey","isWhere","otherType","otherClass","aWrapped","bWrapped","__wrapped__","ctorA","ctorB","forIn","isLarge","computed","typeCache","isPartial","isPartialRight","TypeError","unshift","creater","false","null","true","guard","clone","findKey","isString","mapValues","WinRTError","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","isEmpty","_hasOwnProperty","toStr","isNumber","isBoolean","getKey","intKey","parseInt","doNotReplace","split","currentPath","oldVal","del","splice","ensureExists","insert","at","arr","empty","coalesce","paths","defaultValue"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn ","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxxor\"] = factory();\n\telse\n\t\troot[\"Fluxxor\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/ \t\t\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/******/ \t\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/ \t\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/ \t\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/ \t\n/******/ \t\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Dispatcher = __webpack_require__(17),\n\t Flux = __webpack_require__(30),\n\t FluxMixin = __webpack_require__(32),\n\t FluxChildMixin = __webpack_require__(31),\n\t StoreWatchMixin = __webpack_require__(34),\n\t createStore = __webpack_require__(29);\n\t\n\tvar Fluxxor = {\n\t Dispatcher: Dispatcher,\n\t Flux: Flux,\n\t FluxMixin: FluxMixin,\n\t FluxChildMixin: FluxChildMixin,\n\t StoreWatchMixin: StoreWatchMixin,\n\t createStore: createStore,\n\t version: __webpack_require__(61)\n\t};\n\t\n\tmodule.exports = Fluxxor;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t keys = __webpack_require__(10),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Iterates over own enumerable properties of an object, executing the callback\n\t * for each property. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, key, object). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n\t */\n\tvar forOwn = function(collection, callback, thisArg) {\n\t var index, iterable = collection, result = iterable;\n\t if (!iterable) return result;\n\t if (!objectTypes[typeof iterable]) return result;\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t var ownIndex = -1,\n\t ownProps = objectTypes[typeof iterable] && keys(iterable),\n\t length = ownProps ? ownProps.length : 0;\n\t\n\t while (++ownIndex < length) {\n\t index = ownProps[ownIndex];\n\t if (callback(iterable[index], index, collection) === false) return result;\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = forOwn;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Checks if `value` is the language type of Object.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // check if the value is the ECMAScript language type of Object\n\t // http://es5.github.io/#x8\n\t // and avoid a V8 bug\n\t // http://code.google.com/p/v8/issues/detail?id=2291\n\t return !!(value && objectTypes[typeof value]);\n\t}\n\t\n\tmodule.exports = isObject;\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar bind = __webpack_require__(40),\n\t identity = __webpack_require__(58),\n\t setBindData = __webpack_require__(16),\n\t support = __webpack_require__(57);\n\t\n\t/** Used to detected named functions */\n\tvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\t\n\t/** Used to detect functions containing a `this` reference */\n\tvar reThis = /\\bthis\\b/;\n\t\n\t/** Native method shortcuts */\n\tvar fnToString = Function.prototype.toString;\n\t\n\t/**\n\t * The base implementation of `_.createCallback` without support for creating\n\t * \"_.pluck\" or \"_.where\" style callbacks.\n\t *\n\t * @private\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t */\n\tfunction baseCreateCallback(func, thisArg, argCount) {\n\t if (typeof func != 'function') {\n\t return identity;\n\t }\n\t // exit early for no `thisArg` or already bound by `Function#bind`\n\t if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n\t return func;\n\t }\n\t var bindData = func.__bindData__;\n\t if (typeof bindData == 'undefined') {\n\t if (support.funcNames) {\n\t bindData = !func.name;\n\t }\n\t bindData = bindData || !support.funcDecomp;\n\t if (!bindData) {\n\t var source = fnToString.call(func);\n\t if (!support.funcNames) {\n\t bindData = !reFuncName.test(source);\n\t }\n\t if (!bindData) {\n\t // checks if `func` references the `this` keyword and stores the result\n\t bindData = reThis.test(source);\n\t setBindData(func, bindData);\n\t }\n\t }\n\t }\n\t // exit early if there are no `this` references or `func` is bound\n\t if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n\t return func;\n\t }\n\t switch (argCount) {\n\t case 1: return function(value) {\n\t return func.call(thisArg, value);\n\t };\n\t case 2: return function(a, b) {\n\t return func.call(thisArg, a, b);\n\t };\n\t case 3: return function(value, index, collection) {\n\t return func.call(thisArg, value, index, collection);\n\t };\n\t case 4: return function(accumulator, value, index, collection) {\n\t return func.call(thisArg, accumulator, value, index, collection);\n\t };\n\t }\n\t return bind(func, thisArg);\n\t}\n\t\n\tmodule.exports = baseCreateCallback;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to determine if values are of the language type Object */\n\tvar objectTypes = {\n\t 'boolean': false,\n\t 'function': true,\n\t 'object': true,\n\t 'number': false,\n\t 'string': false,\n\t 'undefined': false\n\t};\n\t\n\tmodule.exports = objectTypes;\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Iterates over elements of a collection, executing the callback for each\n\t * element. The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * Note: As with other \"Collections\" methods, objects with a `length` property\n\t * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n\t * may be used for object iteration.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias each\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array|Object|string} Returns `collection`.\n\t * @example\n\t *\n\t * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n\t * // => logs each number and returns '1,2,3'\n\t *\n\t * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n\t * // => logs each number and returns the object (property order is not guaranteed across environments)\n\t */\n\tfunction forEach(collection, callback, thisArg) {\n\t var index = -1,\n\t length = collection ? collection.length : 0;\n\t\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t if (typeof length == 'number') {\n\t while (++index < length) {\n\t if (callback(collection[index], index, collection) === false) {\n\t break;\n\t }\n\t }\n\t } else {\n\t forOwn(collection, callback);\n\t }\n\t return collection;\n\t}\n\t\n\tmodule.exports = forEach;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t baseIsEqual = __webpack_require__(44),\n\t isObject = __webpack_require__(2),\n\t keys = __webpack_require__(10),\n\t property = __webpack_require__(59);\n\t\n\t/**\n\t * Produces a callback bound to an optional `thisArg`. If `func` is a property\n\t * name the created callback will return the property value for a given element.\n\t * If `func` is an object the created callback will return `true` for elements\n\t * that contain the equivalent object properties, otherwise it will return `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // wrap to create custom callback shorthands\n\t * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n\t * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n\t * return !match ? func(callback, thisArg) : function(object) {\n\t * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n\t * };\n\t * });\n\t *\n\t * _.filter(characters, 'age__gt38');\n\t * // => [{ 'name': 'fred', 'age': 40 }]\n\t */\n\tfunction createCallback(func, thisArg, argCount) {\n\t var type = typeof func;\n\t if (func == null || type == 'function') {\n\t return baseCreateCallback(func, thisArg, argCount);\n\t }\n\t // handle \"_.pluck\" style callback shorthands\n\t if (type != 'object') {\n\t return property(func);\n\t }\n\t var props = keys(func),\n\t key = props[0],\n\t a = func[key];\n\t\n\t // handle \"_.where\" style callback shorthands\n\t if (props.length == 1 && a === a && !isObject(a)) {\n\t // fast path the common case of providing an object with a single\n\t // property containing a primitive value\n\t return function(object) {\n\t var b = object[key];\n\t return a === b && (a !== 0 || (1 / a == 1 / b));\n\t };\n\t }\n\t return function(object) {\n\t var length = props.length,\n\t result = false;\n\t\n\t while (length--) {\n\t if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n\t break;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\t\n\tmodule.exports = createCallback;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Used to detect if a method is native */\n\tvar reNative = RegExp('^' +\n\t String(toString)\n\t .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\t .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n\t);\n\t\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n\t */\n\tfunction isNative(value) {\n\t return typeof value == 'function' && reNative.test(value);\n\t}\n\t\n\tmodule.exports = isNative;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Slices the `collection` from the `start` index up to, but not including,\n\t * the `end` index.\n\t *\n\t * Note: This function is used instead of `Array#slice` to support node lists\n\t * in IE < 9 and to ensure dense arrays are returned.\n\t *\n\t * @private\n\t * @param {Array|Object|string} collection The collection to slice.\n\t * @param {number} start The start index.\n\t * @param {number} end The end index.\n\t * @returns {Array} Returns the new array.\n\t */\n\tfunction slice(array, start, end) {\n\t start || (start = 0);\n\t if (typeof end == 'undefined') {\n\t end = array ? array.length : 0;\n\t }\n\t var index = -1,\n\t length = end - start || 0,\n\t result = Array(length < 0 ? 0 : length);\n\t\n\t while (++index < length) {\n\t result[index] = array[start + index];\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = slice;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Checks if `value` is a function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t */\n\tfunction isFunction(value) {\n\t return typeof value == 'function';\n\t}\n\t\n\tmodule.exports = isFunction;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t isObject = __webpack_require__(2),\n\t shimKeys = __webpack_require__(49);\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\t\n\t/**\n\t * Creates an array composed of the own enumerable property names of an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t * @example\n\t *\n\t * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n\t */\n\tvar keys = !nativeKeys ? shimKeys : function(object) {\n\t if (!isObject(object)) {\n\t return [];\n\t }\n\t return nativeKeys(object);\n\t};\n\t\n\tmodule.exports = keys;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar arrayPool = __webpack_require__(19);\n\t\n\t/**\n\t * Gets an array from the array pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Array} The array from the pool.\n\t */\n\tfunction getArray() {\n\t return arrayPool.pop() || [];\n\t}\n\t\n\tmodule.exports = getArray;\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar arrayPool = __webpack_require__(19),\n\t maxPoolSize = __webpack_require__(25);\n\t\n\t/**\n\t * Releases the given array back to the array pool.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to release.\n\t */\n\tfunction releaseArray(array) {\n\t array.length = 0;\n\t if (arrayPool.length < maxPoolSize) {\n\t arrayPool.push(array);\n\t }\n\t}\n\t\n\tmodule.exports = releaseArray;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tif (typeof Object.create === 'function') {\n\t // implementation from standard node.js 'util' module\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t ctor.prototype = Object.create(superCtor.prototype, {\n\t constructor: {\n\t value: ctor,\n\t enumerable: false,\n\t writable: true,\n\t configurable: true\n\t }\n\t });\n\t };\n\t} else {\n\t // old school shim for old browsers\n\t module.exports = function inherits(ctor, superCtor) {\n\t ctor.super_ = superCtor\n\t var TempCtor = function () {}\n\t TempCtor.prototype = superCtor.prototype\n\t ctor.prototype = new TempCtor()\n\t ctor.prototype.constructor = ctor\n\t }\n\t}\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * The base implementation of `_.indexOf` without support for binary searches\n\t * or `fromIndex` constraints.\n\t *\n\t * @private\n\t * @param {Array} array The array to search.\n\t * @param {*} value The value to search for.\n\t * @param {number} [fromIndex=0] The index to search from.\n\t * @returns {number} Returns the index of the matched value or `-1`.\n\t */\n\tfunction baseIndexOf(array, value, fromIndex) {\n\t var index = (fromIndex || 0) - 1,\n\t length = array ? array.length : 0;\n\t\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\tmodule.exports = baseIndexOf;\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar maxPoolSize = __webpack_require__(25),\n\t objectPool = __webpack_require__(26);\n\t\n\t/**\n\t * Releases the given object back to the object pool.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to release.\n\t */\n\tfunction releaseObject(object) {\n\t var cache = object.cache;\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n\t if (objectPool.length < maxPoolSize) {\n\t objectPool.push(object);\n\t }\n\t}\n\t\n\tmodule.exports = releaseObject;\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t noop = __webpack_require__(28);\n\t\n\t/** Used as the property descriptor for `__bindData__` */\n\tvar descriptor = {\n\t 'configurable': false,\n\t 'enumerable': false,\n\t 'value': null,\n\t 'writable': false\n\t};\n\t\n\t/** Used to set meta data on functions */\n\tvar defineProperty = (function() {\n\t // IE 8 only accepts DOM elements\n\t try {\n\t var o = {},\n\t func = isNative(func = Object.defineProperty) && func,\n\t result = func(o, o, o) && func;\n\t } catch(e) { }\n\t return result;\n\t}());\n\t\n\t/**\n\t * Sets `this` binding data on a given function.\n\t *\n\t * @private\n\t * @param {Function} func The function to set data on.\n\t * @param {Array} value The data array to set.\n\t */\n\tvar setBindData = !defineProperty ? noop : function(func, value) {\n\t descriptor.value = value;\n\t defineProperty(func, '__bindData__', descriptor);\n\t};\n\t\n\tmodule.exports = setBindData;\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _clone = __webpack_require__(51),\n\t _mapValues = __webpack_require__(56),\n\t _forOwn = __webpack_require__(1),\n\t _intersection = __webpack_require__(35),\n\t _keys = __webpack_require__(10),\n\t _map = __webpack_require__(37),\n\t _each = __webpack_require__(5),\n\t _size = __webpack_require__(39),\n\t _findKey = __webpack_require__(52),\n\t _uniq = __webpack_require__(36);\n\t\n\tvar Dispatcher = function(stores) {\n\t this.stores = {};\n\t this.currentDispatch = null;\n\t this.currentActionType = null;\n\t this.waitingToDispatch = [];\n\t\n\t for (var key in stores) {\n\t if (stores.hasOwnProperty(key)) {\n\t this.addStore(key, stores[key]);\n\t }\n\t }\n\t};\n\t\n\tDispatcher.prototype.addStore = function(name, store) {\n\t store.dispatcher = this;\n\t this.stores[name] = store;\n\t};\n\t\n\tDispatcher.prototype.dispatch = function(action) {\n\t if (!action || !action.type) {\n\t throw new Error(\"Can only dispatch actions with a 'type' property\");\n\t }\n\t\n\t if (this.currentDispatch) {\n\t var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n\t this.currentActionType + \"') is being dispatched\";\n\t throw new Error(complaint);\n\t }\n\t\n\t this.waitingToDispatch = _clone(this.stores);\n\t\n\t this.currentActionType = action.type;\n\t this.currentDispatch = _mapValues(this.stores, function() {\n\t return { resolved: false, waitingOn: [], waitCallback: null };\n\t });\n\t\n\t try {\n\t this.doDispatchLoop(action);\n\t } finally {\n\t this.currentActionType = null;\n\t this.currentDispatch = null;\n\t }\n\t};\n\t\n\tDispatcher.prototype.doDispatchLoop = function(action) {\n\t var dispatch, canBeDispatchedTo, wasHandled = false,\n\t removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\t\n\t _forOwn(this.waitingToDispatch, function(value, key) {\n\t dispatch = this.currentDispatch[key];\n\t canBeDispatchedTo = !dispatch.waitingOn.length ||\n\t !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n\t if (canBeDispatchedTo) {\n\t if (dispatch.waitCallback) {\n\t var stores = _map(dispatch.waitingOn, function(key) {\n\t return this.stores[key];\n\t }, this);\n\t var fn = dispatch.waitCallback;\n\t dispatch.waitCallback = null;\n\t dispatch.waitingOn = [];\n\t dispatch.resolved = true;\n\t fn.apply(null, stores);\n\t wasHandled = true;\n\t } else {\n\t dispatch.resolved = true;\n\t var handled = this.stores[key].__handleAction__(action);\n\t if (handled) {\n\t wasHandled = true;\n\t }\n\t }\n\t\n\t dispatchedThisLoop.push(key);\n\t\n\t if (this.currentDispatch[key].resolved) {\n\t removeFromDispatchQueue.push(key);\n\t }\n\t }\n\t }, this);\n\t\n\t if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n\t var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n\t throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n\t }\n\t\n\t _each(removeFromDispatchQueue, function(key) {\n\t delete this.waitingToDispatch[key];\n\t }, this);\n\t\n\t if (_size(this.waitingToDispatch)) {\n\t this.doDispatchLoop(action);\n\t }\n\t\n\t if (!wasHandled && console && console.warn) {\n\t console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n\t }\n\t\n\t};\n\t\n\tDispatcher.prototype.waitForStores = function(store, stores, fn) {\n\t if (!this.currentDispatch) {\n\t throw new Error(\"Cannot wait unless an action is being dispatched\");\n\t }\n\t\n\t var waitingStoreName = _findKey(this.stores, function(val) {\n\t return val === store;\n\t });\n\t\n\t if (stores.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"A store cannot wait on itself\");\n\t }\n\t\n\t var dispatch = this.currentDispatch[waitingStoreName];\n\t\n\t if (dispatch.waitingOn.length) {\n\t throw new Error(waitingStoreName + \" already waiting on stores\");\n\t }\n\t\n\t _each(stores, function(storeName) {\n\t var storeDispatch = this.currentDispatch[storeName];\n\t if (!this.stores[storeName]) {\n\t throw new Error(\"Cannot wait for non-existent store \" + storeName);\n\t }\n\t if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n\t }\n\t }, this);\n\t\n\t dispatch.resolved = false;\n\t dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n\t dispatch.waitCallback = fn;\n\t};\n\t\n\tmodule.exports = Dispatcher;\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Representation of a single EventEmitter function.\n\t *\n\t * @param {Function} fn Event handler to be called.\n\t * @param {Mixed} context Context for function execution.\n\t * @param {Boolean} once Only emit once\n\t * @api private\n\t */\n\tfunction EE(fn, context, once) {\n\t this.fn = fn;\n\t this.context = context;\n\t this.once = once || false;\n\t}\n\t\n\t/**\n\t * Minimal EventEmitter interface that is molded against the Node.js\n\t * EventEmitter interface.\n\t *\n\t * @constructor\n\t * @api public\n\t */\n\tfunction EventEmitter() { /* Nothing to set */ }\n\t\n\t/**\n\t * Holds the assigned EventEmitters by name.\n\t *\n\t * @type {Object}\n\t * @private\n\t */\n\tEventEmitter.prototype._events = undefined;\n\t\n\t/**\n\t * Return a list of assigned event listeners.\n\t *\n\t * @param {String} event The events that should be listed.\n\t * @returns {Array}\n\t * @api public\n\t */\n\tEventEmitter.prototype.listeners = function listeners(event) {\n\t if (!this._events || !this._events[event]) return [];\n\t\n\t for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n\t ee.push(this._events[event][i].fn);\n\t }\n\t\n\t return ee;\n\t};\n\t\n\t/**\n\t * Emit an event to all registered event listeners.\n\t *\n\t * @param {String} event The name of the event.\n\t * @returns {Boolean} Indication if we've emitted an event.\n\t * @api public\n\t */\n\tEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n\t if (!this._events || !this._events[event]) return false;\n\t\n\t var listeners = this._events[event]\n\t , length = listeners.length\n\t , len = arguments.length\n\t , ee = listeners[0]\n\t , args\n\t , i, j;\n\t\n\t if (1 === length) {\n\t if (ee.once) this.removeListener(event, ee.fn, true);\n\t\n\t switch (len) {\n\t case 1: return ee.fn.call(ee.context), true;\n\t case 2: return ee.fn.call(ee.context, a1), true;\n\t case 3: return ee.fn.call(ee.context, a1, a2), true;\n\t case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n\t case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n\t case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n\t }\n\t\n\t for (i = 1, args = new Array(len -1); i < len; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t\n\t ee.fn.apply(ee.context, args);\n\t } else {\n\t for (i = 0; i < length; i++) {\n\t if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\t\n\t switch (len) {\n\t case 1: listeners[i].fn.call(listeners[i].context); break;\n\t case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n\t case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n\t default:\n\t if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n\t args[j - 1] = arguments[j];\n\t }\n\t\n\t listeners[i].fn.apply(listeners[i].context, args);\n\t }\n\t }\n\t }\n\t\n\t return true;\n\t};\n\t\n\t/**\n\t * Register a new EventListener for the given event.\n\t *\n\t * @param {String} event Name of the event.\n\t * @param {Functon} fn Callback function.\n\t * @param {Mixed} context The context of the function.\n\t * @api public\n\t */\n\tEventEmitter.prototype.on = function on(event, fn, context) {\n\t if (!this._events) this._events = {};\n\t if (!this._events[event]) this._events[event] = [];\n\t this._events[event].push(new EE( fn, context || this ));\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Add an EventListener that's only called once.\n\t *\n\t * @param {String} event Name of the event.\n\t * @param {Function} fn Callback function.\n\t * @param {Mixed} context The context of the function.\n\t * @api public\n\t */\n\tEventEmitter.prototype.once = function once(event, fn, context) {\n\t if (!this._events) this._events = {};\n\t if (!this._events[event]) this._events[event] = [];\n\t this._events[event].push(new EE(fn, context || this, true ));\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove event listeners.\n\t *\n\t * @param {String} event The event we want to remove.\n\t * @param {Function} fn The listener that we need to find.\n\t * @param {Boolean} once Only remove once listeners.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n\t if (!this._events || !this._events[event]) return this;\n\t\n\t var listeners = this._events[event]\n\t , events = [];\n\t\n\t if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n\t if (listeners[i].fn !== fn && listeners[i].once !== once) {\n\t events.push(listeners[i]);\n\t }\n\t }\n\t\n\t //\n\t // Reset the array, or remove it completely if we have no more listeners.\n\t //\n\t if (events.length) this._events[event] = events;\n\t else this._events[event] = null;\n\t\n\t return this;\n\t};\n\t\n\t/**\n\t * Remove all listeners or only the listeners for the specified event.\n\t *\n\t * @param {String} event The event want to remove all listeners for.\n\t * @api public\n\t */\n\tEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n\t if (!this._events) return this;\n\t\n\t if (event) this._events[event] = null;\n\t else this._events = {};\n\t\n\t return this;\n\t};\n\t\n\t//\n\t// Alias methods names because people roll like that.\n\t//\n\tEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\tEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\t\n\t//\n\t// This function doesn't apply anymore.\n\t//\n\tEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n\t return this;\n\t};\n\t\n\t//\n\t// Expose the module.\n\t//\n\tEventEmitter.EventEmitter = EventEmitter;\n\tEventEmitter.EventEmitter2 = EventEmitter;\n\tEventEmitter.EventEmitter3 = EventEmitter;\n\t\n\tif ('object' === typeof module && module.exports) {\n\t module.exports = EventEmitter;\n\t}\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to pool arrays and objects used internally */\n\tvar arrayPool = [];\n\t\n\tmodule.exports = arrayPool;\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7),\n\t isObject = __webpack_require__(2),\n\t noop = __webpack_require__(28);\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\t\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(prototype, properties) {\n\t return isObject(prototype) ? nativeCreate(prototype) : {};\n\t}\n\t// fallback for browsers without `Object.create`\n\tif (!nativeCreate) {\n\t baseCreate = (function() {\n\t function Object() {}\n\t return function(prototype) {\n\t if (isObject(prototype)) {\n\t Object.prototype = prototype;\n\t var result = new Object;\n\t Object.prototype = null;\n\t }\n\t return result || global.Object();\n\t };\n\t }());\n\t}\n\t\n\tmodule.exports = baseCreate;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t keyPrefix = __webpack_require__(23);\n\t\n\t/**\n\t * An implementation of `_.contains` for cache objects that mimics the return\n\t * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n\t *\n\t * @private\n\t * @param {Object} cache The cache object to inspect.\n\t * @param {*} value The value to search for.\n\t * @returns {number} Returns `0` if `value` is found, else `-1`.\n\t */\n\tfunction cacheIndexOf(cache, value) {\n\t var type = typeof value;\n\t cache = cache.cache;\n\t\n\t if (type == 'boolean' || value == null) {\n\t return cache[value] ? 0 : -1;\n\t }\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value;\n\t cache = (cache = cache[type]) && cache[key];\n\t\n\t return type == 'object'\n\t ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n\t : (cache ? 0 : -1);\n\t}\n\t\n\tmodule.exports = cacheIndexOf;\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar cachePush = __webpack_require__(46),\n\t getObject = __webpack_require__(48),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * Creates a cache object to optimize linear searches of large arrays.\n\t *\n\t * @private\n\t * @param {Array} [array=[]] The array to search.\n\t * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n\t */\n\tfunction createCache(array) {\n\t var index = -1,\n\t length = array.length,\n\t first = array[0],\n\t mid = array[(length / 2) | 0],\n\t last = array[length - 1];\n\t\n\t if (first && typeof first == 'object' &&\n\t mid && typeof mid == 'object' && last && typeof last == 'object') {\n\t return false;\n\t }\n\t var cache = getObject();\n\t cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\t\n\t var result = getObject();\n\t result.array = array;\n\t result.cache = cache;\n\t result.push = cachePush;\n\t\n\t while (++index < length) {\n\t result.push(array[index]);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = createCache;\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\n\tvar keyPrefix = +new Date + '';\n\t\n\tmodule.exports = keyPrefix;\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used as the size when optimizations are enabled for large arrays */\n\tvar largeArraySize = 75;\n\t\n\tmodule.exports = largeArraySize;\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used as the max size of the `arrayPool` and `objectPool` */\n\tvar maxPoolSize = 40;\n\t\n\tmodule.exports = maxPoolSize;\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** Used to pool arrays and objects used internally */\n\tvar objectPool = [];\n\t\n\tmodule.exports = objectPool;\n\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7);\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar arrayClass = '[object Array]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/* Native method shortcuts for methods with the same name as other `lodash` methods */\n\tvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\t\n\t/**\n\t * Checks if `value` is an array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArray(arguments); })();\n\t * // => false\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t */\n\tvar isArray = nativeIsArray || function(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == arrayClass || false;\n\t};\n\t\n\tmodule.exports = isArray;\n\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * A no-operation function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.noop(object) === undefined;\n\t * // => true\n\t */\n\tfunction noop() {\n\t // no operation performed\n\t}\n\t\n\tmodule.exports = noop;\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _each = __webpack_require__(5),\n\t _isFunction = __webpack_require__(9),\n\t Store = __webpack_require__(33),\n\t inherits = __webpack_require__(13);\n\t\n\tvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\t\n\tvar createStore = function(spec) {\n\t _each(RESERVED_KEYS, function(key) {\n\t if (spec[key]) {\n\t throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n\t }\n\t });\n\t\n\t var constructor = function(options) {\n\t options = options || {};\n\t Store.call(this);\n\t\n\t for (var key in spec) {\n\t if (key === \"actions\") {\n\t this.bindActions(spec[key]);\n\t } else if (key === \"initialize\") {\n\t // do nothing\n\t } else if (_isFunction(spec[key])) {\n\t this[key] = spec[key].bind(this);\n\t } else {\n\t this[key] = spec[key];\n\t }\n\t }\n\t\n\t if (spec.initialize) {\n\t spec.initialize.call(this, options);\n\t }\n\t };\n\t\n\t inherits(constructor, Store);\n\t return constructor;\n\t};\n\t\n\tmodule.exports = createStore;\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar EventEmitter = __webpack_require__(18),\n\t inherits = __webpack_require__(13),\n\t objectPath = __webpack_require__(60),\n\t _each = __webpack_require__(5),\n\t _reduce = __webpack_require__(38),\n\t _isFunction = __webpack_require__(9),\n\t _isString = __webpack_require__(55);\n\t\n\tvar Dispatcher = __webpack_require__(17);\n\t\n\tvar findLeaves = function(obj, path, callback) {\n\t path = path || [];\n\t\n\t for (var key in obj) {\n\t if (obj.hasOwnProperty(key)) {\n\t if (_isFunction(obj[key])) {\n\t callback(path.concat(key), obj[key]);\n\t } else {\n\t findLeaves(obj[key], path.concat(key), callback);\n\t }\n\t }\n\t }\n\t};\n\t\n\tvar Flux = function(stores, actions) {\n\t EventEmitter.call(this);\n\t this.dispatcher = new Dispatcher(stores);\n\t this.actions = {};\n\t this.stores = {};\n\t\n\t var dispatcher = this.dispatcher;\n\t var flux = this;\n\t this.dispatchBinder = {\n\t flux: flux,\n\t dispatch: function(type, payload) {\n\t try {\n\t flux.emit(\"dispatch\", type, payload);\n\t } finally {\n\t dispatcher.dispatch({type: type, payload: payload});\n\t }\n\t }\n\t };\n\t\n\t this.addActions(actions);\n\t this.addStores(stores);\n\t};\n\t\n\tinherits(Flux, EventEmitter);\n\t\n\tFlux.prototype.addActions = function(actions) {\n\t findLeaves(actions, [], this.addAction.bind(this));\n\t};\n\t\n\t// addAction has two signatures:\n\t// 1: string[, string, string, string...], actionFunction\n\t// 2: arrayOfStrings, actionFunction\n\tFlux.prototype.addAction = function() {\n\t if (arguments.length < 2) {\n\t throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n\t }\n\t\n\t var args = Array.prototype.slice.call(arguments);\n\t\n\t if (!_isFunction(args[args.length - 1])) {\n\t throw new Error(\"The last argument to addAction must be a function\");\n\t }\n\t\n\t var func = args.pop().bind(this.dispatchBinder);\n\t\n\t if (!_isString(args[0])) {\n\t args = args[0];\n\t }\n\t\n\t var leadingPaths = _reduce(args, function(acc, next) {\n\t if (acc) {\n\t var nextPath = acc[acc.length - 1].concat([next]);\n\t return acc.concat([nextPath]);\n\t } else {\n\t return [[next]];\n\t }\n\t }, null);\n\t\n\t // Detect trying to replace a function at any point in the path\n\t _each(leadingPaths, function(path) {\n\t if (_isFunction(objectPath.get(this.actions, path))) {\n\t throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n\t }\n\t }, this);\n\t\n\t // Detect trying to replace a namespace at the final point in the path\n\t if (objectPath.get(this.actions, args)) {\n\t throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n\t }\n\t\n\t objectPath.set(this.actions, args, func, true);\n\t};\n\t\n\tFlux.prototype.store = function(name) {\n\t return this.stores[name];\n\t};\n\t\n\tFlux.prototype.addStore = function(name, store) {\n\t if (name in this.stores) {\n\t throw new Error(\"A store named '\" + name + \"' already exists\");\n\t }\n\t store.flux = this;\n\t this.stores[name] = store;\n\t this.dispatcher.addStore(name, store);\n\t};\n\t\n\tFlux.prototype.addStores = function(stores) {\n\t for (var key in stores) {\n\t if (stores.hasOwnProperty(key)) {\n\t this.addStore(key, stores[key]);\n\t }\n\t }\n\t};\n\t\n\tmodule.exports = Flux;\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FluxChildMixin = function(React) {\n\t return {\n\t componentWillMount: function() {\n\t if (console && console.warn) {\n\t var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n\t message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n\t \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n\t console.warn(message);\n\t }\n\t },\n\t\n\t contextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t getFlux: function() {\n\t return this.context.flux;\n\t }\n\t };\n\t};\n\t\n\tFluxChildMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n\t \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n\t};\n\t\n\tmodule.exports = FluxChildMixin;\n\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FluxMixin = function(React) {\n\t return {\n\t componentWillMount: function() {\n\t if (!this.props.flux && (!this.context || !this.context.flux)) {\n\t var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n\t throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n\t }\n\t },\n\t\n\t childContextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t contextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t getChildContext: function() {\n\t return {\n\t flux: this.getFlux()\n\t };\n\t },\n\t\n\t getFlux: function() {\n\t return this.props.flux || (this.context && this.context.flux);\n\t }\n\t };\n\t};\n\t\n\tFluxMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n\t \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n\t};\n\t\n\tmodule.exports = FluxMixin;\n\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar EventEmitter = __webpack_require__(18),\n\t inherits = __webpack_require__(13),\n\t _isFunction = __webpack_require__(9),\n\t _isObject = __webpack_require__(2);\n\t\n\tfunction Store(dispatcher) {\n\t this.dispatcher = dispatcher;\n\t this.__actions__ = {};\n\t EventEmitter.call(this);\n\t}\n\t\n\tinherits(Store, EventEmitter);\n\t\n\tStore.prototype.__handleAction__ = function(action) {\n\t var handler;\n\t if (!!(handler = this.__actions__[action.type])) {\n\t if (_isFunction(handler)) {\n\t handler.call(this, action.payload, action.type);\n\t } else if (handler && _isFunction(this[handler])) {\n\t this[handler].call(this, action.payload, action.type);\n\t } else {\n\t throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n\t }\n\t return true;\n\t } else {\n\t return false;\n\t }\n\t};\n\t\n\tStore.prototype.bindActions = function() {\n\t var actions = Array.prototype.slice.call(arguments);\n\t\n\t if (actions.length > 1 && actions.length % 2 !== 0) {\n\t throw new Error(\"bindActions must take an even number of arguments.\");\n\t }\n\t\n\t var bindAction = function(type, handler) {\n\t if (!handler) {\n\t throw new Error(\"The handler for action type \" + type + \" is falsy\");\n\t }\n\t\n\t this.__actions__[type] = handler;\n\t }.bind(this);\n\t\n\t if (actions.length === 1 && _isObject(actions[0])) {\n\t actions = actions[0];\n\t for (var key in actions) {\n\t if (actions.hasOwnProperty(key)) {\n\t bindAction(key, actions[key]);\n\t }\n\t }\n\t } else {\n\t for (var i = 0; i < actions.length; i += 2) {\n\t var type = actions[i],\n\t handler = actions[i+1];\n\t\n\t if (!type) {\n\t throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n\t }\n\t\n\t bindAction(type, handler);\n\t }\n\t }\n\t};\n\t\n\tStore.prototype.waitFor = function(stores, fn) {\n\t this.dispatcher.waitForStores(this, stores, fn.bind(this));\n\t};\n\t\n\tmodule.exports = Store;\n\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _each = __webpack_require__(5);\n\t\n\tvar StoreWatchMixin = function() {\n\t var storeNames = Array.prototype.slice.call(arguments);\n\t return {\n\t componentDidMount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _each(storeNames, function(store) {\n\t flux.store(store).on(\"change\", this._setStateFromFlux);\n\t }, this);\n\t },\n\t\n\t componentWillUnmount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _each(storeNames, function(store) {\n\t flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n\t }, this);\n\t },\n\t\n\t _setStateFromFlux: function() {\n\t if(this.isMounted()) {\n\t this.setState(this.getStateFromFlux());\n\t }\n\t },\n\t\n\t getInitialState: function() {\n\t return this.getStateFromFlux();\n\t }\n\t };\n\t};\n\t\n\tStoreWatchMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n\t \"store names as parameters and returns the mixin, e.g.: \" +\n\t \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n\t};\n\t\n\tmodule.exports = StoreWatchMixin;\n\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t cacheIndexOf = __webpack_require__(21),\n\t createCache = __webpack_require__(22),\n\t getArray = __webpack_require__(11),\n\t isArguments = __webpack_require__(54),\n\t isArray = __webpack_require__(27),\n\t largeArraySize = __webpack_require__(24),\n\t releaseArray = __webpack_require__(12),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * Creates an array of unique values present in all provided arrays using\n\t * strict equality for comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {...Array} [array] The arrays to inspect.\n\t * @returns {Array} Returns an array of shared values.\n\t * @example\n\t *\n\t * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n\t * // => [1, 2]\n\t */\n\tfunction intersection() {\n\t var args = [],\n\t argsIndex = -1,\n\t argsLength = arguments.length,\n\t caches = getArray(),\n\t indexOf = baseIndexOf,\n\t trustIndexOf = indexOf === baseIndexOf,\n\t seen = getArray();\n\t\n\t while (++argsIndex < argsLength) {\n\t var value = arguments[argsIndex];\n\t if (isArray(value) || isArguments(value)) {\n\t args.push(value);\n\t caches.push(trustIndexOf && value.length >= largeArraySize &&\n\t createCache(argsIndex ? args[argsIndex] : seen));\n\t }\n\t }\n\t var array = args[0],\n\t index = -1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t outer:\n\t while (++index < length) {\n\t var cache = caches[0];\n\t value = array[index];\n\t\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n\t argsIndex = argsLength;\n\t (cache || seen).push(value);\n\t while (--argsIndex) {\n\t cache = caches[argsIndex];\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n\t continue outer;\n\t }\n\t }\n\t result.push(value);\n\t }\n\t }\n\t while (argsLength--) {\n\t cache = caches[argsLength];\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t }\n\t releaseArray(caches);\n\t releaseArray(seen);\n\t return result;\n\t}\n\t\n\tmodule.exports = intersection;\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseUniq = __webpack_require__(45),\n\t createCallback = __webpack_require__(6);\n\t\n\t/**\n\t * Creates a duplicate-value-free version of an array using strict equality\n\t * for comparisons, i.e. `===`. If the array is sorted, providing\n\t * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n\t * each element of `array` is passed through the callback before uniqueness\n\t * is computed. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias unique\n\t * @category Arrays\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t * @example\n\t *\n\t * _.uniq([1, 2, 1, 3, 1]);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq([1, 1, 2, 2, 3], true);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n\t * // => ['A', 'b', 'C']\n\t *\n\t * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n\t * // => [1, 2.5, 3]\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n\t * // => [{ 'x': 1 }, { 'x': 2 }]\n\t */\n\tfunction uniq(array, isSorted, callback, thisArg) {\n\t // juggle arguments\n\t if (typeof isSorted != 'boolean' && isSorted != null) {\n\t thisArg = callback;\n\t callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n\t isSorted = false;\n\t }\n\t if (callback != null) {\n\t callback = createCallback(callback, thisArg, 3);\n\t }\n\t return baseUniq(array, isSorted, callback);\n\t}\n\t\n\tmodule.exports = uniq;\n\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Creates an array of values by running each element in the collection\n\t * through the callback. The callback is bound to `thisArg` and invoked with\n\t * three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias collect\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.map([1, 2, 3], function(num) { return num * 3; });\n\t * // => [3, 6, 9]\n\t *\n\t * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n\t * // => [3, 6, 9] (property order is not guaranteed across environments)\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.map(characters, 'name');\n\t * // => ['barney', 'fred']\n\t */\n\tfunction map(collection, callback, thisArg) {\n\t var index = -1,\n\t length = collection ? collection.length : 0;\n\t\n\t callback = createCallback(callback, thisArg, 3);\n\t if (typeof length == 'number') {\n\t var result = Array(length);\n\t while (++index < length) {\n\t result[index] = callback(collection[index], index, collection);\n\t }\n\t } else {\n\t result = [];\n\t forOwn(collection, function(value, key, collection) {\n\t result[++index] = callback(value, key, collection);\n\t });\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = map;\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Reduces a collection to a value which is the accumulated result of running\n\t * each element in the collection through the callback, where each successive\n\t * callback execution consumes the return value of the previous execution. If\n\t * `accumulator` is not provided the first element of the collection will be\n\t * used as the initial `accumulator` value. The callback is bound to `thisArg`\n\t * and invoked with four arguments; (accumulator, value, index|key, collection).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias foldl, inject\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [accumulator] Initial value of the accumulator.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the accumulated value.\n\t * @example\n\t *\n\t * var sum = _.reduce([1, 2, 3], function(sum, num) {\n\t * return sum + num;\n\t * });\n\t * // => 6\n\t *\n\t * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n\t * result[key] = num * 3;\n\t * return result;\n\t * }, {});\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t */\n\tfunction reduce(collection, callback, accumulator, thisArg) {\n\t if (!collection) return accumulator;\n\t var noaccum = arguments.length < 3;\n\t callback = createCallback(callback, thisArg, 4);\n\t\n\t var index = -1,\n\t length = collection.length;\n\t\n\t if (typeof length == 'number') {\n\t if (noaccum) {\n\t accumulator = collection[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = callback(accumulator, collection[index], index, collection);\n\t }\n\t } else {\n\t forOwn(collection, function(value, index, collection) {\n\t accumulator = noaccum\n\t ? (noaccum = false, value)\n\t : callback(accumulator, value, index, collection)\n\t });\n\t }\n\t return accumulator;\n\t}\n\t\n\tmodule.exports = reduce;\n\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar keys = __webpack_require__(10);\n\t\n\t/**\n\t * Gets the size of the `collection` by returning `collection.length` for arrays\n\t * and array-like objects or the number of own enumerable properties for objects.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to inspect.\n\t * @returns {number} Returns `collection.length` or number of own enumerable properties.\n\t * @example\n\t *\n\t * _.size([1, 2]);\n\t * // => 2\n\t *\n\t * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => 3\n\t *\n\t * _.size('pebbles');\n\t * // => 7\n\t */\n\tfunction size(collection) {\n\t var length = collection ? collection.length : 0;\n\t return typeof length == 'number' ? length : keys(collection).length;\n\t}\n\t\n\tmodule.exports = size;\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createWrapper = __webpack_require__(47),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Creates a function that, when called, invokes `func` with the `this`\n\t * binding of `thisArg` and prepends any additional `bind` arguments to those\n\t * provided to the bound function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to bind.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new bound function.\n\t * @example\n\t *\n\t * var func = function(greeting) {\n\t * return greeting + ' ' + this.name;\n\t * };\n\t *\n\t * func = _.bind(func, { 'name': 'fred' }, 'hi');\n\t * func();\n\t * // => 'hi fred'\n\t */\n\tfunction bind(func, thisArg) {\n\t return arguments.length > 2\n\t ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n\t : createWrapper(func, 1, null, null, thisArg);\n\t}\n\t\n\tmodule.exports = bind;\n\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreate = __webpack_require__(20),\n\t isObject = __webpack_require__(2),\n\t setBindData = __webpack_require__(16),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push;\n\t\n\t/**\n\t * The base implementation of `_.bind` that creates the bound function and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new bound function.\n\t */\n\tfunction baseBind(bindData) {\n\t var func = bindData[0],\n\t partialArgs = bindData[2],\n\t thisArg = bindData[4];\n\t\n\t function bound() {\n\t // `Function#bind` spec\n\t // http://es5.github.io/#x15.3.4.5\n\t if (partialArgs) {\n\t // avoid `arguments` object deoptimizations by using `slice` instead\n\t // of `Array.prototype.slice.call` and not assigning `arguments` to a\n\t // variable as a ternary expression\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t // mimic the constructor's `return` behavior\n\t // http://es5.github.io/#x13.2.2\n\t if (this instanceof bound) {\n\t // ensure `new bound` is an instance of `func`\n\t var thisBinding = baseCreate(func.prototype),\n\t result = func.apply(thisBinding, args || arguments);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisArg, args || arguments);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t}\n\t\n\tmodule.exports = baseBind;\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar assign = __webpack_require__(50),\n\t forEach = __webpack_require__(5),\n\t forOwn = __webpack_require__(1),\n\t getArray = __webpack_require__(11),\n\t isArray = __webpack_require__(27),\n\t isObject = __webpack_require__(2),\n\t releaseArray = __webpack_require__(12),\n\t slice = __webpack_require__(8);\n\t\n\t/** Used to match regexp flags from their coerced string values */\n\tvar reFlags = /\\w*$/;\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]',\n\t arrayClass = '[object Array]',\n\t boolClass = '[object Boolean]',\n\t dateClass = '[object Date]',\n\t funcClass = '[object Function]',\n\t numberClass = '[object Number]',\n\t objectClass = '[object Object]',\n\t regexpClass = '[object RegExp]',\n\t stringClass = '[object String]';\n\t\n\t/** Used to identify object classifications that `_.clone` supports */\n\tvar cloneableClasses = {};\n\tcloneableClasses[funcClass] = false;\n\tcloneableClasses[argsClass] = cloneableClasses[arrayClass] =\n\tcloneableClasses[boolClass] = cloneableClasses[dateClass] =\n\tcloneableClasses[numberClass] = cloneableClasses[objectClass] =\n\tcloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to lookup a built-in constructor by [[Class]] */\n\tvar ctorByClass = {};\n\tctorByClass[arrayClass] = Array;\n\tctorByClass[boolClass] = Boolean;\n\tctorByClass[dateClass] = Date;\n\tctorByClass[funcClass] = Function;\n\tctorByClass[objectClass] = Object;\n\tctorByClass[numberClass] = Number;\n\tctorByClass[regexpClass] = RegExp;\n\tctorByClass[stringClass] = String;\n\t\n\t/**\n\t * The base implementation of `_.clone` without argument juggling or support\n\t * for `thisArg` binding.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {Array} [stackA=[]] Tracks traversed source objects.\n\t * @param {Array} [stackB=[]] Associates clones with source counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, callback, stackA, stackB) {\n\t if (callback) {\n\t var result = callback(value);\n\t if (typeof result != 'undefined') {\n\t return result;\n\t }\n\t }\n\t // inspect [[Class]]\n\t var isObj = isObject(value);\n\t if (isObj) {\n\t var className = toString.call(value);\n\t if (!cloneableClasses[className]) {\n\t return value;\n\t }\n\t var ctor = ctorByClass[className];\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t return new ctor(+value);\n\t\n\t case numberClass:\n\t case stringClass:\n\t return new ctor(value);\n\t\n\t case regexpClass:\n\t result = ctor(value.source, reFlags.exec(value));\n\t result.lastIndex = value.lastIndex;\n\t return result;\n\t }\n\t } else {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isDeep) {\n\t // check for circular references and return corresponding clone\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == value) {\n\t return stackB[length];\n\t }\n\t }\n\t result = isArr ? ctor(value.length) : {};\n\t }\n\t else {\n\t result = isArr ? slice(value) : assign({}, value);\n\t }\n\t // add array properties assigned by `RegExp#exec`\n\t if (isArr) {\n\t if (hasOwnProperty.call(value, 'index')) {\n\t result.index = value.index;\n\t }\n\t if (hasOwnProperty.call(value, 'input')) {\n\t result.input = value.input;\n\t }\n\t }\n\t // exit for shallow clone\n\t if (!isDeep) {\n\t return result;\n\t }\n\t // add the source value to the stack of traversed objects\n\t // and associate it with its clone\n\t stackA.push(value);\n\t stackB.push(result);\n\t\n\t // recursively populate clone (susceptible to call stack limits)\n\t (isArr ? forEach : forOwn)(value, function(objValue, key) {\n\t result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n\t });\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseClone;\n\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreate = __webpack_require__(20),\n\t isObject = __webpack_require__(2),\n\t setBindData = __webpack_require__(16),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push;\n\t\n\t/**\n\t * The base implementation of `createWrapper` that creates the wrapper and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseCreateWrapper(bindData) {\n\t var func = bindData[0],\n\t bitmask = bindData[1],\n\t partialArgs = bindData[2],\n\t partialRightArgs = bindData[3],\n\t thisArg = bindData[4],\n\t arity = bindData[5];\n\t\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t key = func;\n\t\n\t function bound() {\n\t var thisBinding = isBind ? thisArg : this;\n\t if (partialArgs) {\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t if (partialRightArgs || isCurry) {\n\t args || (args = slice(arguments));\n\t if (partialRightArgs) {\n\t push.apply(args, partialRightArgs);\n\t }\n\t if (isCurry && args.length < arity) {\n\t bitmask |= 16 & ~32;\n\t return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n\t }\n\t }\n\t args || (args = arguments);\n\t if (isBindKey) {\n\t func = thisBinding[key];\n\t }\n\t if (this instanceof bound) {\n\t thisBinding = baseCreate(func.prototype);\n\t var result = func.apply(thisBinding, args);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisBinding, args);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t}\n\t\n\tmodule.exports = baseCreateWrapper;\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar forIn = __webpack_require__(53),\n\t getArray = __webpack_require__(11),\n\t isFunction = __webpack_require__(9),\n\t objectTypes = __webpack_require__(4),\n\t releaseArray = __webpack_require__(12);\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]',\n\t arrayClass = '[object Array]',\n\t boolClass = '[object Boolean]',\n\t dateClass = '[object Date]',\n\t numberClass = '[object Number]',\n\t objectClass = '[object Object]',\n\t regexpClass = '[object RegExp]',\n\t stringClass = '[object String]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n\t * that allows partial \"_.where\" style comparisons.\n\t *\n\t * @private\n\t * @param {*} a The value to compare.\n\t * @param {*} b The other value to compare.\n\t * @param {Function} [callback] The function to customize comparing values.\n\t * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n\t * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n\t * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t */\n\tfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n\t // used to indicate that when comparing objects, `a` has at least the properties of `b`\n\t if (callback) {\n\t var result = callback(a, b);\n\t if (typeof result != 'undefined') {\n\t return !!result;\n\t }\n\t }\n\t // exit early for identical values\n\t if (a === b) {\n\t // treat `+0` vs. `-0` as not equal\n\t return a !== 0 || (1 / a == 1 / b);\n\t }\n\t var type = typeof a,\n\t otherType = typeof b;\n\t\n\t // exit early for unlike primitive values\n\t if (a === a &&\n\t !(a && objectTypes[type]) &&\n\t !(b && objectTypes[otherType])) {\n\t return false;\n\t }\n\t // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n\t // http://es5.github.io/#x15.3.4.4\n\t if (a == null || b == null) {\n\t return a === b;\n\t }\n\t // compare [[Class]] names\n\t var className = toString.call(a),\n\t otherClass = toString.call(b);\n\t\n\t if (className == argsClass) {\n\t className = objectClass;\n\t }\n\t if (otherClass == argsClass) {\n\t otherClass = objectClass;\n\t }\n\t if (className != otherClass) {\n\t return false;\n\t }\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t // coerce dates and booleans to numbers, dates to milliseconds and booleans\n\t // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n\t return +a == +b;\n\t\n\t case numberClass:\n\t // treat `NaN` vs. `NaN` as equal\n\t return (a != +a)\n\t ? b != +b\n\t // but treat `+0` vs. `-0` as not equal\n\t : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\t\n\t case regexpClass:\n\t case stringClass:\n\t // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n\t // treat string primitives and their corresponding object instances as equal\n\t return a == String(b);\n\t }\n\t var isArr = className == arrayClass;\n\t if (!isArr) {\n\t // unwrap any `lodash` wrapped values\n\t var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n\t bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\t\n\t if (aWrapped || bWrapped) {\n\t return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n\t }\n\t // exit for functions and DOM nodes\n\t if (className != objectClass) {\n\t return false;\n\t }\n\t // in older versions of Opera, `arguments` objects have `Array` constructors\n\t var ctorA = a.constructor,\n\t ctorB = b.constructor;\n\t\n\t // non `Object` object instances with different constructors are not equal\n\t if (ctorA != ctorB &&\n\t !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n\t ('constructor' in a && 'constructor' in b)\n\t ) {\n\t return false;\n\t }\n\t }\n\t // assume cyclic structures are equal\n\t // the algorithm for detecting cyclic structures is adapted from ES 5.1\n\t // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == a) {\n\t return stackB[length] == b;\n\t }\n\t }\n\t var size = 0;\n\t result = true;\n\t\n\t // add `a` and `b` to the stack of traversed objects\n\t stackA.push(a);\n\t stackB.push(b);\n\t\n\t // recursively compare objects and arrays (susceptible to call stack limits)\n\t if (isArr) {\n\t // compare lengths to determine if a deep comparison is necessary\n\t length = a.length;\n\t size = b.length;\n\t result = size == length;\n\t\n\t if (result || isWhere) {\n\t // deep compare the contents, ignoring non-numeric properties\n\t while (size--) {\n\t var index = length,\n\t value = b[size];\n\t\n\t if (isWhere) {\n\t while (index--) {\n\t if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n\t // which, in this case, is more costly\n\t forIn(b, function(value, key, b) {\n\t if (hasOwnProperty.call(b, key)) {\n\t // count the number of properties.\n\t size++;\n\t // deep compare each property value.\n\t return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n\t }\n\t });\n\t\n\t if (result && !isWhere) {\n\t // ensure both objects have the same number of properties\n\t forIn(a, function(value, key, a) {\n\t if (hasOwnProperty.call(a, key)) {\n\t // `size` will be `-1` if `a` has more properties than `b`\n\t return (result = --size > -1);\n\t }\n\t });\n\t }\n\t }\n\t stackA.pop();\n\t stackB.pop();\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseIsEqual;\n\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseIndexOf = __webpack_require__(14),\n\t cacheIndexOf = __webpack_require__(21),\n\t createCache = __webpack_require__(22),\n\t getArray = __webpack_require__(11),\n\t largeArraySize = __webpack_require__(24),\n\t releaseArray = __webpack_require__(12),\n\t releaseObject = __webpack_require__(15);\n\t\n\t/**\n\t * The base implementation of `_.uniq` without support for callback shorthands\n\t * or `thisArg` binding.\n\t *\n\t * @private\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function} [callback] The function called per iteration.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t */\n\tfunction baseUniq(array, isSorted, callback) {\n\t var index = -1,\n\t indexOf = baseIndexOf,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t var isLarge = !isSorted && length >= largeArraySize,\n\t seen = (callback || isLarge) ? getArray() : result;\n\t\n\t if (isLarge) {\n\t var cache = createCache(seen);\n\t indexOf = cacheIndexOf;\n\t seen = cache;\n\t }\n\t while (++index < length) {\n\t var value = array[index],\n\t computed = callback ? callback(value, index, array) : value;\n\t\n\t if (isSorted\n\t ? !index || seen[seen.length - 1] !== computed\n\t : indexOf(seen, computed) < 0\n\t ) {\n\t if (callback || isLarge) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t }\n\t if (isLarge) {\n\t releaseArray(seen.array);\n\t releaseObject(seen);\n\t } else if (callback) {\n\t releaseArray(seen);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseUniq;\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar keyPrefix = __webpack_require__(23);\n\t\n\t/**\n\t * Adds a given value to the corresponding cache object.\n\t *\n\t * @private\n\t * @param {*} value The value to add to the cache.\n\t */\n\tfunction cachePush(value) {\n\t var cache = this.cache,\n\t type = typeof value;\n\t\n\t if (type == 'boolean' || value == null) {\n\t cache[value] = true;\n\t } else {\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value,\n\t typeCache = cache[type] || (cache[type] = {});\n\t\n\t if (type == 'object') {\n\t (typeCache[key] || (typeCache[key] = [])).push(value);\n\t } else {\n\t typeCache[key] = true;\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = cachePush;\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseBind = __webpack_require__(41),\n\t baseCreateWrapper = __webpack_require__(43),\n\t isFunction = __webpack_require__(9),\n\t slice = __webpack_require__(8);\n\t\n\t/**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\tvar arrayRef = [];\n\t\n\t/** Native method shortcuts */\n\tvar push = arrayRef.push,\n\t unshift = arrayRef.unshift;\n\t\n\t/**\n\t * Creates a function that, when called, either curries or invokes `func`\n\t * with an optional `this` binding and partially applied arguments.\n\t *\n\t * @private\n\t * @param {Function|string} func The function or method name to reference.\n\t * @param {number} bitmask The bitmask of method flags to compose.\n\t * The bitmask may be composed of the following flags:\n\t * 1 - `_.bind`\n\t * 2 - `_.bindKey`\n\t * 4 - `_.curry`\n\t * 8 - `_.curry` (bound)\n\t * 16 - `_.partial`\n\t * 32 - `_.partialRight`\n\t * @param {Array} [partialArgs] An array of arguments to prepend to those\n\t * provided to the new function.\n\t * @param {Array} [partialRightArgs] An array of arguments to append to those\n\t * provided to the new function.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {number} [arity] The arity of `func`.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t isPartial = bitmask & 16,\n\t isPartialRight = bitmask & 32;\n\t\n\t if (!isBindKey && !isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t if (isPartial && !partialArgs.length) {\n\t bitmask &= ~16;\n\t isPartial = partialArgs = false;\n\t }\n\t if (isPartialRight && !partialRightArgs.length) {\n\t bitmask &= ~32;\n\t isPartialRight = partialRightArgs = false;\n\t }\n\t var bindData = func && func.__bindData__;\n\t if (bindData && bindData !== true) {\n\t // clone `bindData`\n\t bindData = slice(bindData);\n\t if (bindData[2]) {\n\t bindData[2] = slice(bindData[2]);\n\t }\n\t if (bindData[3]) {\n\t bindData[3] = slice(bindData[3]);\n\t }\n\t // set `thisBinding` is not previously bound\n\t if (isBind && !(bindData[1] & 1)) {\n\t bindData[4] = thisArg;\n\t }\n\t // set if previously bound but not currently (subsequent curried functions)\n\t if (!isBind && bindData[1] & 1) {\n\t bitmask |= 8;\n\t }\n\t // set curried arity if not yet set\n\t if (isCurry && !(bindData[1] & 4)) {\n\t bindData[5] = arity;\n\t }\n\t // append partial left arguments\n\t if (isPartial) {\n\t push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n\t }\n\t // append partial right arguments\n\t if (isPartialRight) {\n\t unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n\t }\n\t // merge flags\n\t bindData[1] |= bitmask;\n\t return createWrapper.apply(null, bindData);\n\t }\n\t // fast path for `_.bind`\n\t var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n\t return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n\t}\n\t\n\tmodule.exports = createWrapper;\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectPool = __webpack_require__(26);\n\t\n\t/**\n\t * Gets an object from the object pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Object} The object from the pool.\n\t */\n\tfunction getObject() {\n\t return objectPool.pop() || {\n\t 'array': null,\n\t 'cache': null,\n\t 'criteria': null,\n\t 'false': false,\n\t 'index': 0,\n\t 'null': false,\n\t 'number': null,\n\t 'object': null,\n\t 'push': null,\n\t 'string': null,\n\t 'true': false,\n\t 'undefined': false,\n\t 'value': null\n\t };\n\t}\n\t\n\tmodule.exports = getObject;\n\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar objectTypes = __webpack_require__(4);\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Native method shortcuts */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * A fallback implementation of `Object.keys` which produces an array of the\n\t * given object's own enumerable property names.\n\t *\n\t * @private\n\t * @type Function\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t */\n\tvar shimKeys = function(object) {\n\t var index, iterable = object, result = [];\n\t if (!iterable) return result;\n\t if (!(objectTypes[typeof object])) return result;\n\t for (index in iterable) {\n\t if (hasOwnProperty.call(iterable, index)) {\n\t result.push(index);\n\t }\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = shimKeys;\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t keys = __webpack_require__(10),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Assigns own enumerable properties of source object(s) to the destination\n\t * object. Subsequent sources will overwrite property assignments of previous\n\t * sources. If a callback is provided it will be executed to produce the\n\t * assigned values. The callback is bound to `thisArg` and invoked with two\n\t * arguments; (objectValue, sourceValue).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @alias extend\n\t * @category Objects\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [source] The source objects.\n\t * @param {Function} [callback] The function to customize assigning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the destination object.\n\t * @example\n\t *\n\t * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n\t * // => { 'name': 'fred', 'employer': 'slate' }\n\t *\n\t * var defaults = _.partialRight(_.assign, function(a, b) {\n\t * return typeof a == 'undefined' ? b : a;\n\t * });\n\t *\n\t * var object = { 'name': 'barney' };\n\t * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n\t * // => { 'name': 'barney', 'employer': 'slate' }\n\t */\n\tvar assign = function(object, source, guard) {\n\t var index, iterable = object, result = iterable;\n\t if (!iterable) return result;\n\t var args = arguments,\n\t argsIndex = 0,\n\t argsLength = typeof guard == 'number' ? 2 : args.length;\n\t if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n\t var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n\t } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n\t callback = args[--argsLength];\n\t }\n\t while (++argsIndex < argsLength) {\n\t iterable = args[argsIndex];\n\t if (iterable && objectTypes[typeof iterable]) {\n\t var ownIndex = -1,\n\t ownProps = objectTypes[typeof iterable] && keys(iterable),\n\t length = ownProps ? ownProps.length : 0;\n\t\n\t while (++ownIndex < length) {\n\t index = ownProps[ownIndex];\n\t result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n\t }\n\t }\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseClone = __webpack_require__(42),\n\t baseCreateCallback = __webpack_require__(3);\n\t\n\t/**\n\t * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n\t * be cloned, otherwise they will be assigned by reference. If a callback\n\t * is provided it will be executed to produce the cloned values. If the\n\t * callback returns `undefined` cloning will be handled by the method instead.\n\t * The callback is bound to `thisArg` and invoked with one argument; (value).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the cloned value.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * var shallow = _.clone(characters);\n\t * shallow[0] === characters[0];\n\t * // => true\n\t *\n\t * var deep = _.clone(characters, true);\n\t * deep[0] === characters[0];\n\t * // => false\n\t *\n\t * _.mixin({\n\t * 'clone': _.partialRight(_.clone, function(value) {\n\t * return _.isElement(value) ? value.cloneNode(false) : undefined;\n\t * })\n\t * });\n\t *\n\t * var clone = _.clone(document.body);\n\t * clone.childNodes.length;\n\t * // => 0\n\t */\n\tfunction clone(value, isDeep, callback, thisArg) {\n\t // allows working with \"Collections\" methods without using their `index`\n\t // and `collection` arguments for `isDeep` and `callback`\n\t if (typeof isDeep != 'boolean' && isDeep != null) {\n\t thisArg = callback;\n\t callback = isDeep;\n\t isDeep = false;\n\t }\n\t return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n\t}\n\t\n\tmodule.exports = clone;\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * This method is like `_.findIndex` except that it returns the key of the\n\t * first element that passes the callback check, instead of the element itself.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to search.\n\t * @param {Function|Object|string} [callback=identity] The function called per\n\t * iteration. If a property name or object is provided it will be used to\n\t * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n\t * @example\n\t *\n\t * var characters = {\n\t * 'barney': { 'age': 36, 'blocked': false },\n\t * 'fred': { 'age': 40, 'blocked': true },\n\t * 'pebbles': { 'age': 1, 'blocked': false }\n\t * };\n\t *\n\t * _.findKey(characters, function(chr) {\n\t * return chr.age < 40;\n\t * });\n\t * // => 'barney' (property order is not guaranteed across environments)\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findKey(characters, { 'age': 1 });\n\t * // => 'pebbles'\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findKey(characters, 'blocked');\n\t * // => 'fred'\n\t */\n\tfunction findKey(object, callback, thisArg) {\n\t var result;\n\t callback = createCallback(callback, thisArg, 3);\n\t forOwn(object, function(value, key, object) {\n\t if (callback(value, key, object)) {\n\t result = key;\n\t return false;\n\t }\n\t });\n\t return result;\n\t}\n\t\n\tmodule.exports = findKey;\n\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar baseCreateCallback = __webpack_require__(3),\n\t objectTypes = __webpack_require__(4);\n\t\n\t/**\n\t * Iterates over own and inherited enumerable properties of an object,\n\t * executing the callback for each property. The callback is bound to `thisArg`\n\t * and invoked with three arguments; (value, key, object). Callbacks may exit\n\t * iteration early by explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * Shape.prototype.move = function(x, y) {\n\t * this.x += x;\n\t * this.y += y;\n\t * };\n\t *\n\t * _.forIn(new Shape, function(value, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n\t */\n\tvar forIn = function(collection, callback, thisArg) {\n\t var index, iterable = collection, result = iterable;\n\t if (!iterable) return result;\n\t if (!objectTypes[typeof iterable]) return result;\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t for (index in iterable) {\n\t if (callback(iterable[index], index, collection) === false) return result;\n\t }\n\t return result\n\t};\n\t\n\tmodule.exports = forIn;\n\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar argsClass = '[object Arguments]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArguments(arguments); })(1, 2, 3);\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == argsClass || false;\n\t}\n\t\n\tmodule.exports = isArguments;\n\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/** `Object#toString` result shortcuts */\n\tvar stringClass = '[object String]';\n\t\n\t/** Used for native method references */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to resolve the internal [[Class]] of values */\n\tvar toString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is a string.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n\t * @example\n\t *\n\t * _.isString('fred');\n\t * // => true\n\t */\n\tfunction isString(value) {\n\t return typeof value == 'string' ||\n\t value && typeof value == 'object' && toString.call(value) == stringClass || false;\n\t}\n\t\n\tmodule.exports = isString;\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar createCallback = __webpack_require__(6),\n\t forOwn = __webpack_require__(1);\n\t\n\t/**\n\t * Creates an object with the same keys as `object` and values generated by\n\t * running each own enumerable property of `object` through the callback.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, key, object).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t *\n\t * var characters = {\n\t * 'fred': { 'name': 'fred', 'age': 40 },\n\t * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n\t * };\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.mapValues(characters, 'age');\n\t * // => { 'fred': 40, 'pebbles': 1 }\n\t */\n\tfunction mapValues(object, callback, thisArg) {\n\t var result = {};\n\t callback = createCallback(callback, thisArg, 3);\n\t\n\t forOwn(object, function(value, key, object) {\n\t result[key] = callback(value, key, object);\n\t });\n\t return result;\n\t}\n\t\n\tmodule.exports = mapValues;\n\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\tvar isNative = __webpack_require__(7);\n\t\n\t/** Used to detect functions containing a `this` reference */\n\tvar reThis = /\\bthis\\b/;\n\t\n\t/**\n\t * An object used to flag environments features.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Object\n\t */\n\tvar support = {};\n\t\n\t/**\n\t * Detect if functions can be decompiled by `Function#toString`\n\t * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\tsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\t\n\t/**\n\t * Detect if `Function#name` is supported (all but IE).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\tsupport.funcNames = typeof Function.name == 'string';\n\t\n\tmodule.exports = support;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * This method returns the first argument provided to it.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.identity(object) === object;\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tmodule.exports = identity;\n\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t/**\n\t * Creates a \"_.pluck\" style function, which returns the `key` value of a\n\t * given object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} key The name of the property to retrieve.\n\t * @returns {Function} Returns the new function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'fred', 'age': 40 },\n\t * { 'name': 'barney', 'age': 36 }\n\t * ];\n\t *\n\t * var getName = _.property('name');\n\t *\n\t * _.map(characters, getName);\n\t * // => ['barney', 'fred']\n\t *\n\t * _.sortBy(characters, getName);\n\t * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n\t */\n\tfunction property(key) {\n\t return function(object) {\n\t return object[key];\n\t };\n\t}\n\t\n\tmodule.exports = property;\n\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory){\n\t 'use strict';\n\t\n\t /*istanbul ignore next:cant test*/\n\t if (typeof module === 'object' && typeof module.exports === 'object') {\n\t module.exports = factory();\n\t } else if (true) {\n\t // AMD. Register as an anonymous module.\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (factory.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__)), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else {\n\t // Browser globals\n\t root.objectPath = factory();\n\t }\n\t})(this, function(){\n\t 'use strict';\n\t\n\t var\n\t toStr = Object.prototype.toString,\n\t _hasOwnProperty = Object.prototype.hasOwnProperty;\n\t\n\t function isEmpty(value){\n\t if (!value) {\n\t return true;\n\t }\n\t if (isArray(value) && value.length === 0) {\n\t return true;\n\t } else {\n\t for (var i in value) {\n\t if (_hasOwnProperty.call(value, i)) {\n\t return false;\n\t }\n\t }\n\t return true;\n\t }\n\t }\n\t\n\t function toString(type){\n\t return toStr.call(type);\n\t }\n\t\n\t function isNumber(value){\n\t return typeof value === 'number' || toString(value) === \"[object Number]\";\n\t }\n\t\n\t function isString(obj){\n\t return typeof obj === 'string' || toString(obj) === \"[object String]\";\n\t }\n\t\n\t function isObject(obj){\n\t return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n\t }\n\t\n\t function isArray(obj){\n\t return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n\t }\n\t\n\t function isBoolean(obj){\n\t return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n\t }\n\t\n\t function getKey(key){\n\t var intKey = parseInt(key);\n\t if (intKey.toString() === key) {\n\t return intKey;\n\t }\n\t return key;\n\t }\n\t\n\t function set(obj, path, value, doNotReplace){\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isString(path)) {\n\t return set(obj, path.split('.'), value, doNotReplace);\n\t }\n\t var currentPath = getKey(path[0]);\n\t\n\t if (path.length === 1) {\n\t var oldVal = obj[currentPath];\n\t if (oldVal === void 0 || !doNotReplace) {\n\t obj[currentPath] = value;\n\t }\n\t return oldVal;\n\t }\n\t\n\t if (obj[currentPath] === void 0) {\n\t if (isNumber(currentPath)) {\n\t obj[currentPath] = [];\n\t } else {\n\t obj[currentPath] = {};\n\t }\n\t }\n\t\n\t return set(obj[currentPath], path.slice(1), value, doNotReplace);\n\t }\n\t\n\t function del(obj, path) {\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t\n\t if (isEmpty(obj)) {\n\t return void 0;\n\t }\n\t\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if(isString(path)) {\n\t return del(obj, path.split('.'));\n\t }\n\t\n\t var currentPath = getKey(path[0]);\n\t var oldVal = obj[currentPath];\n\t\n\t if(path.length === 1) {\n\t if (oldVal !== void 0) {\n\t if (isArray(obj)) {\n\t obj.splice(currentPath, 1);\n\t } else {\n\t delete obj[currentPath];\n\t }\n\t }\n\t } else {\n\t if (obj[currentPath] !== void 0) {\n\t return del(obj[currentPath], path.slice(1));\n\t }\n\t }\n\t\n\t return obj;\n\t }\n\t\n\t var objectPath = {};\n\t\n\t objectPath.ensureExists = function (obj, path, value){\n\t return set(obj, path, value, true);\n\t };\n\t\n\t objectPath.set = function (obj, path, value, doNotReplace){\n\t return set(obj, path, value, doNotReplace);\n\t };\n\t\n\t objectPath.insert = function (obj, path, value, at){\n\t var arr = objectPath.get(obj, path);\n\t at = ~~at;\n\t if (!isArray(arr)) {\n\t arr = [];\n\t objectPath.set(obj, path, arr);\n\t }\n\t arr.splice(at, 0, value);\n\t };\n\t\n\t objectPath.empty = function(obj, path) {\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isEmpty(obj)) {\n\t return void 0;\n\t }\n\t\n\t var value, i;\n\t if (!(value = objectPath.get(obj, path))) {\n\t return obj;\n\t }\n\t\n\t if (isString(value)) {\n\t return objectPath.set(obj, path, '');\n\t } else if (isBoolean(value)) {\n\t return objectPath.set(obj, path, false);\n\t } else if (isNumber(value)) {\n\t return objectPath.set(obj, path, 0);\n\t } else if (isArray(value)) {\n\t value.length = 0;\n\t } else if (isObject(value)) {\n\t for (i in value) {\n\t if (_hasOwnProperty.call(value, i)) {\n\t delete value[i];\n\t }\n\t }\n\t } else {\n\t return objectPath.set(obj, path, null);\n\t }\n\t };\n\t\n\t objectPath.push = function (obj, path /*, values */){\n\t var arr = objectPath.get(obj, path);\n\t if (!isArray(arr)) {\n\t arr = [];\n\t objectPath.set(obj, path, arr);\n\t }\n\t\n\t arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n\t };\n\t\n\t objectPath.coalesce = function (obj, paths, defaultValue) {\n\t var value;\n\t\n\t for (var i = 0, len = paths.length; i < len; i++) {\n\t if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n\t return value;\n\t }\n\t }\n\t\n\t return defaultValue;\n\t };\n\t\n\t objectPath.get = function (obj, path, defaultValue){\n\t if (isNumber(path)) {\n\t path = [path];\n\t }\n\t if (isEmpty(path)) {\n\t return obj;\n\t }\n\t if (isEmpty(obj)) {\n\t return defaultValue;\n\t }\n\t if (isString(path)) {\n\t return objectPath.get(obj, path.split('.'), defaultValue);\n\t }\n\t\n\t var currentPath = getKey(path[0]);\n\t\n\t if (path.length === 1) {\n\t if (obj[currentPath] === void 0) {\n\t return defaultValue;\n\t }\n\t return obj[currentPath];\n\t }\n\t\n\t return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n\t };\n\t\n\t objectPath.del = function(obj, path) {\n\t return del(obj, path);\n\t };\n\t\n\t return objectPath;\n\t});\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"1.5.1\"\n\n/***/ }\n/******/ ])\n})\n","\n// The module cache\nvar installedModules = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(installedModules[moduleId])\n\t\treturn installedModules[moduleId].exports;\n\t\n\t// Create a new module (and put it into the cache)\n\tvar module = installedModules[moduleId] = {\n\t\texports: {},\n\t\tid: moduleId,\n\t\tloaded: false\n\t};\n\t\n\t// Execute the module function\n\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\t\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = modules;\n\n// expose the module cache\n__webpack_require__.c = installedModules;\n\n// __webpack_public_path__\n__webpack_require__.p = \"\";\n\n\n// Load entry module and return exports\nreturn __webpack_require__(0);","var Dispatcher = require(\"./lib/dispatcher\"),\n Flux = require(\"./lib/flux\"),\n FluxMixin = require(\"./lib/flux_mixin\"),\n FluxChildMixin = require(\"./lib/flux_child_mixin\"),\n StoreWatchMixin = require(\"./lib/store_watch_mixin\"),\n createStore = require(\"./lib/create_store\");\n\nvar Fluxxor = {\n Dispatcher: Dispatcher,\n Flux: Flux,\n FluxMixin: FluxMixin,\n FluxChildMixin: FluxChildMixin,\n StoreWatchMixin: StoreWatchMixin,\n createStore: createStore,\n version: require(\"./version\")\n};\n\nmodule.exports = Fluxxor;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own enumerable properties of an object, executing the callback\n * for each property. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, key, object). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n * console.log(key);\n * });\n * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n */\nvar forOwn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forOwn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('../internals/objectTypes');\n\n/**\n * Checks if `value` is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // check if the value is the ECMAScript language type of Object\n // http://es5.github.io/#x8\n // and avoid a V8 bug\n // http://code.google.com/p/v8/issues/detail?id=2291\n return !!(value && objectTypes[typeof value]);\n}\n\nmodule.exports = isObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar bind = require('../functions/bind'),\n identity = require('../utilities/identity'),\n setBindData = require('./setBindData'),\n support = require('../support');\n\n/** Used to detected named functions */\nvar reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/** Native method shortcuts */\nvar fnToString = Function.prototype.toString;\n\n/**\n * The base implementation of `_.createCallback` without support for creating\n * \"_.pluck\" or \"_.where\" style callbacks.\n *\n * @private\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n */\nfunction baseCreateCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n // exit early for no `thisArg` or already bound by `Function#bind`\n if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n return func;\n }\n var bindData = func.__bindData__;\n if (typeof bindData == 'undefined') {\n if (support.funcNames) {\n bindData = !func.name;\n }\n bindData = bindData || !support.funcDecomp;\n if (!bindData) {\n var source = fnToString.call(func);\n if (!support.funcNames) {\n bindData = !reFuncName.test(source);\n }\n if (!bindData) {\n // checks if `func` references the `this` keyword and stores the result\n bindData = reThis.test(source);\n setBindData(func, bindData);\n }\n }\n }\n // exit early if there are no `this` references or `func` is bound\n if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 2: return function(a, b) {\n return func.call(thisArg, a, b);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n }\n return bind(func, thisArg);\n}\n\nmodule.exports = baseCreateCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to determine if values are of the language type Object */\nvar objectTypes = {\n 'boolean': false,\n 'function': true,\n 'object': true,\n 'number': false,\n 'string': false,\n 'undefined': false\n};\n\nmodule.exports = objectTypes;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Iterates over elements of a collection, executing the callback for each\n * element. The callback is bound to `thisArg` and invoked with three arguments;\n * (value, index|key, collection). Callbacks may exit iteration early by\n * explicitly returning `false`.\n *\n * Note: As with other \"Collections\" methods, objects with a `length` property\n * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n * may be used for object iteration.\n *\n * @static\n * @memberOf _\n * @alias each\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array|Object|string} Returns `collection`.\n * @example\n *\n * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n * // => logs each number and returns '1,2,3'\n *\n * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n * // => logs each number and returns the object (property order is not guaranteed across environments)\n */\nfunction forEach(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n while (++index < length) {\n if (callback(collection[index], index, collection) === false) {\n break;\n }\n }\n } else {\n forOwn(collection, callback);\n }\n return collection;\n}\n\nmodule.exports = forEach;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n baseIsEqual = require('../internals/baseIsEqual'),\n isObject = require('../objects/isObject'),\n keys = require('../objects/keys'),\n property = require('../utilities/property');\n\n/**\n * Produces a callback bound to an optional `thisArg`. If `func` is a property\n * name the created callback will return the property value for a given element.\n * If `func` is an object the created callback will return `true` for elements\n * that contain the equivalent object properties, otherwise it will return `false`.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} [func=identity] The value to convert to a callback.\n * @param {*} [thisArg] The `this` binding of the created callback.\n * @param {number} [argCount] The number of arguments the callback accepts.\n * @returns {Function} Returns a callback function.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // wrap to create custom callback shorthands\n * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n * return !match ? func(callback, thisArg) : function(object) {\n * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n * };\n * });\n *\n * _.filter(characters, 'age__gt38');\n * // => [{ 'name': 'fred', 'age': 40 }]\n */\nfunction createCallback(func, thisArg, argCount) {\n var type = typeof func;\n if (func == null || type == 'function') {\n return baseCreateCallback(func, thisArg, argCount);\n }\n // handle \"_.pluck\" style callback shorthands\n if (type != 'object') {\n return property(func);\n }\n var props = keys(func),\n key = props[0],\n a = func[key];\n\n // handle \"_.where\" style callback shorthands\n if (props.length == 1 && a === a && !isObject(a)) {\n // fast path the common case of providing an object with a single\n // property containing a primitive value\n return function(object) {\n var b = object[key];\n return a === b && (a !== 0 || (1 / a == 1 / b));\n };\n }\n return function(object) {\n var length = props.length,\n result = false;\n\n while (length--) {\n if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n break;\n }\n }\n return result;\n };\n}\n\nmodule.exports = createCallback;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Used to detect if a method is native */\nvar reNative = RegExp('^' +\n String(toString)\n .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n */\nfunction isNative(value) {\n return typeof value == 'function' && reNative.test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Slices the `collection` from the `start` index up to, but not including,\n * the `end` index.\n *\n * Note: This function is used instead of `Array#slice` to support node lists\n * in IE < 9 and to ensure dense arrays are returned.\n *\n * @private\n * @param {Array|Object|string} collection The collection to slice.\n * @param {number} start The start index.\n * @param {number} end The end index.\n * @returns {Array} Returns the new array.\n */\nfunction slice(array, start, end) {\n start || (start = 0);\n if (typeof end == 'undefined') {\n end = array ? array.length : 0;\n }\n var index = -1,\n length = end - start || 0,\n result = Array(length < 0 ? 0 : length);\n\n while (++index < length) {\n result[index] = array[start + index];\n }\n return result;\n}\n\nmodule.exports = slice;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is a function.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n */\nfunction isFunction(value) {\n return typeof value == 'function';\n}\n\nmodule.exports = isFunction;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative'),\n isObject = require('./isObject'),\n shimKeys = require('../internals/shimKeys');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys;\n\n/**\n * Creates an array composed of the own enumerable property names of an object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n * @example\n *\n * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n if (!isObject(object)) {\n return [];\n }\n return nativeKeys(object);\n};\n\nmodule.exports = keys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool');\n\n/**\n * Gets an array from the array pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Array} The array from the pool.\n */\nfunction getArray() {\n return arrayPool.pop() || [];\n}\n\nmodule.exports = getArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar arrayPool = require('./arrayPool'),\n maxPoolSize = require('./maxPoolSize');\n\n/**\n * Releases the given array back to the array pool.\n *\n * @private\n * @param {Array} [array] The array to release.\n */\nfunction releaseArray(array) {\n array.length = 0;\n if (arrayPool.length < maxPoolSize) {\n arrayPool.push(array);\n }\n}\n\nmodule.exports = releaseArray;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * The base implementation of `_.indexOf` without support for binary searches\n * or `fromIndex` constraints.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value or `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n var index = (fromIndex || 0) - 1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar maxPoolSize = require('./maxPoolSize'),\n objectPool = require('./objectPool');\n\n/**\n * Releases the given object back to the object pool.\n *\n * @private\n * @param {Object} [object] The object to release.\n */\nfunction releaseObject(object) {\n var cache = object.cache;\n if (cache) {\n releaseObject(cache);\n }\n object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n if (objectPool.length < maxPoolSize) {\n objectPool.push(object);\n }\n}\n\nmodule.exports = releaseObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n noop = require('../utilities/noop');\n\n/** Used as the property descriptor for `__bindData__` */\nvar descriptor = {\n 'configurable': false,\n 'enumerable': false,\n 'value': null,\n 'writable': false\n};\n\n/** Used to set meta data on functions */\nvar defineProperty = (function() {\n // IE 8 only accepts DOM elements\n try {\n var o = {},\n func = isNative(func = Object.defineProperty) && func,\n result = func(o, o, o) && func;\n } catch(e) { }\n return result;\n}());\n\n/**\n * Sets `this` binding data on a given function.\n *\n * @private\n * @param {Function} func The function to set data on.\n * @param {Array} value The data array to set.\n */\nvar setBindData = !defineProperty ? noop : function(func, value) {\n descriptor.value = value;\n defineProperty(func, '__bindData__', descriptor);\n};\n\nmodule.exports = setBindData;\n","var _clone = require(\"lodash-node/modern/objects/clone\"),\n _mapValues = require(\"lodash-node/modern/objects/mapValues\"),\n _forOwn = require(\"lodash-node/modern/objects/forOwn\"),\n _intersection = require(\"lodash-node/modern/arrays/intersection\"),\n _keys = require(\"lodash-node/modern/objects/keys\"),\n _map = require(\"lodash-node/modern/collections/map\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _size = require(\"lodash-node/modern/collections/size\"),\n _findKey = require(\"lodash-node/modern/objects/findKey\"),\n _uniq = require(\"lodash-node/modern/arrays/uniq\");\n\nvar Dispatcher = function(stores) {\n this.stores = {};\n this.currentDispatch = null;\n this.currentActionType = null;\n this.waitingToDispatch = [];\n\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nDispatcher.prototype.addStore = function(name, store) {\n store.dispatcher = this;\n this.stores[name] = store;\n};\n\nDispatcher.prototype.dispatch = function(action) {\n if (!action || !action.type) {\n throw new Error(\"Can only dispatch actions with a 'type' property\");\n }\n\n if (this.currentDispatch) {\n var complaint = \"Cannot dispatch an action ('\" + action.type + \"') while another action ('\" +\n this.currentActionType + \"') is being dispatched\";\n throw new Error(complaint);\n }\n\n this.waitingToDispatch = _clone(this.stores);\n\n this.currentActionType = action.type;\n this.currentDispatch = _mapValues(this.stores, function() {\n return { resolved: false, waitingOn: [], waitCallback: null };\n });\n\n try {\n this.doDispatchLoop(action);\n } finally {\n this.currentActionType = null;\n this.currentDispatch = null;\n }\n};\n\nDispatcher.prototype.doDispatchLoop = function(action) {\n var dispatch, canBeDispatchedTo, wasHandled = false,\n removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\n _forOwn(this.waitingToDispatch, function(value, key) {\n dispatch = this.currentDispatch[key];\n canBeDispatchedTo = !dispatch.waitingOn.length ||\n !_intersection(dispatch.waitingOn, _keys(this.waitingToDispatch)).length;\n if (canBeDispatchedTo) {\n if (dispatch.waitCallback) {\n var stores = _map(dispatch.waitingOn, function(key) {\n return this.stores[key];\n }, this);\n var fn = dispatch.waitCallback;\n dispatch.waitCallback = null;\n dispatch.waitingOn = [];\n dispatch.resolved = true;\n fn.apply(null, stores);\n wasHandled = true;\n } else {\n dispatch.resolved = true;\n var handled = this.stores[key].__handleAction__(action);\n if (handled) {\n wasHandled = true;\n }\n }\n\n dispatchedThisLoop.push(key);\n\n if (this.currentDispatch[key].resolved) {\n removeFromDispatchQueue.push(key);\n }\n }\n }, this);\n\n if (_keys(this.waitingToDispatch).length && !dispatchedThisLoop.length) {\n var storesWithCircularWaits = _keys(this.waitingToDispatch).join(\", \");\n throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n }\n\n _each(removeFromDispatchQueue, function(key) {\n delete this.waitingToDispatch[key];\n }, this);\n\n if (_size(this.waitingToDispatch)) {\n this.doDispatchLoop(action);\n }\n\n if (!wasHandled && console && console.warn) {\n console.warn(\"An action of type \" + action.type + \" was dispatched, but no store handled it\");\n }\n\n};\n\nDispatcher.prototype.waitForStores = function(store, stores, fn) {\n if (!this.currentDispatch) {\n throw new Error(\"Cannot wait unless an action is being dispatched\");\n }\n\n var waitingStoreName = _findKey(this.stores, function(val) {\n return val === store;\n });\n\n if (stores.indexOf(waitingStoreName) > -1) {\n throw new Error(\"A store cannot wait on itself\");\n }\n\n var dispatch = this.currentDispatch[waitingStoreName];\n\n if (dispatch.waitingOn.length) {\n throw new Error(waitingStoreName + \" already waiting on stores\");\n }\n\n _each(stores, function(storeName) {\n var storeDispatch = this.currentDispatch[storeName];\n if (!this.stores[storeName]) {\n throw new Error(\"Cannot wait for non-existent store \" + storeName);\n }\n if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n }\n }, this);\n\n dispatch.resolved = false;\n dispatch.waitingOn = _uniq(dispatch.waitingOn.concat(stores));\n dispatch.waitCallback = fn;\n};\n\nmodule.exports = Dispatcher;\n","'use strict';\n\n/**\n * Representation of a single EventEmitter function.\n *\n * @param {Function} fn Event handler to be called.\n * @param {Mixed} context Context for function execution.\n * @param {Boolean} once Only emit once\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal EventEmitter interface that is molded against the Node.js\n * EventEmitter interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() { /* Nothing to set */ }\n\n/**\n * Holds the assigned EventEmitters by name.\n *\n * @type {Object}\n * @private\n */\nEventEmitter.prototype._events = undefined;\n\n/**\n * Return a list of assigned event listeners.\n *\n * @param {String} event The events that should be listed.\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n if (!this._events || !this._events[event]) return [];\n\n for (var i = 0, l = this._events[event].length, ee = []; i < l; i++) {\n ee.push(this._events[event][i].fn);\n }\n\n return ee;\n};\n\n/**\n * Emit an event to all registered event listeners.\n *\n * @param {String} event The name of the event.\n * @returns {Boolean} Indication if we've emitted an event.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n if (!this._events || !this._events[event]) return false;\n\n var listeners = this._events[event]\n , length = listeners.length\n , len = arguments.length\n , ee = listeners[0]\n , args\n , i, j;\n\n if (1 === length) {\n if (ee.once) this.removeListener(event, ee.fn, true);\n\n switch (len) {\n case 1: return ee.fn.call(ee.context), true;\n case 2: return ee.fn.call(ee.context, a1), true;\n case 3: return ee.fn.call(ee.context, a1, a2), true;\n case 4: return ee.fn.call(ee.context, a1, a2, a3), true;\n case 5: return ee.fn.call(ee.context, a1, a2, a3, a4), true;\n case 6: return ee.fn.call(ee.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n ee.fn.apply(ee.context, args);\n } else {\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Register a new EventListener for the given event.\n *\n * @param {String} event Name of the event.\n * @param {Functon} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE( fn, context || this ));\n\n return this;\n};\n\n/**\n * Add an EventListener that's only called once.\n *\n * @param {String} event Name of the event.\n * @param {Function} fn Callback function.\n * @param {Mixed} context The context of the function.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n if (!this._events) this._events = {};\n if (!this._events[event]) this._events[event] = [];\n this._events[event].push(new EE(fn, context || this, true ));\n\n return this;\n};\n\n/**\n * Remove event listeners.\n *\n * @param {String} event The event we want to remove.\n * @param {Function} fn The listener that we need to find.\n * @param {Boolean} once Only remove once listeners.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, once) {\n if (!this._events || !this._events[event]) return this;\n\n var listeners = this._events[event]\n , events = [];\n\n if (fn) for (var i = 0, length = listeners.length; i < length; i++) {\n if (listeners[i].fn !== fn && listeners[i].once !== once) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[event] = events;\n else this._events[event] = null;\n\n return this;\n};\n\n/**\n * Remove all listeners or only the listeners for the specified event.\n *\n * @param {String} event The event want to remove all listeners for.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n if (!this._events) return this;\n\n if (event) this._events[event] = null;\n else this._events = {};\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the module.\n//\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.EventEmitter2 = EventEmitter;\nEventEmitter.EventEmitter3 = EventEmitter;\n\nif ('object' === typeof module && module.exports) {\n module.exports = EventEmitter;\n}\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar arrayPool = [];\n\nmodule.exports = arrayPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./isNative'),\n isObject = require('../objects/isObject'),\n noop = require('../utilities/noop');\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(prototype, properties) {\n return isObject(prototype) ? nativeCreate(prototype) : {};\n}\n// fallback for browsers without `Object.create`\nif (!nativeCreate) {\n baseCreate = (function() {\n function Object() {}\n return function(prototype) {\n if (isObject(prototype)) {\n Object.prototype = prototype;\n var result = new Object;\n Object.prototype = null;\n }\n return result || global.Object();\n };\n }());\n}\n\nmodule.exports = baseCreate;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n keyPrefix = require('./keyPrefix');\n\n/**\n * An implementation of `_.contains` for cache objects that mimics the return\n * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n *\n * @private\n * @param {Object} cache The cache object to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns `0` if `value` is found, else `-1`.\n */\nfunction cacheIndexOf(cache, value) {\n var type = typeof value;\n cache = cache.cache;\n\n if (type == 'boolean' || value == null) {\n return cache[value] ? 0 : -1;\n }\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value;\n cache = (cache = cache[type]) && cache[key];\n\n return type == 'object'\n ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n : (cache ? 0 : -1);\n}\n\nmodule.exports = cacheIndexOf;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar cachePush = require('./cachePush'),\n getObject = require('./getObject'),\n releaseObject = require('./releaseObject');\n\n/**\n * Creates a cache object to optimize linear searches of large arrays.\n *\n * @private\n * @param {Array} [array=[]] The array to search.\n * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n */\nfunction createCache(array) {\n var index = -1,\n length = array.length,\n first = array[0],\n mid = array[(length / 2) | 0],\n last = array[length - 1];\n\n if (first && typeof first == 'object' &&\n mid && typeof mid == 'object' && last && typeof last == 'object') {\n return false;\n }\n var cache = getObject();\n cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\n var result = getObject();\n result.array = array;\n result.cache = cache;\n result.push = cachePush;\n\n while (++index < length) {\n result.push(array[index]);\n }\n return result;\n}\n\nmodule.exports = createCache;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\nvar keyPrefix = +new Date + '';\n\nmodule.exports = keyPrefix;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the size when optimizations are enabled for large arrays */\nvar largeArraySize = 75;\n\nmodule.exports = largeArraySize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used as the max size of the `arrayPool` and `objectPool` */\nvar maxPoolSize = 40;\n\nmodule.exports = maxPoolSize;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** Used to pool arrays and objects used internally */\nvar objectPool = [];\n\nmodule.exports = objectPool;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('../internals/isNative');\n\n/** `Object#toString` result shortcuts */\nvar arrayClass = '[object Array]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/* Native method shortcuts for methods with the same name as other `lodash` methods */\nvar nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray;\n\n/**\n * Checks if `value` is an array.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n * @example\n *\n * (function() { return _.isArray(arguments); })();\n * // => false\n *\n * _.isArray([1, 2, 3]);\n * // => true\n */\nvar isArray = nativeIsArray || function(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == arrayClass || false;\n};\n\nmodule.exports = isArray;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * A no-operation function.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.noop(object) === undefined;\n * // => true\n */\nfunction noop() {\n // no operation performed\n}\n\nmodule.exports = noop;\n","var _each = require(\"lodash-node/modern/collections/forEach\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n Store = require(\"./store\"),\n inherits = require(\"inherits\");\n\nvar RESERVED_KEYS = [\"flux\", \"waitFor\"];\n\nvar createStore = function(spec) {\n _each(RESERVED_KEYS, function(key) {\n if (spec[key]) {\n throw new Error(\"Reserved key '\" + key + \"' found in store definition\");\n }\n });\n\n var constructor = function(options) {\n options = options || {};\n Store.call(this);\n\n for (var key in spec) {\n if (key === \"actions\") {\n this.bindActions(spec[key]);\n } else if (key === \"initialize\") {\n // do nothing\n } else if (_isFunction(spec[key])) {\n this[key] = spec[key].bind(this);\n } else {\n this[key] = spec[key];\n }\n }\n\n if (spec.initialize) {\n spec.initialize.call(this, options);\n }\n };\n\n inherits(constructor, Store);\n return constructor;\n};\n\nmodule.exports = createStore;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n objectPath = require(\"object-path\"),\n _each = require(\"lodash-node/modern/collections/forEach\"),\n _reduce = require(\"lodash-node/modern/collections/reduce\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isString = require(\"lodash-node/modern/objects/isString\");\n\nvar Dispatcher = require(\"./dispatcher\");\n\nvar findLeaves = function(obj, path, callback) {\n path = path || [];\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (_isFunction(obj[key])) {\n callback(path.concat(key), obj[key]);\n } else {\n findLeaves(obj[key], path.concat(key), callback);\n }\n }\n }\n};\n\nvar Flux = function(stores, actions) {\n EventEmitter.call(this);\n this.dispatcher = new Dispatcher(stores);\n this.actions = {};\n this.stores = {};\n\n var dispatcher = this.dispatcher;\n var flux = this;\n this.dispatchBinder = {\n flux: flux,\n dispatch: function(type, payload) {\n try {\n flux.emit(\"dispatch\", type, payload);\n } finally {\n dispatcher.dispatch({type: type, payload: payload});\n }\n }\n };\n\n this.addActions(actions);\n this.addStores(stores);\n};\n\ninherits(Flux, EventEmitter);\n\nFlux.prototype.addActions = function(actions) {\n findLeaves(actions, [], this.addAction.bind(this));\n};\n\n// addAction has two signatures:\n// 1: string[, string, string, string...], actionFunction\n// 2: arrayOfStrings, actionFunction\nFlux.prototype.addAction = function() {\n if (arguments.length < 2) {\n throw new Error(\"addAction requires at least two arguments, a string (or array of strings) and a function\");\n }\n\n var args = Array.prototype.slice.call(arguments);\n\n if (!_isFunction(args[args.length - 1])) {\n throw new Error(\"The last argument to addAction must be a function\");\n }\n\n var func = args.pop().bind(this.dispatchBinder);\n\n if (!_isString(args[0])) {\n args = args[0];\n }\n\n var leadingPaths = _reduce(args, function(acc, next) {\n if (acc) {\n var nextPath = acc[acc.length - 1].concat([next]);\n return acc.concat([nextPath]);\n } else {\n return [[next]];\n }\n }, null);\n\n // Detect trying to replace a function at any point in the path\n _each(leadingPaths, function(path) {\n if (_isFunction(objectPath.get(this.actions, path))) {\n throw new Error(\"An action named \" + args.join(\".\") + \" already exists\");\n }\n }, this);\n\n // Detect trying to replace a namespace at the final point in the path\n if (objectPath.get(this.actions, args)) {\n throw new Error(\"A namespace named \" + args.join(\".\") + \" already exists\");\n }\n\n objectPath.set(this.actions, args, func, true);\n};\n\nFlux.prototype.store = function(name) {\n return this.stores[name];\n};\n\nFlux.prototype.addStore = function(name, store) {\n if (name in this.stores) {\n throw new Error(\"A store named '\" + name + \"' already exists\");\n }\n store.flux = this;\n this.stores[name] = store;\n this.dispatcher.addStore(name, store);\n};\n\nFlux.prototype.addStores = function(stores) {\n for (var key in stores) {\n if (stores.hasOwnProperty(key)) {\n this.addStore(key, stores[key]);\n }\n }\n};\n\nmodule.exports = Flux;\n","var FluxChildMixin = function(React) {\n return {\n componentWillMount: function() {\n if (console && console.warn) {\n var namePart = this.constructor.displayName ? \" in \" + this.constructor.displayName : \"\",\n message = \"Fluxxor.FluxChildMixin was found in use\" + namePart + \", \" +\n \"but has been deprecated. Use Fluxxor.FluxMixin instead.\";\n console.warn(message);\n }\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getFlux: function() {\n return this.context.flux;\n }\n };\n};\n\nFluxChildMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxChildMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxChildMixin(React)]\");\n};\n\nmodule.exports = FluxChildMixin;\n","var FluxMixin = function(React) {\n return {\n componentWillMount: function() {\n if (!this.props.flux && (!this.context || !this.context.flux)) {\n var namePart = this.constructor.displayName ? \" of \" + this.constructor.displayName : \"\";\n throw new Error(\"Could not find flux on this.props or this.context\" + namePart);\n }\n },\n\n childContextTypes: {\n flux: React.PropTypes.object\n },\n\n contextTypes: {\n flux: React.PropTypes.object\n },\n\n getChildContext: function() {\n return {\n flux: this.getFlux()\n };\n },\n\n getFlux: function() {\n return this.props.flux || (this.context && this.context.flux);\n }\n };\n};\n\nFluxMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.FluxMixin is a function that takes React as a \" +\n \"parameter and returns the mixin, e.g.: mixins[Fluxxor.FluxMixin(React)]\");\n};\n\nmodule.exports = FluxMixin;\n","var EventEmitter = require(\"eventemitter3\"),\n inherits = require(\"inherits\"),\n _isFunction = require(\"lodash-node/modern/objects/isFunction\"),\n _isObject = require(\"lodash-node/modern/objects/isObject\");\n\nfunction Store(dispatcher) {\n this.dispatcher = dispatcher;\n this.__actions__ = {};\n EventEmitter.call(this);\n}\n\ninherits(Store, EventEmitter);\n\nStore.prototype.__handleAction__ = function(action) {\n var handler;\n if (!!(handler = this.__actions__[action.type])) {\n if (_isFunction(handler)) {\n handler.call(this, action.payload, action.type);\n } else if (handler && _isFunction(this[handler])) {\n this[handler].call(this, action.payload, action.type);\n } else {\n throw new Error(\"The handler for action type \" + action.type + \" is not a function\");\n }\n return true;\n } else {\n return false;\n }\n};\n\nStore.prototype.bindActions = function() {\n var actions = Array.prototype.slice.call(arguments);\n\n if (actions.length > 1 && actions.length % 2 !== 0) {\n throw new Error(\"bindActions must take an even number of arguments.\");\n }\n\n var bindAction = function(type, handler) {\n if (!handler) {\n throw new Error(\"The handler for action type \" + type + \" is falsy\");\n }\n\n this.__actions__[type] = handler;\n }.bind(this);\n\n if (actions.length === 1 && _isObject(actions[0])) {\n actions = actions[0];\n for (var key in actions) {\n if (actions.hasOwnProperty(key)) {\n bindAction(key, actions[key]);\n }\n }\n } else {\n for (var i = 0; i < actions.length; i += 2) {\n var type = actions[i],\n handler = actions[i+1];\n\n if (!type) {\n throw new Error(\"Argument \" + (i+1) + \" to bindActions is a falsy value\");\n }\n\n bindAction(type, handler);\n }\n }\n};\n\nStore.prototype.waitFor = function(stores, fn) {\n this.dispatcher.waitForStores(this, stores, fn.bind(this));\n};\n\nmodule.exports = Store;\n","var _each = require(\"lodash-node/modern/collections/forEach\");\n\nvar StoreWatchMixin = function() {\n var storeNames = Array.prototype.slice.call(arguments);\n return {\n componentDidMount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).on(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n componentWillUnmount: function() {\n var flux = this.props.flux || this.context.flux;\n _each(storeNames, function(store) {\n flux.store(store).removeListener(\"change\", this._setStateFromFlux);\n }, this);\n },\n\n _setStateFromFlux: function() {\n if(this.isMounted()) {\n this.setState(this.getStateFromFlux());\n }\n },\n\n getInitialState: function() {\n return this.getStateFromFlux();\n }\n };\n};\n\nStoreWatchMixin.componentWillMount = function() {\n throw new Error(\"Fluxxor.StoreWatchMixin is a function that takes one or more \" +\n \"store names as parameters and returns the mixin, e.g.: \" +\n \"mixins[Fluxxor.StoreWatchMixin(\\\"Store1\\\", \\\"Store2\\\")]\");\n};\n\nmodule.exports = StoreWatchMixin;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('../internals/baseIndexOf'),\n cacheIndexOf = require('../internals/cacheIndexOf'),\n createCache = require('../internals/createCache'),\n getArray = require('../internals/getArray'),\n isArguments = require('../objects/isArguments'),\n isArray = require('../objects/isArray'),\n largeArraySize = require('../internals/largeArraySize'),\n releaseArray = require('../internals/releaseArray'),\n releaseObject = require('../internals/releaseObject');\n\n/**\n * Creates an array of unique values present in all provided arrays using\n * strict equality for comparisons, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @category Arrays\n * @param {...Array} [array] The arrays to inspect.\n * @returns {Array} Returns an array of shared values.\n * @example\n *\n * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n * // => [1, 2]\n */\nfunction intersection() {\n var args = [],\n argsIndex = -1,\n argsLength = arguments.length,\n caches = getArray(),\n indexOf = baseIndexOf,\n trustIndexOf = indexOf === baseIndexOf,\n seen = getArray();\n\n while (++argsIndex < argsLength) {\n var value = arguments[argsIndex];\n if (isArray(value) || isArguments(value)) {\n args.push(value);\n caches.push(trustIndexOf && value.length >= largeArraySize &&\n createCache(argsIndex ? args[argsIndex] : seen));\n }\n }\n var array = args[0],\n index = -1,\n length = array ? array.length : 0,\n result = [];\n\n outer:\n while (++index < length) {\n var cache = caches[0];\n value = array[index];\n\n if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n argsIndex = argsLength;\n (cache || seen).push(value);\n while (--argsIndex) {\n cache = caches[argsIndex];\n if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n continue outer;\n }\n }\n result.push(value);\n }\n }\n while (argsLength--) {\n cache = caches[argsLength];\n if (cache) {\n releaseObject(cache);\n }\n }\n releaseArray(caches);\n releaseArray(seen);\n return result;\n}\n\nmodule.exports = intersection;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseUniq = require('../internals/baseUniq'),\n createCallback = require('../functions/createCallback');\n\n/**\n * Creates a duplicate-value-free version of an array using strict equality\n * for comparisons, i.e. `===`. If the array is sorted, providing\n * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n * each element of `array` is passed through the callback before uniqueness\n * is computed. The callback is bound to `thisArg` and invoked with three\n * arguments; (value, index, array).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias unique\n * @category Arrays\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a duplicate-value-free array.\n * @example\n *\n * _.uniq([1, 2, 1, 3, 1]);\n * // => [1, 2, 3]\n *\n * _.uniq([1, 1, 2, 2, 3], true);\n * // => [1, 2, 3]\n *\n * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n * // => ['A', 'b', 'C']\n *\n * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n * // => [1, 2.5, 3]\n *\n * // using \"_.pluck\" callback shorthand\n * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniq(array, isSorted, callback, thisArg) {\n // juggle arguments\n if (typeof isSorted != 'boolean' && isSorted != null) {\n thisArg = callback;\n callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n isSorted = false;\n }\n if (callback != null) {\n callback = createCallback(callback, thisArg, 3);\n }\n return baseUniq(array, isSorted, callback);\n}\n\nmodule.exports = uniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Creates an array of values by running each element in the collection\n * through the callback. The callback is bound to `thisArg` and invoked with\n * three arguments; (value, index|key, collection).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @alias collect\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new array of the results of each `callback` execution.\n * @example\n *\n * _.map([1, 2, 3], function(num) { return num * 3; });\n * // => [3, 6, 9]\n *\n * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n * // => [3, 6, 9] (property order is not guaranteed across environments)\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * // using \"_.pluck\" callback shorthand\n * _.map(characters, 'name');\n * // => ['barney', 'fred']\n */\nfunction map(collection, callback, thisArg) {\n var index = -1,\n length = collection ? collection.length : 0;\n\n callback = createCallback(callback, thisArg, 3);\n if (typeof length == 'number') {\n var result = Array(length);\n while (++index < length) {\n result[index] = callback(collection[index], index, collection);\n }\n } else {\n result = [];\n forOwn(collection, function(value, key, collection) {\n result[++index] = callback(value, key, collection);\n });\n }\n return result;\n}\n\nmodule.exports = map;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('../objects/forOwn');\n\n/**\n * Reduces a collection to a value which is the accumulated result of running\n * each element in the collection through the callback, where each successive\n * callback execution consumes the return value of the previous execution. If\n * `accumulator` is not provided the first element of the collection will be\n * used as the initial `accumulator` value. The callback is bound to `thisArg`\n * and invoked with four arguments; (accumulator, value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @alias foldl, inject\n * @category Collections\n * @param {Array|Object|string} collection The collection to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [accumulator] Initial value of the accumulator.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * var sum = _.reduce([1, 2, 3], function(sum, num) {\n * return sum + num;\n * });\n * // => 6\n *\n * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n * result[key] = num * 3;\n * return result;\n * }, {});\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n */\nfunction reduce(collection, callback, accumulator, thisArg) {\n if (!collection) return accumulator;\n var noaccum = arguments.length < 3;\n callback = createCallback(callback, thisArg, 4);\n\n var index = -1,\n length = collection.length;\n\n if (typeof length == 'number') {\n if (noaccum) {\n accumulator = collection[++index];\n }\n while (++index < length) {\n accumulator = callback(accumulator, collection[index], index, collection);\n }\n } else {\n forOwn(collection, function(value, index, collection) {\n accumulator = noaccum\n ? (noaccum = false, value)\n : callback(accumulator, value, index, collection)\n });\n }\n return accumulator;\n}\n\nmodule.exports = reduce;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keys = require('../objects/keys');\n\n/**\n * Gets the size of the `collection` by returning `collection.length` for arrays\n * and array-like objects or the number of own enumerable properties for objects.\n *\n * @static\n * @memberOf _\n * @category Collections\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns `collection.length` or number of own enumerable properties.\n * @example\n *\n * _.size([1, 2]);\n * // => 2\n *\n * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n * // => 3\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n var length = collection ? collection.length : 0;\n return typeof length == 'number' ? length : keys(collection).length;\n}\n\nmodule.exports = size;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createWrapper = require('../internals/createWrapper'),\n slice = require('../internals/slice');\n\n/**\n * Creates a function that, when called, invokes `func` with the `this`\n * binding of `thisArg` and prepends any additional `bind` arguments to those\n * provided to the bound function.\n *\n * @static\n * @memberOf _\n * @category Functions\n * @param {Function} func The function to bind.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {...*} [arg] Arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var func = function(greeting) {\n * return greeting + ' ' + this.name;\n * };\n *\n * func = _.bind(func, { 'name': 'fred' }, 'hi');\n * func();\n * // => 'hi fred'\n */\nfunction bind(func, thisArg) {\n return arguments.length > 2\n ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n : createWrapper(func, 1, null, null, thisArg);\n}\n\nmodule.exports = bind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `_.bind` that creates the bound function and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new bound function.\n */\nfunction baseBind(bindData) {\n var func = bindData[0],\n partialArgs = bindData[2],\n thisArg = bindData[4];\n\n function bound() {\n // `Function#bind` spec\n // http://es5.github.io/#x15.3.4.5\n if (partialArgs) {\n // avoid `arguments` object deoptimizations by using `slice` instead\n // of `Array.prototype.slice.call` and not assigning `arguments` to a\n // variable as a ternary expression\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n // mimic the constructor's `return` behavior\n // http://es5.github.io/#x13.2.2\n if (this instanceof bound) {\n // ensure `new bound` is an instance of `func`\n var thisBinding = baseCreate(func.prototype),\n result = func.apply(thisBinding, args || arguments);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisArg, args || arguments);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseBind;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar assign = require('../objects/assign'),\n forEach = require('../collections/forEach'),\n forOwn = require('../objects/forOwn'),\n getArray = require('./getArray'),\n isArray = require('../objects/isArray'),\n isObject = require('../objects/isObject'),\n releaseArray = require('./releaseArray'),\n slice = require('./slice');\n\n/** Used to match regexp flags from their coerced string values */\nvar reFlags = /\\w*$/;\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n funcClass = '[object Function]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used to identify object classifications that `_.clone` supports */\nvar cloneableClasses = {};\ncloneableClasses[funcClass] = false;\ncloneableClasses[argsClass] = cloneableClasses[arrayClass] =\ncloneableClasses[boolClass] = cloneableClasses[dateClass] =\ncloneableClasses[numberClass] = cloneableClasses[objectClass] =\ncloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to lookup a built-in constructor by [[Class]] */\nvar ctorByClass = {};\nctorByClass[arrayClass] = Array;\nctorByClass[boolClass] = Boolean;\nctorByClass[dateClass] = Date;\nctorByClass[funcClass] = Function;\nctorByClass[objectClass] = Object;\nctorByClass[numberClass] = Number;\nctorByClass[regexpClass] = RegExp;\nctorByClass[stringClass] = String;\n\n/**\n * The base implementation of `_.clone` without argument juggling or support\n * for `thisArg` binding.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates clones with source counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, callback, stackA, stackB) {\n if (callback) {\n var result = callback(value);\n if (typeof result != 'undefined') {\n return result;\n }\n }\n // inspect [[Class]]\n var isObj = isObject(value);\n if (isObj) {\n var className = toString.call(value);\n if (!cloneableClasses[className]) {\n return value;\n }\n var ctor = ctorByClass[className];\n switch (className) {\n case boolClass:\n case dateClass:\n return new ctor(+value);\n\n case numberClass:\n case stringClass:\n return new ctor(value);\n\n case regexpClass:\n result = ctor(value.source, reFlags.exec(value));\n result.lastIndex = value.lastIndex;\n return result;\n }\n } else {\n return value;\n }\n var isArr = isArray(value);\n if (isDeep) {\n // check for circular references and return corresponding clone\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == value) {\n return stackB[length];\n }\n }\n result = isArr ? ctor(value.length) : {};\n }\n else {\n result = isArr ? slice(value) : assign({}, value);\n }\n // add array properties assigned by `RegExp#exec`\n if (isArr) {\n if (hasOwnProperty.call(value, 'index')) {\n result.index = value.index;\n }\n if (hasOwnProperty.call(value, 'input')) {\n result.input = value.input;\n }\n }\n // exit for shallow clone\n if (!isDeep) {\n return result;\n }\n // add the source value to the stack of traversed objects\n // and associate it with its clone\n stackA.push(value);\n stackB.push(result);\n\n // recursively populate clone (susceptible to call stack limits)\n (isArr ? forEach : forOwn)(value, function(objValue, key) {\n result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n });\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreate = require('./baseCreate'),\n isObject = require('../objects/isObject'),\n setBindData = require('./setBindData'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push;\n\n/**\n * The base implementation of `createWrapper` that creates the wrapper and\n * sets its meta data.\n *\n * @private\n * @param {Array} bindData The bind data array.\n * @returns {Function} Returns the new function.\n */\nfunction baseCreateWrapper(bindData) {\n var func = bindData[0],\n bitmask = bindData[1],\n partialArgs = bindData[2],\n partialRightArgs = bindData[3],\n thisArg = bindData[4],\n arity = bindData[5];\n\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n key = func;\n\n function bound() {\n var thisBinding = isBind ? thisArg : this;\n if (partialArgs) {\n var args = slice(partialArgs);\n push.apply(args, arguments);\n }\n if (partialRightArgs || isCurry) {\n args || (args = slice(arguments));\n if (partialRightArgs) {\n push.apply(args, partialRightArgs);\n }\n if (isCurry && args.length < arity) {\n bitmask |= 16 & ~32;\n return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n }\n }\n args || (args = arguments);\n if (isBindKey) {\n func = thisBinding[key];\n }\n if (this instanceof bound) {\n thisBinding = baseCreate(func.prototype);\n var result = func.apply(thisBinding, args);\n return isObject(result) ? result : thisBinding;\n }\n return func.apply(thisBinding, args);\n }\n setBindData(bound, bindData);\n return bound;\n}\n\nmodule.exports = baseCreateWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar forIn = require('../objects/forIn'),\n getArray = require('./getArray'),\n isFunction = require('../objects/isFunction'),\n objectTypes = require('./objectTypes'),\n releaseArray = require('./releaseArray');\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]',\n arrayClass = '[object Array]',\n boolClass = '[object Boolean]',\n dateClass = '[object Date]',\n numberClass = '[object Number]',\n objectClass = '[object Object]',\n regexpClass = '[object RegExp]',\n stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n * that allows partial \"_.where\" style comparisons.\n *\n * @private\n * @param {*} a The value to compare.\n * @param {*} b The other value to compare.\n * @param {Function} [callback] The function to customize comparing values.\n * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n // used to indicate that when comparing objects, `a` has at least the properties of `b`\n if (callback) {\n var result = callback(a, b);\n if (typeof result != 'undefined') {\n return !!result;\n }\n }\n // exit early for identical values\n if (a === b) {\n // treat `+0` vs. `-0` as not equal\n return a !== 0 || (1 / a == 1 / b);\n }\n var type = typeof a,\n otherType = typeof b;\n\n // exit early for unlike primitive values\n if (a === a &&\n !(a && objectTypes[type]) &&\n !(b && objectTypes[otherType])) {\n return false;\n }\n // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n // http://es5.github.io/#x15.3.4.4\n if (a == null || b == null) {\n return a === b;\n }\n // compare [[Class]] names\n var className = toString.call(a),\n otherClass = toString.call(b);\n\n if (className == argsClass) {\n className = objectClass;\n }\n if (otherClass == argsClass) {\n otherClass = objectClass;\n }\n if (className != otherClass) {\n return false;\n }\n switch (className) {\n case boolClass:\n case dateClass:\n // coerce dates and booleans to numbers, dates to milliseconds and booleans\n // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n return +a == +b;\n\n case numberClass:\n // treat `NaN` vs. `NaN` as equal\n return (a != +a)\n ? b != +b\n // but treat `+0` vs. `-0` as not equal\n : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\n case regexpClass:\n case stringClass:\n // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n // treat string primitives and their corresponding object instances as equal\n return a == String(b);\n }\n var isArr = className == arrayClass;\n if (!isArr) {\n // unwrap any `lodash` wrapped values\n var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\n if (aWrapped || bWrapped) {\n return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n }\n // exit for functions and DOM nodes\n if (className != objectClass) {\n return false;\n }\n // in older versions of Opera, `arguments` objects have `Array` constructors\n var ctorA = a.constructor,\n ctorB = b.constructor;\n\n // non `Object` object instances with different constructors are not equal\n if (ctorA != ctorB &&\n !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n ('constructor' in a && 'constructor' in b)\n ) {\n return false;\n }\n }\n // assume cyclic structures are equal\n // the algorithm for detecting cyclic structures is adapted from ES 5.1\n // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n var initedStack = !stackA;\n stackA || (stackA = getArray());\n stackB || (stackB = getArray());\n\n var length = stackA.length;\n while (length--) {\n if (stackA[length] == a) {\n return stackB[length] == b;\n }\n }\n var size = 0;\n result = true;\n\n // add `a` and `b` to the stack of traversed objects\n stackA.push(a);\n stackB.push(b);\n\n // recursively compare objects and arrays (susceptible to call stack limits)\n if (isArr) {\n // compare lengths to determine if a deep comparison is necessary\n length = a.length;\n size = b.length;\n result = size == length;\n\n if (result || isWhere) {\n // deep compare the contents, ignoring non-numeric properties\n while (size--) {\n var index = length,\n value = b[size];\n\n if (isWhere) {\n while (index--) {\n if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n break;\n }\n }\n }\n }\n else {\n // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n // which, in this case, is more costly\n forIn(b, function(value, key, b) {\n if (hasOwnProperty.call(b, key)) {\n // count the number of properties.\n size++;\n // deep compare each property value.\n return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n }\n });\n\n if (result && !isWhere) {\n // ensure both objects have the same number of properties\n forIn(a, function(value, key, a) {\n if (hasOwnProperty.call(a, key)) {\n // `size` will be `-1` if `a` has more properties than `b`\n return (result = --size > -1);\n }\n });\n }\n }\n stackA.pop();\n stackB.pop();\n\n if (initedStack) {\n releaseArray(stackA);\n releaseArray(stackB);\n }\n return result;\n}\n\nmodule.exports = baseIsEqual;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseIndexOf = require('./baseIndexOf'),\n cacheIndexOf = require('./cacheIndexOf'),\n createCache = require('./createCache'),\n getArray = require('./getArray'),\n largeArraySize = require('./largeArraySize'),\n releaseArray = require('./releaseArray'),\n releaseObject = require('./releaseObject');\n\n/**\n * The base implementation of `_.uniq` without support for callback shorthands\n * or `thisArg` binding.\n *\n * @private\n * @param {Array} array The array to process.\n * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n * @param {Function} [callback] The function called per iteration.\n * @returns {Array} Returns a duplicate-value-free array.\n */\nfunction baseUniq(array, isSorted, callback) {\n var index = -1,\n indexOf = baseIndexOf,\n length = array ? array.length : 0,\n result = [];\n\n var isLarge = !isSorted && length >= largeArraySize,\n seen = (callback || isLarge) ? getArray() : result;\n\n if (isLarge) {\n var cache = createCache(seen);\n indexOf = cacheIndexOf;\n seen = cache;\n }\n while (++index < length) {\n var value = array[index],\n computed = callback ? callback(value, index, array) : value;\n\n if (isSorted\n ? !index || seen[seen.length - 1] !== computed\n : indexOf(seen, computed) < 0\n ) {\n if (callback || isLarge) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n if (isLarge) {\n releaseArray(seen.array);\n releaseObject(seen);\n } else if (callback) {\n releaseArray(seen);\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar keyPrefix = require('./keyPrefix');\n\n/**\n * Adds a given value to the corresponding cache object.\n *\n * @private\n * @param {*} value The value to add to the cache.\n */\nfunction cachePush(value) {\n var cache = this.cache,\n type = typeof value;\n\n if (type == 'boolean' || value == null) {\n cache[value] = true;\n } else {\n if (type != 'number' && type != 'string') {\n type = 'object';\n }\n var key = type == 'number' ? value : keyPrefix + value,\n typeCache = cache[type] || (cache[type] = {});\n\n if (type == 'object') {\n (typeCache[key] || (typeCache[key] = [])).push(value);\n } else {\n typeCache[key] = true;\n }\n }\n}\n\nmodule.exports = cachePush;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseBind = require('./baseBind'),\n baseCreateWrapper = require('./baseCreateWrapper'),\n isFunction = require('../objects/isFunction'),\n slice = require('./slice');\n\n/**\n * Used for `Array` method references.\n *\n * Normally `Array.prototype` would suffice, however, using an array literal\n * avoids issues in Narwhal.\n */\nvar arrayRef = [];\n\n/** Native method shortcuts */\nvar push = arrayRef.push,\n unshift = arrayRef.unshift;\n\n/**\n * Creates a function that, when called, either curries or invokes `func`\n * with an optional `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to reference.\n * @param {number} bitmask The bitmask of method flags to compose.\n * The bitmask may be composed of the following flags:\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry`\n * 8 - `_.curry` (bound)\n * 16 - `_.partial`\n * 32 - `_.partialRight`\n * @param {Array} [partialArgs] An array of arguments to prepend to those\n * provided to the new function.\n * @param {Array} [partialRightArgs] An array of arguments to append to those\n * provided to the new function.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new function.\n */\nfunction createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n var isBind = bitmask & 1,\n isBindKey = bitmask & 2,\n isCurry = bitmask & 4,\n isCurryBound = bitmask & 8,\n isPartial = bitmask & 16,\n isPartialRight = bitmask & 32;\n\n if (!isBindKey && !isFunction(func)) {\n throw new TypeError;\n }\n if (isPartial && !partialArgs.length) {\n bitmask &= ~16;\n isPartial = partialArgs = false;\n }\n if (isPartialRight && !partialRightArgs.length) {\n bitmask &= ~32;\n isPartialRight = partialRightArgs = false;\n }\n var bindData = func && func.__bindData__;\n if (bindData && bindData !== true) {\n // clone `bindData`\n bindData = slice(bindData);\n if (bindData[2]) {\n bindData[2] = slice(bindData[2]);\n }\n if (bindData[3]) {\n bindData[3] = slice(bindData[3]);\n }\n // set `thisBinding` is not previously bound\n if (isBind && !(bindData[1] & 1)) {\n bindData[4] = thisArg;\n }\n // set if previously bound but not currently (subsequent curried functions)\n if (!isBind && bindData[1] & 1) {\n bitmask |= 8;\n }\n // set curried arity if not yet set\n if (isCurry && !(bindData[1] & 4)) {\n bindData[5] = arity;\n }\n // append partial left arguments\n if (isPartial) {\n push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n }\n // append partial right arguments\n if (isPartialRight) {\n unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n }\n // merge flags\n bindData[1] |= bitmask;\n return createWrapper.apply(null, bindData);\n }\n // fast path for `_.bind`\n var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n}\n\nmodule.exports = createWrapper;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectPool = require('./objectPool');\n\n/**\n * Gets an object from the object pool or creates a new one if the pool is empty.\n *\n * @private\n * @returns {Object} The object from the pool.\n */\nfunction getObject() {\n return objectPool.pop() || {\n 'array': null,\n 'cache': null,\n 'criteria': null,\n 'false': false,\n 'index': 0,\n 'null': false,\n 'number': null,\n 'object': null,\n 'push': null,\n 'string': null,\n 'true': false,\n 'undefined': false,\n 'value': null\n };\n}\n\nmodule.exports = getObject;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar objectTypes = require('./objectTypes');\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Native method shortcuts */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which produces an array of the\n * given object's own enumerable property names.\n *\n * @private\n * @type Function\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns an array of property names.\n */\nvar shimKeys = function(object) {\n var index, iterable = object, result = [];\n if (!iterable) return result;\n if (!(objectTypes[typeof object])) return result;\n for (index in iterable) {\n if (hasOwnProperty.call(iterable, index)) {\n result.push(index);\n }\n }\n return result\n};\n\nmodule.exports = shimKeys;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n keys = require('./keys'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Assigns own enumerable properties of source object(s) to the destination\n * object. Subsequent sources will overwrite property assignments of previous\n * sources. If a callback is provided it will be executed to produce the\n * assigned values. The callback is bound to `thisArg` and invoked with two\n * arguments; (objectValue, sourceValue).\n *\n * @static\n * @memberOf _\n * @type Function\n * @alias extend\n * @category Objects\n * @param {Object} object The destination object.\n * @param {...Object} [source] The source objects.\n * @param {Function} [callback] The function to customize assigning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns the destination object.\n * @example\n *\n * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n * // => { 'name': 'fred', 'employer': 'slate' }\n *\n * var defaults = _.partialRight(_.assign, function(a, b) {\n * return typeof a == 'undefined' ? b : a;\n * });\n *\n * var object = { 'name': 'barney' };\n * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n * // => { 'name': 'barney', 'employer': 'slate' }\n */\nvar assign = function(object, source, guard) {\n var index, iterable = object, result = iterable;\n if (!iterable) return result;\n var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\n if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n } else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n }\n while (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n result[index] = callback ? callback(result[index], iterable[index]) : iterable[index];\n }\n }\n }\n return result\n};\n\nmodule.exports = assign;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseClone = require('../internals/baseClone'),\n baseCreateCallback = require('../internals/baseCreateCallback');\n\n/**\n * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n * be cloned, otherwise they will be assigned by reference. If a callback\n * is provided it will be executed to produce the cloned values. If the\n * callback returns `undefined` cloning will be handled by the method instead.\n * The callback is bound to `thisArg` and invoked with one argument; (value).\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep=false] Specify a deep clone.\n * @param {Function} [callback] The function to customize cloning values.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {*} Returns the cloned value.\n * @example\n *\n * var characters = [\n * { 'name': 'barney', 'age': 36 },\n * { 'name': 'fred', 'age': 40 }\n * ];\n *\n * var shallow = _.clone(characters);\n * shallow[0] === characters[0];\n * // => true\n *\n * var deep = _.clone(characters, true);\n * deep[0] === characters[0];\n * // => false\n *\n * _.mixin({\n * 'clone': _.partialRight(_.clone, function(value) {\n * return _.isElement(value) ? value.cloneNode(false) : undefined;\n * })\n * });\n *\n * var clone = _.clone(document.body);\n * clone.childNodes.length;\n * // => 0\n */\nfunction clone(value, isDeep, callback, thisArg) {\n // allows working with \"Collections\" methods without using their `index`\n // and `collection` arguments for `isDeep` and `callback`\n if (typeof isDeep != 'boolean' && isDeep != null) {\n thisArg = callback;\n callback = isDeep;\n isDeep = false;\n }\n return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n}\n\nmodule.exports = clone;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * This method is like `_.findIndex` except that it returns the key of the\n * first element that passes the callback check, instead of the element itself.\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to search.\n * @param {Function|Object|string} [callback=identity] The function called per\n * iteration. If a property name or object is provided it will be used to\n * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n * @example\n *\n * var characters = {\n * 'barney': { 'age': 36, 'blocked': false },\n * 'fred': { 'age': 40, 'blocked': true },\n * 'pebbles': { 'age': 1, 'blocked': false }\n * };\n *\n * _.findKey(characters, function(chr) {\n * return chr.age < 40;\n * });\n * // => 'barney' (property order is not guaranteed across environments)\n *\n * // using \"_.where\" callback shorthand\n * _.findKey(characters, { 'age': 1 });\n * // => 'pebbles'\n *\n * // using \"_.pluck\" callback shorthand\n * _.findKey(characters, 'blocked');\n * // => 'fred'\n */\nfunction findKey(object, callback, thisArg) {\n var result;\n callback = createCallback(callback, thisArg, 3);\n forOwn(object, function(value, key, object) {\n if (callback(value, key, object)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nmodule.exports = findKey;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar baseCreateCallback = require('../internals/baseCreateCallback'),\n objectTypes = require('../internals/objectTypes');\n\n/**\n * Iterates over own and inherited enumerable properties of an object,\n * executing the callback for each property. The callback is bound to `thisArg`\n * and invoked with three arguments; (value, key, object). Callbacks may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @type Function\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function} [callback=identity] The function called per iteration.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * Shape.prototype.move = function(x, y) {\n * this.x += x;\n * this.y += y;\n * };\n *\n * _.forIn(new Shape, function(value, key) {\n * console.log(key);\n * });\n * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n */\nvar forIn = function(collection, callback, thisArg) {\n var index, iterable = collection, result = iterable;\n if (!iterable) return result;\n if (!objectTypes[typeof iterable]) return result;\n callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n for (index in iterable) {\n if (callback(iterable[index], index, collection) === false) return result;\n }\n return result\n};\n\nmodule.exports = forIn;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar argsClass = '[object Arguments]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n * @example\n *\n * (function() { return _.isArguments(arguments); })(1, 2, 3);\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return value && typeof value == 'object' && typeof value.length == 'number' &&\n toString.call(value) == argsClass || false;\n}\n\nmodule.exports = isArguments;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/** `Object#toString` result shortcuts */\nvar stringClass = '[object String]';\n\n/** Used for native method references */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the internal [[Class]] of values */\nvar toString = objectProto.toString;\n\n/**\n * Checks if `value` is a string.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n * @example\n *\n * _.isString('fred');\n * // => true\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n value && typeof value == 'object' && toString.call(value) == stringClass || false;\n}\n\nmodule.exports = isString;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar createCallback = require('../functions/createCallback'),\n forOwn = require('./forOwn');\n\n/**\n * Creates an object with the same keys as `object` and values generated by\n * running each own enumerable property of `object` through the callback.\n * The callback is bound to `thisArg` and invoked with three arguments;\n * (value, key, object).\n *\n * If a property name is provided for `callback` the created \"_.pluck\" style\n * callback will return the property value of the given element.\n *\n * If an object is provided for `callback` the created \"_.where\" style callback\n * will return `true` for elements that have the properties of the given object,\n * else `false`.\n *\n * @static\n * @memberOf _\n * @category Objects\n * @param {Object} object The object to iterate over.\n * @param {Function|Object|string} [callback=identity] The function called\n * per iteration. If a property name or object is provided it will be used\n * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n * @param {*} [thisArg] The `this` binding of `callback`.\n * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n * @example\n *\n * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n * // => { 'a': 3, 'b': 6, 'c': 9 }\n *\n * var characters = {\n * 'fred': { 'name': 'fred', 'age': 40 },\n * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n * };\n *\n * // using \"_.pluck\" callback shorthand\n * _.mapValues(characters, 'age');\n * // => { 'fred': 40, 'pebbles': 1 }\n */\nfunction mapValues(object, callback, thisArg) {\n var result = {};\n callback = createCallback(callback, thisArg, 3);\n\n forOwn(object, function(value, key, object) {\n result[key] = callback(value, key, object);\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\nvar isNative = require('./internals/isNative');\n\n/** Used to detect functions containing a `this` reference */\nvar reThis = /\\bthis\\b/;\n\n/**\n * An object used to flag environments features.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n/**\n * Detect if functions can be decompiled by `Function#toString`\n * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcDecomp = !isNative(global.WinRTError) && reThis.test(function() { return this; });\n\n/**\n * Detect if `Function#name` is supported (all but IE).\n *\n * @memberOf _.support\n * @type boolean\n */\nsupport.funcNames = typeof Function.name == 'string';\n\nmodule.exports = support;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'name': 'fred' };\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * Lo-Dash 2.4.1 (Custom Build) \n * Build: `lodash modularize modern exports=\"node\" -o ./modern/`\n * Copyright 2012-2013 The Dojo Foundation \n * Based on Underscore.js 1.5.2 \n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Creates a \"_.pluck\" style function, which returns the `key` value of a\n * given object.\n *\n * @static\n * @memberOf _\n * @category Utilities\n * @param {string} key The name of the property to retrieve.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var characters = [\n * { 'name': 'fred', 'age': 40 },\n * { 'name': 'barney', 'age': 36 }\n * ];\n *\n * var getName = _.property('name');\n *\n * _.map(characters, getName);\n * // => ['barney', 'fred']\n *\n * _.sortBy(characters, getName);\n * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n */\nfunction property(key) {\n return function(object) {\n return object[key];\n };\n}\n\nmodule.exports = property;\n","(function (root, factory){\n 'use strict';\n\n /*istanbul ignore next:cant test*/\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else {\n // Browser globals\n root.objectPath = factory();\n }\n})(this, function(){\n 'use strict';\n\n var\n toStr = Object.prototype.toString,\n _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n function isEmpty(value){\n if (!value) {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n } else {\n for (var i in value) {\n if (_hasOwnProperty.call(value, i)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function toString(type){\n return toStr.call(type);\n }\n\n function isNumber(value){\n return typeof value === 'number' || toString(value) === \"[object Number]\";\n }\n\n function isString(obj){\n return typeof obj === 'string' || toString(obj) === \"[object String]\";\n }\n\n function isObject(obj){\n return typeof obj === 'object' && toString(obj) === \"[object Object]\";\n }\n\n function isArray(obj){\n return typeof obj === 'object' && typeof obj.length === 'number' && toString(obj) === '[object Array]';\n }\n\n function isBoolean(obj){\n return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';\n }\n\n function getKey(key){\n var intKey = parseInt(key);\n if (intKey.toString() === key) {\n return intKey;\n }\n return key;\n }\n\n function set(obj, path, value, doNotReplace){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isString(path)) {\n return set(obj, path.split('.'), value, doNotReplace);\n }\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n var oldVal = obj[currentPath];\n if (oldVal === void 0 || !doNotReplace) {\n obj[currentPath] = value;\n }\n return oldVal;\n }\n\n if (obj[currentPath] === void 0) {\n if (isNumber(currentPath)) {\n obj[currentPath] = [];\n } else {\n obj[currentPath] = {};\n }\n }\n\n return set(obj[currentPath], path.slice(1), value, doNotReplace);\n }\n\n function del(obj, path) {\n if (isNumber(path)) {\n path = [path];\n }\n\n if (isEmpty(obj)) {\n return void 0;\n }\n\n if (isEmpty(path)) {\n return obj;\n }\n if(isString(path)) {\n return del(obj, path.split('.'));\n }\n\n var currentPath = getKey(path[0]);\n var oldVal = obj[currentPath];\n\n if(path.length === 1) {\n if (oldVal !== void 0) {\n if (isArray(obj)) {\n obj.splice(currentPath, 1);\n } else {\n delete obj[currentPath];\n }\n }\n } else {\n if (obj[currentPath] !== void 0) {\n return del(obj[currentPath], path.slice(1));\n }\n }\n\n return obj;\n }\n\n var objectPath = {};\n\n objectPath.ensureExists = function (obj, path, value){\n return set(obj, path, value, true);\n };\n\n objectPath.set = function (obj, path, value, doNotReplace){\n return set(obj, path, value, doNotReplace);\n };\n\n objectPath.insert = function (obj, path, value, at){\n var arr = objectPath.get(obj, path);\n at = ~~at;\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n arr.splice(at, 0, value);\n };\n\n objectPath.empty = function(obj, path) {\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return void 0;\n }\n\n var value, i;\n if (!(value = objectPath.get(obj, path))) {\n return obj;\n }\n\n if (isString(value)) {\n return objectPath.set(obj, path, '');\n } else if (isBoolean(value)) {\n return objectPath.set(obj, path, false);\n } else if (isNumber(value)) {\n return objectPath.set(obj, path, 0);\n } else if (isArray(value)) {\n value.length = 0;\n } else if (isObject(value)) {\n for (i in value) {\n if (_hasOwnProperty.call(value, i)) {\n delete value[i];\n }\n }\n } else {\n return objectPath.set(obj, path, null);\n }\n };\n\n objectPath.push = function (obj, path /*, values */){\n var arr = objectPath.get(obj, path);\n if (!isArray(arr)) {\n arr = [];\n objectPath.set(obj, path, arr);\n }\n\n arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));\n };\n\n objectPath.coalesce = function (obj, paths, defaultValue) {\n var value;\n\n for (var i = 0, len = paths.length; i < len; i++) {\n if ((value = objectPath.get(obj, paths[i])) !== void 0) {\n return value;\n }\n }\n\n return defaultValue;\n };\n\n objectPath.get = function (obj, path, defaultValue){\n if (isNumber(path)) {\n path = [path];\n }\n if (isEmpty(path)) {\n return obj;\n }\n if (isEmpty(obj)) {\n return defaultValue;\n }\n if (isString(path)) {\n return objectPath.get(obj, path.split('.'), defaultValue);\n }\n\n var currentPath = getKey(path[0]);\n\n if (path.length === 1) {\n if (obj[currentPath] === void 0) {\n return defaultValue;\n }\n return obj[currentPath];\n }\n\n return objectPath.get(obj[currentPath], path.slice(1), defaultValue);\n };\n\n objectPath.del = function(obj, path) {\n return del(obj, path);\n };\n\n return objectPath;\n});","module.exports = \"1.5.1\""],"sourceRoot":"webpack-module://"} \ No newline at end of file diff --git a/examples/async/app/bundle.js b/examples/async/app/bundle.js index 2bb2667..40ddc2e 100644 --- a/examples/async/app/bundle.js +++ b/examples/async/app/bundle.js @@ -15,9 +15,9 @@ function o(e){"production"!==t.env.NODE_ENV?r(e&&!/[^a-z0-9_]/.test(e),"You must * @license Modernizr 3.0.0pre (Custom Build) | MIT */ function o(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,o=n in document;if(!o){var a=document.createElement("div");a.setAttribute(n,"return;"),o="function"==typeof a[n]}return!o&&r&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}var r,i=n(5);i.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=o},function(e){"use strict";function t(e,t){return e&&t&&e.type===t.type&&e.key===t.key&&e._owner===t._owner?!0:!1}e.exports=t},function(e,t,n){var o=n(130),r=n(135),i=n(17),a=n(114),s=n(35),u=n(116),c=n(30),l=n(118),p=n(131),d=n(115),f=function(e){this.stores={},this.currentDispatch=null,this.currentActionType=null,this.waitingToDispatch=[];for(var t in e)e.hasOwnProperty(t)&&this.addStore(t,e[t])};f.prototype.addStore=function(e,t){t.dispatcher=this,this.stores[e]=t},f.prototype.dispatch=function(e){if(!e||!e.type)throw new Error("Can only dispatch actions with a 'type' property");if(this.currentDispatch){var t="Cannot dispatch an action ('"+e.type+"') while another action ('"+this.currentActionType+"') is being dispatched";throw new Error(t)}this.waitingToDispatch=o(this.stores),this.currentActionType=e.type,this.currentDispatch=r(this.stores,function(){return{resolved:!1,waitingOn:[],waitCallback:null}});try{this.doDispatchLoop(e)}finally{this.currentActionType=null,this.currentDispatch=null}},f.prototype.doDispatchLoop=function(e){var t,n,o=!1,r=[],p=[];if(i(this.waitingToDispatch,function(i,c){if(t=this.currentDispatch[c],n=!t.waitingOn.length||!a(t.waitingOn,s(this.waitingToDispatch)).length){if(t.waitCallback){var l=u(t.waitingOn,function(e){return this.stores[e]},this),d=t.waitCallback;t.waitCallback=null,t.waitingOn=[],t.resolved=!0,d.apply(null,l),o=!0}else{t.resolved=!0;var f=this.stores[c].__handleAction__(e);f&&(o=!0)}p.push(c),this.currentDispatch[c].resolved&&r.push(c)}},this),s(this.waitingToDispatch).length&&!p.length){var d=s(this.waitingToDispatch).join(", ");throw new Error("Indirect circular wait detected among: "+d)}c(r,function(e){delete this.waitingToDispatch[e]},this),l(this.waitingToDispatch)&&this.doDispatchLoop(e),!o&&console&&console.warn&&console.warn("An action of type "+e.type+" was dispatched, but no store handled it")},f.prototype.waitForStores=function(e,t,n){if(!this.currentDispatch)throw new Error("Cannot wait unless an action is being dispatched");var o=p(this.stores,function(t){return t===e});if(t.indexOf(o)>-1)throw new Error("A store cannot wait on itself");var r=this.currentDispatch[o];if(r.waitingOn.length)throw new Error(o+" already waiting on stores");c(t,function(e){var t=this.currentDispatch[e];if(!this.stores[e])throw new Error("Cannot wait for non-existent store "+e);if(t.waitingOn.indexOf(o)>-1)throw new Error("Circular wait detected between "+o+" and "+e)},this),r.resolved=!1,r.waitingOn=d(r.waitingOn.concat(t)),r.waitCallback=n},e.exports=f},function(e){"use strict";function t(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function n(){}n.prototype._events=void 0,n.prototype.listeners=function(e){if(!this._events||!this._events[e])return[];for(var t=0,n=this._events[e].length,o=[];n>t;t++)o.push(this._events[e][t].fn);return o},n.prototype.emit=function(e,t,n,o,r,i){if(!this._events||!this._events[e])return!1;var a,s,u,c=this._events[e],l=c.length,p=arguments.length,d=c[0];if(1===l){switch(d.once&&this.removeListener(e,d.fn,!0),p){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,n),!0;case 4:return d.fn.call(d.context,t,n,o),!0;case 5:return d.fn.call(d.context,t,n,o,r),!0;case 6:return d.fn.call(d.context,t,n,o,r,i),!0}for(s=1,a=new Array(p-1);p>s;s++)a[s-1]=arguments[s];d.fn.apply(d.context,a)}else for(s=0;l>s;s++)switch(c[s].once&&this.removeListener(e,c[s].fn,!0),p){case 1:c[s].fn.call(c[s].context);break;case 2:c[s].fn.call(c[s].context,t);break;case 3:c[s].fn.call(c[s].context,t,n);break;default:if(!a)for(u=1,a=new Array(p-1);p>u;u++)a[u-1]=arguments[u];c[s].fn.apply(c[s].context,a)}return!0},n.prototype.on=function(e,n,o){return this._events||(this._events={}),this._events[e]||(this._events[e]=[]),this._events[e].push(new t(n,o||this)),this},n.prototype.once=function(e,n,o){return this._events||(this._events={}),this._events[e]||(this._events[e]=[]),this._events[e].push(new t(n,o||this,!0)),this},n.prototype.removeListener=function(e,t,n){if(!this._events||!this._events[e])return this;var o=this._events[e],r=[];if(t)for(var i=0,a=o.length;a>i;i++)o[i].fn!==t&&o[i].once!==n&&r.push(o[i]);return this._events[e]=r.length?r:null,this},n.prototype.removeAllListeners=function(e){return this._events?(e?this._events[e]=null:this._events={},this):this},n.prototype.off=n.prototype.removeListener,n.prototype.addListener=n.prototype.on,n.prototype.setMaxListeners=function(){return this},n.EventEmitter=n,n.EventEmitter2=n,n.EventEmitter3=n,"object"==typeof e&&e.exports&&(e.exports=n)},function(e){var t=[];e.exports=t},function(e,t,n){(function(t){function o(e){return i(e)?a(e):{}}var r=n(32),i=n(18),a=(n(78),r(a=Object.create)&&a);a||(o=function(){function e(){}return function(n){if(i(n)){e.prototype=n;var o=new e;e.prototype=null}return o||t.Object()}}()),e.exports=o}).call(t,function(){return this}())},function(e,t,n){function o(e,t){var n=typeof t;if(e=e.cache,"boolean"==n||null==t)return e[t]?0:-1;"number"!=n&&"string"!=n&&(n="object");var o="number"==n?t:i+t;return e=(e=e[n])&&e[o],"object"==n?e&&r(e,t)>-1?0:-1:e?0:-1}var r=n(48),i=n(73);e.exports=o},function(e,t,n){function o(e){var t=-1,n=e.length,o=e[0],a=e[n/2|0],s=e[n-1];if(o&&"object"==typeof o&&a&&"object"==typeof a&&s&&"object"==typeof s)return!1;var u=i();u["false"]=u["null"]=u["true"]=u.undefined=!1;var c=i();for(c.array=e,c.cache=u,c.push=r;++t-1&&f(o);var r=e[o];null!=r&&(n+=l(o)+":",n+=a(o,r)+";")}return n||null},setValueForStyles:function(e,n){var r=e.style;for(var i in n)if(n.hasOwnProperty(i)){"production"!==t.env.NODE_ENV&&i.indexOf("-")>-1&&f(i);var s=a(i,n[i]);if("float"===i&&(i=p),s)r[i]=s;else{var u=o.shorthandPropertyExpansions[i];if(u)for(var c in u)r[c]="";else r[i]=""}}}};e.exports=h}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function o(){if(s)for(var e in u){var n=u[e],o=s.indexOf(e);if("production"!==t.env.NODE_ENV?a(o>-1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e):a(o>-1),!c.plugins[o]){"production"!==t.env.NODE_ENV?a(n.extractEvents,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e):a(n.extractEvents),c.plugins[o]=n;var i=n.eventTypes;for(var l in i)"production"!==t.env.NODE_ENV?a(r(i[l],n,l),"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",l,e):a(r(i[l],n,l))}}}function r(e,n,o){"production"!==t.env.NODE_ENV?a(!c.eventNameDispatchConfigs.hasOwnProperty(o),"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",o):a(!c.eventNameDispatchConfigs.hasOwnProperty(o)),c.eventNameDispatchConfigs[o]=e;var r=e.phasedRegistrationNames;if(r){for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];i(u,n,o)}return!0}return e.registrationName?(i(e.registrationName,n,o),!0):!1}function i(e,n,o){"production"!==t.env.NODE_ENV?a(!c.registrationNameModules[e],"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e):a(!c.registrationNameModules[e]),c.registrationNameModules[e]=n,c.registrationNameDependencies[e]=n.eventTypes[o].dependencies}var a=n(2),s=null,u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){"production"!==t.env.NODE_ENV?a(!s,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."):a(!s),s=Array.prototype.slice.call(e),o()},injectEventPluginsByName:function(e){var n=!1;for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];u.hasOwnProperty(r)&&u[r]===i||("production"!==t.env.NODE_ENV?a(!u[r],"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",r):a(!u[r]),u[r]=i,n=!0)}n&&o()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var o=c.registrationNameModules[t.phasedRegistrationNames[n]];if(o)return o}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var o=c.registrationNameModules;for(var r in o)o.hasOwnProperty(r)&&delete o[r]}};e.exports=c}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function o(e){e.remove()}var r=n(26),i=n(57),a=n(60),s=n(2),u={trapBubbledEvent:function(e,n){"production"!==t.env.NODE_ENV?s(this.isMounted(),"Must be mounted to trap events"):s(this.isMounted());var o=r.trapBubbledEvent(e,n,this.getDOMNode());this._localEventListeners=i(this._localEventListeners,o)},componentWillUnmount:function(){this._localEventListeners&&a(this._localEventListeners,o)}};e.exports=u}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function o(e){e&&("production"!==t.env.NODE_ENV?g(null==e.children||null==e.dangerouslySetInnerHTML,"Can only set one of `children` or `props.dangerouslySetInnerHTML`."):g(null==e.children||null==e.dangerouslySetInnerHTML),"production"!==t.env.NODE_ENV&&e.contentEditable&&null!=e.children&&console.warn("A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."),"production"!==t.env.NODE_ENV?g(null==e.style||"object"==typeof e.style,"The `style` prop expects a mapping from style properties to values, not a string."):g(null==e.style||"object"==typeof e.style))}function r(e,n,o,r){"production"!==t.env.NODE_ENV&&("onScroll"!==n||E("scroll",!0)||(_("react_no_scroll_event"),console.warn("This browser doesn't support the `onScroll` event")));var i=f.findReactContainerForID(e);if(i){var a=i.nodeType===O?i.ownerDocument:i;D(n,a)}r.getPutListenerQueue().enqueuePutListener(e,n,o)}function i(e){I.call(R,e)||("production"!==t.env.NODE_ENV?g(T.test(e),"Invalid tag: %s",e):g(T.test(e)),R[e]=!0)}function a(e){i(e),this._tag=e,this.tagName=e.toUpperCase()}var s=n(80),u=n(19),c=n(24),l=n(10),p=n(27),d=n(26),f=n(9),h=n(85),m=n(11),v=n(3),y=n(59),g=n(2),E=n(65),N=n(14),_=n(46),b=d.deleteListener,D=d.listenTo,C=d.registrationNameModules,w={string:!0,number:!0},x=N({style:null}),O=1,M={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},T=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,R={},I={}.hasOwnProperty;a.displayName="ReactDOMComponent",a.Mixin={mountComponent:m.measure("ReactDOMComponent","mountComponent",function(e,t,n){p.Mixin.mountComponent.call(this,e,t,n),o(this.props);var r=M[this._tag]?"":"";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+r}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n="<"+this._tag;for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];if(null!=i)if(C.hasOwnProperty(o))r(this._rootNodeID,o,i,e);else{o===x&&(i&&(i=t.style=v({},t.style)),i=s.createMarkupForStyles(i));var a=c.createMarkupForProperty(o,i);a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n+">";var u=c.createMarkupForID(this._rootNodeID);return n+" "+u+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=w[typeof this.props.children]?this.props.children:null,o=null!=n?null:this.props.children;if(null!=n)return y(n);if(null!=o){var r=this.mountChildren(o,e);return r.join("")}}return""},receiveComponent:function(e,t){(e!==this._currentElement||null==e._owner)&&p.Mixin.receiveComponent.call(this,e,t)},updateComponent:m.measure("ReactDOMComponent","updateComponent",function(e,t){o(this._currentElement.props),p.Mixin.updateComponent.call(this,e,t),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e)}),_updateDOMProperties:function(e,t){var n,o,i,a=this.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===x){var s=e[n];for(o in s)s.hasOwnProperty(o)&&(i=i||{},i[o]="")}else C.hasOwnProperty(n)?b(this._rootNodeID,n):(u.isStandardName[n]||u.isCustomAttribute(n))&&p.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in a){var c=a[n],l=e[n];if(a.hasOwnProperty(n)&&c!==l)if(n===x)if(c&&(c=a.style=v({},c)),l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(i=i||{},i[o]=c[o])}else i=c;else C.hasOwnProperty(n)?r(this._rootNodeID,n,c,t):(u.isStandardName[n]||u.isCustomAttribute(n))&&p.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,c)}i&&p.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,o=w[typeof e.children]?e.children:null,r=w[typeof n.children]?n.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,a=n.dangerouslySetInnerHTML&&n.dangerouslySetInnerHTML.__html,s=null!=o?null:e.children,u=null!=r?null:n.children,c=null!=o||null!=i,l=null!=r||null!=a;null!=s&&null==u?this.updateChildren(null,t):c&&!l&&this.updateTextContent(""),null!=r?o!==r&&this.updateTextContent(""+r):null!=a?i!==a&&p.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),d.deleteAllListeners(this._rootNodeID),p.Mixin.unmountComponent.call(this)}},v(a.prototype,p.Mixin,a.Mixin,h.Mixin,l),e.exports=a}).call(t,n(1))},function(e,t,n){"use strict";var o=n(187),r={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=o(e);return e.replace(">"," "+r.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(r.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=o(e);return i===n}};e.exports=r},function(e,t,n){"use strict";function o(e,t,n){m.push({parentID:e,parentNode:null,type:l.INSERT_MARKUP,markupIndex:v.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){m.push({parentID:e,parentNode:null,type:l.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function i(e,t){m.push({parentID:e,parentNode:null,type:l.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function a(e,t){m.push({parentID:e,parentNode:null,type:l.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function s(){m.length&&(c.BackendIDOperations.dangerouslyProcessChildrenUpdates(m,v),u())}function u(){m.length=0,v.length=0}var c=n(27),l=n(86),p=n(195),d=n(45),f=n(66),h=0,m=[],v=[],y={Mixin:{mountChildren:function(e,t){var n=p(e),o=[],r=0;this._renderedChildren=n;for(var i in n){var a=n[i];if(n.hasOwnProperty(i)){var s=d(a,null);n[i]=s;var u=this._rootNodeID+i,c=s.mountComponent(u,t,this._mountDepth+1);s._mountIndex=r,o.push(c),r++}}return o},updateTextContent:function(e){h++;var t=!0;try{var n=this._renderedChildren;for(var o in n)n.hasOwnProperty(o)&&this._unmountChildByName(n[o],o);this.setTextContent(e),t=!1}finally{h--,h||(t?u():s())}},updateChildren:function(e,t){h++;var n=!0;try{this._updateChildren(e,t),n=!1}finally{h--,h||(n?u():s())}},_updateChildren:function(e,t){var n=p(e),o=this._renderedChildren;if(n||o){var r,i=0,a=0;for(r in n)if(n.hasOwnProperty(r)){var s=o&&o[r],u=s&&s._currentElement,c=n[r];if(f(u,c))this.moveChild(s,a,i),i=Math.max(s._mountIndex,i),s.receiveComponent(c,t),s._mountIndex=a;else{s&&(i=Math.max(s._mountIndex,i),this._unmountChildByName(s,r));var l=d(c,null);this._mountChildByNameAtIndex(l,r,a,t)}a++}for(r in o)!o.hasOwnProperty(r)||n&&n[r]||this._unmountChildByName(o[r],r)}},unmountChildren:function(){var e=this._renderedChildren;for(var t in e){var n=e[t];n.unmountComponent&&n.unmountComponent()}this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex>",b=s(),D=d(),C={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:i(),arrayOf:a,element:b,instanceOf:u,node:D,objectOf:l,oneOf:c,oneOfType:p,shape:f,component:E("React.PropTypes","component","element",this,b),renderable:E("React.PropTypes","renderable","node",this,D)};e.exports=C},function(e,t,n){"use strict";function o(){this.listenersToPut=[]}var r=n(15),i=n(26),a=n(3);a(o.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e"+i+""},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,r.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}});var c=function(e){return new i(u,null,null,null,null,e)};c.type=u,e.exports=c},function(e,t,n){"use strict";var o=n(101),r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(){var e=o(window);r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){function o(e,t){return e&&t?e===t?!0:r(e)?!1:r(t)?o(e,t.parentNode):e.contains?e.contains(t):e.compareDocumentPosition?!!(16&e.compareDocumentPosition(t)):!1:!1}var r=n(201);e.exports=o},function(e){"use strict";function t(e){try{e.focus()}catch(t){}}e.exports=t},function(e){function t(){try{return document.activeElement||document.body}catch(e){return document.body}}e.exports=t},function(e,t,n){(function(t){function o(e){return"production"!==t.env.NODE_ENV?i(!!a,"Markup wrapping node not initialized"):i(!!a),d.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||(a.innerHTML="*"===e?"":"<"+e+">",s[e]=!a.firstChild),s[e]?d[e]:null}var r=n(5),i=n(2),a=r.canUseDOM?document.createElement("div"):null,s={circle:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},u=[1,'"],c=[1,"","
"],l=[3,"","
"],p=[1,"",""],d={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l,circle:p,defs:p,ellipse:p,g:p,line:p,linearGradient:p,path:p,polygon:p,polyline:p,radialGradient:p,rect:p,stop:p,text:p};e.exports=o}).call(t,n(1))},function(e){"use strict";function t(e){return e?e.nodeType===n?e.documentElement:e.firstChild:null}var n=9;e.exports=t},function(e){"use strict";function t(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=t},function(e){"use strict";function t(e){return e&&("INPUT"===e.nodeName&&n[e.type]||"TEXTAREA"===e.nodeName)}var n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=t},function(e){"use strict";function t(e,t,o){if(!e)return null;var r={};for(var i in e)n.call(e,i)&&(r[i]=t.call(o,e[i],i,e));return r}var n=Object.prototype.hasOwnProperty;e.exports=t},function(e){"use strict";function t(e){var t={};return function(n){return t.hasOwnProperty(n)?t[n]:t[n]=e.call(this,n)}}e.exports=t},function(e,t,n){"use strict";var o=n(5),r=/^[ \r\n\t\f]/,i=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if(o.canUseDOM){var s=document.createElement("div");s.innerHTML=" ",""===s.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),r.test(t)||"<"===t[0]&&i.test(t)){e.innerHTML=""+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}e.exports=a},function(e,t,n){(function(t){"use strict";function o(e){return f[e]}function r(e,t){return e&&null!=e.key?a(e.key):t.toString(36)}function i(e){return(""+e).replace(h,o)}function a(e){return"$"+i(e)}function s(e,t,n){return null==e?0:m(e,"",0,t,n)}var u=n(4),c=n(28),l=n(2),p=c.SEPARATOR,d=":",f={"=":"=0",".":"=1",":":"=2"},h=/[=.:]/g,m=function(e,n,o,i,s){var c,f,h=0;if(Array.isArray(e))for(var v=0;v1&&e.length%2!==0)throw new Error("bindActions must take an even number of arguments.");var t=function(e,t){if(!t)throw new Error("The handler for action type "+e+" is falsy");this.__actions__[e]=t}.bind(this);if(1===e.length&&s(e[0])){e=e[0];for(var n in e)e.hasOwnProperty(n)&&t(n,e[n])}else for(var o=0;o=l&&a(t?e[t]:m)))}var y=e[0],g=-1,E=y?y.length:0,N=[];e:for(;++g2?r(e,17,i(arguments,2),null,t):r(e,1,null,null,t)}var r=n(126),i=n(33);e.exports=o},function(e,t,n){function o(e){function t(){if(o){var e=s(o);c.apply(e,arguments)}if(this instanceof t){var a=r(n.prototype),l=n.apply(a,e||arguments);return i(l)?l:a}return n.apply(u,e||arguments)}var n=e[0],o=e[2],u=e[4];return a(t,e),t}var r=n(70),i=n(18),a=n(50),s=n(33),u=[],c=u.push;e.exports=o},function(e,t,n){function o(e,t,n,f,h){if(n){var y=n(e);if("undefined"!=typeof y)return y}var E=c(e);if(!E)return e;var D=C.call(e);if(!b[D])return e;var O=x[D];switch(D){case m:case v:return new O(+e);case g:case _:return new O(e);case N:return y=O(e.source,d.exec(e)),y.lastIndex=e.lastIndex,y}var M=u(e);if(t){var T=!f;f||(f=s()),h||(h=s());for(var R=f.length;R--;)if(f[R]==e)return h[R];y=M?O(e.length):{}}else y=M?p(e):r({},e);return M&&(w.call(e,"index")&&(y.index=e.index),w.call(e,"input")&&(y.input=e.input)),t?(f.push(e),h.push(y),(M?i:a)(e,function(e,r){y[r]=o(e,t,n,f,h)}),T&&(l(f),l(h)),y):y}var r=n(129),i=n(30),a=n(17),s=n(39),u=n(77),c=n(18),l=n(40),p=n(33),d=/\w*$/,f="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",y="[object Function]",g="[object Number]",E="[object Object]",N="[object RegExp]",_="[object String]",b={};b[y]=!1,b[f]=b[h]=b[m]=b[v]=b[g]=b[E]=b[N]=b[_]=!0;var D=Object.prototype,C=D.toString,w=D.hasOwnProperty,x={};x[h]=Array,x[m]=Boolean,x[v]=Date,x[y]=Function,x[E]=Object,x[g]=Number,x[N]=RegExp,x[_]=String,e.exports=o},function(e,t,n){function o(e){function t(){var e=h?d:this;if(l){var a=s(l);c.apply(a,arguments)}if((p||v)&&(a||(a=s(arguments)),p&&c.apply(a,p),v&&a.length-1:void 0});return N.pop(),_.pop(),S&&(u(N),u(_)),b}var r=n(132),i=n(39),a=n(34),s=n(23),u=n(40),c="[object Arguments]",l="[object Array]",p="[object Boolean]",d="[object Date]",f="[object Number]",h="[object Object]",m="[object RegExp]",v="[object String]",y=Object.prototype,g=y.toString,E=y.hasOwnProperty;e.exports=o},function(e,t,n){function o(e,t,n){var o=-1,p=r,d=e?e.length:0,f=[],h=!t&&d>=u,m=n||h?s():f;if(h){var v=a(m);p=i,m=v}for(;++o3&&"function"==typeof c[p-2])var d=o(c[--p-1],c[p--],2);else p>2&&"function"==typeof c[p-1]&&(d=c[--p]);for(;++lr;r++)if(void 0!==(o=d.get(e,t[r])))return o;return n},d.get=function(t,r,i){if(n(r)&&(r=[r]),e(r))return t;if(e(t))return i;if(o(r))return d.get(t,r.split("."),i);var a=s(r[0]);return 1===r.length?void 0===t[a]?i:t[a]:d.get(t[a],r.slice(1),i)},d.del=function(e,t){return c(e,t)},d})},function(e,t,n){"use strict";function o(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var i=n(7),a=n(25),s=n(5),u=n(183),c=n(14),l=s.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||o()),p=32,d=String.fromCharCode(p),f=i.topLevelTypes,h={beforeInput:{phasedRegistrationNames:{bubbled:c({onBeforeInput:null}),captured:c({onBeforeInputCapture:null})},dependencies:[f.topCompositionEnd,f.topKeyPress,f.topTextInput,f.topPaste]}},m=null,v=!1,y={eventTypes:h,extractEvents:function(e,t,n,o){var i;if(l)switch(e){case f.topKeyPress:var s=o.which;if(s!==p)return;v=!0,i=d;break;case f.topTextInput:if(i=o.data,i===d&&v)return;break;default:return}else{switch(e){case f.topPaste:m=null;break;case f.topKeyPress:o.which&&!r(o)&&(m=String.fromCharCode(o.which));break;case f.topCompositionEnd:m=o.data}if(null===m)return;i=m}if(i){var c=u.getPooled(h.beforeInput,n,o);return c.data=i,m=null,a.accumulateTwoPhaseDispatches(c),c}}};e.exports=y},function(e,t,n){"use strict";function o(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=D.getPooled(M.change,R,e);N.accumulateTwoPhaseDispatches(t),b.batchedUpdates(i,t)}function i(e){E.enqueueEvents(e),E.processEventQueue()}function a(e,t){T=e,R=t,T.attachEvent("onchange",r)}function s(){T&&(T.detachEvent("onchange",r),T=null,R=null)}function u(e,t,n){return e===O.topChange?n:void 0}function c(e,t,n){e===O.topFocus?(s(),a(t,n)):e===O.topBlur&&s()}function l(e,t){T=e,R=t,I=e.value,S=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",d)}function p(){T&&(delete T.value,T.detachEvent("onpropertychange",d),T=null,R=null,I=null,S=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==I&&(I=t,r(e))}}function f(e,t,n){return e===O.topInput?n:void 0}function h(e,t,n){e===O.topFocus?(p(),l(t,n)):e===O.topBlur&&p()}function m(e){return e!==O.topSelectionChange&&e!==O.topKeyUp&&e!==O.topKeyDown||!T||T.value===I?void 0:(I=T.value,R)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function y(e,t,n){return e===O.topClick?n:void 0}var g=n(7),E=n(36),N=n(25),_=n(5),b=n(12),D=n(21),C=n(65),w=n(102),x=n(14),O=g.topLevelTypes,M={change:{phasedRegistrationNames:{bubbled:x({onChange:null}),captured:x({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},T=null,R=null,I=null,S=null,P=!1;_.canUseDOM&&(P=C("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;_.canUseDOM&&(A=C("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return S.get.call(this)},set:function(e){I=""+e,S.set.call(this,e)}},V={eventTypes:M,extractEvents:function(e,t,n,r){var i,a;if(o(t)?P?i=u:a=c:w(t)?A?i=f:(i=m,a=h):v(t)&&(i=y),i){var s=i(e,t,n);if(s){var l=D.getPooled(M.change,s,r);return N.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,n)}};e.exports=V},function(e){"use strict";var t=0,n={createReactRootIndex:function(){return t++}};e.exports=n},function(e,t,n){"use strict";function o(e){switch(e){case g.topCompositionStart:return N.compositionStart;case g.topCompositionEnd:return N.compositionEnd;case g.topCompositionUpdate:return N.compositionUpdate}}function r(e,t){return e===g.topKeyDown&&t.keyCode===m}function i(e,t){switch(e){case g.topKeyUp:return-1!==h.indexOf(t.keyCode);case g.topKeyDown:return t.keyCode!==m;case g.topKeyPress:case g.topMouseDown:case g.topBlur:return!0;default:return!1}}function a(e){this.root=e,this.startSelection=l.getSelection(e),this.startValue=this.getText()}var s=n(7),u=n(25),c=n(5),l=n(56),p=n(180),d=n(64),f=n(14),h=[9,13,27,32],m=229,v=c.canUseDOM&&"CompositionEvent"in window,y=!v||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,g=s.topLevelTypes,E=null,N={compositionEnd:{phasedRegistrationNames:{bubbled:f({onCompositionEnd:null}),captured:f({onCompositionEndCapture:null})},dependencies:[g.topBlur,g.topCompositionEnd,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:f({onCompositionStart:null}),captured:f({onCompositionStartCapture:null})},dependencies:[g.topBlur,g.topCompositionStart,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:f({onCompositionUpdate:null}),captured:f({onCompositionUpdateCapture:null})},dependencies:[g.topBlur,g.topCompositionUpdate,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]}};a.prototype.getText=function(){return this.root.value||this.root[d()]},a.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var _={eventTypes:N,extractEvents:function(e,t,n,s){var c,l;if(v?c=o(e):E?i(e,s)&&(c=N.compositionEnd):r(e,s)&&(c=N.compositionStart),y&&(E||c!==N.compositionStart?c===N.compositionEnd&&E&&(l=E.getData(),E=null):E=new a(t)),c){var d=p.getPooled(c,n,s);return l&&(d.data=l),u.accumulateTwoPhaseDispatches(d),d}}};e.exports=_},function(e,t,n){(function(t){"use strict";function o(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,i=n(145),a=n(86),s=n(64),u=n(2),c=s();r="textContent"===c?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var l={dangerouslyReplaceNodeWithMarkup:i.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,n){for(var s,c=null,l=null,p=0;s=e[p];p++)if(s.type===a.MOVE_EXISTING||s.type===a.REMOVE_NODE){var d=s.fromIndex,f=s.parentNode.childNodes[d],h=s.parentID;"production"!==t.env.NODE_ENV?u(f,"processUpdates(): Unable to find child %s of element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",d,h):u(f),c=c||{},c[h]=c[h]||[],c[h][d]=f,l=l||[],l.push(f)}var m=i.dangerouslyRenderMarkup(n);if(l)for(var v=0;v]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){"production"!==t.env.NODE_ENV?u(r.canUseDOM,"dangerouslyRenderMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use React.renderToString for server rendering."):u(r.canUseDOM);for(var n,p={},d=0;d node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See renderComponentToString()."):u("html"!==e.tagName.toLowerCase());var o=i(n,a)[0];e.parentNode.replaceChild(o,e)}};e.exports=p}).call(t,n(1))},function(e,t,n){"use strict";var o=n(14),r=[o({ResponderEventPlugin:null}),o({SimpleEventPlugin:null}),o({TapEventPlugin:null}),o({EnterLeaveEventPlugin:null}),o({ChangeEventPlugin:null}),o({SelectEventPlugin:null}),o({CompositionEventPlugin:null}),o({BeforeInputEventPlugin:null}),o({AnalyticsEventPlugin:null}),o({MobileSafariClickEventPlugin:null})];e.exports=r},function(e,t,n){"use strict";var o=n(7),r=n(25),i=n(43),a=n(9),s=n(14),u=o.topLevelTypes,c=a.getFirstReactDOM,l={mouseEnter:{registrationName:s({onMouseEnter:null}),dependencies:[u.topMouseOut,u.topMouseOver]},mouseLeave:{registrationName:s({onMouseLeave:null}),dependencies:[u.topMouseOut,u.topMouseOver]}},p=[null,null],d={eventTypes:l,extractEvents:function(e,t,n,o){if(e===u.topMouseOver&&(o.relatedTarget||o.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var s;if(t.window===t)s=t;else{var d=t.ownerDocument;s=d?d.defaultView||d.parentWindow:window}var f,h;if(e===u.topMouseOut?(f=t,h=c(o.relatedTarget||o.toElement)||s):(f=s,h=t),f===h)return null;var m=f?a.getID(f):"",v=h?a.getID(h):"",y=i.getPooled(l.mouseLeave,m,o);y.type="mouseleave",y.target=f,y.relatedTarget=h;var g=i.getPooled(l.mouseEnter,v,o);return g.type="mouseenter",g.target=h,g.relatedTarget=f,r.accumulateEnterLeaveDispatches(y,g,m,v),p[0]=y,p[1]=g,p}};e.exports=d},function(e,t,n){(function(t){var o=n(13),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,n,r){return e.addEventListener?(e.addEventListener(n,r,!0),{remove:function(){e.removeEventListener(n,r,!0)}}):("production"!==t.env.NODE_ENV&&console.error("Attempted to listen to events during the capture phase on a browser that does not support the capture phase. Your application will not receive some events."),{remove:o})},registerDefault:function(){}};e.exports=r}).call(t,n(1))},function(e,t,n){"use strict";var o,r=n(19),i=n(5),a=r.injection.MUST_USE_ATTRIBUTE,s=r.injection.MUST_USE_PROPERTY,u=r.injection.HAS_BOOLEAN_VALUE,c=r.injection.HAS_SIDE_EFFECTS,l=r.injection.HAS_NUMERIC_VALUE,p=r.injection.HAS_POSITIVE_NUMERIC_VALUE,d=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(i.canUseDOM){var f=document.implementation;o=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|u,allowTransparency:a,alt:null,async:u,autoComplete:null,autoPlay:u,cellPadding:null,cellSpacing:null,charSet:a,checked:s|u,classID:a,className:o?a:s,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:s|u,coords:null,crossOrigin:null,data:null,dateTime:a,defer:u,dir:null,disabled:a|u,download:d,draggable:null,encType:null,form:a,formNoValidate:u,frameBorder:a,height:a,hidden:a|u,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,label:null,lang:null,list:a,loop:s|u,manifest:a,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,multiple:s|u,muted:s|u,name:null,noValidate:u,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scrolling:null,seamless:a|u,selected:s|u,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:s,srcSet:a,start:l,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|c,width:a,wmode:a,autoCapitalize:null,autoCorrect:null,itemProp:a,itemScope:a|u,itemType:a,property:null},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};e.exports=h},function(e,t,n){"use strict";var o=n(7),r=n(13),i=o.topLevelTypes,a={eventTypes:null,extractEvents:function(e,t,n,o){if(e===i.topTouchStart){var a=o.target;a&&!a.onclick&&(a.onclick=r)}}};e.exports=a},function(e,t,n){(function(t){"use strict";var o=n(24),r=n(52),i=n(152),a=n(27),s=n(8),u=n(54),c=n(20),l=n(4),p=n(55),d=n(16),f=n(83),h=n(164),m=n(28),v=n(37),y=n(9),g=n(85),E=n(11),N=n(91),_=n(173),b=n(94),D=n(3),C=n(58),w=n(203);h.inject();var x=l.createElement,O=l.createFactory;"production"!==t.env.NODE_ENV&&(x=p.createElement,O=p.createFactory),x=v.wrapCreateElement(x),O=v.wrapCreateFactory(O);var M=E.measure("React","render",y.render),T={Children:{map:i.map,forEach:i.forEach,count:i.count,only:w},DOM:d,PropTypes:N,initializeTouchEvents:function(e){r.useTouchEvents=e},createClass:s.createClass,createElement:x,createFactory:O,constructAndRenderComponent:y.constructAndRenderComponent,constructAndRenderComponentByID:y.constructAndRenderComponentByID,render:M,renderToString:_.renderToString,renderToStaticMarkup:_.renderToStaticMarkup,unmountComponentAtNode:y.unmountComponentAtNode,isValidClass:v.isValidClass,isValidElement:l.isValidElement,withContext:u.withContext,__spread:D,renderComponent:C("React","renderComponent","render",this,M),renderComponentToString:C("React","renderComponentToString","renderToString",this,_.renderToString),renderComponentToStaticMarkup:C("React","renderComponentToStaticMarkup","renderToStaticMarkup",this,_.renderToStaticMarkup),isValidComponent:C("React","isValidComponent","isValidElement",this,l.isValidElement)};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({Component:a,CurrentOwner:c,DOMComponent:f,DOMPropertyOperations:o,InstanceHandles:m,Mount:y,MultiChild:g,TextComponent:b}),"production"!==t.env.NODE_ENV){var R=n(5);if(R.canUseDOM&&window.top===window.self){navigator.userAgent.indexOf("Chrome")>-1&&"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&console.debug("Download the React DevTools for a better development experience: http://fb.me/react-devtools");for(var I=[Array.isArray,Array.prototype.every,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.map,Date.now,Function.prototype.bind,Object.keys,String.prototype.split,String.prototype.trim,Object.create,Object.freeze],S=0;S1&&e.length%2!==0)throw new Error("bindActions must take an even number of arguments.");var t=function(e,t){if(!t)throw new Error("The handler for action type "+e+" is falsy");this.__actions__[e]=t}.bind(this);if(1===e.length&&s(e[0])){e=e[0];for(var n in e)e.hasOwnProperty(n)&&t(n,e[n])}else for(var o=0;o=l&&a(t?e[t]:m)))}var y=e[0],g=-1,E=y?y.length:0,N=[];e:for(;++g2?r(e,17,i(arguments,2),null,t):r(e,1,null,null,t)}var r=n(126),i=n(33);e.exports=o},function(e,t,n){function o(e){function t(){if(o){var e=s(o);c.apply(e,arguments)}if(this instanceof t){var a=r(n.prototype),l=n.apply(a,e||arguments);return i(l)?l:a}return n.apply(u,e||arguments)}var n=e[0],o=e[2],u=e[4];return a(t,e),t}var r=n(70),i=n(18),a=n(50),s=n(33),u=[],c=u.push;e.exports=o},function(e,t,n){function o(e,t,n,f,h){if(n){var y=n(e);if("undefined"!=typeof y)return y}var E=c(e);if(!E)return e;var D=C.call(e);if(!b[D])return e;var O=x[D];switch(D){case m:case v:return new O(+e);case g:case _:return new O(e);case N:return y=O(e.source,d.exec(e)),y.lastIndex=e.lastIndex,y}var M=u(e);if(t){var T=!f;f||(f=s()),h||(h=s());for(var R=f.length;R--;)if(f[R]==e)return h[R];y=M?O(e.length):{}}else y=M?p(e):r({},e);return M&&(w.call(e,"index")&&(y.index=e.index),w.call(e,"input")&&(y.input=e.input)),t?(f.push(e),h.push(y),(M?i:a)(e,function(e,r){y[r]=o(e,t,n,f,h)}),T&&(l(f),l(h)),y):y}var r=n(129),i=n(30),a=n(17),s=n(39),u=n(77),c=n(18),l=n(40),p=n(33),d=/\w*$/,f="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",y="[object Function]",g="[object Number]",E="[object Object]",N="[object RegExp]",_="[object String]",b={};b[y]=!1,b[f]=b[h]=b[m]=b[v]=b[g]=b[E]=b[N]=b[_]=!0;var D=Object.prototype,C=D.toString,w=D.hasOwnProperty,x={};x[h]=Array,x[m]=Boolean,x[v]=Date,x[y]=Function,x[E]=Object,x[g]=Number,x[N]=RegExp,x[_]=String,e.exports=o},function(e,t,n){function o(e){function t(){var e=h?d:this;if(l){var a=s(l);c.apply(a,arguments)}if((p||v)&&(a||(a=s(arguments)),p&&c.apply(a,p),v&&a.length-1:void 0});return N.pop(),_.pop(),S&&(u(N),u(_)),b}var r=n(132),i=n(39),a=n(34),s=n(23),u=n(40),c="[object Arguments]",l="[object Array]",p="[object Boolean]",d="[object Date]",f="[object Number]",h="[object Object]",m="[object RegExp]",v="[object String]",y=Object.prototype,g=y.toString,E=y.hasOwnProperty;e.exports=o},function(e,t,n){function o(e,t,n){var o=-1,p=r,d=e?e.length:0,f=[],h=!t&&d>=u,m=n||h?s():f;if(h){var v=a(m);p=i,m=v}for(;++o3&&"function"==typeof c[p-2])var d=o(c[--p-1],c[p--],2);else p>2&&"function"==typeof c[p-1]&&(d=c[--p]);for(;++lr;r++)if(void 0!==(o=d.get(e,t[r])))return o;return n},d.get=function(t,r,i){if(n(r)&&(r=[r]),e(r))return t;if(e(t))return i;if(o(r))return d.get(t,r.split("."),i);var a=s(r[0]);return 1===r.length?void 0===t[a]?i:t[a]:d.get(t[a],r.slice(1),i)},d.del=function(e,t){return c(e,t)},d})},function(e,t,n){"use strict";function o(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function r(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}var i=n(7),a=n(25),s=n(5),u=n(183),c=n(14),l=s.canUseDOM&&"TextEvent"in window&&!("documentMode"in document||o()),p=32,d=String.fromCharCode(p),f=i.topLevelTypes,h={beforeInput:{phasedRegistrationNames:{bubbled:c({onBeforeInput:null}),captured:c({onBeforeInputCapture:null})},dependencies:[f.topCompositionEnd,f.topKeyPress,f.topTextInput,f.topPaste]}},m=null,v=!1,y={eventTypes:h,extractEvents:function(e,t,n,o){var i;if(l)switch(e){case f.topKeyPress:var s=o.which;if(s!==p)return;v=!0,i=d;break;case f.topTextInput:if(i=o.data,i===d&&v)return;break;default:return}else{switch(e){case f.topPaste:m=null;break;case f.topKeyPress:o.which&&!r(o)&&(m=String.fromCharCode(o.which));break;case f.topCompositionEnd:m=o.data}if(null===m)return;i=m}if(i){var c=u.getPooled(h.beforeInput,n,o);return c.data=i,m=null,a.accumulateTwoPhaseDispatches(c),c}}};e.exports=y},function(e,t,n){"use strict";function o(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=D.getPooled(M.change,R,e);N.accumulateTwoPhaseDispatches(t),b.batchedUpdates(i,t)}function i(e){E.enqueueEvents(e),E.processEventQueue()}function a(e,t){T=e,R=t,T.attachEvent("onchange",r)}function s(){T&&(T.detachEvent("onchange",r),T=null,R=null)}function u(e,t,n){return e===O.topChange?n:void 0}function c(e,t,n){e===O.topFocus?(s(),a(t,n)):e===O.topBlur&&s()}function l(e,t){T=e,R=t,I=e.value,S=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",k),T.attachEvent("onpropertychange",d)}function p(){T&&(delete T.value,T.detachEvent("onpropertychange",d),T=null,R=null,I=null,S=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==I&&(I=t,r(e))}}function f(e,t,n){return e===O.topInput?n:void 0}function h(e,t,n){e===O.topFocus?(p(),l(t,n)):e===O.topBlur&&p()}function m(e){return e!==O.topSelectionChange&&e!==O.topKeyUp&&e!==O.topKeyDown||!T||T.value===I?void 0:(I=T.value,R)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function y(e,t,n){return e===O.topClick?n:void 0}var g=n(7),E=n(36),N=n(25),_=n(5),b=n(12),D=n(21),C=n(65),w=n(102),x=n(14),O=g.topLevelTypes,M={change:{phasedRegistrationNames:{bubbled:x({onChange:null}),captured:x({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},T=null,R=null,I=null,S=null,P=!1;_.canUseDOM&&(P=C("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;_.canUseDOM&&(A=C("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return S.get.call(this)},set:function(e){I=""+e,S.set.call(this,e)}},V={eventTypes:M,extractEvents:function(e,t,n,r){var i,a;if(o(t)?P?i=u:a=c:w(t)?A?i=f:(i=m,a=h):v(t)&&(i=y),i){var s=i(e,t,n);if(s){var l=D.getPooled(M.change,s,r);return N.accumulateTwoPhaseDispatches(l),l}}a&&a(e,t,n)}};e.exports=V},function(e){"use strict";var t=0,n={createReactRootIndex:function(){return t++}};e.exports=n},function(e,t,n){"use strict";function o(e){switch(e){case g.topCompositionStart:return N.compositionStart;case g.topCompositionEnd:return N.compositionEnd;case g.topCompositionUpdate:return N.compositionUpdate}}function r(e,t){return e===g.topKeyDown&&t.keyCode===m}function i(e,t){switch(e){case g.topKeyUp:return-1!==h.indexOf(t.keyCode);case g.topKeyDown:return t.keyCode!==m;case g.topKeyPress:case g.topMouseDown:case g.topBlur:return!0;default:return!1}}function a(e){this.root=e,this.startSelection=l.getSelection(e),this.startValue=this.getText()}var s=n(7),u=n(25),c=n(5),l=n(56),p=n(180),d=n(64),f=n(14),h=[9,13,27,32],m=229,v=c.canUseDOM&&"CompositionEvent"in window,y=!v||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,g=s.topLevelTypes,E=null,N={compositionEnd:{phasedRegistrationNames:{bubbled:f({onCompositionEnd:null}),captured:f({onCompositionEndCapture:null})},dependencies:[g.topBlur,g.topCompositionEnd,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:f({onCompositionStart:null}),captured:f({onCompositionStartCapture:null})},dependencies:[g.topBlur,g.topCompositionStart,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:f({onCompositionUpdate:null}),captured:f({onCompositionUpdateCapture:null})},dependencies:[g.topBlur,g.topCompositionUpdate,g.topKeyDown,g.topKeyPress,g.topKeyUp,g.topMouseDown]}};a.prototype.getText=function(){return this.root.value||this.root[d()]},a.prototype.getData=function(){var e=this.getText(),t=this.startSelection.start,n=this.startValue.length-this.startSelection.end;return e.substr(t,e.length-n-t)};var _={eventTypes:N,extractEvents:function(e,t,n,s){var c,l;if(v?c=o(e):E?i(e,s)&&(c=N.compositionEnd):r(e,s)&&(c=N.compositionStart),y&&(E||c!==N.compositionStart?c===N.compositionEnd&&E&&(l=E.getData(),E=null):E=new a(t)),c){var d=p.getPooled(c,n,s);return l&&(d.data=l),u.accumulateTwoPhaseDispatches(d),d}}};e.exports=_},function(e,t,n){(function(t){"use strict";function o(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,i=n(145),a=n(86),s=n(64),u=n(2),c=s();r="textContent"===c?function(e,t){e.textContent=t}:function(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);if(t){var n=e.ownerDocument||document;e.appendChild(n.createTextNode(t))}};var l={dangerouslyReplaceNodeWithMarkup:i.dangerouslyReplaceNodeWithMarkup,updateTextContent:r,processUpdates:function(e,n){for(var s,c=null,l=null,p=0;s=e[p];p++)if(s.type===a.MOVE_EXISTING||s.type===a.REMOVE_NODE){var d=s.fromIndex,f=s.parentNode.childNodes[d],h=s.parentID;"production"!==t.env.NODE_ENV?u(f,"processUpdates(): Unable to find child %s of element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a when using tables, nesting tags like
,

, or , or using non-SVG elements in an parent. Try inspecting the child nodes of the element with React ID `%s`.",d,h):u(f),c=c||{},c[h]=c[h]||[],c[h][d]=f,l=l||[],l.push(f)}var m=i.dangerouslyRenderMarkup(n);if(l)for(var v=0;v]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){"production"!==t.env.NODE_ENV?u(r.canUseDOM,"dangerouslyRenderMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use React.renderToString for server rendering."):u(r.canUseDOM);for(var n,p={},d=0;d node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See renderComponentToString()."):u("html"!==e.tagName.toLowerCase());var o=i(n,a)[0];e.parentNode.replaceChild(o,e)}};e.exports=p}).call(t,n(1))},function(e,t,n){"use strict";var o=n(14),r=[o({ResponderEventPlugin:null}),o({SimpleEventPlugin:null}),o({TapEventPlugin:null}),o({EnterLeaveEventPlugin:null}),o({ChangeEventPlugin:null}),o({SelectEventPlugin:null}),o({CompositionEventPlugin:null}),o({BeforeInputEventPlugin:null}),o({AnalyticsEventPlugin:null}),o({MobileSafariClickEventPlugin:null})];e.exports=r},function(e,t,n){"use strict";var o=n(7),r=n(25),i=n(43),a=n(9),s=n(14),u=o.topLevelTypes,c=a.getFirstReactDOM,l={mouseEnter:{registrationName:s({onMouseEnter:null}),dependencies:[u.topMouseOut,u.topMouseOver]},mouseLeave:{registrationName:s({onMouseLeave:null}),dependencies:[u.topMouseOut,u.topMouseOver]}},p=[null,null],d={eventTypes:l,extractEvents:function(e,t,n,o){if(e===u.topMouseOver&&(o.relatedTarget||o.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var s;if(t.window===t)s=t;else{var d=t.ownerDocument;s=d?d.defaultView||d.parentWindow:window}var f,h;if(e===u.topMouseOut?(f=t,h=c(o.relatedTarget||o.toElement)||s):(f=s,h=t),f===h)return null;var m=f?a.getID(f):"",v=h?a.getID(h):"",y=i.getPooled(l.mouseLeave,m,o);y.type="mouseleave",y.target=f,y.relatedTarget=h;var g=i.getPooled(l.mouseEnter,v,o);return g.type="mouseenter",g.target=h,g.relatedTarget=f,r.accumulateEnterLeaveDispatches(y,g,m,v),p[0]=y,p[1]=g,p}};e.exports=d},function(e,t,n){(function(t){var o=n(13),r={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,n,r){return e.addEventListener?(e.addEventListener(n,r,!0),{remove:function(){e.removeEventListener(n,r,!0)}}):("production"!==t.env.NODE_ENV&&console.error("Attempted to listen to events during the capture phase on a browser that does not support the capture phase. Your application will not receive some events."),{remove:o})},registerDefault:function(){}};e.exports=r}).call(t,n(1))},function(e,t,n){"use strict";var o,r=n(19),i=n(5),a=r.injection.MUST_USE_ATTRIBUTE,s=r.injection.MUST_USE_PROPERTY,u=r.injection.HAS_BOOLEAN_VALUE,c=r.injection.HAS_SIDE_EFFECTS,l=r.injection.HAS_NUMERIC_VALUE,p=r.injection.HAS_POSITIVE_NUMERIC_VALUE,d=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(i.canUseDOM){var f=document.implementation;o=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|u,allowTransparency:a,alt:null,async:u,autoComplete:null,autoPlay:u,cellPadding:null,cellSpacing:null,charSet:a,checked:s|u,classID:a,className:o?a:s,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:s|u,coords:null,crossOrigin:null,data:null,dateTime:a,defer:u,dir:null,disabled:a|u,download:d,draggable:null,encType:null,form:a,formNoValidate:u,frameBorder:a,height:a,hidden:a|u,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,label:null,lang:null,list:a,loop:s|u,manifest:a,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,multiple:s|u,muted:s|u,name:null,noValidate:u,open:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scrolling:null,seamless:a|u,selected:s|u,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:s,srcSet:a,start:l,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|c,width:a,wmode:a,autoCapitalize:null,autoCorrect:null,itemProp:a,itemScope:a|u,itemType:a,property:null},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"enctype",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};e.exports=h},function(e,t,n){"use strict";var o=n(7),r=n(13),i=o.topLevelTypes,a={eventTypes:null,extractEvents:function(e,t,n,o){if(e===i.topTouchStart){var a=o.target;a&&!a.onclick&&(a.onclick=r)}}};e.exports=a},function(e,t,n){(function(t){"use strict";var o=n(24),r=n(52),i=n(152),a=n(27),s=n(8),u=n(54),c=n(20),l=n(4),p=n(55),d=n(16),f=n(83),h=n(164),m=n(28),v=n(37),y=n(9),g=n(85),E=n(11),N=n(91),_=n(173),b=n(94),D=n(3),C=n(58),w=n(203);h.inject();var x=l.createElement,O=l.createFactory;"production"!==t.env.NODE_ENV&&(x=p.createElement,O=p.createFactory),x=v.wrapCreateElement(x),O=v.wrapCreateFactory(O);var M=E.measure("React","render",y.render),T={Children:{map:i.map,forEach:i.forEach,count:i.count,only:w},DOM:d,PropTypes:N,initializeTouchEvents:function(e){r.useTouchEvents=e},createClass:s.createClass,createElement:x,createFactory:O,constructAndRenderComponent:y.constructAndRenderComponent,constructAndRenderComponentByID:y.constructAndRenderComponentByID,render:M,renderToString:_.renderToString,renderToStaticMarkup:_.renderToStaticMarkup,unmountComponentAtNode:y.unmountComponentAtNode,isValidClass:v.isValidClass,isValidElement:l.isValidElement,withContext:u.withContext,__spread:D,renderComponent:C("React","renderComponent","render",this,M),renderComponentToString:C("React","renderComponentToString","renderToString",this,_.renderToString),renderComponentToStaticMarkup:C("React","renderComponentToStaticMarkup","renderToStaticMarkup",this,_.renderToStaticMarkup),isValidComponent:C("React","isValidComponent","isValidElement",this,l.isValidElement)};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({Component:a,CurrentOwner:c,DOMComponent:f,DOMPropertyOperations:o,InstanceHandles:m,Mount:y,MultiChild:g,TextComponent:b}),"production"!==t.env.NODE_ENV){var R=n(5);if(R.canUseDOM&&window.top===window.self){navigator.userAgent.indexOf("Chrome")>-1&&"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&console.debug("Download the React DevTools for a better development experience: http://fb.me/react-devtools");for(var I=[Array.isArray,Array.prototype.every,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.map,Date.now,Function.prototype.bind,Object.keys,String.prototype.split,String.prototype.trim,Object.create,Object.freeze],S=0;Sl;l++){var m=c[l];if(m!==s&&m.form===s.form){var y=p.getID(m);"production"!==t.env.NODE_ENV?h(y,"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."):h(y);var g=v[y];"production"!==t.env.NODE_ENV?h(g,"ReactDOMInput: Unknown radio button ID %s.",y):h(g),d.asap(o,g)}}}return n}});e.exports=y}).call(t,n(1))},function(e,t,n){(function(t){"use strict";var o=n(10),r=n(8),i=n(4),a=n(16),s=n(6),u=i.createFactory(a.option.type),c=r.createClass({displayName:"ReactDOMOption",mixins:[o],componentWillMount:function(){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(null==this.props.selected,"Use the `defaultValue` or `value` props on , and ) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.",this.constructor.displayName):a(!1)},render:function(){return n(this.props)}});return o}var r=n(8),i=n(4),a=n(2);e.exports=o}).call(t,n(1))},function(e,t,n){(function(t){function o(e){var t=e.match(l);return t&&t[1].toLowerCase()}function r(e,n){var r=c;"production"!==t.env.NODE_ENV?u(!!c,"createNodesFromMarkup dummy not initialized"):u(!!c);var i=o(e),l=i&&s(i);if(l){r.innerHTML=l[1]+e+l[2];for(var p=l[0];p--;)r=r.lastChild}else r.innerHTML=e;var d=r.getElementsByTagName("script");d.length&&("production"!==t.env.NODE_ENV?u(n,"createNodesFromMarkup(...): Unexpected