From 79a273de567306970297af508e595b8ea56275e3 Mon Sep 17 00:00:00 2001 From: Brandon Tilley Date: Mon, 13 Oct 2014 12:16:13 -0500 Subject: [PATCH] v1.5.0 --- bower.json | 2 +- build/fluxxor.js | 894 +++++++++--------- build/fluxxor.js.map | 2 +- build/fluxxor.min.js | 2 +- build/fluxxor.min.js.map | 2 +- examples/async/app/bundle.js | 2 +- examples/async/app/bundle.js.map | 2 +- examples/carousel/app/bundle.js | 2 +- examples/carousel/app/bundle.js.map | 2 +- examples/todo-basic/app/bundle.js | 2 +- examples/todo-basic/app/bundle.js.map | 2 +- package.json | 2 +- .../examples/carousel/carousel-bundle.js | 2 +- site/contents/guides/async-bundle.js | 2 +- site/contents/guides/todo-bundle.js | 2 +- version.js | 2 +- 16 files changed, 462 insertions(+), 462 deletions(-) diff --git a/bower.json b/bower.json index b2e3a96..4ae2283 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "fluxxor", - "version": "1.4.2", + "version": "1.5.0", "main": "build/fluxxor.min.js", "description": "Flux architecture tools for React", "homepage": "", diff --git a/build/fluxxor.js b/build/fluxxor.js index b88716c..4bbce8f 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.4.2" + module.exports = "1.5.0" /***/ }, /* 2 */ @@ -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__(28), - baseCreateCallback = __webpack_require__(29); + var baseClone = __webpack_require__(29), + baseCreateCallback = __webpack_require__(30); /** * 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__(41), + var createCallback = __webpack_require__(28), 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__(29), + var baseCreateCallback = __webpack_require__(30), keys = __webpack_require__(15), - objectTypes = __webpack_require__(30); + objectTypes = __webpack_require__(31); /** * 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__(31), + var isNative = __webpack_require__(32), isObject = __webpack_require__(25), - shimKeys = __webpack_require__(32); + shimKeys = __webpack_require__(33); /* 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__(41), + var createCallback = __webpack_require__(28), 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__(33), - cacheIndexOf = __webpack_require__(34), - createCache = __webpack_require__(35), - getArray = __webpack_require__(36), + var baseIndexOf = __webpack_require__(34), + cacheIndexOf = __webpack_require__(35), + createCache = __webpack_require__(36), + getArray = __webpack_require__(37), isArguments = __webpack_require__(26), isArray = __webpack_require__(27), - largeArraySize = __webpack_require__(37), - releaseArray = __webpack_require__(38), - releaseObject = __webpack_require__(39); + largeArraySize = __webpack_require__(38), + releaseArray = __webpack_require__(39), + releaseObject = __webpack_require__(40); /** * 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__(40), - createCallback = __webpack_require__(41); + var baseUniq = __webpack_require__(41), + createCallback = __webpack_require__(28); /** * 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__(41), + var createCallback = __webpack_require__(28), 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__(29), + var baseCreateCallback = __webpack_require__(30), 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__(41), + var createCallback = __webpack_require__(28), 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__(30); + var objectTypes = __webpack_require__(31); /** * 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__(31); + var isNative = __webpack_require__(32); /** `Object#toString` result shortcuts */ var arrayClass = '[object Array]'; @@ -2029,14 +2029,101 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var assign = __webpack_require__(42), + 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), forEach = __webpack_require__(22), forOwn = __webpack_require__(14), - getArray = __webpack_require__(36), + getArray = __webpack_require__(37), isArray = __webpack_require__(27), isObject = __webpack_require__(25), - releaseArray = __webpack_require__(38), - slice = __webpack_require__(43); + releaseArray = __webpack_require__(39), + slice = __webpack_require__(44); /** Used to match regexp flags from their coerced string values */ var reFlags = /\w*$/; @@ -2176,7 +2263,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 29 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2187,10 +2274,10 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var bind = __webpack_require__(44), - identity = __webpack_require__(54), - setBindData = __webpack_require__(45), - support = __webpack_require__(46); + var bind = __webpack_require__(45), + identity = __webpack_require__(55), + setBindData = __webpack_require__(46), + support = __webpack_require__(47); /** Used to detected named functions */ var reFuncName = /^\s*function[ \n\r\t]+\w/; @@ -2262,7 +2349,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 30 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2288,7 +2375,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 31 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2328,7 +2415,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 32 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2339,7 +2426,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var objectTypes = __webpack_require__(30); + var objectTypes = __webpack_require__(31); /** Used for native method references */ var objectProto = Object.prototype; @@ -2372,7 +2459,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 33 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2410,7 +2497,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 34 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2421,8 +2508,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseIndexOf = __webpack_require__(33), - keyPrefix = __webpack_require__(47); + var baseIndexOf = __webpack_require__(34), + keyPrefix = __webpack_require__(48); /** * An implementation of `_.contains` for cache objects that mimics the return @@ -2455,7 +2542,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 35 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2466,9 +2553,9 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var cachePush = __webpack_require__(48), - getObject = __webpack_require__(49), - releaseObject = __webpack_require__(39); + var cachePush = __webpack_require__(49), + getObject = __webpack_require__(50), + releaseObject = __webpack_require__(40); /** * Creates a cache object to optimize linear searches of large arrays. @@ -2506,7 +2593,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 36 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2517,7 +2604,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var arrayPool = __webpack_require__(50); + var arrayPool = __webpack_require__(51); /** * Gets an array from the array pool or creates a new one if the pool is empty. @@ -2533,7 +2620,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 37 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2552,7 +2639,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 38 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2563,8 +2650,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var arrayPool = __webpack_require__(50), - maxPoolSize = __webpack_require__(51); + var arrayPool = __webpack_require__(51), + maxPoolSize = __webpack_require__(52); /** * Releases the given array back to the array pool. @@ -2583,7 +2670,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 39 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2594,8 +2681,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var maxPoolSize = __webpack_require__(51), - objectPool = __webpack_require__(52); + var maxPoolSize = __webpack_require__(52), + objectPool = __webpack_require__(53); /** * Releases the given object back to the object pool. @@ -2618,7 +2705,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 40 */ +/* 41 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2629,13 +2716,13 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - 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); + 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); /** * The base implementation of `_.uniq` without support for callback shorthands @@ -2688,7 +2775,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 41 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2699,96 +2786,224 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var baseCreateCallback = __webpack_require__(29), - baseIsEqual = __webpack_require__(53), - isObject = __webpack_require__(25), - keys = __webpack_require__(15), - property = __webpack_require__(55); + 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; /** - * 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]; - * }; - * }); + * The base implementation of `_.isEqual`, without support for `thisArg` binding, + * that allows partial "_.where" style comparisons. * - * _.filter(characters, 'age__gt38'); - * // => [{ '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 createCallback(func, thisArg, argCount) { - var type = typeof func; - if (func == null || type == 'function') { - return baseCreateCallback(func, thisArg, argCount); + 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; + } } - // handle "_.pluck" style callback shorthands - if (type != 'object') { - return property(func); + // exit early for identical values + if (a === b) { + // treat `+0` vs. `-0` as not equal + return a !== 0 || (1 / a == 1 / b); } - var props = keys(func), - key = props[0], - a = func[key]; + var type = typeof a, + otherType = typeof b; - // 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)); - }; + // exit early for unlike primitive values + if (a === a && + !(a && objectTypes[type]) && + !(b && objectTypes[otherType])) { + return false; } - return function(object) { - var length = props.length, - result = 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); - while (length--) { - if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) { - break; - } - } - return result; - }; - } + 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; - module.exports = createCallback; - - -/***/ }, -/* 42 */ -/***/ 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), - keys = __webpack_require__(15), - objectTypes = __webpack_require__(30); + 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 = baseIsEqual; + + +/***/ }, +/* 43 */ +/***/ 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__(30), + keys = __webpack_require__(15), + objectTypes = __webpack_require__(31); /** * Assigns own enumerable properties of source object(s) to the destination @@ -2851,7 +3066,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 43 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2895,7 +3110,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 44 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2906,8 +3121,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var createWrapper = __webpack_require__(56), - slice = __webpack_require__(43); + var createWrapper = __webpack_require__(57), + slice = __webpack_require__(44); /** * Creates a function that, when called, invokes `func` with the `this` @@ -2941,7 +3156,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 45 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { /** @@ -2952,8 +3167,8 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(31), - noop = __webpack_require__(57); + var isNative = __webpack_require__(32), + noop = __webpack_require__(58); /** Used as the property descriptor for `__bindData__` */ var descriptor = { @@ -2990,7 +3205,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 46 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** @@ -3001,7 +3216,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var isNative = __webpack_require__(31); + var isNative = __webpack_require__(32); /** Used to detect functions containing a `this` reference */ var reThis = /\bthis\b/; @@ -3037,7 +3252,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 47 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3056,7 +3271,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 48 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3067,7 +3282,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var keyPrefix = __webpack_require__(47); + var keyPrefix = __webpack_require__(48); /** * Adds a given value to the corresponding cache object. @@ -3100,7 +3315,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 49 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3111,7 +3326,7 @@ return /******/ (function(modules) { // webpackBootstrap * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Available under MIT license */ - var objectPool = __webpack_require__(52); + var objectPool = __webpack_require__(53); /** * Gets an object from the object pool or creates a new one if the pool is empty. @@ -3141,7 +3356,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 50 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3160,7 +3375,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 51 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3179,7 +3394,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 52 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3198,7 +3413,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 53 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3209,211 +3424,42 @@ 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; /** - * The base implementation of `_.isEqual`, without support for `thisArg` binding, - * that allows partial "_.where" style comparisons. + * Creates a "_.pluck" style function, which returns the `key` value of a + * given object. * - * @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 {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'] + * + * _.sortBy(characters, getName); + * // => [{ 'name': 'barney', 'age': 36 }, { '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; - } - // 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; + function property(key) { + return function(object) { + return object[key]; + }; } - module.exports = baseIsEqual; + module.exports = property; /***/ }, -/* 54 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3447,7 +3493,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 55 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3458,42 +3504,56 @@ 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); /** - * Creates a "_.pluck" style function, which returns the `key` value of a - * given object. + * 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 _ - * @category Utilities - * @param {string} key The name of the property to retrieve. - * @returns {Function} Returns the new function. + * @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 * - * var characters = [ - * { 'name': 'fred', 'age': 40 }, - * { 'name': 'barney', 'age': 36 } - * ]; - * - * var getName = _.property('name'); + * function Shape() { + * this.x = 0; + * this.y = 0; + * } * - * _.map(characters, getName); - * // => ['barney', 'fred'] + * Shape.prototype.move = function(x, y) { + * this.x += x; + * this.y += y; + * }; * - * _.sortBy(characters, getName); - * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] + * _.forIn(new Shape, function(value, key) { + * console.log(key); + * }); + * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments) */ - function property(key) { - return function(object) { - return object[key]; - }; - } + 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 = property; + module.exports = forIn; /***/ }, -/* 56 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3507,7 +3567,7 @@ return /******/ (function(modules) { // webpackBootstrap var baseBind = __webpack_require__(59), baseCreateWrapper = __webpack_require__(60), isFunction = __webpack_require__(17), - slice = __webpack_require__(43); + slice = __webpack_require__(44); /** * Used for `Array` method references. @@ -3605,7 +3665,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 57 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { /** @@ -3636,66 +3696,6 @@ 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__(45), - slice = __webpack_require__(43); + setBindData = __webpack_require__(46), + slice = __webpack_require__(44); /** * 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__(45), - slice = __webpack_require__(43); + setBindData = __webpack_require__(46), + slice = __webpack_require__(44); /** * 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__(31), + var isNative = __webpack_require__(32), isObject = __webpack_require__(25), - noop = __webpack_require__(57); + noop = __webpack_require__(58); /* 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 11b241a..496b9a8 100644 --- a/build/fluxxor.js.map +++ b/build/fluxxor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/universalModuleDefinition","webpack/bootstrap 725b579fcf88937a647f","./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.4.2\"","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 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 +{"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 diff --git a/build/fluxxor.min.js b/build/fluxxor.min.js index 56db6f2..66e9830 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.4.2"}])}); +!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"}])}); /* //@ 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 af8c6ab..41876b3 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 a74f29bd765c5b8d1bc1*","./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.4.2\"\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.4.2\""],"sourceRoot":"webpack-module://"} \ No newline at end of file +{"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 diff --git a/examples/async/app/bundle.js b/examples/async/app/bundle.js index fa815cf..ac0de48 100644 --- a/examples/async/app/bundle.js +++ b/examples/async/app/bundle.js @@ -17,7 +17,7 @@ e.isCustomAttribute&&a._isCustomAttributeFunctions.push(e.isCustomAttribute);for 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(3);i.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=o},function(e,t,n){"use strict";function o(e,t){if(a(e),null!=t){i(t);for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}}var r=n(200),i=r.checkMergeObjectArg,a=r.checkMergeIntoObjectArg;e.exports=o},function(e,t,n){(function(t){"use strict";function o(e){"production"!==t.env.NODE_ENV?r(e&&!/[^a-z0-9_]/.test(e),"You must provide an eventName using only the characters [a-z0-9_]"):r(e&&!/[^a-z0-9_]/.test(e))}var r=n(2);e.exports=o}).call(t,n(1))},function(e){"use strict";function t(e,t){return e&&t&&e.type===t.type&&(e.props&&e.props.key)===(t.props&&t.props.key)&&e._owner===t._owner?!0:!1}e.exports=t},function(e,t,n){var o=n(128),r=n(133),i=n(17),a=n(112),s=n(36),u=n(114),c=n(31),l=n(116),p=n(129),d=n(113),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(33),i=n(18),a=(n(76),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(46),i=n(71);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,"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(55),a=n(57),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?m(null==e.children||null==e.dangerouslySetInnerHTML,"Can only set one of `children` or `props.dangerouslySetInnerHTML`."):m(null==e.children||null==e.dangerouslySetInnerHTML),"production"!==t.env.NODE_ENV?m(null==e.style||"object"==typeof e.style,"The `style` prop expects a mapping from style properties to values, not a string."):m(null==e.style||"object"==typeof e.style))}function r(e,t,n,o){var r=d.findReactContainerForID(e);if(r){var i=r.nodeType===x?r.ownerDocument:r;D(t,i)}o.getPutListenerQueue().enqueuePutListener(e,t,n)}function i(e,t){this._tagOpen="<"+e,this._tagClose=t?"":"",this.tagName=e.toUpperCase()}var a=n(78),s=n(19),u=n(24),c=n(6),l=n(27),p=n(26),d=n(10),f=n(84),h=n(12),v=n(56),m=n(2),g=n(16),y=n(5),E=n(11),N=p.deleteListener,D=p.listenTo,_=p.registrationNameModules,b={string:!0,number:!0},C=g({style:null}),x=1;i.Mixin={mountComponent:h.measure("ReactDOMComponent","mountComponent",function(e,t,n){return l.Mixin.mountComponent.call(this,e,t,n),o(this.props),this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t)+this._tagClose}),_createOpenTagMarkupAndPutListeners:function(e){var t=this.props,n=this._tagOpen;for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];if(null!=i)if(_.hasOwnProperty(o))r(this._rootNodeID,o,i,e);else{o===C&&(i&&(i=t.style=y(t.style)),i=a.createMarkupForStyles(i));var s=u.createMarkupForProperty(o,i);s&&(n+=" "+s)}}if(e.renderToStaticMarkup)return n+">";var c=u.createMarkupForID(this._rootNodeID);return n+" "+c+">"},_createContentMarkup:function(e){var t=this.props.dangerouslySetInnerHTML;if(null!=t){if(null!=t.__html)return t.__html}else{var n=b[typeof this.props.children]?this.props.children:null,o=null!=n?null:this.props.children;if(null!=n)return v(n);if(null!=o){var r=this.mountChildren(o,e);return r.join("")}}return""},receiveComponent:function(e,t){(e!==this._descriptor||null==e._owner)&&l.Mixin.receiveComponent.call(this,e,t)},updateComponent:h.measure("ReactDOMComponent","updateComponent",function(e,t){o(this._descriptor.props),l.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===C){var u=e[n];for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="")}else _.hasOwnProperty(n)?N(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.deletePropertyByID(this._rootNodeID,n);for(n in a){var c=a[n],p=e[n];if(a.hasOwnProperty(n)&&c!==p)if(n===C)if(c&&(c=a.style=y(c)),p){for(o in p)!p.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in c)c.hasOwnProperty(o)&&p[o]!==c[o]&&(i=i||{},i[o]=c[o])}else i=c;else _.hasOwnProperty(n)?r(this._rootNodeID,n,c,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&l.BackendIDOperations.updatePropertyByID(this._rootNodeID,n,c)}i&&l.BackendIDOperations.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t){var n=this.props,o=b[typeof e.children]?e.children:null,r=b[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,p=null!=r||null!=a;null!=s&&null==u?this.updateChildren(null,t):c&&!p&&this.updateTextContent(""),null!=r?o!==r&&this.updateTextContent(""+r):null!=a?i!==a&&l.BackendIDOperations.updateInnerHTMLByID(this._rootNodeID,a):null!=u&&this.updateChildren(u,t)},unmountComponent:function(){this.unmountChildren(),p.deleteAllListeners(this._rootNodeID),l.Mixin.unmountComponent.call(this)}},E(i,l.Mixin),E(i,i.Mixin),E(i,f.Mixin),E(i,c),e.exports=i}).call(t,n(1))},function(e,t,n){"use strict";function o(){var e=d.current;return e&&e.constructor.displayName||void 0}function r(e,t){e._store.validated||null!=e.props.key||(e._store.validated=!0,a("react_key_warning",'Each child in an array should have a unique "key" prop.',e,t))}function i(e,t,n){g.test(e)&&a("react_numeric_key_warning","Child objects should have non-numeric keys so ordering is preserved.",t,n)}function a(e,t,n,r){var i=o(),a=r.displayName,s=i||a,u=h[e];if(!u.hasOwnProperty(s)){u[s]=!0,t+=i?" Check the render method of "+i+".":" Check the renderComponent call using <"+a+">.";var c=null;n._owner&&n._owner!==d.current&&(c=n._owner.constructor.displayName,t+=" It was passed a child from "+c+"."),t+=" See http://fb.me/react-warning-keys for more information.",f(e,{component:s,componentOwner:c}),console.warn(t)}}function s(){var e=o()||"";v.hasOwnProperty(e)||(v[e]=!0,f("react_object_map_children"))}function u(e,t){if(Array.isArray(e))for(var n=0;n"," "+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){v.push({parentID:e,parentNode:null,type:l.INSERT_MARKUP,markupIndex:m.push(t)-1,textContent:null,fromIndex:null,toIndex:n})}function r(e,t,n){v.push({parentID:e,parentNode:null,type:l.MOVE_EXISTING,markupIndex:null,textContent:null,fromIndex:t,toIndex:n})}function i(e,t){v.push({parentID:e,parentNode:null,type:l.REMOVE_NODE,markupIndex:null,textContent:null,fromIndex:t,toIndex:null})}function a(e,t){v.push({parentID:e,parentNode:null,type:l.TEXT_CONTENT,markupIndex:null,textContent:t,fromIndex:null,toIndex:null})}function s(){v.length&&(c.BackendIDOperations.dangerouslyProcessChildrenUpdates(v,m),u())}function u(){v.length=0,m.length=0}var c=n(27),l=n(85),p=n(192),d=n(44),f=n(64),h=0,v=[],m=[],g={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);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._descriptor,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);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>",D={array:r("array"),bool:r("boolean"),func:r("function"),number:r("number"),object:r("object"),string:r("string"),any:i(),arrayOf:a,component:s(),instanceOf:u,objectOf:l,oneOf:c,oneOfType:p,renderable:d(),shape:f};e.exports=D},function(e,t,n){"use strict";function o(){this.listenersToPut=[]}var r=n(15),i=n(26),a=n(11);a(o,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;e"+r+""},receiveComponent:function(e){var t=e.props;t!==this.props&&(this.props=t,i.BackendIDOperations.updateTextContentByID(this._rootNodeID,t))}}),e.exports=a.createFactory(c)},function(e,t,n){"use strict";var o=n(99),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(198);e.exports=o},function(e){"use strict";function t(e){e.disabled||e.focus()}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(3),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,n){if(!e)return null;var o=0,r={};for(var i in e)e.hasOwnProperty(i)&&(r[i]=t.call(n,e[i],i,o++));return r}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(3),r=function(e,t){e.innerHTML=t};if(o.canUseDOM){var i=document.createElement("div");i.innerHTML=" ",""===i.innerHTML&&(r=function(e,t){e.parentNode&&e.parentNode.replaceChild(e,e),t.match(/^[ \r\n\t\f]/)||"<"===t[0]&&(-1!==t.indexOf("1&&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]:v)))}var g=e[0],y=-1,E=g?g.length:0,N=[];e:for(;++y2?r(e,17,i(arguments,2),null,t):r(e,1,null,null,t)}var r=n(124),i=n(34);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(68),i=n(18),a=n(48),s=n(34),u=[],c=u.push;e.exports=o},function(e,t,n){function o(e,t,n,f,h){if(n){var g=n(e);if("undefined"!=typeof g)return g}var E=c(e);if(!E)return e;var b=C.call(e);if(!_[b])return e;var O=w[b];switch(b){case v:case m:return new O(+e);case y:case D:return new O(e);case N:return g=O(e.source,d.exec(e)),g.lastIndex=e.lastIndex,g}var M=u(e);if(t){var T=!f;f||(f=s()),h||(h=s());for(var I=f.length;I--;)if(f[I]==e)return h[I];g=M?O(e.length):{}}else g=M?p(e):r({},e);return M&&(x.call(e,"index")&&(g.index=e.index),x.call(e,"input")&&(g.input=e.input)),t?(f.push(e),h.push(g),(M?i:a)(e,function(e,r){g[r]=o(e,t,n,f,h)}),T&&(l(f),l(h)),g):g}var r=n(127),i=n(31),a=n(17),s=n(39),u=n(75),c=n(18),l=n(40),p=n(34),d=/\w*$/,f="[object Arguments]",h="[object Array]",v="[object Boolean]",m="[object Date]",g="[object Function]",y="[object Number]",E="[object Object]",N="[object RegExp]",D="[object String]",_={};_[g]=!1,_[f]=_[h]=_[v]=_[m]=_[y]=_[E]=_[N]=_[D]=!0;var b=Object.prototype,C=b.toString,x=b.hasOwnProperty,w={};w[h]=Array,w[v]=Boolean,w[m]=Date,w[g]=Function,w[E]=Object,w[y]=Number,w[N]=RegExp,w[D]=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||m)&&(a||(a=s(arguments)),p&&c.apply(a,p),m&&a.length-1:void 0});return N.pop(),D.pop(),S&&(u(N),u(D)),_}var r=n(130),i=n(39),a=n(35),s=n(23),u=n(40),c="[object Arguments]",l="[object Array]",p="[object Boolean]",d="[object Date]",f="[object Number]",h="[object Object]",v="[object RegExp]",m="[object String]",g=Object.prototype,y=g.toString,E=g.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,v=n||h?s():f;if(h){var m=a(v);p=i,v=m}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(4),a=n(25),s=n(3),u=n(181),c=n(16),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]}},v=null,m={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;i=String.fromCharCode(s);break;case f.topTextInput:if(i=o.data,i===d)return;break;default:return}else{switch(e){case f.topPaste:v=null;break;case f.topKeyPress:o.which&&!r(o)&&(v=String.fromCharCode(o.which));break;case f.topCompositionEnd:v=o.data}if(null===v)return;i=v}if(i){var c=u.getPooled(h.beforeInput,n,o);return c.data=i,v=null,a.accumulateTwoPhaseDispatches(c),c}}};e.exports=m},function(e,t,n){"use strict";function o(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=b.getPooled(M.change,I,e);N.accumulateTwoPhaseDispatches(t),_.batchedUpdates(i,t)}function i(e){E.enqueueEvents(e),E.processEventQueue()}function a(e,t){T=e,I=t,T.attachEvent("onchange",r)}function s(){T&&(T.detachEvent("onchange",r),T=null,I=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,I=t,R=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,I=null,R=null,S=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==R&&(R=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 v(e){return e!==O.topSelectionChange&&e!==O.topKeyUp&&e!==O.topKeyDown||!T||T.value===R?void 0:(R=T.value,I)}function m(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===O.topClick?n:void 0}var y=n(4),E=n(37),N=n(25),D=n(3),_=n(30),b=n(20),C=n(61),x=n(100),w=n(16),O=y.topLevelTypes,M={change:{phasedRegistrationNames:{bubbled:w({onChange:null}),captured:w({onChangeCapture:null})},dependencies:[O.topBlur,O.topChange,O.topClick,O.topFocus,O.topInput,O.topKeyDown,O.topKeyUp,O.topSelectionChange]}},T=null,I=null,R=null,S=null,A=!1;D.canUseDOM&&(A=C("change")&&(!("documentMode"in document)||document.documentMode>8));var P=!1;D.canUseDOM&&(P=C("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return S.get.call(this)},set:function(e){R=""+e,S.set.call(this,e)}},V={eventTypes:M,extractEvents:function(e,t,n,r){var i,a;if(o(t)?A?i=u:a=c:x(t)?P?i=f:(i=v,a=h):m(t)&&(i=g),i){var s=i(e,t,n);if(s){var l=b.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 y.topCompositionStart:return N.compositionStart;case y.topCompositionEnd:return N.compositionEnd;case y.topCompositionUpdate:return N.compositionUpdate}}function r(e,t){return e===y.topKeyDown&&t.keyCode===v}function i(e,t){switch(e){case y.topKeyUp:return-1!==h.indexOf(t.keyCode);case y.topKeyDown:return t.keyCode!==v;case y.topKeyPress:case y.topMouseDown:case y.topBlur:return!0;default:return!1}}function a(e){this.root=e,this.startSelection=l.getSelection(e),this.startValue=this.getText()}var s=n(4),u=n(25),c=n(3),l=n(54),p=n(178),d=n(60),f=n(16),h=[9,13,27,32],v=229,m=c.canUseDOM&&"CompositionEvent"in window,g=!m||"documentMode"in document&&document.documentMode>8&&document.documentMode<=11,y=s.topLevelTypes,E=null,N={compositionEnd:{phasedRegistrationNames:{bubbled:f({onCompositionEnd:null}),captured:f({onCompositionEndCapture:null})},dependencies:[y.topBlur,y.topCompositionEnd,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:f({onCompositionStart:null}),captured:f({onCompositionStartCapture:null})},dependencies:[y.topBlur,y.topCompositionStart,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:f({onCompositionUpdate:null}),captured:f({onCompositionUpdateCapture:null})},dependencies:[y.topBlur,y.topCompositionUpdate,y.topKeyDown,y.topKeyPress,y.topKeyUp,y.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 D={eventTypes:N,extractEvents:function(e,t,n,s){var c,l;if(m?c=o(e):E?i(e,s)&&(c=N.compositionEnd):r(e,s)&&(c=N.compositionStart),g&&(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=D},function(e,t,n){(function(t){"use strict";function o(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r,i=n(143),a=n(85),s=n(60),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

or tags, 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 v=i.dangerouslyRenderMarkup(n);if(l)for(var m=0;m]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){"production"!==t.env.NODE_ENV?u(r.canUseDOM,"dangerouslyRenderMarkup(...): Cannot render markup in a Worker thread. This is likely a bug in the framework. Please report immediately."):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(16),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(4),r=n(25),i=n(42),a=n(10),s=n(16),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 v=f?a.getID(f):"",m=h?a.getID(h):"",g=i.getPooled(l.mouseLeave,v,o);g.type="mouseleave",g.target=f,g.relatedTarget=h;var y=i.getPooled(l.mouseEnter,m,o);return y.type="mouseenter",y.target=h,y.relatedTarget=f,r.accumulateEnterLeaveDispatches(g,y,v,m),p[0]=g,p[1]=y,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(3),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,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,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:null,loop:s|u,max:null,maxLength:a,mediaGroup:null,method:null,min:null,multiple:s|u,muted:s|u,name:null,noValidate:u,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,scrollLeft:s,scrolling:null,scrollTop:s,seamless:a|u,selected:s|u,shape:null,size:a|p,span:p,spellCheck:null,src:null,srcDoc:s,srcSet:null,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:{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(4),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(50),i=n(150),a=n(27),s=n(7),u=n(52),c=n(28),l=n(9),p=n(8),d=n(81),f=n(162),h=n(29),v=n(10),m=n(84),g=n(12),y=n(89),E=n(171),N=n(92),D=n(201);f.inject();var _={Children:{map:i.map,forEach:i.forEach,count:i.count,only:D},DOM:p,PropTypes:y,initializeTouchEvents:function(e){r.useTouchEvents=e},createClass:s.createClass,createDescriptor:function(e){var t=Array.prototype.slice.call(arguments,1);return e.apply(null,t)},constructAndRenderComponent:v.constructAndRenderComponent,constructAndRenderComponentByID:v.constructAndRenderComponentByID,renderComponent:g.measure("React","renderComponent",v.renderComponent),renderComponentToString:E.renderComponentToString,renderComponentToStaticMarkup:E.renderComponentToStaticMarkup,unmountComponentAtNode:v.unmountComponentAtNode,isValidClass:l.isValidFactory,isValidComponent:l.isValidDescriptor,withContext:u.withContext,__internals:{Component:a,CurrentOwner:c,DOMComponent:d,DOMPropertyOperations:o,InstanceHandles:h,Mount:v,MultiChild:m,TextComponent:N}};if("production"!==t.env.NODE_ENV){var b=n(3);if(b.canUseDOM&&window.top===window.self&&navigator.userAgent.indexOf("Chrome")>-1){console.debug("Download the React DevTools for a better development experience: http://fb.me/react-devtools");var C=[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];for(var x in C)if(!C[x]){console.error("One or more ES5 shim/shams expected by React are not available: http://fb.me/react-warning-polyfills");break}}}_.version="0.11.0",e.exports=_}).call(t,n(1))},function(e,t,n){(function(t){"use strict";function o(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,o){var r=e;r.forEachFunction.call(r.forEachContext,t,o)}function i(e,t,n){if(null==e)return e;var i=o.getPooled(t,n);d(e,r,i),o.release(i)}function a(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function s(e,n,o,r){var i=e,a=i.mapResult,s=!a.hasOwnProperty(o);if("production"!==t.env.NODE_ENV?f(s,"ReactChildren.map(...): Encountered two children with the same key, `%s`. Child keys must be unique; when two children share a key, only the first child will be used.",o):null,s){var u=i.mapFunction.call(i.mapContext,n,r);a[o]=u}}function u(e,t,n){if(null==e)return e;var o={},r=a.getPooled(o,t,n);return d(e,s,r),a.release(r),o}function c(){return null}function l(e){return d(e,c,null)}var p=n(15),d=n(104),f=n(14),h=p.twoArgumentPooler,v=p.threeArgumentPooler;p.addPoolingTo(o,h),p.addPoolingTo(a,v);var m={forEach:i,map:u,count:l};e.exports=m}).call(t,n(1))},function(e,t,n){(function(t){"use strict";var o=n(154),r=n(83),i=n(10),a=n(12),s=n(170),u=n(98),c=n(2),l=n(103),p=1,d=9,f={ReactReconcileTransaction:s,BackendIDOperations:o,unmountIDFromEnvironment:function(e){i.purgeID(e)},mountImageIntoNode:a.measure("ReactComponentBrowserEnvironment","mountImageIntoNode",function(e,n,o){if("production"!==t.env.NODE_ENV?c(n&&(n.nodeType===p||n.nodeType===d),"mountComponentIntoNode(...): Target container is not valid."):c(n&&(n.nodeType===p||n.nodeType===d)),o){if(r.canReuseMarkup(e,u(n)))return;"production"!==t.env.NODE_ENV?c(n.nodeType!==d,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side."):c(n.nodeType!==d),"production"!==t.env.NODE_ENV&&console.warn("React attempted to use reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server.")}"production"!==t.env.NODE_ENV?c(n.nodeType!==d,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See renderComponentToString() for server rendering."):c(n.nodeType!==d),l(n,e)})};e.exports=f}).call(t,n(1))},function(e,t,n){"use strict";var o=n(41),r=n(6),i=n(7),a=n(8),s=n(21),u=a.button,c=s({onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0}),l=i.createClass({displayName:"ReactDOMButton",mixins:[o,r],render:function(){var e={};for(var t in this.props)!this.props.hasOwnProperty(t)||this.props.disabled&&c[t]||(e[t]=this.props[t]);return u(e,this.props.children)}});e.exports=l},function(e,t,n){"use strict";var o=n(4),r=n(80),i=n(6),a=n(7),s=n(8),u=s.form,c=a.createClass({displayName:"ReactDOMForm",mixins:[i,r],render:function(){return this.transferPropsTo(u(null,this.props.children))},componentDidMount:function(){this.trapBubbledEvent(o.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(o.topLevelTypes.topSubmit,"submit")}});e.exports=c},function(e,t,n){(function(t){"use strict";var o=n(78),r=n(142),i=n(24),a=n(10),s=n(12),u=n(2),c=n(103),l={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},p={updatePropertyByID:s.measure("ReactDOMIDOperations","updatePropertyByID",function(e,n,o){var r=a.getNode(e); "production"!==t.env.NODE_ENV?u(!l.hasOwnProperty(n),"updatePropertyByID(...): %s",l[n]):u(!l.hasOwnProperty(n)),null!=o?i.setValueForProperty(r,n,o):i.deleteValueForProperty(r,n)}),deletePropertyByID:s.measure("ReactDOMIDOperations","deletePropertyByID",function(e,n,o){var r=a.getNode(e);"production"!==t.env.NODE_ENV?u(!l.hasOwnProperty(n),"updatePropertyByID(...): %s",l[n]):u(!l.hasOwnProperty(n)),i.deleteValueForProperty(r,n,o)}),updateStylesByID:s.measure("ReactDOMIDOperations","updateStylesByID",function(e,t){var n=a.getNode(e);o.setValueForStyles(n,t)}),updateInnerHTMLByID:s.measure("ReactDOMIDOperations","updateInnerHTMLByID",function(e,t){var n=a.getNode(e);c(n,t)}),updateTextContentByID:s.measure("ReactDOMIDOperations","updateTextContentByID",function(e,t){var n=a.getNode(e);r.updateTextContent(n,t)}),dangerouslyReplaceNodeWithMarkupByID:s.measure("ReactDOMIDOperations","dangerouslyReplaceNodeWithMarkupByID",function(e,t){var n=a.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)}),dangerouslyProcessChildrenUpdates:s.measure("ReactDOMIDOperations","dangerouslyProcessChildrenUpdates",function(e,t){for(var n=0;np;p++){var h=u[p];if(h!==a&&h.form===a.form){var v=c.getID(h);"production"!==t.env.NODE_ENV?l(v,"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."):l(v);var m=f[v];"production"!==t.env.NODE_ENV?l(m,"ReactDOMInput: Unknown radio button ID %s.",v):l(m),m.setState({checked:!1})}}}return n}});e.exports=h}).call(t,n(1))},function(e,t,n){(function(t){"use strict";var o=n(6),r=n(7),i=n(8),a=n(14),s=i.option,u=r.createClass({displayName:"ReactDOMOption",mixins:[o],componentWillMount:function(){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(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):i(!1) -},render:function(){return this.transferPropsTo(e(null,this.props.children))}});return n}var r=n(7),i=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