does.\n\t contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n\t }\n\t return contentKey;\n\t}\n\t\n\tmodule.exports = getTextContentAccessor;\n\n/***/ },\n/* 318 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule instantiateReactComponent\n\t */\n\t\n\t'use strict';\n\t\n\tvar _prodInvariant = __webpack_require__(5),\n\t _assign = __webpack_require__(11);\n\t\n\tvar ReactCompositeComponent = __webpack_require__(805);\n\tvar ReactEmptyComponent = __webpack_require__(302);\n\tvar ReactHostComponent = __webpack_require__(304);\n\tvar ReactInstrumentation = __webpack_require__(31);\n\t\n\tvar invariant = __webpack_require__(3);\n\tvar warning = __webpack_require__(6);\n\t\n\t// To avoid a cyclic dependency, we create the final class in this module\n\tvar ReactCompositeComponentWrapper = function (element) {\n\t this.construct(element);\n\t};\n\t_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n\t _instantiateReactComponent: instantiateReactComponent\n\t});\n\t\n\tfunction getDeclarationErrorAddendum(owner) {\n\t if (owner) {\n\t var name = owner.getName();\n\t if (name) {\n\t return ' Check the render method of `' + name + '`.';\n\t }\n\t }\n\t return '';\n\t}\n\t\n\tfunction getDisplayName(instance) {\n\t var element = instance._currentElement;\n\t if (element == null) {\n\t return '#empty';\n\t } else if (typeof element === 'string' || typeof element === 'number') {\n\t return '#text';\n\t } else if (typeof element.type === 'string') {\n\t return element.type;\n\t } else if (instance.getName) {\n\t return instance.getName() || 'Unknown';\n\t } else {\n\t return element.type.displayName || element.type.name || 'Unknown';\n\t }\n\t}\n\t\n\t/**\n\t * Check if the type reference is a known internal type. I.e. not a user\n\t * provided composite type.\n\t *\n\t * @param {function} type\n\t * @return {boolean} Returns true if this is a valid internal type.\n\t */\n\tfunction isInternalComponentType(type) {\n\t return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n\t}\n\t\n\tvar nextDebugID = 1;\n\t\n\t/**\n\t * Given a ReactNode, create an instance that will actually be mounted.\n\t *\n\t * @param {ReactNode} node\n\t * @param {boolean} shouldHaveDebugID\n\t * @return {object} A new instance of the element's constructor.\n\t * @protected\n\t */\n\tfunction instantiateReactComponent(node, shouldHaveDebugID) {\n\t var instance;\n\t\n\t if (node === null || node === false) {\n\t instance = ReactEmptyComponent.create(instantiateReactComponent);\n\t } else if (typeof node === 'object') {\n\t var element = node;\n\t !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? false ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : _prodInvariant('130', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : void 0;\n\t\n\t // Special case string values\n\t if (typeof element.type === 'string') {\n\t instance = ReactHostComponent.createInternalComponent(element);\n\t } else if (isInternalComponentType(element.type)) {\n\t // This is temporarily available for custom components that are not string\n\t // representations. I.e. ART. Once those are updated to use the string\n\t // representation, we can drop this code path.\n\t instance = new element.type(element);\n\t\n\t // We renamed this. Allow the old name for compat. :(\n\t if (!instance.getHostNode) {\n\t instance.getHostNode = instance.getNativeNode;\n\t }\n\t } else {\n\t instance = new ReactCompositeComponentWrapper(element);\n\t }\n\t } else if (typeof node === 'string' || typeof node === 'number') {\n\t instance = ReactHostComponent.createInstanceForText(node);\n\t } else {\n\t true ? false ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n\t }\n\t\n\t if (false) {\n\t process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n\t }\n\t\n\t // These two fields are used by the DOM and ART diffing algorithms\n\t // respectively. Instead of using expandos on components, we should be\n\t // storing the state needed by the diffing algorithms elsewhere.\n\t instance._mountIndex = 0;\n\t instance._mountImage = null;\n\t\n\t if (false) {\n\t if (shouldHaveDebugID) {\n\t var debugID = nextDebugID++;\n\t instance._debugID = debugID;\n\t var displayName = getDisplayName(instance);\n\t ReactInstrumentation.debugTool.onSetDisplayName(debugID, displayName);\n\t var owner = node && node._owner;\n\t if (owner) {\n\t ReactInstrumentation.debugTool.onSetOwner(debugID, owner._debugID);\n\t }\n\t } else {\n\t instance._debugID = 0;\n\t }\n\t }\n\t\n\t // Internal instances should fully constructed at this point, so they should\n\t // not get any new fields added to them at this point.\n\t if (false) {\n\t if (Object.preventExtensions) {\n\t Object.preventExtensions(instance);\n\t }\n\t }\n\t\n\t return instance;\n\t}\n\t\n\tmodule.exports = instantiateReactComponent;\n\n/***/ },\n/* 319 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule isTextInputElement\n\t * \n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n\t */\n\t\n\tvar supportedInputTypes = {\n\t 'color': true,\n\t 'date': true,\n\t 'datetime': true,\n\t 'datetime-local': true,\n\t 'email': true,\n\t 'month': true,\n\t 'number': true,\n\t 'password': true,\n\t 'range': true,\n\t 'search': true,\n\t 'tel': true,\n\t 'text': true,\n\t 'time': true,\n\t 'url': true,\n\t 'week': true\n\t};\n\t\n\tfunction isTextInputElement(elem) {\n\t var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\t\n\t if (nodeName === 'input') {\n\t return !!supportedInputTypes[elem.type];\n\t }\n\t\n\t if (nodeName === 'textarea') {\n\t return true;\n\t }\n\t\n\t return false;\n\t}\n\t\n\tmodule.exports = isTextInputElement;\n\n/***/ },\n/* 320 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule setTextContent\n\t */\n\t\n\t'use strict';\n\t\n\tvar ExecutionEnvironment = __webpack_require__(25);\n\tvar escapeTextContentForBrowser = __webpack_require__(139);\n\tvar setInnerHTML = __webpack_require__(140);\n\t\n\t/**\n\t * Set the textContent property of a node, ensuring that whitespace is preserved\n\t * even in IE8. innerText is a poor substitute for textContent and, among many\n\t * issues, inserts
instead of the literal newline chars. innerHTML behaves\n\t * as it should.\n\t *\n\t * @param {DOMElement} node\n\t * @param {string} text\n\t * @internal\n\t */\n\tvar setTextContent = function (node, text) {\n\t if (text) {\n\t var firstChild = node.firstChild;\n\t\n\t if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n\t firstChild.nodeValue = text;\n\t return;\n\t }\n\t }\n\t node.textContent = text;\n\t};\n\t\n\tif (ExecutionEnvironment.canUseDOM) {\n\t if (!('textContent' in document.documentElement)) {\n\t setTextContent = function (node, text) {\n\t setInnerHTML(node, escapeTextContentForBrowser(text));\n\t };\n\t }\n\t}\n\t\n\tmodule.exports = setTextContent;\n\n/***/ },\n/* 321 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = compose;\n\t/**\n\t * Composes single-argument functions from right to left. The rightmost\n\t * function can take multiple arguments as it provides the signature for\n\t * the resulting composite function.\n\t *\n\t * @param {...Function} funcs The functions to compose.\n\t * @returns {Function} A function obtained by composing the argument functions\n\t * from right to left. For example, compose(f, g, h) is identical to doing\n\t * (...args) => f(g(h(...args))).\n\t */\n\t\n\tfunction compose() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t if (funcs.length === 0) {\n\t return function (arg) {\n\t return arg;\n\t };\n\t } else {\n\t var _ret = function () {\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return {\n\t v: function v() {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t }\n\t };\n\t }();\n\t\n\t if (typeof _ret === \"object\") return _ret.v;\n\t }\n\t}\n\n/***/ },\n/* 322 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.ActionTypes = undefined;\n\texports[\"default\"] = createStore;\n\t\n\tvar _isPlainObject = __webpack_require__(181);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(866);\n\t\n\tvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\t/**\n\t * These are private action types reserved by Redux.\n\t * For any unknown actions, you must return the current state.\n\t * If the current state is undefined, you must return the initial state.\n\t * Do not reference these action types directly in your code.\n\t */\n\tvar ActionTypes = exports.ActionTypes = {\n\t INIT: '@@redux/INIT'\n\t};\n\t\n\t/**\n\t * Creates a Redux store that holds the state tree.\n\t * The only way to change the data in the store is to call `dispatch()` on it.\n\t *\n\t * There should only be a single store in your app. To specify how different\n\t * parts of the state tree respond to actions, you may combine several reducers\n\t * into a single reducer function by using `combineReducers`.\n\t *\n\t * @param {Function} reducer A function that returns the next state tree, given\n\t * the current state tree and the action to handle.\n\t *\n\t * @param {any} [initialState] The initial state. You may optionally specify it\n\t * to hydrate the state from the server in universal apps, or to restore a\n\t * previously serialized user session.\n\t * If you use `combineReducers` to produce the root reducer function, this must be\n\t * an object with the same shape as `combineReducers` keys.\n\t *\n\t * @param {Function} enhancer The store enhancer. You may optionally specify it\n\t * to enhance the store with third-party capabilities such as middleware,\n\t * time travel, persistence, etc. The only store enhancer that ships with Redux\n\t * is `applyMiddleware()`.\n\t *\n\t * @returns {Store} A Redux store that lets you read the state, dispatch actions\n\t * and subscribe to changes.\n\t */\n\tfunction createStore(reducer, initialState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof initialState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = initialState;\n\t initialState = undefined;\n\t }\n\t\n\t if (typeof enhancer !== 'undefined') {\n\t if (typeof enhancer !== 'function') {\n\t throw new Error('Expected the enhancer to be a function.');\n\t }\n\t\n\t return enhancer(createStore)(reducer, initialState);\n\t }\n\t\n\t if (typeof reducer !== 'function') {\n\t throw new Error('Expected the reducer to be a function.');\n\t }\n\t\n\t var currentReducer = reducer;\n\t var currentState = initialState;\n\t var currentListeners = [];\n\t var nextListeners = currentListeners;\n\t var isDispatching = false;\n\t\n\t function ensureCanMutateNextListeners() {\n\t if (nextListeners === currentListeners) {\n\t nextListeners = currentListeners.slice();\n\t }\n\t }\n\t\n\t /**\n\t * Reads the state tree managed by the store.\n\t *\n\t * @returns {any} The current state tree of your application.\n\t */\n\t function getState() {\n\t return currentState;\n\t }\n\t\n\t /**\n\t * Adds a change listener. It will be called any time an action is dispatched,\n\t * and some part of the state tree may potentially have changed. You may then\n\t * call `getState()` to read the current state tree inside the callback.\n\t *\n\t * You may call `dispatch()` from a change listener, with the following\n\t * caveats:\n\t *\n\t * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n\t * If you subscribe or unsubscribe while the listeners are being invoked, this\n\t * will not have any effect on the `dispatch()` that is currently in progress.\n\t * However, the next `dispatch()` call, whether nested or not, will use a more\n\t * recent snapshot of the subscription list.\n\t *\n\t * 2. The listener should not expect to see all state changes, as the state\n\t * might have been updated multiple times during a nested `dispatch()` before\n\t * the listener is called. It is, however, guaranteed that all subscribers\n\t * registered before the `dispatch()` started will be called with the latest\n\t * state by the time it exits.\n\t *\n\t * @param {Function} listener A callback to be invoked on every dispatch.\n\t * @returns {Function} A function to remove this change listener.\n\t */\n\t function subscribe(listener) {\n\t if (typeof listener !== 'function') {\n\t throw new Error('Expected listener to be a function.');\n\t }\n\t\n\t var isSubscribed = true;\n\t\n\t ensureCanMutateNextListeners();\n\t nextListeners.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed) {\n\t return;\n\t }\n\t\n\t isSubscribed = false;\n\t\n\t ensureCanMutateNextListeners();\n\t var index = nextListeners.indexOf(listener);\n\t nextListeners.splice(index, 1);\n\t };\n\t }\n\t\n\t /**\n\t * Dispatches an action. It is the only way to trigger a state change.\n\t *\n\t * The `reducer` function, used to create the store, will be called with the\n\t * current state tree and the given `action`. Its return value will\n\t * be considered the **next** state of the tree, and the change listeners\n\t * will be notified.\n\t *\n\t * The base implementation only supports plain object actions. If you want to\n\t * dispatch a Promise, an Observable, a thunk, or something else, you need to\n\t * wrap your store creating function into the corresponding middleware. For\n\t * example, see the documentation for the `redux-thunk` package. Even the\n\t * middleware will eventually dispatch plain object actions using this method.\n\t *\n\t * @param {Object} action A plain object representing “what changed”. It is\n\t * a good idea to keep actions serializable so you can record and replay user\n\t * sessions, or use the time travelling `redux-devtools`. An action must have\n\t * a `type` property which may not be `undefined`. It is a good idea to use\n\t * string constants for action types.\n\t *\n\t * @returns {Object} For convenience, the same action object you dispatched.\n\t *\n\t * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n\t * return something else (for example, a Promise you can await).\n\t */\n\t function dispatch(action) {\n\t if (!(0, _isPlainObject2[\"default\"])(action)) {\n\t throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n\t }\n\t\n\t if (typeof action.type === 'undefined') {\n\t throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n\t }\n\t\n\t if (isDispatching) {\n\t throw new Error('Reducers may not dispatch actions.');\n\t }\n\t\n\t try {\n\t isDispatching = true;\n\t currentState = currentReducer(currentState, action);\n\t } finally {\n\t isDispatching = false;\n\t }\n\t\n\t var listeners = currentListeners = nextListeners;\n\t for (var i = 0; i < listeners.length; i++) {\n\t listeners[i]();\n\t }\n\t\n\t return action;\n\t }\n\t\n\t /**\n\t * Replaces the reducer currently used by the store to calculate the state.\n\t *\n\t * You might need this if your app implements code splitting and you want to\n\t * load some of the reducers dynamically. You might also need this if you\n\t * implement a hot reloading mechanism for Redux.\n\t *\n\t * @param {Function} nextReducer The reducer for the store to use instead.\n\t * @returns {void}\n\t */\n\t function replaceReducer(nextReducer) {\n\t if (typeof nextReducer !== 'function') {\n\t throw new Error('Expected the nextReducer to be a function.');\n\t }\n\t\n\t currentReducer = nextReducer;\n\t dispatch({ type: ActionTypes.INIT });\n\t }\n\t\n\t /**\n\t * Interoperability point for observable/reactive libraries.\n\t * @returns {observable} A minimal observable of state changes.\n\t * For more information, see the observable proposal:\n\t * https://github.com/zenparsing/es-observable\n\t */\n\t function observable() {\n\t var _ref;\n\t\n\t var outerSubscribe = subscribe;\n\t return _ref = {\n\t /**\n\t * The minimal observable subscription method.\n\t * @param {Object} observer Any object that can be used as an observer.\n\t * The observer object should have a `next` method.\n\t * @returns {subscription} An object with an `unsubscribe` method that can\n\t * be used to unsubscribe the observable from the store, and prevent further\n\t * emission of values from the observable.\n\t */\n\t\n\t subscribe: function subscribe(observer) {\n\t if (typeof observer !== 'object') {\n\t throw new TypeError('Expected the observer to be an object.');\n\t }\n\t\n\t function observeState() {\n\t if (observer.next) {\n\t observer.next(getState());\n\t }\n\t }\n\t\n\t observeState();\n\t var unsubscribe = outerSubscribe(observeState);\n\t return { unsubscribe: unsubscribe };\n\t }\n\t }, _ref[_symbolObservable2[\"default\"]] = function () {\n\t return this;\n\t }, _ref;\n\t }\n\t\n\t // When a store is created, an \"INIT\" action is dispatched so that every\n\t // reducer returns their initial state. This effectively populates\n\t // the initial state tree.\n\t dispatch({ type: ActionTypes.INIT });\n\t\n\t return _ref2 = {\n\t dispatch: dispatch,\n\t subscribe: subscribe,\n\t getState: getState,\n\t replaceReducer: replaceReducer\n\t }, _ref2[_symbolObservable2[\"default\"]] = observable, _ref2;\n\t}\n\n/***/ },\n/* 323 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 324 */,\n/* 325 */,\n/* 326 */,\n/* 327 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.DEFAULT_LIMIT = undefined;\n\t\n\texports.default = function (action, requestType, successType, failureType) {\n\t /** Get the name of the item associated with action */\n\t var itemName = action.rstrip(\"s\");\n\t\n\t /**\n\t * Normalizr helper to normalize API response.\n\t *\n\t * @param jsonData The JS object returned by the API.\n\t * @return A normalized object.\n\t */\n\t var _normalizeAPIResponse = function _normalizeAPIResponse(jsonData) {\n\t return (0, _normalizr.normalize)(jsonData, {\n\t artist: (0, _normalizr.arrayOf)(_api2.artist),\n\t album: (0, _normalizr.arrayOf)(_api2.album),\n\t song: (0, _normalizr.arrayOf)(_api2.song)\n\t }, {\n\t // Use custom assignEntity function to delete useless fields\n\t assignEntity: function assignEntity(output, key, value) {\n\t if (key == \"sessionExpire\") {\n\t delete output.sessionExpire;\n\t } else {\n\t output[key] = value;\n\t }\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Callback on successful fetch of paginated items\n\t *\n\t * @param jsonData JS object returned from the API.\n\t * @param pageNumber Number of the page that was fetched.\n\t */\n\t var fetchPaginatedItemsSuccess = function fetchPaginatedItemsSuccess(jsonData, pageNumber, limit) {\n\t var totalCount = jsonData.totalCount;\n\t jsonData = _normalizeAPIResponse(jsonData);\n\t\n\t // Compute the total number of pages\n\t var nPages = Math.ceil(totalCount / limit);\n\t\n\t // Return success actions\n\t return [\n\t // Action for the global entities store\n\t (0, _entities.pushEntities)(jsonData.entities, [itemName]),\n\t // Action for the paginated store\n\t {\n\t type: successType,\n\t payload: {\n\t type: itemName,\n\t result: jsonData.result[itemName],\n\t nPages: nPages,\n\t currentPage: pageNumber\n\t }\n\t }];\n\t };\n\t\n\t /**\n\t * Callback on successful fetch of single item\n\t *\n\t * @param jsonData JS object returned from the API.\n\t * @param pageNumber Number of the page that was fetched.\n\t */\n\t var fetchItemSuccess = function fetchItemSuccess(jsonData) {\n\t jsonData = _normalizeAPIResponse(jsonData);\n\t\n\t return (0, _entities.pushEntities)(jsonData.entities, [itemName]);\n\t };\n\t\n\t /** Callback on request */\n\t var fetchItemsRequest = function fetchItemsRequest() {\n\t // Return a request type action\n\t return {\n\t type: requestType,\n\t payload: {}\n\t };\n\t };\n\t\n\t /**\n\t * Callback on failed fetch\n\t *\n\t * @param error An error object, either a string or an i18nError\n\t * object.\n\t */\n\t var fetchItemsFailure = function fetchItemsFailure(error) {\n\t // Return a failure type action\n\t return {\n\t type: failureType,\n\t payload: {\n\t error: error\n\t }\n\t };\n\t };\n\t\n\t /**\n\t * Method to trigger a fetch of items.\n\t *\n\t * @param endpoint Ampache server base URL.\n\t * @param username Username to use for API request.\n\t * @param filter An eventual filter to apply (mapped to API filter\n\t * param)\n\t * @param pageNumber Number of the page to fetch items from.\n\t * @param limit Max number of items to fetch.\n\t * @param include [Optional] A list of includes to return as well\n\t * (mapped to API include param)\n\t *\n\t * @return A CALL_API action to fetch the specified items.\n\t */\n\t var fetchItems = function fetchItems(endpoint, username, passphrase, filter, pageNumber, limit) {\n\t var include = arguments.length <= 6 || arguments[6] === undefined ? [] : arguments[6];\n\t\n\t // Compute offset in number of items from the page number\n\t var offset = (pageNumber - 1) * DEFAULT_LIMIT;\n\t // Set extra params for pagination\n\t var extraParams = {\n\t offset: offset,\n\t limit: limit\n\t };\n\t\n\t // Handle filter\n\t if (filter) {\n\t extraParams.filter = filter;\n\t }\n\t\n\t // Handle includes\n\t if (include && include.length > 0) {\n\t extraParams.include = include;\n\t }\n\t\n\t // Return a CALL_API action\n\t return {\n\t type: _api.CALL_API,\n\t payload: {\n\t endpoint: endpoint,\n\t dispatch: [fetchItemsRequest, null, fetchItemsFailure],\n\t action: action,\n\t auth: passphrase,\n\t username: username,\n\t extraParams: extraParams\n\t }\n\t };\n\t };\n\t\n\t /**\n\t * High level method to load paginated items from the API wihtout dealing about credentials.\n\t *\n\t * @param pageNumber [Optional] Number of the page to fetch items from.\n\t * @param filter [Optional] An eventual filter to apply (mapped to\n\t * API filter param)\n\t * @param include [Optional] A list of includes to return as well\n\t * (mapped to API include param)\n\t *\n\t * Dispatches the CALL_API action to fetch these items.\n\t */\n\t var loadPaginatedItems = function loadPaginatedItems() {\n\t var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var _ref$pageNumber = _ref.pageNumber;\n\t var pageNumber = _ref$pageNumber === undefined ? 1 : _ref$pageNumber;\n\t var _ref$limit = _ref.limit;\n\t var limit = _ref$limit === undefined ? DEFAULT_LIMIT : _ref$limit;\n\t var _ref$filter = _ref.filter;\n\t var filter = _ref$filter === undefined ? null : _ref$filter;\n\t var _ref$include = _ref.include;\n\t var include = _ref$include === undefined ? [] : _ref$include;\n\t\n\t return function (dispatch, getState) {\n\t // Get credentials from the state\n\t var _getState = getState();\n\t\n\t var auth = _getState.auth;\n\t // Get the fetch action to dispatch\n\t\n\t var fetchAction = fetchItems(auth.endpoint, auth.username, auth.token.token, filter, pageNumber, limit, include);\n\t // Set success callback\n\t fetchAction.payload.dispatch[1] = function (jsonData) {\n\t return function (dispatch) {\n\t // Dispatch all the necessary actions\n\t var actions = fetchPaginatedItemsSuccess(jsonData, pageNumber, limit);\n\t actions.map(function (action) {\n\t return dispatch(action);\n\t });\n\t };\n\t };\n\t // Dispatch action\n\t dispatch(fetchAction);\n\t };\n\t };\n\t\n\t /**\n\t * High level method to load a single item from the API wihtout dealing about credentials.\n\t *\n\t * @param filter The filter to apply (mapped to API filter param)\n\t * @param include [Optional] A list of includes to return as well\n\t * (mapped to API include param)\n\t *\n\t * Dispatches the CALL_API action to fetch this item.\n\t */\n\t var loadItem = function loadItem() {\n\t var _ref2 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var _ref2$filter = _ref2.filter;\n\t var filter = _ref2$filter === undefined ? null : _ref2$filter;\n\t var _ref2$include = _ref2.include;\n\t var include = _ref2$include === undefined ? [] : _ref2$include;\n\t\n\t return function (dispatch, getState) {\n\t // Get credentials from the state\n\t var _getState2 = getState();\n\t\n\t var auth = _getState2.auth;\n\t // Get the action to dispatch\n\t\n\t var fetchAction = fetchItems(auth.endpoint, auth.username, auth.token.token, filter, 1, DEFAULT_LIMIT, include);\n\t // Set success callback\n\t fetchAction.payload.dispatch[1] = function (jsonData) {\n\t return function (dispatch) {\n\t dispatch(fetchItemSuccess(jsonData));\n\t };\n\t };\n\t // Dispatch action\n\t dispatch(fetchAction);\n\t };\n\t };\n\t\n\t // Remap the above methods to methods including item name\n\t var returned = {};\n\t var camelizedAction = _humps2.default.pascalize(action);\n\t returned[\"loadPaginated\" + camelizedAction] = loadPaginatedItems;\n\t returned[\"load\" + camelizedAction.rstrip(\"s\")] = loadItem;\n\t return returned;\n\t};\n\t\n\tvar _normalizr = __webpack_require__(281);\n\t\n\tvar _humps = __webpack_require__(253);\n\t\n\tvar _humps2 = _interopRequireDefault(_humps);\n\t\n\tvar _api = __webpack_require__(141);\n\t\n\tvar _entities = __webpack_require__(103);\n\t\n\tvar _api2 = __webpack_require__(357);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t// Constants\n\tvar DEFAULT_LIMIT = exports.DEFAULT_LIMIT = 32; /** Default max number of elements to retrieve. */\n\t\n\t/**\n\t * This function wraps around an API action to generate actions trigger\n\t * functions to load items etc.\n\t *\n\t * @param action API action.\n\t * @param requestType Action type to trigger on request.\n\t * @param successType Action type to trigger on success.\n\t * @param failureType Action type to trigger on failure.\n\t */\n\t\n\t\n\t// Models\n\t\n\t\n\t// Other actions\n\t/**\n\t * This file implements actions to fetch and load data from the API.\n\t */\n\t\n\t// NPM imports\n\n/***/ },\n/* 328 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.CLEAR_PAGINATED_RESULTS = undefined;\n\texports.clearPaginatedResults = clearPaginatedResults;\n\t\n\tvar _entities = __webpack_require__(103);\n\t\n\t/** Define an action to invalidate results in paginated store. */\n\tvar CLEAR_PAGINATED_RESULTS = exports.CLEAR_PAGINATED_RESULTS = \"CLEAR_PAGINATED_RESULTS\"; /**\n\t * These actions are actions acting directly on the paginated views store.\n\t */\n\t\n\t// Other actions\n\tfunction clearPaginatedResults() {\n\t return function (dispatch, getState) {\n\t // Decrement reference counter\n\t var paginatedStore = getState().paginated;\n\t var entities = {};\n\t entities[paginatedStore.get(\"type\")] = paginatedStore.get(\"result\").toJS();\n\t dispatch((0, _entities.decrementRefCount)(entities));\n\t\n\t // Clear results in store\n\t dispatch({\n\t type: CLEAR_PAGINATED_RESULTS\n\t });\n\t };\n\t}\n\n/***/ },\n/* 329 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.goToPage = goToPage;\n\t\n\tvar _reactRouterRedux = __webpack_require__(97);\n\t\n\t/** Define an action to go to a specific page. */\n\tfunction goToPage(pageLocation) {\n\t return function (dispatch) {\n\t // Just push the new page location in react-router.\n\t dispatch((0, _reactRouterRedux.push)(pageLocation));\n\t };\n\t} /**\n\t * This file defines pagination related actions.\n\t */\n\t\n\t// NPM imports\n\n/***/ },\n/* 330 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.SET_VOLUME = exports.TOGGLE_MUTE = exports.TOGGLE_REPEAT = exports.TOGGLE_RANDOM = exports.PLAY_NEXT_SONG = exports.PLAY_PREVIOUS_SONG = exports.JUMP_TO_SONG = exports.POP_SONG = exports.PUSH_SONG = exports.SET_PLAYLIST = exports.STOP_PLAYBACK = exports.PLAY_PAUSE = undefined;\n\texports.togglePlaying = togglePlaying;\n\texports.stopPlayback = stopPlayback;\n\texports.setPlaylist = setPlaylist;\n\texports.playSong = playSong;\n\texports.pushSong = pushSong;\n\texports.popSong = popSong;\n\texports.jumpToSong = jumpToSong;\n\texports.playPreviousSong = playPreviousSong;\n\texports.playNextSong = playNextSong;\n\texports.toggleRandom = toggleRandom;\n\texports.toggleRepeat = toggleRepeat;\n\texports.toggleMute = toggleMute;\n\texports.setVolume = setVolume;\n\t\n\tvar _entities = __webpack_require__(103);\n\t\n\tvar PLAY_PAUSE = exports.PLAY_PAUSE = \"PLAY_PAUSE\";\n\t/**\n\t * Toggle play / pause for the webplayer.\n\t *\n\t * @param playPause [Optional] True to play, false to pause. If not given,\n\t * toggle the current state.\n\t *\n\t * @return Dispatch a PLAY_PAUSE action.\n\t */\n\t/**\n\t * These actions are actions acting on the webplayer.\n\t */\n\t\n\t// Other actions\n\tfunction togglePlaying(playPause) {\n\t return function (dispatch, getState) {\n\t var newIsPlaying = false;\n\t if (typeof playPause !== \"undefined\") {\n\t // If we want to force a mode\n\t newIsPlaying = playPause;\n\t } else {\n\t // Else, just toggle\n\t newIsPlaying = !getState().webplayer.isPlaying;\n\t }\n\t // Dispatch action\n\t dispatch({\n\t type: PLAY_PAUSE,\n\t payload: {\n\t isPlaying: newIsPlaying\n\t }\n\t });\n\t };\n\t}\n\t\n\tvar STOP_PLAYBACK = exports.STOP_PLAYBACK = \"STOP_PLAYBACK\";\n\t/**\n\t * Stop the webplayer, clearing the playlist.\n\t *\n\t * Handle the entities store reference counting.\n\t *\n\t * @return Dispatch a STOP_PLAYBACK action.\n\t */\n\tfunction stopPlayback() {\n\t return function (dispatch, getState) {\n\t // Handle reference counting\n\t dispatch((0, _entities.decrementRefCount)({\n\t song: getState().webplayer.get(\"playlist\").toArray()\n\t }));\n\t // Stop playback\n\t dispatch({\n\t type: STOP_PLAYBACK\n\t });\n\t };\n\t}\n\t\n\tvar SET_PLAYLIST = exports.SET_PLAYLIST = \"SET_PLAYLIST\";\n\t/**\n\t * Set a given playlist.\n\t *\n\t * Handle the entities store reference counting.\n\t *\n\t * @param playlist A list of song IDs.\n\t *\n\t * @return Dispatch a SET_PLAYLIST action.\n\t */\n\tfunction setPlaylist(playlist) {\n\t return function (dispatch, getState) {\n\t // Handle reference counting\n\t dispatch((0, _entities.decrementRefCount)({\n\t song: getState().webplayer.get(\"playlist\").toArray()\n\t }));\n\t dispatch((0, _entities.incrementRefCount)({\n\t song: playlist\n\t }));\n\t // Set playlist\n\t dispatch({\n\t type: SET_PLAYLIST,\n\t payload: {\n\t playlist: playlist\n\t }\n\t });\n\t };\n\t}\n\t\n\t/**\n\t * Play a given song, emptying the current playlist.\n\t *\n\t * Handle the entities store reference counting.\n\t *\n\t * @param songID The id of the song to play.\n\t *\n\t * @return Dispatch a SET_PLAYLIST action to play this song and start playing.\n\t */\n\tfunction playSong(songID) {\n\t return function (dispatch, getState) {\n\t // Handle reference counting\n\t dispatch((0, _entities.decrementRefCount)({\n\t song: getState().webplayer.get(\"playlist\").toArray()\n\t }));\n\t dispatch((0, _entities.incrementRefCount)({\n\t song: [songID]\n\t }));\n\t // Set new playlist\n\t dispatch({\n\t type: SET_PLAYLIST,\n\t payload: {\n\t playlist: [songID]\n\t }\n\t });\n\t // Force playing\n\t dispatch(togglePlaying(true));\n\t };\n\t}\n\t\n\tvar PUSH_SONG = exports.PUSH_SONG = \"PUSH_SONG\";\n\t/**\n\t * Push a given song in the playlist.\n\t *\n\t * Handle the entities store reference counting.\n\t *\n\t * @param songID The id of the song to push.\n\t * @param index [Optional] The position to insert at in the playlist.\n\t * If negative, counts from the end. Undefined (default)\n\t * is last position.\n\t *\n\t * @return Dispatch a PUSH_SONG action.\n\t */\n\tfunction pushSong(songID, index) {\n\t return function (dispatch) {\n\t // Handle reference counting\n\t dispatch((0, _entities.incrementRefCount)({\n\t song: [songID]\n\t }));\n\t // Push song\n\t dispatch({\n\t type: PUSH_SONG,\n\t payload: {\n\t song: songID,\n\t index: index\n\t }\n\t });\n\t };\n\t}\n\t\n\tvar POP_SONG = exports.POP_SONG = \"POP_SONG\";\n\t/**\n\t * Pop a given song from the playlist.\n\t *\n\t * Handle the entities store reference counting.\n\t *\n\t * @param songID The id of the song to pop.\n\t *\n\t * @return Dispatch a POP_SONG action.\n\t */\n\tfunction popSong(songID) {\n\t return function (dispatch) {\n\t // Handle reference counting\n\t dispatch((0, _entities.decrementRefCount)({\n\t song: [songID]\n\t }));\n\t // Pop song\n\t dispatch({\n\t type: POP_SONG,\n\t payload: {\n\t song: songID\n\t }\n\t });\n\t };\n\t}\n\t\n\tvar JUMP_TO_SONG = exports.JUMP_TO_SONG = \"JUMP_TO_SONG\";\n\t/**\n\t * Set current playlist index to specific song.\n\t *\n\t * @param songID The id of the song to play.\n\t *\n\t * @return Dispatch a JUMP_TO_SONG action.\n\t */\n\tfunction jumpToSong(songID) {\n\t return function (dispatch) {\n\t // Push song\n\t dispatch({\n\t type: JUMP_TO_SONG,\n\t payload: {\n\t song: songID\n\t }\n\t });\n\t };\n\t}\n\t\n\tvar PLAY_PREVIOUS_SONG = exports.PLAY_PREVIOUS_SONG = \"PLAY_PREVIOUS_SONG\";\n\t/**\n\t * Move one song backwards in the playlist.\n\t *\n\t * @return Dispatch a PLAY_PREVIOUS_SONG action.\n\t */\n\tfunction playPreviousSong() {\n\t return function (dispatch) {\n\t dispatch({\n\t type: PLAY_PREVIOUS_SONG\n\t });\n\t };\n\t}\n\t\n\tvar PLAY_NEXT_SONG = exports.PLAY_NEXT_SONG = \"PLAY_NEXT_SONG\";\n\t/**\n\t * Move one song forward in the playlist.\n\t *\n\t * @return Dispatch a PLAY_NEXT_SONG action.\n\t */\n\tfunction playNextSong() {\n\t return function (dispatch) {\n\t dispatch({\n\t type: PLAY_NEXT_SONG\n\t });\n\t };\n\t}\n\t\n\tvar TOGGLE_RANDOM = exports.TOGGLE_RANDOM = \"TOGGLE_RANDOM\";\n\t/**\n\t * Toggle random mode.\n\t *\n\t * @return Dispatch a TOGGLE_RANDOM action.\n\t */\n\tfunction toggleRandom() {\n\t return {\n\t type: TOGGLE_RANDOM\n\t };\n\t}\n\t\n\tvar TOGGLE_REPEAT = exports.TOGGLE_REPEAT = \"TOGGLE_REPEAT\";\n\t/**\n\t * Toggle repeat mode.\n\t *\n\t * @return Dispatch a TOGGLE_REPEAT action.\n\t */\n\tfunction toggleRepeat() {\n\t return {\n\t type: TOGGLE_REPEAT\n\t };\n\t}\n\t\n\tvar TOGGLE_MUTE = exports.TOGGLE_MUTE = \"TOGGLE_MUTE\";\n\t/**\n\t * Toggle mute mode.\n\t *\n\t * @return Dispatch a TOGGLE_MUTE action.\n\t */\n\tfunction toggleMute() {\n\t return {\n\t type: TOGGLE_MUTE\n\t };\n\t}\n\t\n\tvar SET_VOLUME = exports.SET_VOLUME = \"SET_VOLUME\";\n\t/**\n\t * Set the volume.\n\t *\n\t * @param volume Volume to set (between 0 and 100)\n\t *\n\t * @return Dispatch a SET_VOLUME action.\n\t */\n\tfunction setVolume(volume) {\n\t return {\n\t type: SET_VOLUME,\n\t payload: {\n\t volume: volume\n\t }\n\t };\n\t}\n\n/***/ },\n/* 331 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _hacks = __webpack_require__(598);\n\t\n\tObject.keys(_hacks).forEach(function (key) {\n\t if (key === \"default\" || key === \"__esModule\") return;\n\t Object.defineProperty(exports, key, {\n\t enumerable: true,\n\t get: function get() {\n\t return _hacks[key];\n\t }\n\t });\n\t});\n\t\n\tvar _common = __webpack_require__(597);\n\t\n\tObject.keys(_common).forEach(function (key) {\n\t if (key === \"default\" || key === \"__esModule\") return;\n\t Object.defineProperty(exports, key, {\n\t enumerable: true,\n\t get: function get() {\n\t return _common[key];\n\t }\n\t });\n\t});\n\n/***/ },\n/* 332 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _jquery = __webpack_require__(333);\n\t\n\tObject.keys(_jquery).forEach(function (key) {\n\t if (key === \"default\" || key === \"__esModule\") return;\n\t Object.defineProperty(exports, key, {\n\t enumerable: true,\n\t get: function get() {\n\t return _jquery[key];\n\t }\n\t });\n\t});\n\t\n\tvar _string = __webpack_require__(334);\n\t\n\tObject.keys(_string).forEach(function (key) {\n\t if (key === \"default\" || key === \"__esModule\") return;\n\t Object.defineProperty(exports, key, {\n\t enumerable: true,\n\t get: function get() {\n\t return _string[key];\n\t }\n\t });\n\t});\n\n/***/ },\n/* 333 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {\"use strict\";\n\t\n\t/**\n\t * jQuery prototype extensions.\n\t */\n\t\n\t/**\n\t * Shake animation.\n\t *\n\t * @param intShakes Number of times to shake.\n\t * @param intDistance Distance to move the object.\n\t * @param intDuration Duration of the animation.\n\t *\n\t * @return The element it was applied one, for chaining.\n\t */\n\t$.fn.shake = function (intShakes, intDistance, intDuration) {\n\t this.each(function () {\n\t $(this).css(\"position\", \"relative\");\n\t for (var x = 1; x <= intShakes; x++) {\n\t $(this).animate({ left: intDistance * -1 }, intDuration / intShakes / 4).animate({ left: intDistance }, intDuration / intShakes / 2).animate({ left: 0 }, intDuration / intShakes / 4);\n\t }\n\t });\n\t return this;\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 334 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * String prototype extension.\n\t */\n\t\n\t/**\n\t * Capitalize a string.\n\t *\n\t * @return Capitalized string.\n\t */\n\tString.prototype.capitalize = function () {\n\t return this.charAt(0).toUpperCase() + this.slice(1);\n\t};\n\t\n\t/**\n\t * Strip characters at the end of a string.\n\t *\n\t * @param chars A regex-like element to strip from the end.\n\t * @return Stripped string.\n\t */\n\tString.prototype.rstrip = function (chars) {\n\t var regex = new RegExp(chars + \"$\");\n\t return this.replace(regex, \"\");\n\t};\n\n/***/ },\n/* 335 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _Grid = __webpack_require__(213);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tvar _DismissibleAlert = __webpack_require__(104);\n\t\n\tvar _DismissibleAlert2 = _interopRequireDefault(_DismissibleAlert);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t/**\n\t * Paginated albums grid\n\t */\n\tvar Albums = function (_Component) {\n\t _inherits(Albums, _Component);\n\t\n\t function Albums() {\n\t _classCallCheck(this, Albums);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(Albums).apply(this, arguments));\n\t }\n\t\n\t _createClass(Albums, [{\n\t key: \"render\",\n\t value: function render() {\n\t // Handle error\n\t var error = null;\n\t if (this.props.error) {\n\t error = _react2.default.createElement(_DismissibleAlert2.default, { type: \"danger\", text: this.props.error });\n\t }\n\t\n\t // Set grid props\n\t var grid = {\n\t isFetching: this.props.isFetching,\n\t items: this.props.albums,\n\t itemsType: \"album\",\n\t itemsLabel: \"app.common.album\",\n\t subItemsType: \"tracks\",\n\t subItemsLabel: \"app.common.track\"\n\t };\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t error,\n\t _react2.default.createElement(_Grid2.default, { grid: grid, pagination: this.props.pagination })\n\t );\n\t }\n\t }]);\n\t\n\t return Albums;\n\t}(_react.Component);\n\t\n\texports.default = Albums;\n\t\n\tAlbums.propTypes = {\n\t error: _react.PropTypes.string,\n\t isFetching: _react.PropTypes.bool.isRequired,\n\t albums: _react.PropTypes.instanceOf(_immutable2.default.List).isRequired,\n\t pagination: _react.PropTypes.object.isRequired\n\t};\n\n/***/ },\n/* 336 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _reactFontawesome = __webpack_require__(78);\n\t\n\tvar _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _Album = __webpack_require__(211);\n\t\n\tvar _DismissibleAlert = __webpack_require__(104);\n\t\n\tvar _DismissibleAlert2 = _interopRequireDefault(_DismissibleAlert);\n\t\n\tvar _common = __webpack_require__(65);\n\t\n\tvar _common2 = _interopRequireDefault(_common);\n\t\n\tvar _Artist = __webpack_require__(600);\n\t\n\tvar _Artist2 = _interopRequireDefault(_Artist);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Other components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Styles\n\t\n\t\n\t// Define translations\n\tvar artistMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _common2.default)));\n\t\n\t/**\n\t * Single artist page\n\t */\n\t\n\tvar ArtistCSS = function (_Component) {\n\t _inherits(ArtistCSS, _Component);\n\t\n\t function ArtistCSS() {\n\t _classCallCheck(this, ArtistCSS);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(ArtistCSS).apply(this, arguments));\n\t }\n\t\n\t _createClass(ArtistCSS, [{\n\t key: \"render\",\n\t value: function render() {\n\t // Define loading message\n\t var loading = null;\n\t if (this.props.isFetching) {\n\t loading = _react2.default.createElement(\n\t \"div\",\n\t { className: \"row text-center\" },\n\t _react2.default.createElement(\n\t \"p\",\n\t null,\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"spinner\", className: \"fa-pulse fa-3x fa-fw\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, artistMessages[\"app.common.loading\"])\n\t )\n\t )\n\t );\n\t }\n\t\n\t // Handle error\n\t var error = null;\n\t if (this.props.error) {\n\t error = _react2.default.createElement(_DismissibleAlert2.default, { type: \"danger\", text: this.props.error });\n\t }\n\t\n\t // Build album rows\n\t var albumsRows = [];\n\t var _props = this.props;\n\t var albums = _props.albums;\n\t var songs = _props.songs;\n\t var playAction = _props.playAction;\n\t var playNextAction = _props.playNextAction;\n\t\n\t if (albums && songs) {\n\t albums.forEach(function (album) {\n\t var albumSongs = album.get(\"tracks\").map(function (id) {\n\t return songs.get(id);\n\t });\n\t albumsRows.push(_react2.default.createElement(_Album.AlbumRow, { playAction: playAction, playNextAction: playNextAction, album: album, songs: albumSongs, key: album.get(\"id\") }));\n\t });\n\t }\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t error,\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\", styleName: \"name\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-12\" },\n\t _react2.default.createElement(\n\t \"h1\",\n\t null,\n\t this.props.artist.get(\"name\")\n\t ),\n\t _react2.default.createElement(\"hr\", null)\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-9\" },\n\t _react2.default.createElement(\n\t \"p\",\n\t null,\n\t this.props.artist.get(\"summary\")\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-3 text-center\" },\n\t _react2.default.createElement(\n\t \"p\",\n\t null,\n\t _react2.default.createElement(\"img\", { src: this.props.artist.get(\"art\"), width: \"200\", height: \"200\", className: \"img-responsive img-circle\", styleName: \"art\", alt: this.props.artist.get(\"name\") })\n\t )\n\t )\n\t ),\n\t albumsRows,\n\t loading\n\t );\n\t }\n\t }]);\n\t\n\t return ArtistCSS;\n\t}(_react.Component);\n\t\n\tArtistCSS.propTypes = {\n\t error: _react.PropTypes.string,\n\t isFetching: _react.PropTypes.bool.isRequired,\n\t playAction: _react.PropTypes.func.isRequired,\n\t playNextAction: _react.PropTypes.func.isRequired,\n\t artist: _react.PropTypes.instanceOf(_immutable2.default.Map),\n\t albums: _react.PropTypes.instanceOf(_immutable2.default.List),\n\t songs: _react.PropTypes.instanceOf(_immutable2.default.Map)\n\t};\n\texports.default = (0, _reactCssModules2.default)(ArtistCSS, _Artist2.default);\n\n/***/ },\n/* 337 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _Grid = __webpack_require__(213);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tvar _DismissibleAlert = __webpack_require__(104);\n\t\n\tvar _DismissibleAlert2 = _interopRequireDefault(_DismissibleAlert);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Other components\n\t\n\t\n\t/**\n\t * Paginated artists grid\n\t */\n\tvar Artists = function (_Component) {\n\t _inherits(Artists, _Component);\n\t\n\t function Artists() {\n\t _classCallCheck(this, Artists);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(Artists).apply(this, arguments));\n\t }\n\t\n\t _createClass(Artists, [{\n\t key: \"render\",\n\t value: function render() {\n\t // Handle error\n\t var error = null;\n\t if (this.props.error) {\n\t error = _react2.default.createElement(_DismissibleAlert2.default, { type: \"danger\", text: this.props.error });\n\t }\n\t\n\t // Define grid props\n\t var grid = {\n\t isFetching: this.props.isFetching,\n\t items: this.props.artists,\n\t itemsType: \"artist\",\n\t itemsLabel: \"app.common.artist\",\n\t subItemsType: \"albums\",\n\t subItemsLabel: \"app.common.album\"\n\t };\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t error,\n\t _react2.default.createElement(_Grid2.default, { grid: grid, pagination: this.props.pagination })\n\t );\n\t }\n\t }]);\n\t\n\t return Artists;\n\t}(_react.Component);\n\t\n\texports.default = Artists;\n\t\n\tArtists.propTypes = {\n\t error: _react.PropTypes.string,\n\t isFetching: _react.PropTypes.bool.isRequired,\n\t artists: _react.PropTypes.instanceOf(_immutable2.default.List).isRequired,\n\t pagination: _react.PropTypes.object.isRequired\n\t};\n\n/***/ },\n/* 338 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactFontawesome = __webpack_require__(78);\n\t\n\tvar _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);\n\t\n\tvar _Discover = __webpack_require__(601);\n\t\n\tvar _Discover2 = _interopRequireDefault(_Discover);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // TODO: Discover view is not done\n\t\n\t\n\tvar DiscoverCSS = function (_Component) {\n\t _inherits(DiscoverCSS, _Component);\n\t\n\t function DiscoverCSS() {\n\t _classCallCheck(this, DiscoverCSS);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(DiscoverCSS).apply(this, arguments));\n\t }\n\t\n\t _createClass(DiscoverCSS, [{\n\t key: \"render\",\n\t value: function render() {\n\t var artistsAlbumsSongsDropdown = _react2.default.createElement(\n\t \"div\",\n\t { className: \"btn-group\" },\n\t _react2.default.createElement(\n\t \"button\",\n\t { type: \"button\", className: \"btn btn-default dropdown-toggle\", styleName: \"h2Title\", \"data-toggle\": \"dropdown\", \"aria-haspopup\": \"true\", \"aria-expanded\": \"false\" },\n\t _react2.default.createElement(\n\t \"span\",\n\t { styleName: \"dashedUnderline\" },\n\t \"albums\"\n\t ),\n\t _react2.default.createElement(\"span\", { className: \"caret\", styleName: \"caret\" })\n\t ),\n\t _react2.default.createElement(\n\t \"ul\",\n\t { className: \"dropdown-menu\", styleName: \"dropdown-menu\" },\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t \"a\",\n\t { href: \"#\", role: \"button\" },\n\t \"artists\"\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t { className: \"active\" },\n\t _react2.default.createElement(\n\t \"a\",\n\t { href: \"#\", role: \"button\" },\n\t \"albums\"\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t \"a\",\n\t { href: \"#\", role: \"button\" },\n\t \"songs\"\n\t )\n\t )\n\t )\n\t );\n\t var bobDylan = _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-4 col-sm-2\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"text-center\" },\n\t _react2.default.createElement(\n\t \"a\",\n\t { title: \"Aller à la page de l'artiste\", href: \"#/artist/15\" },\n\t _react2.default.createElement(\"img\", { src: \"\", width: \"200\", height: \"200\", className: \"img-responsive img-circle art\", alt: \"Bob Dylan\" })\n\t ),\n\t _react2.default.createElement(\n\t \"h4\",\n\t null,\n\t \"Bob Dylan\"\n\t )\n\t )\n\t );\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"h2\",\n\t { styleName: \"noMarginTop\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"heart\", \"aria-hidden\": \"true\" }),\n\t \" More \",\n\t artistsAlbumsSongsDropdown,\n\t \" you might like\"\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-4 col-sm-2 col-sm-offset-1\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"text-center\" },\n\t _react2.default.createElement(\n\t \"a\",\n\t { title: \"Aller à la page de l'artiste\", href: \"#/artist/15\" },\n\t _react2.default.createElement(\"img\", { src: \"\", width: \"200\", height: \"200\", className: \"img-responsive img-circle art\", alt: \"Bob Dylan\" })\n\t ),\n\t _react2.default.createElement(\n\t \"h4\",\n\t null,\n\t \"Bob Dylan\"\n\t )\n\t )\n\t ),\n\t bobDylan,\n\t bobDylan,\n\t bobDylan,\n\t bobDylan\n\t ),\n\t _react2.default.createElement(\"hr\", null)\n\t ),\n\t _react2.default.createElement(\n\t \"h2\",\n\t null,\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"thumbs-up\", \"aria-hidden\": \"true\" }),\n\t \" Popular \",\n\t artistsAlbumsSongsDropdown\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-4 col-sm-2 col-sm-offset-1\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"text-center\" },\n\t _react2.default.createElement(\n\t \"a\",\n\t { title: \"Aller à la page de l'artiste\", href: \"#/artist/15\" },\n\t _react2.default.createElement(\"img\", { src: \"\", width: \"200\", height: \"200\", className: \"img-responsive img-circle art\", alt: \"Bob Dylan\" })\n\t ),\n\t _react2.default.createElement(\n\t \"h4\",\n\t null,\n\t \"Bob Dylan\"\n\t )\n\t )\n\t ),\n\t bobDylan,\n\t bobDylan,\n\t bobDylan,\n\t bobDylan\n\t ),\n\t _react2.default.createElement(\"hr\", null)\n\t ),\n\t _react2.default.createElement(\n\t \"h2\",\n\t null,\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"plus-square\", \"aria-hidden\": \"true\" }),\n\t \" Recent additions\"\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-4 col-sm-2 col-sm-offset-1\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"text-center\" },\n\t _react2.default.createElement(\n\t \"a\",\n\t { title: \"Aller à la page de l'artiste\", href: \"#/artist/15\" },\n\t _react2.default.createElement(\"img\", { src: \"\", width: \"200\", height: \"200\", className: \"img-responsive img-circle art\", alt: \"Bob Dylan\" })\n\t ),\n\t _react2.default.createElement(\n\t \"h4\",\n\t null,\n\t \"Bob Dylan\"\n\t )\n\t )\n\t ),\n\t bobDylan,\n\t bobDylan,\n\t bobDylan,\n\t bobDylan\n\t ),\n\t _react2.default.createElement(\"hr\", null)\n\t ),\n\t _react2.default.createElement(\n\t \"h2\",\n\t null,\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"volume-up\", \"aria-hidden\": \"true\" }),\n\t \" Currently playing\"\n\t ),\n\t _react2.default.createElement(\"table\", null)\n\t );\n\t }\n\t }]);\n\t\n\t return DiscoverCSS;\n\t}(_react.Component);\n\t\n\texports.default = DiscoverCSS;\n\t\n\t\n\tDiscoverCSS.propTypes = {};\n\t\n\texports.default = (0, _reactCssModules2.default)(DiscoverCSS, _Discover2.default);\n\n/***/ },\n/* 339 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.LoginForm = undefined;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _reactFontawesome = __webpack_require__(78);\n\t\n\tvar _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);\n\t\n\tvar _i18n = __webpack_require__(91);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _api = __webpack_require__(90);\n\t\n\tvar _api2 = _interopRequireDefault(_api);\n\t\n\tvar _Login = __webpack_require__(350);\n\t\n\tvar _Login2 = _interopRequireDefault(_Login);\n\t\n\tvar _Login3 = __webpack_require__(602);\n\t\n\tvar _Login4 = _interopRequireDefault(_Login3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Styles\n\t\n\t\n\t// Define translations\n\tvar loginMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _api2.default, _Login2.default)));\n\t\n\t/**\n\t * Login form component\n\t */\n\t\n\tvar LoginFormCSSIntl = function (_Component) {\n\t _inherits(LoginFormCSSIntl, _Component);\n\t\n\t function LoginFormCSSIntl(props) {\n\t _classCallCheck(this, LoginFormCSSIntl);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(LoginFormCSSIntl).call(this, props));\n\t\n\t _this.handleSubmit = _this.handleSubmit.bind(_this); // bind this to handleSubmit\n\t return _this;\n\t }\n\t\n\t /**\n\t * Set an error on a form element.\n\t *\n\t * @param formGroup A form element.\n\t * @param hasError Whether or not an error should be set.\n\t *\n\t * @return True if an error is set, false otherwise\n\t */\n\t\n\t\n\t _createClass(LoginFormCSSIntl, [{\n\t key: \"setError\",\n\t value: function setError(formGroup, hasError) {\n\t if (hasError) {\n\t // If error is true, then add error class\n\t formGroup.classList.add(\"has-error\");\n\t formGroup.classList.remove(\"has-success\");\n\t return true;\n\t }\n\t // Else, drop it and put success class\n\t formGroup.classList.remove(\"has-error\");\n\t formGroup.classList.add(\"has-success\");\n\t return false;\n\t }\n\t\n\t /**\n\t * Form submission handler.\n\t *\n\t * @param e JS Event.\n\t */\n\t\n\t }, {\n\t key: \"handleSubmit\",\n\t value: function handleSubmit(e) {\n\t e.preventDefault();\n\t\n\t // Don't handle submit if already logging in\n\t if (this.props.isAuthenticating) {\n\t return;\n\t }\n\t\n\t // Get field values\n\t var username = this.refs.username.value.trim();\n\t var password = this.refs.password.value.trim();\n\t var endpoint = this.refs.endpoint.value.trim();\n\t var rememberMe = this.refs.rememberMe.checked;\n\t\n\t // Check for errors on each field\n\t var hasError = this.setError(this.refs.usernameFormGroup, !username);\n\t hasError |= this.setError(this.refs.passwordFormGroup, !password);\n\t hasError |= this.setError(this.refs.endpointFormGroup, !endpoint);\n\t\n\t if (!hasError) {\n\t // Submit if no error is found\n\t this.props.onSubmit(username, password, endpoint, rememberMe);\n\t }\n\t }\n\t }, {\n\t key: \"componentDidUpdate\",\n\t value: function componentDidUpdate() {\n\t if (this.props.error) {\n\t // On unsuccessful login, set error classes and shake the form\n\t $(this.refs.loginForm).shake(3, 10, 300);\n\t this.setError(this.refs.usernameFormGroup, this.props.error);\n\t this.setError(this.refs.passwordFormGroup, this.props.error);\n\t this.setError(this.refs.endpointFormGroup, this.props.error);\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t // Handle info message\n\t\n\t var infoMessage = this.props.info;\n\t if (this.props.info && this.props.info instanceof _i18n.i18nRecord) {\n\t infoMessage = _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, loginMessages[this.props.info.id], { values: this.props.info.values }));\n\t }\n\t\n\t // Handle error message\n\t var errorMessage = this.props.error;\n\t if (this.props.error && this.props.error instanceof _i18n.i18nRecord) {\n\t errorMessage = _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, loginMessages[this.props.error.id], { values: this.props.error.values }));\n\t }\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t this.props.error ? _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"alert alert-danger\", id: \"loginFormError\", role: \"alert\" },\n\t _react2.default.createElement(\n\t \"p\",\n\t null,\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"exclamation\", \"aria-hidden\": \"true\" }),\n\t \" \",\n\t errorMessage\n\t )\n\t )\n\t ) : null,\n\t this.props.info ? _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"alert alert-info\", id: \"loginFormInfo\", role: \"alert\" },\n\t _react2.default.createElement(\n\t \"p\",\n\t null,\n\t infoMessage\n\t )\n\t )\n\t ) : null,\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"form\",\n\t { className: \"col-sm-9 col-sm-offset-1 col-md-6 col-md-offset-3 text-left form-horizontal login\", onSubmit: this.handleSubmit, ref: \"loginForm\", \"aria-describedby\": \"loginFormInfo loginFormError\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"form-group\", ref: \"usernameFormGroup\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\"input\", { type: \"text\", className: \"form-control\", ref: \"username\", \"aria-label\": formatMessage(loginMessages[\"app.login.username\"]), placeholder: formatMessage(loginMessages[\"app.login.username\"]), autoFocus: true, defaultValue: this.props.username })\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"form-group\", ref: \"passwordFormGroup\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\"input\", { type: \"password\", className: \"form-control\", ref: \"password\", \"aria-label\": formatMessage(loginMessages[\"app.login.password\"]), placeholder: formatMessage(loginMessages[\"app.login.password\"]) })\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"form-group\", ref: \"endpointFormGroup\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\"input\", { type: \"text\", className: \"form-control\", ref: \"endpoint\", \"aria-label\": formatMessage(loginMessages[\"app.login.endpointInputAriaLabel\"]), placeholder: \"http://ampache.example.com\", defaultValue: this.props.endpoint })\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"form-group\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-6 col-xs-12 checkbox\" },\n\t _react2.default.createElement(\n\t \"label\",\n\t { id: \"rememberMeLabel\" },\n\t _react2.default.createElement(\"input\", { type: \"checkbox\", ref: \"rememberMe\", defaultChecked: this.props.rememberMe, \"aria-labelledby\": \"rememberMeLabel\" }),\n\t _react2.default.createElement(_reactIntl.FormattedMessage, loginMessages[\"app.login.rememberMe\"])\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-6 col-xs-12 text-right\", styleName: \"submit\" },\n\t _react2.default.createElement(\"input\", { type: \"submit\", className: \"btn btn-default\", \"aria-label\": formatMessage(loginMessages[\"app.login.signIn\"]), defaultValue: formatMessage(loginMessages[\"app.login.signIn\"]), disabled: this.props.isAuthenticating })\n\t )\n\t )\n\t )\n\t )\n\t )\n\t )\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return LoginFormCSSIntl;\n\t}(_react.Component);\n\t\n\tLoginFormCSSIntl.propTypes = {\n\t username: _react.PropTypes.string,\n\t endpoint: _react.PropTypes.string,\n\t rememberMe: _react.PropTypes.bool,\n\t onSubmit: _react.PropTypes.func.isRequired,\n\t isAuthenticating: _react.PropTypes.bool,\n\t error: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.instanceOf(_i18n.i18nRecord)]),\n\t info: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.instanceOf(_i18n.i18nRecord)]),\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\tvar LoginForm = exports.LoginForm = (0, _reactIntl.injectIntl)((0, _reactCssModules2.default)(LoginFormCSSIntl, _Login4.default));\n\t\n\t/**\n\t * Main login page, including title and login form.\n\t */\n\t\n\tvar LoginCSS = function (_Component2) {\n\t _inherits(LoginCSS, _Component2);\n\t\n\t function LoginCSS() {\n\t _classCallCheck(this, LoginCSS);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(LoginCSS).apply(this, arguments));\n\t }\n\t\n\t _createClass(LoginCSS, [{\n\t key: \"render\",\n\t value: function render() {\n\t var greeting = _react2.default.createElement(\n\t \"p\",\n\t null,\n\t _react2.default.createElement(_reactIntl.FormattedMessage, loginMessages[\"app.login.greeting\"])\n\t );\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"text-center container-fluid\" },\n\t _react2.default.createElement(\n\t \"h1\",\n\t null,\n\t _react2.default.createElement(\"img\", { styleName: \"titleImage\", src: \"./img/ampache-blue.png\", alt: \"A\" }),\n\t \"mpache\"\n\t ),\n\t _react2.default.createElement(\"hr\", null),\n\t !this.props.error && !this.props.info ? greeting : null,\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-sm-9 col-sm-offset-2 col-md-6 col-md-offset-3\" },\n\t _react2.default.createElement(LoginForm, { onSubmit: this.props.onSubmit, username: this.props.username, endpoint: this.props.endpoint, rememberMe: this.props.rememberMe, isAuthenticating: this.props.isAuthenticating, error: this.props.error, info: this.props.info })\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return LoginCSS;\n\t}(_react.Component);\n\t\n\tLoginCSS.propTypes = {\n\t username: _react.PropTypes.string,\n\t endpoint: _react.PropTypes.string,\n\t rememberMe: _react.PropTypes.bool,\n\t onSubmit: _react.PropTypes.func.isRequired,\n\t isAuthenticating: _react.PropTypes.bool,\n\t info: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object]),\n\t error: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.object])\n\t};\n\texports.default = (0, _reactCssModules2.default)(LoginCSS, _Login4.default);\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 340 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.SongsTable = exports.SongsTableRow = undefined;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _reactFontawesome = __webpack_require__(78);\n\t\n\tvar _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _fuse = __webpack_require__(248);\n\t\n\tvar _fuse2 = _interopRequireDefault(_fuse);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _DismissibleAlert = __webpack_require__(104);\n\t\n\tvar _DismissibleAlert2 = _interopRequireDefault(_DismissibleAlert);\n\t\n\tvar _FilterBar = __webpack_require__(212);\n\t\n\tvar _FilterBar2 = _interopRequireDefault(_FilterBar);\n\t\n\tvar _Pagination = __webpack_require__(214);\n\t\n\tvar _Pagination2 = _interopRequireDefault(_Pagination);\n\t\n\tvar _common = __webpack_require__(65);\n\t\n\tvar _common2 = _interopRequireDefault(_common);\n\t\n\tvar _Songs = __webpack_require__(351);\n\t\n\tvar _Songs2 = _interopRequireDefault(_Songs);\n\t\n\tvar _Songs3 = __webpack_require__(603);\n\t\n\tvar _Songs4 = _interopRequireDefault(_Songs3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Other components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Styles\n\t\n\t\n\t// Define translations\n\tvar songsMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _common2.default, _Songs2.default)));\n\t\n\t/**\n\t * A single row for a single song in the songs table.\n\t */\n\t\n\tvar SongsTableRowCSSIntl = function (_Component) {\n\t _inherits(SongsTableRowCSSIntl, _Component);\n\t\n\t function SongsTableRowCSSIntl(props) {\n\t _classCallCheck(this, SongsTableRowCSSIntl);\n\t\n\t // Bind this\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(SongsTableRowCSSIntl).call(this, props));\n\t\n\t _this.onPlayClick = _this.onPlayClick.bind(_this);\n\t _this.onPlayNextClick = _this.onPlayNextClick.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Handle click on play button.\n\t */\n\t\n\t\n\t _createClass(SongsTableRowCSSIntl, [{\n\t key: \"onPlayClick\",\n\t value: function onPlayClick() {\n\t $(this.refs.play).blur();\n\t this.props.playAction(this.props.song.get(\"id\"));\n\t }\n\t\n\t /**\n\t * Handle click on play next button.\n\t */\n\t\n\t }, {\n\t key: \"onPlayNextClick\",\n\t value: function onPlayNextClick() {\n\t $(this.refs.playNext).blur();\n\t this.props.playNextAction(this.props.song.get(\"id\"));\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t\n\t var length = (0, _utils.formatLength)(this.props.song.get(\"time\"));\n\t var linkToArtist = \"/artist/\" + this.props.song.getIn([\"artist\", \"id\"]);\n\t var linkToAlbum = \"/album/\" + this.props.song.getIn([\"album\", \"id\"]);\n\t\n\t return _react2.default.createElement(\n\t \"tr\",\n\t null,\n\t _react2.default.createElement(\n\t \"td\",\n\t null,\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"play\", title: formatMessage(songsMessages[\"app.common.play\"]), onClick: this.onPlayClick, ref: \"play\" },\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.common.play\"])\n\t ),\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"play-circle-o\", \"aria-hidden\": \"true\" })\n\t ),\n\t \" \",\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"playNext\", title: formatMessage(songsMessages[\"app.common.playNext\"]), onClick: this.onPlayNextClick, ref: \"playNext\" },\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.common.playNext\"])\n\t ),\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"plus-circle\", \"aria-hidden\": \"true\" })\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"td\",\n\t { className: \"title\" },\n\t this.props.song.get(\"name\")\n\t ),\n\t _react2.default.createElement(\n\t \"td\",\n\t { className: \"artist\" },\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: linkToArtist },\n\t this.props.song.getIn([\"artist\", \"name\"])\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"td\",\n\t { className: \"album\" },\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: linkToAlbum },\n\t this.props.song.getIn([\"album\", \"name\"])\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"td\",\n\t { className: \"genre\" },\n\t this.props.song.get(\"genre\")\n\t ),\n\t _react2.default.createElement(\n\t \"td\",\n\t { className: \"length\" },\n\t length\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return SongsTableRowCSSIntl;\n\t}(_react.Component);\n\t\n\tSongsTableRowCSSIntl.propTypes = {\n\t playAction: _react.PropTypes.func.isRequired,\n\t playNextAction: _react.PropTypes.func.isRequired,\n\t song: _react.PropTypes.instanceOf(_immutable2.default.Map).isRequired,\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\tvar SongsTableRow = exports.SongsTableRow = (0, _reactIntl.injectIntl)((0, _reactCssModules2.default)(SongsTableRowCSSIntl, _Songs4.default));\n\t\n\t/**\n\t * The songs table.\n\t */\n\t\n\tvar SongsTableCSS = function (_Component2) {\n\t _inherits(SongsTableCSS, _Component2);\n\t\n\t function SongsTableCSS() {\n\t _classCallCheck(this, SongsTableCSS);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(SongsTableCSS).apply(this, arguments));\n\t }\n\t\n\t _createClass(SongsTableCSS, [{\n\t key: \"render\",\n\t value: function render() {\n\t // Handle filtering\n\t var displayedSongs = this.props.songs;\n\t if (this.props.filterText) {\n\t // Use Fuse for the filter\n\t displayedSongs = new _fuse2.default(this.props.songs.toJS(), {\n\t \"keys\": [\"name\"],\n\t \"threshold\": 0.4,\n\t \"include\": [\"score\"]\n\t }).search(this.props.filterText);\n\t // Keep only items in results\n\t displayedSongs = displayedSongs.map(function (item) {\n\t return new _immutable2.default.Map(item.item);\n\t });\n\t }\n\t\n\t // Build song rows\n\t var rows = [];\n\t var _props = this.props;\n\t var playAction = _props.playAction;\n\t var playNextAction = _props.playNextAction;\n\t\n\t displayedSongs.forEach(function (song) {\n\t rows.push(_react2.default.createElement(SongsTableRow, { playAction: playAction, playNextAction: playNextAction, song: song, key: song.get(\"id\") }));\n\t });\n\t\n\t // Handle login icon\n\t var loading = null;\n\t if (this.props.isFetching) {\n\t loading = _react2.default.createElement(\n\t \"p\",\n\t { className: \"text-center\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"spinner\", className: \"fa-pulse fa-3x fa-fw\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.common.loading\"])\n\t )\n\t );\n\t }\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"table-responsive\" },\n\t _react2.default.createElement(\n\t \"table\",\n\t { className: \"table table-hover\", styleName: \"songs\" },\n\t _react2.default.createElement(\n\t \"thead\",\n\t null,\n\t _react2.default.createElement(\n\t \"tr\",\n\t null,\n\t _react2.default.createElement(\"th\", null),\n\t _react2.default.createElement(\n\t \"th\",\n\t null,\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.songs.title\"])\n\t ),\n\t _react2.default.createElement(\n\t \"th\",\n\t { className: \"text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, songsMessages[\"app.common.artist\"], { values: { itemCount: 1 } }))\n\t ),\n\t _react2.default.createElement(\n\t \"th\",\n\t { className: \"text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, songsMessages[\"app.common.album\"], { values: { itemCount: 1 } }))\n\t ),\n\t _react2.default.createElement(\n\t \"th\",\n\t null,\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.songs.genre\"])\n\t ),\n\t _react2.default.createElement(\n\t \"th\",\n\t null,\n\t _react2.default.createElement(_reactIntl.FormattedMessage, songsMessages[\"app.songs.length\"])\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"tbody\",\n\t null,\n\t rows\n\t )\n\t ),\n\t loading\n\t );\n\t }\n\t }]);\n\t\n\t return SongsTableCSS;\n\t}(_react.Component);\n\t\n\tSongsTableCSS.propTypes = {\n\t playAction: _react.PropTypes.func.isRequired,\n\t playNextAction: _react.PropTypes.func.isRequired,\n\t songs: _react.PropTypes.instanceOf(_immutable2.default.List).isRequired,\n\t filterText: _react.PropTypes.string\n\t};\n\tvar SongsTable = exports.SongsTable = (0, _reactCssModules2.default)(SongsTableCSS, _Songs4.default);\n\t\n\t/**\n\t * Complete songs table view with filter and pagination\n\t */\n\t\n\tvar FilterablePaginatedSongsTable = function (_Component3) {\n\t _inherits(FilterablePaginatedSongsTable, _Component3);\n\t\n\t function FilterablePaginatedSongsTable(props) {\n\t _classCallCheck(this, FilterablePaginatedSongsTable);\n\t\n\t var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(FilterablePaginatedSongsTable).call(this, props));\n\t\n\t _this3.state = {\n\t filterText: \"\" };\n\t\n\t _this3.handleUserInput = _this3.handleUserInput.bind(_this3); // Bind this on user input handling\n\t return _this3;\n\t }\n\t\n\t /**\n\t * Method called whenever the filter input is changed.\n\t *\n\t * Update the state accordingly.\n\t *\n\t * @param filterText Content of the filter input.\n\t */\n\t\n\t\n\t _createClass(FilterablePaginatedSongsTable, [{\n\t key: \"handleUserInput\",\n\t value: function handleUserInput(filterText) {\n\t this.setState({\n\t filterText: filterText\n\t });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t // Handle error\n\t var error = null;\n\t if (this.props.error) {\n\t error = _react2.default.createElement(_DismissibleAlert2.default, { type: \"danger\", text: this.props.error });\n\t }\n\t\n\t // Set props\n\t var filterProps = {\n\t filterText: this.state.filterText,\n\t onUserInput: this.handleUserInput\n\t };\n\t var songsTableProps = {\n\t playAction: this.props.playAction,\n\t playNextAction: this.props.playNextAction,\n\t isFetching: this.props.isFetching,\n\t songs: this.props.songs,\n\t filterText: this.state.filterText\n\t };\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t error,\n\t _react2.default.createElement(_FilterBar2.default, filterProps),\n\t _react2.default.createElement(SongsTable, songsTableProps),\n\t _react2.default.createElement(_Pagination2.default, this.props.pagination)\n\t );\n\t }\n\t }]);\n\t\n\t return FilterablePaginatedSongsTable;\n\t}(_react.Component);\n\t\n\texports.default = FilterablePaginatedSongsTable;\n\t\n\tFilterablePaginatedSongsTable.propTypes = {\n\t playAction: _react.PropTypes.func.isRequired,\n\t playNextAction: _react.PropTypes.func.isRequired,\n\t isFetching: _react.PropTypes.bool.isRequired,\n\t error: _react.PropTypes.string,\n\t songs: _react.PropTypes.instanceOf(_immutable2.default.List).isRequired,\n\t pagination: _react.PropTypes.object.isRequired\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 341 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _reactFontawesome = __webpack_require__(78);\n\t\n\tvar _reactFontawesome2 = _interopRequireDefault(_reactFontawesome);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _WebPlayer = __webpack_require__(607);\n\t\n\tvar _WebPlayer2 = _interopRequireDefault(_WebPlayer);\n\t\n\tvar _common = __webpack_require__(65);\n\t\n\tvar _common2 = _interopRequireDefault(_common);\n\t\n\tvar _WebPlayer3 = __webpack_require__(354);\n\t\n\tvar _WebPlayer4 = _interopRequireDefault(_WebPlayer3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Styles\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Define translations\n\tvar webplayerMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _common2.default, _WebPlayer4.default)));\n\t\n\t/**\n\t * Webplayer component.\n\t */\n\t\n\tvar WebPlayerCSSIntl = function (_Component) {\n\t _inherits(WebPlayerCSSIntl, _Component);\n\t\n\t function WebPlayerCSSIntl(props) {\n\t _classCallCheck(this, WebPlayerCSSIntl);\n\t\n\t // Bind this\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(WebPlayerCSSIntl).call(this, props));\n\t\n\t _this.artOpacityHandler = _this.artOpacityHandler.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Handle opacity on album art.\n\t *\n\t * Set opacity on mouseover / mouseout.\n\t *\n\t * @param ev A JS event.\n\t */\n\t\n\t\n\t _createClass(WebPlayerCSSIntl, [{\n\t key: \"artOpacityHandler\",\n\t value: function artOpacityHandler(ev) {\n\t if (ev.type == \"mouseover\") {\n\t // On mouse over, reduce opacity\n\t this.refs.art.style.opacity = \"1\";\n\t this.refs.artText.style.display = \"none\";\n\t } else {\n\t // On mouse out, set opacity back\n\t this.refs.art.style.opacity = \"0.75\";\n\t this.refs.artText.style.display = \"block\";\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t // Get current song (eventually undefined)\n\t\n\t var song = this.props.currentSong;\n\t\n\t // Current status (play or pause) for localization\n\t var playPause = this.props.isPlaying ? \"pause\" : \"play\";\n\t // Volume fontawesome icon\n\t var volumeIcon = this.props.isMute ? \"volume-off\" : \"volume-up\";\n\t\n\t // Get classes for random and repeat buttons\n\t var randomBtnStyles = [\"randomBtn\"];\n\t var repeatBtnStyles = [\"repeatBtn\"];\n\t if (this.props.isRandom) {\n\t randomBtnStyles.push(\"active\");\n\t }\n\t if (this.props.isRepeat) {\n\t repeatBtnStyles.push(\"active\");\n\t }\n\t\n\t // Check if a song is currently playing\n\t var art = null;\n\t var songTitle = null;\n\t var artistName = null;\n\t if (song) {\n\t art = song.get(\"art\");\n\t songTitle = song.get(\"title\");\n\t if (this.props.currentArtist) {\n\t artistName = this.props.currentArtist.get(\"name\");\n\t }\n\t }\n\t\n\t // Click handlers\n\t var onPrev = function () {\n\t $(this.refs.prevBtn).blur();\n\t this.props.onPrev();\n\t }.bind(this);\n\t var onPlayPause = function () {\n\t $(this.refs.playPauseBtn).blur();\n\t this.props.onPlayPause();\n\t }.bind(this);\n\t var onSkip = function () {\n\t $(this.refs.nextBtn).blur();\n\t this.props.onSkip();\n\t }.bind(this);\n\t var onMute = function () {\n\t $(this.refs.volumeBtn).blur();\n\t this.props.onMute();\n\t }.bind(this);\n\t var onRepeat = function () {\n\t $(this.refs.repeatBtn).blur();\n\t this.props.onRepeat();\n\t }.bind(this);\n\t var onRandom = function () {\n\t $(this.refs.randomBtn).blur();\n\t this.props.onRandom();\n\t }.bind(this);\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t { id: \"row\", styleName: \"webplayer\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\", styleName: \"artRow\", onMouseOver: this.artOpacityHandler, onMouseOut: this.artOpacityHandler },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\"img\", { src: art, width: \"200\", height: \"200\", alt: formatMessage(webplayerMessages[\"app.common.art\"]), ref: \"art\", styleName: \"art\" }),\n\t _react2.default.createElement(\n\t \"div\",\n\t { ref: \"artText\" },\n\t artistName && songTitle ? _react2.default.createElement(\n\t \"div\",\n\t null,\n\t _react2.default.createElement(\n\t \"h2\",\n\t null,\n\t songTitle\n\t ),\n\t _react2.default.createElement(\n\t \"h3\",\n\t null,\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, webplayerMessages[\"app.webplayer.by\"])\n\t ),\n\t \" \",\n\t artistName\n\t )\n\t ) : null\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row text-center\", styleName: \"controls\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"prevBtn\", \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.previous\"]), title: formatMessage(webplayerMessages[\"app.webplayer.previous\"]), onClick: onPrev, ref: \"prevBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"step-backward\" })\n\t ),\n\t _react2.default.createElement(\n\t \"button\",\n\t { className: \"play\", styleName: \"playPauseBtn\", \"aria-label\": formatMessage(webplayerMessages[\"app.common.\" + playPause]), title: formatMessage(webplayerMessages[\"app.common.\" + playPause]), onClick: onPlayPause.bind(this), ref: \"playPauseBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: playPause })\n\t ),\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"nextBtn\", \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.next\"]), title: formatMessage(webplayerMessages[\"app.webplayer.next\"]), onClick: onSkip, ref: \"nextBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"step-forward\" })\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12\" },\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"volumeBtn\", \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.volume\"]), title: formatMessage(webplayerMessages[\"app.webplayer.volume\"]), onClick: onMute, ref: \"volumeBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: volumeIcon })\n\t ),\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: repeatBtnStyles.join(\" \"), \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.repeat\"]), title: formatMessage(webplayerMessages[\"app.webplayer.repeat\"]), \"aria-pressed\": this.props.isRepeat, onClick: onRepeat, ref: \"repeatBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"repeat\" })\n\t ),\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: randomBtnStyles.join(\" \"), \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.random\"]), title: formatMessage(webplayerMessages[\"app.webplayer.random\"]), \"aria-pressed\": this.props.isRandom, onClick: onRandom, ref: \"randomBtn\" },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"random\" })\n\t ),\n\t _react2.default.createElement(\n\t \"button\",\n\t { styleName: \"playlistBtn\", \"aria-label\": formatMessage(webplayerMessages[\"app.webplayer.playlist\"]), title: formatMessage(webplayerMessages[\"app.webplayer.playlist\"]) },\n\t _react2.default.createElement(_reactFontawesome2.default, { name: \"list\" })\n\t )\n\t )\n\t )\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return WebPlayerCSSIntl;\n\t}(_react.Component);\n\t\n\tWebPlayerCSSIntl.propTypes = {\n\t isPlaying: _react.PropTypes.bool.isRequired,\n\t isRandom: _react.PropTypes.bool.isRequired,\n\t isRepeat: _react.PropTypes.bool.isRequired,\n\t isMute: _react.PropTypes.bool.isRequired,\n\t volume: _react.PropTypes.number.isRequired,\n\t currentIndex: _react.PropTypes.number.isRequired,\n\t playlist: _react.PropTypes.instanceOf(_immutable2.default.List).isRequired,\n\t currentSong: _react.PropTypes.instanceOf(_immutable2.default.Map),\n\t currentArtist: _react.PropTypes.instanceOf(_immutable2.default.Map),\n\t onPlayPause: _react.PropTypes.func.isRequired,\n\t onPrev: _react.PropTypes.func.isRequired,\n\t onSkip: _react.PropTypes.func.isRequired,\n\t onRandom: _react.PropTypes.func.isRequired,\n\t onRepeat: _react.PropTypes.func.isRequired,\n\t onMute: _react.PropTypes.func.isRequired,\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\t\n\texports.default = (0, _reactIntl.injectIntl)((0, _reactCssModules2.default)(WebPlayerCSSIntl, _WebPlayer2.default, { allowMultiple: true }));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 342 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function($) {\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _reactCssModules = __webpack_require__(46);\n\t\n\tvar _reactCssModules2 = _interopRequireDefault(_reactCssModules);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _WebPlayer = __webpack_require__(386);\n\t\n\tvar _WebPlayer2 = _interopRequireDefault(_WebPlayer);\n\t\n\tvar _common = __webpack_require__(65);\n\t\n\tvar _common2 = _interopRequireDefault(_common);\n\t\n\tvar _Sidebar = __webpack_require__(356);\n\t\n\tvar _Sidebar2 = _interopRequireDefault(_Sidebar);\n\t\n\tvar _Sidebar3 = __webpack_require__(608);\n\t\n\tvar _Sidebar4 = _interopRequireDefault(_Sidebar3);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Other components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Styles\n\t\n\t\n\t// Define translations\n\tvar sidebarLayoutMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _common2.default, _Sidebar2.default)));\n\t\n\t/**\n\t * Sidebar layout component, putting children next to the sidebar menu.\n\t */\n\t\n\tvar SidebarLayoutIntl = function (_Component) {\n\t _inherits(SidebarLayoutIntl, _Component);\n\t\n\t function SidebarLayoutIntl() {\n\t _classCallCheck(this, SidebarLayoutIntl);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(SidebarLayoutIntl).apply(this, arguments));\n\t }\n\t\n\t _createClass(SidebarLayoutIntl, [{\n\t key: \"render\",\n\t value: function render() {\n\t var _React$createElement;\n\t\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t // Check active links\n\t\n\t var isActive = {\n\t discover: this.props.location.pathname == \"/discover\" ? \"active\" : \"link\",\n\t browse: this.props.location.pathname == \"/browse\" ? \"active\" : \"link\",\n\t artists: this.props.location.pathname == \"/artists\" ? \"active\" : \"link\",\n\t albums: this.props.location.pathname == \"/albums\" ? \"active\" : \"link\",\n\t songs: this.props.location.pathname == \"/songs\" ? \"active\" : \"link\",\n\t search: this.props.location.pathname == \"/search\" ? \"active\" : \"link\"\n\t };\n\t\n\t // Hamburger collapsing function\n\t var collapseHamburger = function collapseHamburger() {\n\t $(\"#main-navbar\").collapse(\"hide\");\n\t };\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"row\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12 col-md-1 col-lg-2 sidebar\", styleName: \"sidebar\" },\n\t _react2.default.createElement(\n\t \"button\",\n\t { type: \"button\", className: \"navbar-toggle collapsed\", \"data-toggle\": \"collapse\", \"data-target\": \"#main-navbar\", \"aria-expanded\": \"false\", styleName: \"toggle\" },\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.toggleNavigation\"])\n\t ),\n\t _react2.default.createElement(\"span\", { className: \"icon-bar\", styleName: \"icon-bar\" }),\n\t _react2.default.createElement(\"span\", { className: \"icon-bar\", styleName: \"icon-bar\" }),\n\t _react2.default.createElement(\"span\", { className: \"icon-bar\", styleName: \"icon-bar\" })\n\t ),\n\t _react2.default.createElement(\n\t \"h1\",\n\t { className: \"text-center\", styleName: \"title\" },\n\t _react2.default.createElement(\n\t _reactRouter.IndexLink,\n\t (_React$createElement = { styleName: \"link\", to: \"/\" }, _defineProperty(_React$createElement, \"styleName\", \"link\"), _defineProperty(_React$createElement, \"onClick\", collapseHamburger), _React$createElement),\n\t _react2.default.createElement(\"img\", { alt: \"A\", src: \"./img/ampache-blue.png\", styleName: \"imgTitle\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md\" },\n\t \"mpache\"\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"nav\",\n\t { className: \"collapse\", styleName: \"collapse\", \"aria-label\": formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.mainNavigationMenu\"]), id: \"main-navbar\", role: \"navigation\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"navbar text-center\", styleName: \"icon-navbar\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"container-fluid\", styleName: \"container-fluid\" },\n\t _react2.default.createElement(\n\t \"ul\",\n\t { className: \"nav navbar-nav\", styleName: \"nav\" },\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.home\"]), styleName: \"link\", onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-home\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.home\"])\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/settings\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.settings\"]), styleName: \"link\", onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-wrench\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.settings\"])\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/logout\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.logout\"]), styleName: \"link\", onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-off\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.logout\"])\n\t )\n\t )\n\t )\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"ul\",\n\t { className: \"nav\", styleName: \"nav\" },\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/discover\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.discover\"]), styleName: isActive.discover, onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-globe\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md\" },\n\t \" \",\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.discover\"])\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/browse\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.browse\"]), styleName: isActive.browse, onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-headphones\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md\" },\n\t \" \",\n\t _react2.default.createElement(_reactIntl.FormattedMessage, sidebarLayoutMessages[\"app.sidebarLayout.browse\"])\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"ul\",\n\t { className: \"nav text-center\", styleName: \"nav-list\" },\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/artists\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.browseArtists\"]), styleName: isActive.artists, onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-user\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.artist\"], { values: { itemCount: 42 } }))\n\t ),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md text-capitalize\" },\n\t \" \",\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.artist\"], { values: { itemCount: 42 } }))\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/albums\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.browseAlbums\"]), styleName: isActive.albums, onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-cd\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.album\"], { values: { itemCount: 42 } }))\n\t ),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md text-capitalize\" },\n\t \" \",\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.album\"], { values: { itemCount: 42 } }))\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"li\",\n\t null,\n\t _react2.default.createElement(\n\t _reactRouter.Link,\n\t { to: \"/songs\", title: formatMessage(sidebarLayoutMessages[\"app.sidebarLayout.browseSongs\"]), styleName: isActive.songs, onClick: collapseHamburger },\n\t _react2.default.createElement(\"span\", { className: \"glyphicon glyphicon-music\", \"aria-hidden\": \"true\" }),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"sr-only text-capitalize\" },\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.track\"], { values: { itemCount: 42 } }))\n\t ),\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"hidden-md text-capitalize\" },\n\t \" \",\n\t _react2.default.createElement(_reactIntl.FormattedMessage, _extends({}, sidebarLayoutMessages[\"app.common.track\"], { values: { itemCount: 42 } }))\n\t )\n\t )\n\t )\n\t )\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(_WebPlayer2.default, null)\n\t )\n\t ),\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"col-xs-12 col-md-11 col-md-offset-1 col-lg-10 col-lg-offset-2 main-panel\", styleName: \"main-panel\", onClick: collapseHamburger, role: \"main\" },\n\t this.props.children\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return SidebarLayoutIntl;\n\t}(_react.Component);\n\t\n\tSidebarLayoutIntl.propTypes = {\n\t children: _react.PropTypes.node,\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\texports.default = (0, _reactIntl.injectIntl)((0, _reactCssModules2.default)(SidebarLayoutIntl, _Sidebar4.default));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 343 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t/**\n\t * Simple layout, meaning just enclosing children in a div.\n\t */\n\tvar SimpleLayout = function (_Component) {\n\t _inherits(SimpleLayout, _Component);\n\t\n\t function SimpleLayout() {\n\t _classCallCheck(this, SimpleLayout);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(SimpleLayout).apply(this, arguments));\n\t }\n\t\n\t _createClass(SimpleLayout, [{\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t this.props.children\n\t );\n\t }\n\t }]);\n\t\n\t return SimpleLayout;\n\t}(_react.Component);\n\t\n\texports.default = SimpleLayout;\n\n/***/ },\n/* 344 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n\t * Main container at the top of our application components tree.\n\t *\n\t * Just a div wrapper around children for now.\n\t */\n\t\n\t\n\tvar App = function (_Component) {\n\t _inherits(App, _Component);\n\t\n\t function App() {\n\t _classCallCheck(this, App);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(App).apply(this, arguments));\n\t }\n\t\n\t _createClass(App, [{\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t this.props.children\n\t );\n\t }\n\t }]);\n\t\n\t return App;\n\t}(_react.Component);\n\t\n\texports.default = App;\n\t\n\t\n\tApp.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\n/***/ },\n/* 345 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RequireAuthentication = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n\t * Container wrapping elements neeeding a valid session. Automatically\n\t * redirects to login form in case such session does not exist.\n\t */\n\t\n\t\n\tvar RequireAuthentication = exports.RequireAuthentication = function (_Component) {\n\t _inherits(RequireAuthentication, _Component);\n\t\n\t function RequireAuthentication() {\n\t _classCallCheck(this, RequireAuthentication);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(RequireAuthentication).apply(this, arguments));\n\t }\n\t\n\t _createClass(RequireAuthentication, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Check authentication on mount\n\t this.checkAuth(this.props.isAuthenticated);\n\t }\n\t }, {\n\t key: \"componentWillUpdate\",\n\t value: function componentWillUpdate(newProps) {\n\t // Check authentication on update\n\t this.checkAuth(newProps.isAuthenticated);\n\t }\n\t\n\t /**\n\t * Handle redirection in case user is not authenticated.\n\t *\n\t * @param isAuthenticated A boolean stating whether user has a valid\n\t * session or not.\n\t */\n\t\n\t }, {\n\t key: \"checkAuth\",\n\t value: function checkAuth(isAuthenticated) {\n\t if (!isAuthenticated) {\n\t // Redirect to login, redirecting to the actual page after login.\n\t this.context.router.replace({\n\t pathname: \"/login\",\n\t state: {\n\t nextPathname: this.props.location.pathname,\n\t nextQuery: this.props.location.query\n\t }\n\t });\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(\n\t \"div\",\n\t null,\n\t this.props.isAuthenticated === true ? this.props.children : null\n\t );\n\t }\n\t }]);\n\t\n\t return RequireAuthentication;\n\t}(_react.Component);\n\t\n\tRequireAuthentication.propTypes = {\n\t // Injected by React Router\n\t children: _react.PropTypes.node\n\t};\n\t\n\tRequireAuthentication.contextTypes = {\n\t router: _react.PropTypes.object.isRequired\n\t};\n\t\n\tvar mapStateToProps = function mapStateToProps(state) {\n\t return {\n\t isAuthenticated: state.auth.isAuthenticated\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps)(RequireAuthentication);\n\n/***/ },\n/* 346 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _routes = __webpack_require__(367);\n\t\n\tvar _routes2 = _interopRequireDefault(_routes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**\n\t * Root component to render, setting locale, messages, Router and Store.\n\t */\n\t\n\t\n\tvar Root = function (_Component) {\n\t _inherits(Root, _Component);\n\t\n\t function Root() {\n\t _classCallCheck(this, Root);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(Root).apply(this, arguments));\n\t }\n\t\n\t _createClass(Root, [{\n\t key: \"render\",\n\t value: function render() {\n\t var _props = this.props;\n\t var locale = _props.locale;\n\t var messages = _props.messages;\n\t var defaultLocale = _props.defaultLocale;\n\t var store = _props.store;\n\t var history = _props.history;\n\t var render = _props.render;\n\t\n\t return _react2.default.createElement(\n\t _reactRedux.Provider,\n\t { store: store },\n\t _react2.default.createElement(\n\t _reactIntl.IntlProvider,\n\t { locale: locale, messages: messages, defaultLocale: defaultLocale },\n\t _react2.default.createElement(_reactRouter.Router, { history: history, routes: _routes2.default, render: render })\n\t )\n\t );\n\t }\n\t }]);\n\t\n\t return Root;\n\t}(_react.Component);\n\t\n\texports.default = Root;\n\t\n\t\n\tRoot.propTypes = {\n\t store: _react.PropTypes.object.isRequired,\n\t history: _react.PropTypes.object.isRequired,\n\t render: _react.PropTypes.func,\n\t locale: _react.PropTypes.string.isRequired,\n\t messages: _react.PropTypes.object.isRequired,\n\t defaultLocale: _react.PropTypes.string.isRequired\n\t};\n\n/***/ },\n/* 347 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = {\n\t \"app.api.invalidResponse\": \"Invalid response text.\", // Invalid response from the API\n\t \"app.api.emptyResponse\": \"Empty response text.\", // Empty response from the API\n\t \"app.api.error\": \"Unknown API error.\", // An unknown error occurred from the API\n\t \"app.common.album\": \"{itemCount, plural, one {album} other {albums}}\", // Album\n\t \"app.common.art\": \"Art\", // Art\n\t \"app.common.artist\": \"{itemCount, plural, one {artist} other {artists}}\", // Artist\n\t \"app.common.cancel\": \"Cancel\", // Cancel\n\t \"app.common.close\": \"Close\", // Close\n\t \"app.common.go\": \"Go\", // Go\n\t \"app.common.loading\": \"Loading…\", // Loading indicator\n\t \"app.common.pause\": \"Pause\", // Pause icon description\n\t \"app.common.play\": \"Play\", // Play icon description\n\t \"app.common.playNext\": \"Play next\", // \"Play next icon descripton\"\n\t \"app.common.track\": \"{itemCount, plural, one {track} other {tracks}}\", // Track\n\t \"app.filter.filter\": \"Filter…\", // Filtering input placeholder\n\t \"app.filter.whatAreWeListeningToToday\": \"What are we listening to today?\", // Description for the filter bar\n\t \"app.grid.goToArtistPage\": \"Go to artist page\", // Artist thumbnail link title\n\t \"app.grid.goToAlbumPage\": \"Go to album page\", // Album thumbnail link title\n\t \"app.login.byebye\": \"See you soon!\", // Info message on successful logout\n\t \"app.login.connecting\": \"Connecting…\", // Info message while trying to connect\n\t \"app.login.endpointInputAriaLabel\": \"URL of your Ampache instance (e.g. http://ampache.example.com)\", // ARIA label for the endpoint input\n\t \"app.login.expired\": \"Your session expired… =(\", // Error message on expired session\n\t \"app.login.greeting\": \"Welcome back on Ampache, let's go!\", // Greeting to welcome the user to the app\n\t \"app.login.password\": \"Password\", // Password input placeholder\n\t \"app.login.rememberMe\": \"Remember me\", // Remember me checkbox label\n\t \"app.login.signIn\": \"Sign in\", // Sign in\n\t \"app.login.success\": \"Successfully logged in as { username }!\", // Info message on successful login.\n\t \"app.login.username\": \"Username\", // Username input placeholder\n\t \"app.pagination.current\": \"current\", // Current (page)\n\t \"app.pagination.goToPage\": \"
Go to page {pageNumber}\", // Link content to go to page N. span is here for screen-readers\n\t \"app.pagination.goToPageWithoutMarkup\": \"Go to page {pageNumber}\", // Link title to go to page N\n\t \"app.pagination.pageNavigation\": \"Page navigation\", // ARIA label for the nav block containing pagination\n\t \"app.pagination.pageToGoTo\": \"Page to go to?\", // Title of the pagination modal\n\t \"app.sidebarLayout.browse\": \"Browse\", // Browse\n\t \"app.sidebarLayout.browseAlbums\": \"Browse albums\", // Browse albums\n\t \"app.sidebarLayout.browseArtists\": \"Browse artists\", // Browse artists\n\t \"app.sidebarLayout.browseSongs\": \"Browse songs\", // Browse songs\n\t \"app.sidebarLayout.discover\": \"Discover\", // Discover\n\t \"app.sidebarLayout.home\": \"Home\", // Home\n\t \"app.sidebarLayout.logout\": \"Logout\", // Logout\n\t \"app.sidebarLayout.mainNavigationMenu\": \"Main navigation menu\", // ARIA label for the main navigation menu\n\t \"app.sidebarLayout.settings\": \"Settings\", // Settings\n\t \"app.sidebarLayout.toggleNavigation\": \"Toggle navigation\", // Screen reader description of toggle navigation button\n\t \"app.songs.genre\": \"Genre\", // Genre (song)\n\t \"app.songs.length\": \"Length\", // Length (song)\n\t \"app.songs.title\": \"Title\", // Title (song)\n\t \"app.webplayer.by\": \"by\", // Artist affiliation of a song\n\t \"app.webplayer.next\": \"Next\", // Next button description\n\t \"app.webplayer.playlist\": \"Playlist\", // Playlist button description\n\t \"app.webplayer.previous\": \"Previous\", // Previous button description\n\t \"app.webplayer.random\": \"Random\", // Random button description\n\t \"app.webplayer.repeat\": \"Repeat\", // Repeat button description\n\t \"app.webplayer.volume\": \"Volume\" };\n\n/***/ },\n/* 348 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tmodule.exports = {\n\t \"app.api.invalidResponse\": \"Réponse invalide reçue.\", // Invalid response from the API\n\t \"app.api.emptyResponse\": \"Réponse vide reçue.\", // Empty response from the API\n\t \"app.api.error\": \"Erreur inconnue.\", // An unknown error occurred from the API\n\t \"app.common.album\": \"{itemCount, plural, one {album} other {albums}}\", // Albums\n\t \"app.common.art\": \"Pochette\", // Art\n\t \"app.common.artist\": \"{itemCount, plural, one {artiste} other {artistes}}\", // Artists\n\t \"app.common.cancel\": \"Annuler\", // Cancel\n\t \"app.common.close\": \"Fermer\", // Close\n\t \"app.common.go\": \"Aller\", // Go\n\t \"app.common.loading\": \"Chargement…\", // Loading indicator\n\t \"app.common.pause\": \"Pause\", // Pause icon description\n\t \"app.common.play\": \"Jouer\", // PLay icon description\n\t \"app.common.playNext\": \"Jouer après\", // \"Play next icon descripton\"\n\t \"app.common.track\": \"{itemCount, plural, one {piste} other {pistes}}\", // Track\n\t \"app.filter.filter\": \"Filtrer…\", // Filtering input placeholder\n\t \"app.filter.whatAreWeListeningToToday\": \"Que voulez-vous écouter aujourd'hui ?\", // Description for the filter bar\n\t \"app.grid.goToArtistPage\": \"Aller à la page de l'artiste\", // Artist thumbnail link title\n\t \"app.grid.goToAlbumPage\": \"Aller à la page de l'album\", // Album thumbnail link title\n\t \"app.login.byebye\": \"À bientôt !\", // Info message on successful logout\n\t \"app.login.connecting\": \"Connexion…\", // Info message while trying to connect\n\t \"app.login.endpointInputAriaLabel\": \"URL de votre Ampache (e.g. http://ampache.example.com)\", // ARIA label for the endpoint input\n\t \"app.login.expired\": \"Session expirée… =(\", // Error message on expired session\n\t \"app.login.greeting\": \"Bon retour sur Ampache, c'est parti !\", // Greeting to welcome the user to the app\n\t \"app.login.password\": \"Mot de passe\", // Password input placeholder\n\t \"app.login.rememberMe\": \"Se souvenir\", // Remember me checkbox label\n\t \"app.login.signIn\": \"Connexion\", // Sign in\n\t \"app.login.success\": \"Connecté en tant que { username } !\", // Info message on successful login.\n\t \"app.login.username\": \"Utilisateur\", // Username input placeholder\n\t \"app.pagination.current\": \"actuelle\", // Current (page)\n\t \"app.pagination.goToPage\": \"
Aller à la page {pageNumber}\", // Link content to go to page N. span is here for screen-readers\n\t \"app.pagination.goToPageWithoutMarkup\": \"Aller à la page {pageNumber}\", // Link title to go to page N\n\t \"app.pagination.pageNavigation\": \"Navigation entre les pages\", // ARIA label for the nav block containing pagination\n\t \"app.pagination.pageToGoTo\": \"Page à laquelle aller ?\", // Title of the pagination modal\n\t \"app.sidebarLayout.browse\": \"Explorer\", // Browse\n\t \"app.sidebarLayout.browseAlbums\": \"Parcourir les albums\", // Browse albums\n\t \"app.sidebarLayout.browseArtists\": \"Parcourir les artistes\", // Browse artists\n\t \"app.sidebarLayout.browseSongs\": \"Parcourir les pistes\", // Browse songs\n\t \"app.sidebarLayout.discover\": \"Découvrir\", // Discover\n\t \"app.sidebarLayout.home\": \"Accueil\", // Home\n\t \"app.sidebarLayout.logout\": \"Déconnexion\", // Logout\n\t \"app.sidebarLayout.mainNavigationMenu\": \"Menu principal\", // ARIA label for the main navigation menu\n\t \"app.sidebarLayout.settings\": \"Préférences\", // Settings\n\t \"app.sidebarLayout.toggleNavigation\": \"Afficher le menu\", // Screen reader description of toggle navigation button\n\t \"app.songs.genre\": \"Genre\", // Genre (song)\n\t \"app.songs.length\": \"Durée\", // Length (song)\n\t \"app.songs.title\": \"Titre\", // Title (song)\n\t \"app.webplayer.by\": \"par\", // Artist affiliation of a song\n\t \"app.webplayer.next\": \"Suivant\", // Next button description\n\t \"app.webplayer.playlist\": \"Liste de lecture\", // Playlist button description\n\t \"app.webplayer.previous\": \"Précédent\", // Previous button description\n\t \"app.webplayer.random\": \"Aléatoire\", // Random button description\n\t \"app.webplayer.repeat\": \"Répéter\", // Repeat button description\n\t \"app.webplayer.volume\": \"Volume\" };\n\n/***/ },\n/* 349 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t// Export all the existing locales\n\tmodule.exports = {\n\t \"en-US\": __webpack_require__(347),\n\t \"fr-FR\": __webpack_require__(348)\n\t};\n\n/***/ },\n/* 350 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.login.username\",\n\t defaultMessage: \"Username\",\n\t description: \"Username input placeholder\"\n\t}, {\n\t id: \"app.login.password\",\n\t defaultMessage: \"Password\",\n\t description: \"Password input placeholder\"\n\t}, {\n\t id: \"app.login.signIn\",\n\t defaultMessage: \"Sign in\",\n\t description: \"Sign in\"\n\t}, {\n\t id: \"app.login.endpointInputAriaLabel\",\n\t defaultMessage: \"URL of your Ampache instance (e.g. http://ampache.example.com)\",\n\t description: \"ARIA label for the endpoint input\"\n\t}, {\n\t id: \"app.login.rememberMe\",\n\t description: \"Remember me checkbox label\",\n\t defaultMessage: \"Remember me\"\n\t}, {\n\t id: \"app.login.greeting\",\n\t description: \"Greeting to welcome the user to the app\",\n\t defaultMessage: \"Welcome back on Ampache, let's go!\"\n\t},\n\t\n\t// From the auth reducer\n\t{\n\t id: \"app.login.connecting\",\n\t defaultMessage: \"Connecting…\",\n\t description: \"Info message while trying to connect\"\n\t}, {\n\t id: \"app.login.success\",\n\t defaultMessage: \"Successfully logged in as { username }!\",\n\t description: \"Info message on successful login.\"\n\t}, {\n\t id: \"app.login.byebye\",\n\t defaultMessage: \"See you soon!\",\n\t description: \"Info message on successful logout\"\n\t}, {\n\t id: \"app.login.expired\",\n\t defaultMessage: \"Your session expired… =(\",\n\t description: \"Error message on expired session\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 351 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t \"id\": \"app.songs.title\",\n\t \"description\": \"Title (song)\",\n\t \"defaultMessage\": \"Title\"\n\t}, {\n\t \"id\": \"app.songs.genre\",\n\t \"description\": \"Genre (song)\",\n\t \"defaultMessage\": \"Genre\"\n\t}, {\n\t \"id\": \"app.songs.length\",\n\t \"description\": \"Length (song)\",\n\t \"defaultMessage\": \"Length\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 352 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.filter.filter\",\n\t defaultMessage: \"Filter…\",\n\t description: \"Filtering input placeholder\"\n\t}, {\n\t id: \"app.filter.whatAreWeListeningToToday\",\n\t description: \"Description for the filter bar\",\n\t defaultMessage: \"What are we listening to today?\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 353 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.pagination.goToPage\",\n\t defaultMessage: \"
Go to page {pageNumber}\",\n\t description: \"Link content to go to page N. span is here for screen-readers\"\n\t}, {\n\t id: \"app.pagination.goToPageWithoutMarkup\",\n\t defaultMessage: \"Go to page {pageNumber}\",\n\t description: \"Link title to go to page N\"\n\t}, {\n\t id: \"app.pagination.pageNavigation\",\n\t defaultMessage: \"Page navigation\",\n\t description: \"ARIA label for the nav block containing pagination\"\n\t}, {\n\t id: \"app.pagination.pageToGoTo\",\n\t description: \"Title of the pagination modal\",\n\t defaultMessage: \"Page to go to?\"\n\t}, {\n\t id: \"app.pagination.current\",\n\t description: \"Current (page)\",\n\t defaultMessage: \"current\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 354 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.webplayer.by\",\n\t defaultMessage: \"by\",\n\t description: \"Artist affiliation of a song\"\n\t}, {\n\t id: \"app.webplayer.previous\",\n\t defaultMessage: \"Previous\",\n\t description: \"Previous button description\"\n\t}, {\n\t id: \"app.webplayer.next\",\n\t defaultMessage: \"Next\",\n\t description: \"Next button description\"\n\t}, {\n\t id: \"app.webplayer.volume\",\n\t defaultMessage: \"Volume\",\n\t description: \"Volume button description\"\n\t}, {\n\t id: \"app.webplayer.repeat\",\n\t defaultMessage: \"Repeat\",\n\t description: \"Repeat button description\"\n\t}, {\n\t id: \"app.webplayer.random\",\n\t defaultMessage: \"Random\",\n\t description: \"Random button description\"\n\t}, {\n\t id: \"app.webplayer.playlist\",\n\t defaultMessage: \"Playlist\",\n\t description: \"Playlist button description\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 355 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.grid.goToArtistPage\",\n\t defaultMessage: \"Go to artist page\",\n\t description: \"Artist thumbnail link title\"\n\t}, {\n\t id: \"app.grid.goToAlbumPage\",\n\t defaultMessage: \"Go to album page\",\n\t description: \"Album thumbnail link title\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 356 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar messages = [{\n\t id: \"app.sidebarLayout.mainNavigationMenu\",\n\t description: \"ARIA label for the main navigation menu\",\n\t defaultMessage: \"Main navigation menu\"\n\t}, {\n\t id: \"app.sidebarLayout.home\",\n\t description: \"Home\",\n\t defaultMessage: \"Home\"\n\t}, {\n\t id: \"app.sidebarLayout.settings\",\n\t description: \"Settings\",\n\t defaultMessage: \"Settings\"\n\t}, {\n\t id: \"app.sidebarLayout.logout\",\n\t description: \"Logout\",\n\t defaultMessage: \"Logout\"\n\t}, {\n\t id: \"app.sidebarLayout.discover\",\n\t description: \"Discover\",\n\t defaultMessage: \"Discover\"\n\t}, {\n\t id: \"app.sidebarLayout.browse\",\n\t description: \"Browse\",\n\t defaultMessage: \"Browse\"\n\t}, {\n\t id: \"app.sidebarLayout.browseArtists\",\n\t description: \"Browse artists\",\n\t defaultMessage: \"Browse artists\"\n\t}, {\n\t id: \"app.sidebarLayout.browseAlbums\",\n\t description: \"Browse albums\",\n\t defaultMessage: \"Browse albums\"\n\t}, {\n\t id: \"app.sidebarLayout.browseSongs\",\n\t description: \"Browse songs\",\n\t defaultMessage: \"Browse songs\"\n\t}, {\n\t id: \"app.sidebarLayout.toggleNavigation\",\n\t description: \"Screen reader description of toggle navigation button\",\n\t defaultMessage: \"Toggle navigation\"\n\t}];\n\t\n\texports.default = messages;\n\n/***/ },\n/* 357 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.song = exports.album = exports.artist = undefined;\n\t\n\tvar _normalizr = __webpack_require__(281);\n\t\n\t// Define normalizr schemas for major entities returned by the API\n\tvar artist = exports.artist = new _normalizr.Schema(\"artist\"); /** Artist schema */\n\t/**\n\t * This file defines API related models.\n\t */\n\t\n\t// NPM imports\n\tvar album = exports.album = new _normalizr.Schema(\"album\"); /** Album schema */\n\tvar song = exports.song = new _normalizr.Schema(\"song\"); /** Song schema */\n\t\n\t// Explicit relations between them\n\tartist.define({ // Artist has albums and songs (tracks)\n\t albums: (0, _normalizr.arrayOf)(album),\n\t songs: (0, _normalizr.arrayOf)(song)\n\t});\n\t\n\talbum.define({ // Album has artist, tracks and tags\n\t artist: artist,\n\t tracks: (0, _normalizr.arrayOf)(song)\n\t});\n\t\n\tsong.define({ // Track has artist and album\n\t artist: artist,\n\t album: album\n\t});\n\n/***/ },\n/* 358 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.stateRecord = exports.tokenRecord = undefined;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/** Record to store token parameters */\n\tvar tokenRecord = exports.tokenRecord = _immutable2.default.Record({\n\t token: null, /** Token string */\n\t expires: null });\n\t\n\t/** Record to store the full auth state */\n\t/**\n\t * This file defines authentication related models.\n\t */\n\t\n\t// NPM imports\n\tvar stateRecord = exports.stateRecord = new _immutable2.default.Record({\n\t token: new tokenRecord(), /** Auth token */\n\t username: null, /** Username */\n\t endpoint: null, /** Ampache server base URL */\n\t rememberMe: false, /** Whether to remember me or not */\n\t isAuthenticated: false, /** Whether authentication is ok or not */\n\t isAuthenticating: false, /** Whether authentication is in progress or not */\n\t error: null, /** An error string */\n\t info: null, /** An info string */\n\t timerID: null });\n\n/***/ },\n/* 359 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.stateRecord = undefined;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/** Record to store the shared entities. */\n\tvar stateRecord = exports.stateRecord = new _immutable2.default.Record({\n\t isFetching: false, /** Whether API fetching is in progress */\n\t error: null, /** An error string */\n\t refCounts: new _immutable2.default.Map({\n\t album: new _immutable2.default.Map(),\n\t artist: new _immutable2.default.Map(),\n\t song: new _immutable2.default.Map()\n\t }), /** Map of id => reference count for each object type (garbage collection) */\n\t entities: new _immutable2.default.Map({\n\t album: new _immutable2.default.Map(),\n\t artist: new _immutable2.default.Map(),\n\t song: new _immutable2.default.Map()\n\t }) }); /**\n\t * This file defines entities storage models.\n\t */\n\t\n\t// NPM imports\n\n/***/ },\n/* 360 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.stateRecord = undefined;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/** Record to store the paginated pages state. */\n\tvar stateRecord = exports.stateRecord = new _immutable2.default.Record({\n\t type: null, /** Type of the paginated entries */\n\t result: new _immutable2.default.List(), /** List of IDs of the resulting entries, maps to the entities store */\n\t currentPage: 1, /** Number of current page */\n\t nPages: 1 }); // NPM import\n\n/***/ },\n/* 361 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.stateRecord = undefined;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/** Record to store the webplayer state. */\n\tvar stateRecord = exports.stateRecord = new _immutable2.default.Record({\n\t isPlaying: false, /** Whether webplayer is playing */\n\t isRandom: false, /** Whether random mode is on */\n\t isRepeat: false, /** Whether repeat mode is on */\n\t isMute: false, /** Whether sound is muted or not */\n\t volume: 100, /** Current volume, between 0 and 100 */\n\t currentIndex: 0, /** Current index in the playlist */\n\t playlist: new _immutable2.default.List() }); /**\n\t * This file defines authentication related models.\n\t */\n\t\n\t// NPM imports\n\n/***/ },\n/* 362 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createReducer;\n\t\n\tvar _jsCookie = __webpack_require__(256);\n\t\n\tvar _jsCookie2 = _interopRequireDefault(_jsCookie);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _i18n = __webpack_require__(91);\n\t\n\tvar _auth = __webpack_require__(358);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /**\n\t * This implements the auth reducer, storing and updating authentication state.\n\t */\n\t\n\t// NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Models\n\t\n\t\n\t// Actions\n\t\n\t\n\t/**\n\t * Initial state, load data from cookies if set\n\t */\n\tvar initialState = new _auth.stateRecord();\n\t// Get token\n\tvar initialToken = _jsCookie2.default.getJSON(\"token\");\n\tif (initialToken) {\n\t initialToken.expires = new Date(initialToken.expires);\n\t initialState = initialState.set(\"token\", new _auth.tokenRecord({ token: initialToken.token, expires: new Date(initialToken.expires) }));\n\t}\n\t// Get username\n\tvar initialUsername = _jsCookie2.default.get(\"username\");\n\tif (initialUsername) {\n\t initialState = initialState.set(\"username\", initialUsername);\n\t}\n\t// Get endpoint\n\tvar initialEndpoint = _jsCookie2.default.get(\"endpoint\");\n\tif (initialEndpoint) {\n\t initialState = initialState.set(\"endpoint\", initialEndpoint);\n\t}\n\t// Set remember me\n\tif (initialUsername && initialEndpoint) {\n\t initialState = initialState.set(\"rememberMe\", true);\n\t}\n\t\n\t/**\n\t * Reducers\n\t */\n\texports.default = (0, _utils.createReducer)(initialState, (_createReducer = {}, _defineProperty(_createReducer, _actions.LOGIN_USER_REQUEST, function () {\n\t return new _auth.stateRecord({\n\t isAuthenticating: true,\n\t info: new _i18n.i18nRecord({\n\t id: \"app.login.connecting\",\n\t values: {}\n\t })\n\t });\n\t}), _defineProperty(_createReducer, _actions.LOGIN_USER_SUCCESS, function (state, payload) {\n\t return new _auth.stateRecord({\n\t \"isAuthenticated\": true,\n\t \"token\": new _auth.tokenRecord(payload.token),\n\t \"username\": payload.username,\n\t \"endpoint\": payload.endpoint,\n\t \"rememberMe\": payload.rememberMe,\n\t \"info\": new _i18n.i18nRecord({\n\t id: \"app.login.success\",\n\t values: { username: payload.username }\n\t }),\n\t \"timerID\": payload.timerID\n\t });\n\t}), _defineProperty(_createReducer, _actions.LOGIN_USER_FAILURE, function (state, payload) {\n\t return new _auth.stateRecord({\n\t \"error\": payload.error\n\t });\n\t}), _defineProperty(_createReducer, _actions.LOGIN_USER_EXPIRED, function (state, payload) {\n\t return new _auth.stateRecord({\n\t \"isAuthenticated\": false,\n\t \"error\": payload.error\n\t });\n\t}), _defineProperty(_createReducer, _actions.LOGOUT_USER, function () {\n\t return new _auth.stateRecord({\n\t info: new _i18n.i18nRecord({\n\t id: \"app.login.byebye\",\n\t values: {}\n\t })\n\t });\n\t}), _createReducer));\n\n/***/ },\n/* 363 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createReducer;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _entities = __webpack_require__(359);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /**\n\t * This implements the global entities reducer.\n\t */\n\t\n\t// NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Models\n\t\n\t\n\t// Actions\n\t\n\t\n\t/**\n\t * Helper methods\n\t */\n\t\n\t/**\n\t * Update the reference counter for a given item.\n\t *\n\t * Do not do any garbage collection.\n\t *\n\t * @param state The state object to update.\n\t * @param keyPath The keyPath to update, from the refCount key.\n\t * @param incr The increment (or decrement) for the reference counter.\n\t *\n\t * @return An updated state.\n\t */\n\tfunction updateRefCount(state, keyPath, incr) {\n\t // Prepend refCounts to keyPath\n\t var refCountKeyPath = Array.concat([\"refCounts\"], keyPath);\n\t // Get updated value\n\t var newRefCount = state.getIn(refCountKeyPath) + incr;\n\t if (isNaN(newRefCount)) {\n\t // If NaN, reference does not exist, so set it to ±1\n\t newRefCount = Math.sign(incr);\n\t }\n\t // Update state\n\t return state.setIn(refCountKeyPath, newRefCount);\n\t}\n\t\n\t/**\n\t * Update the reference counter of a given entity, taking into account the\n\t * nested objects.\n\t *\n\t * Do not do any garbage collection.\n\t *\n\t * @param state The state object to update.\n\t * @param itemName The type of the entity object.\n\t * @param id The id of the entity.\n\t * @param entity The entity object, as Immutable.\n\t * @param incr The increment (or decrement) for the reference counter.\n\t *\n\t * @return An updated state.\n\t */\n\tfunction updateEntityRefCount(state, itemName, id, entity, incr) {\n\t var newState = state;\n\t var albums = null;\n\t var tracks = null;\n\t switch (itemName) {\n\t case \"artist\":\n\t // Update artist refCount\n\t newState = updateRefCount(newState, [\"artist\", id], incr);\n\t // Update nested albums refCount\n\t albums = entity.get(\"albums\");\n\t if (_immutable2.default.List.isList(albums)) {\n\t albums.forEach(function (id) {\n\t newState = updateRefCount(newState, [\"album\", id], incr);\n\t });\n\t }\n\t // Update nested tracks refCount\n\t tracks = entity.get(\"songs\");\n\t if (_immutable2.default.List.isList(tracks)) {\n\t tracks.forEach(function (id) {\n\t newState = updateRefCount(newState, [\"song\", id], incr);\n\t });\n\t }\n\t break;\n\t case \"album\":\n\t // Update album refCount\n\t newState = updateRefCount(newState, [\"album\", id], incr);\n\t // Update nested artist refCount\n\t newState = updateRefCount(newState, [\"artist\", entity.get(\"artist\")], incr);\n\t // Update nested tracks refCount\n\t tracks = entity.get(\"tracks\");\n\t if (_immutable2.default.List.isList(tracks)) {\n\t tracks.forEach(function (id) {\n\t newState = updateRefCount(newState, [\"song\", id], incr);\n\t });\n\t }\n\t break;\n\t case \"song\":\n\t // Update track refCount\n\t newState = updateRefCount(newState, [\"song\", id], incr);\n\t // Update nested artist refCount\n\t newState = updateRefCount(newState, [\"artist\", entity.get(\"artist\")], incr);\n\t // Update nested album refCount\n\t newState = updateRefCount(newState, [\"album\", entity.get(\"album\")], incr);\n\t break;\n\t default:\n\t // Just update the entity, no nested entities\n\t newState = updateRefCount(newState, [itemName, id], incr);\n\t break;\n\t }\n\t return newState;\n\t}\n\t\n\t/**\n\t *\n\t */\n\tfunction garbageCollection(state) {\n\t var newState = state;\n\t state.refCounts.forEach(function (refCounts, itemName) {\n\t refCounts.forEach(function (refCount, id) {\n\t if (refCount < 1) {\n\t // Garbage collection\n\t newState = newState.deleteIn([\"entities\", itemName, id]);\n\t newState = newState.deleteIn([\"refCounts\", itemName, id]);\n\t }\n\t });\n\t });\n\t return newState;\n\t}\n\t\n\t/**\n\t * Initial state\n\t */\n\tvar initialState = new _entities.stateRecord();\n\t\n\t/**\n\t * Reducer\n\t */\n\texports.default = (0, _utils.createReducer)(initialState, (_createReducer = {}, _defineProperty(_createReducer, _actions.API_REQUEST, function (state) {\n\t return state.set(\"isFetching\", true).set(\"error\", null);\n\t}), _defineProperty(_createReducer, _actions.API_FAILURE, function (state, payload) {\n\t return state.set(\"isFetching\", false).set(\"error\", payload.error);\n\t}), _defineProperty(_createReducer, _actions.PUSH_ENTITIES, function (state, payload) {\n\t var newState = state;\n\t\n\t // Unset error and isFetching\n\t newState = state.set(\"isFetching\", false).set(\"error\", payload.error);\n\t\n\t // Merge entities\n\t newState = newState.mergeDeepIn([\"entities\"], payload.entities);\n\t\n\t // Increment reference counter\n\t payload.refCountType.forEach(function (itemName) {\n\t var entities = payload.entities[itemName];\n\t for (var id in entities) {\n\t var entity = newState.getIn([\"entities\", itemName, id]);\n\t newState = updateEntityRefCount(newState, itemName, id, entity, 1);\n\t }\n\t });\n\t\n\t return newState;\n\t}), _defineProperty(_createReducer, _actions.INCREMENT_REFCOUNT, function (state, payload) {\n\t var newState = state;\n\t\n\t // Increment reference counter\n\t\n\t var _loop = function _loop(itemName) {\n\t var entities = payload.entities[itemName];\n\t entities.forEach(function (id) {\n\t var entity = newState.getIn([\"entities\", itemName, id]);\n\t newState = updateEntityRefCount(newState, itemName, id, entity, 1);\n\t });\n\t };\n\t\n\t for (var itemName in payload.entities) {\n\t _loop(itemName);\n\t }\n\t\n\t return newState;\n\t}), _defineProperty(_createReducer, _actions.DECREMENT_REFCOUNT, function (state, payload) {\n\t var newState = state;\n\t\n\t // Decrement reference counter\n\t\n\t var _loop2 = function _loop2(itemName) {\n\t var entities = payload.entities[itemName];\n\t entities.forEach(function (id) {\n\t var entity = newState.getIn([\"entities\", itemName, id]);\n\t newState = updateEntityRefCount(newState, itemName, id, entity, -1);\n\t });\n\t };\n\t\n\t for (var itemName in payload.entities) {\n\t _loop2(itemName);\n\t }\n\t\n\t // Perform garbage collection\n\t newState = garbageCollection(newState);\n\t\n\t return newState;\n\t}), _defineProperty(_createReducer, _actions.INVALIDATE_STORE, function () {\n\t return new _entities.stateRecord();\n\t}), _createReducer));\n\n/***/ },\n/* 364 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _reactRouterRedux = __webpack_require__(97);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _auth = __webpack_require__(362);\n\t\n\tvar _auth2 = _interopRequireDefault(_auth);\n\t\n\tvar _entities = __webpack_require__(363);\n\t\n\tvar _entities2 = _interopRequireDefault(_entities);\n\t\n\tvar _paginated = __webpack_require__(365);\n\t\n\tvar _paginated2 = _interopRequireDefault(_paginated);\n\t\n\tvar _webplayer = __webpack_require__(366);\n\t\n\tvar _webplayer2 = _interopRequireDefault(_webplayer);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar ActionTypes = _interopRequireWildcard(_actions);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t// Build paginated reducer\n\tvar paginated = (0, _paginated2.default)([ActionTypes.API_REQUEST, ActionTypes.API_SUCCESS, ActionTypes.API_FAILURE]);\n\t\n\t// Export the combined reducers\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Import all the available reducers\n\t/**\n\t *\n\t */\n\t\n\t// NPM imports\n\texports.default = (0, _redux.combineReducers)({\n\t routing: _reactRouterRedux.routerReducer,\n\t auth: _auth2.default,\n\t entities: _entities2.default,\n\t paginated: paginated,\n\t webplayer: _webplayer2.default\n\t});\n\n/***/ },\n/* 365 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }(); /**\n\t * This implements a wrapper to create reducers for paginated content.\n\t */\n\t\n\t// NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Models\n\t\n\t\n\t// Actions\n\t\n\t\n\texports.default = paginated;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _paginated = __webpack_require__(360);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\t/** Initial state of the reducer */\n\tvar initialState = new _paginated.stateRecord();\n\t\n\t/**\n\t * Creates a reducer managing pagination, given the action types to handle.\n\t */\n\tfunction paginated(types) {\n\t var _createReducer;\n\t\n\t // Check parameters\n\t if (!Array.isArray(types) || types.length !== 3) {\n\t throw new Error(\"Expected types to be an array of three elements.\");\n\t }\n\t if (!types.every(function (t) {\n\t return typeof t === \"string\";\n\t })) {\n\t throw new Error(\"Expected types to be strings.\");\n\t }\n\t\n\t var _types = _slicedToArray(types, 3);\n\t\n\t var requestType = _types[0];\n\t var successType = _types[1];\n\t var failureType = _types[2];\n\t\n\t // Create reducer\n\t\n\t return (0, _utils.createReducer)(initialState, (_createReducer = {}, _defineProperty(_createReducer, requestType, function (state) {\n\t return state;\n\t }), _defineProperty(_createReducer, successType, function (state, payload) {\n\t return state.set(\"type\", payload.type).set(\"result\", _immutable2.default.fromJS(payload.result)).set(\"nPages\", payload.nPages).set(\"currentPage\", payload.currentPage);\n\t }), _defineProperty(_createReducer, failureType, function (state) {\n\t return state;\n\t }), _defineProperty(_createReducer, _actions.CLEAR_PAGINATED_RESULTS, function (state) {\n\t return state.set(\"result\", new _immutable2.default.List());\n\t }), _defineProperty(_createReducer, _actions.INVALIDATE_STORE, function () {\n\t // Reset state on invalidation\n\t return new _paginated.stateRecord();\n\t }), _createReducer));\n\t}\n\n/***/ },\n/* 366 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createReducer;\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _webplayer = __webpack_require__(361);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /**\n\t * This implements the webplayer reducers.\n\t */\n\t\n\t// NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Models\n\t\n\t\n\t// Actions\n\t\n\t\n\t/**\n\t * Initial state\n\t */\n\t\n\tvar initialState = new _webplayer.stateRecord();\n\t\n\t/**\n\t * Helper functions\n\t */\n\t\n\t/**\n\t * Stop playback in reducer helper.\n\t *\n\t * @param state Current state to update.\n\t */\n\tfunction stopPlayback(state) {\n\t return state.set(\"isPlaying\", false).set(\"currentIndex\", 0).set(\"playlist\", new _immutable2.default.List());\n\t}\n\t\n\t/**\n\t * Reducers\n\t */\n\t\n\texports.default = (0, _utils.createReducer)(initialState, (_createReducer = {}, _defineProperty(_createReducer, _actions.PLAY_PAUSE, function (state, payload) {\n\t // Force play or pause\n\t return state.set(\"isPlaying\", payload.isPlaying);\n\t}), _defineProperty(_createReducer, _actions.STOP_PLAYBACK, function (state) {\n\t // Clear the playlist\n\t return stopPlayback(state);\n\t}), _defineProperty(_createReducer, _actions.SET_PLAYLIST, function (state, payload) {\n\t // Set current playlist, reset playlist index\n\t return state.set(\"playlist\", new _immutable2.default.List(payload.playlist)).set(\"currentIndex\", 0);\n\t}), _defineProperty(_createReducer, _actions.PUSH_SONG, function (state, payload) {\n\t // Push song to playlist\n\t var newState = state;\n\t if (payload.index) {\n\t // If index is specified, insert it at this position\n\t newState = newState.set(\"playlist\", newState.get(\"playlist\").insert(payload.index, payload.song));\n\t if (payload.index <= newState.get(\"currentIndex\")) {\n\t // \"<=\" because insertion is made before\n\t // If we insert before the current position in the playlist, we\n\t // update the current position to keep the currently played\n\t // music\n\t newState = newState.set(\"currentIndex\", Math.min(newState.get(\"currentIndex\") + 1, newState.get(\"playlist\").size));\n\t }\n\t } else {\n\t // Else, push at the end of the playlist\n\t newState = newState.set(\"playlist\", newState.get(\"playlist\").push(payload.song));\n\t }\n\t return newState;\n\t}), _defineProperty(_createReducer, _actions.POP_SONG, function (state, payload) {\n\t // Pop song from playlist\n\t var newState = state.deleteIn([\"playlist\", payload.index]);\n\t if (payload.index < state.get(\"currentIndex\")) {\n\t // If we delete before the current position in the playlist, we\n\t // update the current position to keep the currently played\n\t // music\n\t newState = newState.set(\"currentIndex\", Math.max(newState.get(\"currentIndex\") - 1, 0));\n\t }\n\t return newState;\n\t}), _defineProperty(_createReducer, _actions.JUMP_TO_SONG, function (state, payload) {\n\t // Set current index\n\t var newCurrentIndex = state.get(\"playlist\").findKey(function (x) {\n\t return x == payload.song;\n\t });\n\t return state.set(\"currentIndex\", newCurrentIndex);\n\t}), _defineProperty(_createReducer, _actions.PLAY_PREVIOUS_SONG, function (state) {\n\t var newIndex = state.get(\"currentIndex\") - 1;\n\t if (newIndex < 0) {\n\t // If there is an overlow on the left of the playlist, just stop\n\t // playback\n\t // TODO: Behavior is not correct\n\t return stopPlayback(state);\n\t } else {\n\t return state.set(\"currentIndex\", newIndex);\n\t }\n\t}), _defineProperty(_createReducer, _actions.PLAY_NEXT_SONG, function (state) {\n\t var newIndex = state.get(\"currentIndex\") + 1;\n\t if (newIndex > state.get(\"playlist\").size) {\n\t // If there is an overflow, just stop playback\n\t // TODO: Behavior is not correct\n\t return stopPlayback(state);\n\t } else {\n\t // Else, play next item\n\t return state.set(\"currentIndex\", newIndex);\n\t }\n\t}), _defineProperty(_createReducer, _actions.TOGGLE_RANDOM, function (state) {\n\t return state.set(\"isRandom\", !state.get(\"isRandom\"));\n\t}), _defineProperty(_createReducer, _actions.TOGGLE_REPEAT, function (state) {\n\t return state.set(\"isRepeat\", !state.get(\"isRepeat\"));\n\t}), _defineProperty(_createReducer, _actions.TOGGLE_MUTE, function (state) {\n\t return state.set(\"isMute\", !state.get(\"isMute\"));\n\t}), _defineProperty(_createReducer, _actions.SET_VOLUME, function (state, payload) {\n\t return state.set(\"volume\", payload.volume);\n\t}), _defineProperty(_createReducer, _actions.INVALIDATE_STORE, function () {\n\t return new _webplayer.stateRecord();\n\t}), _createReducer));\n\n/***/ },\n/* 367 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _RequireAuthentication = __webpack_require__(345);\n\t\n\tvar _RequireAuthentication2 = _interopRequireDefault(_RequireAuthentication);\n\t\n\tvar _App = __webpack_require__(344);\n\t\n\tvar _App2 = _interopRequireDefault(_App);\n\t\n\tvar _Simple = __webpack_require__(343);\n\t\n\tvar _Simple2 = _interopRequireDefault(_Simple);\n\t\n\tvar _Sidebar = __webpack_require__(342);\n\t\n\tvar _Sidebar2 = _interopRequireDefault(_Sidebar);\n\t\n\tvar _BrowsePage = __webpack_require__(380);\n\t\n\tvar _BrowsePage2 = _interopRequireDefault(_BrowsePage);\n\t\n\tvar _DiscoverPage = __webpack_require__(381);\n\t\n\tvar _DiscoverPage2 = _interopRequireDefault(_DiscoverPage);\n\t\n\tvar _HomePage = __webpack_require__(382);\n\t\n\tvar _HomePage2 = _interopRequireDefault(_HomePage);\n\t\n\tvar _LoginPage = __webpack_require__(383);\n\t\n\tvar _LoginPage2 = _interopRequireDefault(_LoginPage);\n\t\n\tvar _LogoutPage = __webpack_require__(384);\n\t\n\tvar _LogoutPage2 = _interopRequireDefault(_LogoutPage);\n\t\n\tvar _ArtistsPage = __webpack_require__(142);\n\t\n\tvar _ArtistsPage2 = _interopRequireDefault(_ArtistsPage);\n\t\n\tvar _AlbumsPage = __webpack_require__(378);\n\t\n\tvar _AlbumsPage2 = _interopRequireDefault(_AlbumsPage);\n\t\n\tvar _SongsPage = __webpack_require__(385);\n\t\n\tvar _SongsPage2 = _interopRequireDefault(_SongsPage);\n\t\n\tvar _ArtistPage = __webpack_require__(379);\n\t\n\tvar _ArtistPage2 = _interopRequireDefault(_ArtistPage);\n\t\n\tvar _AlbumPage = __webpack_require__(377);\n\t\n\tvar _AlbumPage2 = _interopRequireDefault(_AlbumPage);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Routes for the React app.\n\t */\n\texports.default = _react2.default.createElement(\n\t _reactRouter.Route,\n\t { path: \"/\", component: _App2.default },\n\t \" // Main container is App\",\n\t _react2.default.createElement(\n\t _reactRouter.Route,\n\t { path: \"login\", component: _Simple2.default },\n\t \" // Login is a SimpleLayout\",\n\t _react2.default.createElement(_reactRouter.IndexRoute, { component: _LoginPage2.default })\n\t ),\n\t _react2.default.createElement(\n\t _reactRouter.Route,\n\t { component: _Sidebar2.default },\n\t \" // All the rest is a SidebarLayout\",\n\t _react2.default.createElement(_reactRouter.Route, { path: \"logout\", component: _LogoutPage2.default }),\n\t _react2.default.createElement(\n\t _reactRouter.Route,\n\t { component: _RequireAuthentication2.default },\n\t \" // And some pages require authentication\",\n\t _react2.default.createElement(_reactRouter.Route, { path: \"discover\", component: _DiscoverPage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"browse\", component: _BrowsePage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"artists\", component: _ArtistsPage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"artist/:id\", component: _ArtistPage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"albums\", component: _AlbumsPage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"album/:id\", component: _AlbumPage2.default }),\n\t _react2.default.createElement(_reactRouter.Route, { path: \"songs\", component: _SongsPage2.default }),\n\t _react2.default.createElement(_reactRouter.IndexRoute, { component: _HomePage2.default })\n\t )\n\t )\n\t);\n\n/***/ },\n/* 368 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Store configuration\n\t */\n\tif (true) {\n\t module.exports = __webpack_require__(369);\n\t} else {\n\t module.exports = require(\"./configureStore.development.js\");\n\t}\n\n/***/ },\n/* 369 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = configureStore;\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _reactRouterRedux = __webpack_require__(97);\n\t\n\tvar _reduxThunk = __webpack_require__(859);\n\t\n\tvar _reduxThunk2 = _interopRequireDefault(_reduxThunk);\n\t\n\tvar _reducers = __webpack_require__(364);\n\t\n\tvar _reducers2 = _interopRequireDefault(_reducers);\n\t\n\tvar _api = __webpack_require__(141);\n\t\n\tvar _api2 = _interopRequireDefault(_api);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t// Use history\n\tvar historyMiddleware = (0, _reactRouterRedux.routerMiddleware)(_reactRouter.hashHistory);\n\t\n\tfunction configureStore(preloadedState) {\n\t return (0, _redux.createStore)(_reducers2.default, preloadedState, (0, _redux.applyMiddleware)(_reduxThunk2.default, _api2.default, historyMiddleware));\n\t}\n\n/***/ },\n/* 370 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.buildHMAC = buildHMAC;\n\t\n\tvar _jssha = __webpack_require__(658);\n\t\n\tvar _jssha2 = _interopRequireDefault(_jssha);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\n\t * Build an HMAC token for authentication against Ampache API.\n\t *\n\t * @param password User password to derive HMAC from.\n\t * @return An object with the generated HMAC and time used.\n\t *\n\t * @remark This builds an HMAC as expected by Ampache API, which is not a\n\t * standard HMAC.\n\t */\n\tfunction buildHMAC(password) {\n\t var time = Math.floor(Date.now() / 1000);\n\t\n\t var shaObj = new _jssha2.default(\"SHA-256\", \"TEXT\");\n\t shaObj.update(password);\n\t var key = shaObj.getHash(\"HEX\");\n\t\n\t shaObj = new _jssha2.default(\"SHA-256\", \"TEXT\");\n\t shaObj.update(time + key);\n\t\n\t return {\n\t time: time,\n\t passphrase: shaObj.getHash(\"HEX\")\n\t };\n\t} /**\n\t * Collection of helper function that are Ampache specific.\n\t */\n\t\n\t// NPM imports\n\n/***/ },\n/* 371 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.immutableDiff = immutableDiff;\n\t/**\n\t * Collection of helper function to act on Immutable objects.\n\t */\n\t\n\t/**\n\t * Diff two immutables objects supporting the filter method.\n\t *\n\t * @param a First Immutable object.\n\t * @param b Second Immutable object.\n\t * @returns An Immutable object equal to a except for the items in b.\n\t */\n\tfunction immutableDiff(a, b) {\n\t return a.filter(function (i) {\n\t return b.indexOf(i) < 0;\n\t });\n\t}\n\n/***/ },\n/* 372 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.getBrowserLocales = getBrowserLocales;\n\texports.messagesMap = messagesMap;\n\texports.handleErrorI18nObject = handleErrorI18nObject;\n\t\n\tvar _i18n = __webpack_require__(91);\n\t\n\t/**\n\t * Get the preferred locales from the browser, as an array sorted by preferences.\n\t */\n\tfunction getBrowserLocales() {\n\t var langs = [];\n\t\n\t if (navigator.languages) {\n\t // Chrome does not currently set navigator.language correctly\n\t // https://code.google.com/p/chromium/issues/detail?id=101138\n\t // but it does set the first element of navigator.languages correctly\n\t langs = navigator.languages;\n\t } else if (navigator.userLanguage) {\n\t // IE only\n\t langs = [navigator.userLanguage];\n\t } else {\n\t // as of this writing the latest version of firefox + safari set this correctly\n\t langs = [navigator.language];\n\t }\n\t\n\t // Some browsers does not return uppercase for second part\n\t var locales = langs.map(function (lang) {\n\t var locale = lang.split(\"-\");\n\t return locale[1] ? locale[0] + \"-\" + locale[1].toUpperCase() : lang;\n\t });\n\t\n\t return locales;\n\t}\n\t\n\t/**\n\t * Convert an array of messagesDescriptors to a map.\n\t */\n\t/**\n\t * Collection of helper functions to deal with localization.\n\t */\n\tfunction messagesMap(messagesDescriptorsArray) {\n\t var messagesDescriptorsMap = {};\n\t\n\t messagesDescriptorsArray.forEach(function (item) {\n\t messagesDescriptorsMap[item.id] = item;\n\t });\n\t\n\t return messagesDescriptorsMap;\n\t}\n\t\n\t/**\n\t * Format an error message from the state.\n\t *\n\t * Error message can be either an i18nRecord, which is to be formatted, or a\n\t * raw string. This function performs the check and returns the correctly\n\t * formatted string.\n\t *\n\t * @param errorMessage The error message from the state, either plain\n\t * string or i18nRecord.\n\t * @param formatMessage react-i18n formatMessage.\n\t * @param messages List of messages to use for formatting.\n\t *\n\t * @return A string for the error.\n\t */\n\tfunction handleErrorI18nObject(errorMessage, formatMessage, messages) {\n\t if (errorMessage instanceof _i18n.i18nRecord) {\n\t // If it is an object, format it and return it\n\t return formatMessage(messages[errorMessage.id], errorMessage.values);\n\t }\n\t // Else, it's a string, just return it\n\t return errorMessage;\n\t}\n\n/***/ },\n/* 373 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.filterInt = filterInt;\n\texports.formatLength = formatLength;\n\t/**\n\t * Miscellaneous helper functions.\n\t */\n\t\n\t/**\n\t * Strict int checking function.\n\t *\n\t * @param value The value to check for int.\n\t * @return Either NaN if the string was not a valid int representation, or the\n\t * int.\n\t */\n\tfunction filterInt(value) {\n\t if (/^(\\-|\\+)?([0-9]+|Infinity)$/.test(value)) {\n\t return Number(value);\n\t }\n\t return NaN;\n\t}\n\t\n\t/**\n\t * Helper to format song length.\n\t *\n\t * @param time Length of the song in seconds.\n\t * @return Formatted length as MM:SS.\n\t */\n\tfunction formatLength(time) {\n\t var min = Math.floor(time / 60);\n\t var sec = time - 60 * min;\n\t if (sec < 10) {\n\t sec = \"0\" + sec;\n\t }\n\t return min + \":\" + sec;\n\t}\n\n/***/ },\n/* 374 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.buildPaginationObject = buildPaginationObject;\n\texports.computePaginationBounds = computePaginationBounds;\n\t/**\n\t * Collection of helper functions to deal with pagination.\n\t */\n\t\n\t/**\n\t * Helper function to build a pagination object to pass down the component tree.\n\t *\n\t * @param location react-router location props.\n\t * @param currentPage Number of the current page.\n\t * @param nPages Total number of pages.\n\t * @param goToPageAction Action to dispatch to go to a specific page.\n\t *\n\t * @return An object containing all the props for the Pagination component.\n\t */\n\tfunction buildPaginationObject(location, currentPage, nPages, goToPageAction) {\n\t var buildLinkToPage = function buildLinkToPage(pageNumber) {\n\t return {\n\t pathname: location.pathname,\n\t query: Object.assign({}, location.query, { page: pageNumber })\n\t };\n\t };\n\t return {\n\t currentPage: currentPage,\n\t nPages: nPages,\n\t goToPage: function goToPage(pageNumber) {\n\t return goToPageAction(buildLinkToPage(pageNumber));\n\t },\n\t buildLinkToPage: buildLinkToPage\n\t };\n\t}\n\t\n\t/**\n\t * Helper function to compute the buttons to display.\n\t *\n\t * Taken from http://stackoverflow.com/a/8608998/2626416\n\t *\n\t * @param currentPage Number of the current page.\n\t * @param nPages Total number of pages.\n\t * @param maxNumberPagesShown Maximum number of pages button to show.\n\t *\n\t * @return An object containing lower limit and upper limit bounds.\n\t */\n\tfunction computePaginationBounds(currentPage, nPages) {\n\t var maxNumberPagesShown = arguments.length <= 2 || arguments[2] === undefined ? 5 : arguments[2];\n\t\n\t var lowerLimit = currentPage;\n\t var upperLimit = currentPage;\n\t\n\t for (var b = 1; b < maxNumberPagesShown && b < nPages;) {\n\t if (lowerLimit > 1) {\n\t lowerLimit--;\n\t b++;\n\t }\n\t if (b < maxNumberPagesShown && upperLimit < nPages) {\n\t upperLimit++;\n\t b++;\n\t }\n\t }\n\t\n\t return {\n\t lowerLimit: lowerLimit,\n\t upperLimit: upperLimit + 1 };\n\t}\n\n/***/ },\n/* 375 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createReducer = createReducer;\n\t/**\n\t * Collection of helper functions to deal with reducers.\n\t */\n\t\n\t/**\n\t * Utility function to create a reducer.\n\t *\n\t * @param initialState Initial state of the reducer.\n\t * @param reducerMap Map between action types and reducing functions.\n\t *\n\t * @return A reducer.\n\t */\n\tfunction createReducer(initialState, reducerMap) {\n\t return function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n\t var action = arguments[1];\n\t\n\t var reducer = reducerMap[action.type];\n\t\n\t return reducer ? reducer(state, action.payload) : state;\n\t };\n\t}\n\n/***/ },\n/* 376 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.assembleURLAndParams = assembleURLAndParams;\n\texports.cleanURL = cleanURL;\n\t/**\n\t * Collection of helper functions to deal with URLs.\n\t */\n\t\n\t/**\n\t * Assemble a base URL and its GET parameters.\n\t *\n\t * @param endpoint Base URL.\n\t * @param params An object of GET params and their values.\n\t *\n\t * @return A string with the full URL with GET params.\n\t */\n\tfunction assembleURLAndParams(endpoint, params) {\n\t var url = endpoint + \"?\";\n\t Object.keys(params).forEach(function (key) {\n\t if (Array.isArray(params[key])) {\n\t params[key].forEach(function (value) {\n\t return url += key + \"[]=\" + value + \"&\";\n\t });\n\t } else {\n\t url += key + \"=\" + params[key] + \"&\";\n\t }\n\t });\n\t return url.rstrip(\"&\");\n\t}\n\t\n\t/**\n\t * Clean an endpoint URL.\n\t *\n\t * Adds the protocol prefix if not specified, remove trailing slash\n\t *\n\t * @param An URL\n\t * @return The cleaned URL\n\t */\n\tfunction cleanURL(endpoint) {\n\t if (!endpoint.startsWith(\"//\") && !endpoint.startsWith(\"http://\") && !endpoint.startsWith(\"https://\")) {\n\t // Handle endpoints of the form \"ampache.example.com\"\n\t // Append same protocol as currently in use, to avoid mixed content.\n\t endpoint = window.location.protocol + \"//\" + endpoint;\n\t }\n\t\n\t // Remove trailing slash\n\t endpoint = endpoint.replace(/\\/$/, \"\");\n\t\n\t return endpoint;\n\t}\n\n/***/ },\n/* 377 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.AlbumPage = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _Album = __webpack_require__(211);\n\t\n\tvar _Album2 = _interopRequireDefault(_Album);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t// TODO: AlbumPage should be scrolled ArtistPage\n\t\n\tvar AlbumPage = exports.AlbumPage = function (_Component) {\n\t _inherits(AlbumPage, _Component);\n\t\n\t function AlbumPage() {\n\t _classCallCheck(this, AlbumPage);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(AlbumPage).apply(this, arguments));\n\t }\n\t\n\t _createClass(AlbumPage, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Load the data\n\t this.props.actions.loadAlbums({\n\t pageNumber: 1,\n\t filter: this.props.params.id,\n\t include: [\"songs\"]\n\t });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t if (this.props.album) {\n\t return _react2.default.createElement(_Album2.default, { album: this.props.album, songs: this.props.songs });\n\t }\n\t return _react2.default.createElement(\"div\", null); // TODO: Loading + error\n\t }\n\t }]);\n\t\n\t return AlbumPage;\n\t}(_react.Component);\n\t\n\tvar mapStateToProps = function mapStateToProps(state, ownProps) {\n\t var albums = state.api.entities.get(\"album\");\n\t var album = undefined;\n\t var songs = new _immutable2.default.List();\n\t if (albums) {\n\t // Get artist\n\t album = albums.find(function (item) {\n\t return item.get(\"id\") == ownProps.params.id;\n\t });\n\t // Get songs\n\t var tracks = album.get(\"tracks\");\n\t if (_immutable2.default.List.isList(tracks)) {\n\t songs = new _immutable2.default.List(tracks.map(function (id) {\n\t return state.api.entities.getIn([\"track\", id]);\n\t }));\n\t }\n\t }\n\t return {\n\t album: album,\n\t songs: songs\n\t };\n\t};\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(AlbumPage);\n\n/***/ },\n/* 378 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _Albums = __webpack_require__(335);\n\t\n\tvar _Albums2 = _interopRequireDefault(_Albums);\n\t\n\tvar _api = __webpack_require__(90);\n\t\n\tvar _api2 = _interopRequireDefault(_api);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Define translations\n\tvar albumsMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _api2.default)));\n\t\n\t/**\n\t * Albums page, grid layout of albums arts.\n\t */\n\t\n\tvar AlbumsPageIntl = function (_Component) {\n\t _inherits(AlbumsPageIntl, _Component);\n\t\n\t function AlbumsPageIntl() {\n\t _classCallCheck(this, AlbumsPageIntl);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(AlbumsPageIntl).apply(this, arguments));\n\t }\n\t\n\t _createClass(AlbumsPageIntl, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Load the data for current page\n\t var currentPage = parseInt(this.props.location.query.page) || 1;\n\t this.props.actions.loadPaginatedAlbums({ pageNumber: currentPage });\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(nextProps) {\n\t // Load the data if page has changed\n\t var currentPage = parseInt(this.props.location.query.page) || 1;\n\t var nextPage = parseInt(nextProps.location.query.page) || 1;\n\t if (currentPage != nextPage) {\n\t // Unload data on page change\n\t this.props.actions.clearPaginatedResults();\n\t // Load new data\n\t this.props.actions.loadAlbums({ pageNumber: nextPage });\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t // Unload data on page change\n\t this.props.actions.clearPaginatedResults();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t\n\t var pagination = (0, _utils.buildPaginationObject)(this.props.location, this.props.currentPage, this.props.nPages, this.props.actions.goToPage);\n\t\n\t var error = (0, _utils.handleErrorI18nObject)(this.props.error, formatMessage, albumsMessages);\n\t\n\t return _react2.default.createElement(_Albums2.default, { isFetching: this.props.isFetching, error: error, albums: this.props.albumsList, pagination: pagination });\n\t }\n\t }]);\n\t\n\t return AlbumsPageIntl;\n\t}(_react.Component);\n\t\n\tAlbumsPageIntl.propTypes = {\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\t\n\tvar mapStateToProps = function mapStateToProps(state) {\n\t var albumsList = new _immutable2.default.List();\n\t if (state.paginated.type == \"album\" && state.paginated.result.size > 0) {\n\t albumsList = state.paginated.result.map(function (id) {\n\t return state.entities.getIn([\"entities\", \"album\", id]);\n\t });\n\t }\n\t return {\n\t isFetching: state.entities.isFetching,\n\t error: state.entities.error,\n\t albumsList: albumsList,\n\t currentPage: state.paginated.currentPage,\n\t nPages: state.paginated.nPages\n\t };\n\t};\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _reactIntl.injectIntl)(AlbumsPageIntl));\n\n/***/ },\n/* 379 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _Artist = __webpack_require__(336);\n\t\n\tvar _Artist2 = _interopRequireDefault(_Artist);\n\t\n\tvar _api = __webpack_require__(90);\n\t\n\tvar _api2 = _interopRequireDefault(_api);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Define translations\n\tvar artistMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _api2.default)));\n\t\n\t/**\n\t * Single artist page.\n\t */\n\t\n\tvar ArtistPageIntl = function (_Component) {\n\t _inherits(ArtistPageIntl, _Component);\n\t\n\t function ArtistPageIntl() {\n\t _classCallCheck(this, ArtistPageIntl);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(ArtistPageIntl).apply(this, arguments));\n\t }\n\t\n\t _createClass(ArtistPageIntl, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Load the data\n\t this.props.actions.loadArtist({\n\t filter: this.props.params.id,\n\t include: [\"albums\", \"songs\"]\n\t });\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t this.props.actions.decrementRefCount({\n\t \"artist\": [this.props.artist.get(\"id\")]\n\t });\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t\n\t var error = (0, _utils.handleErrorI18nObject)(this.props.error, formatMessage, artistMessages);\n\t\n\t return _react2.default.createElement(_Artist2.default, { playAction: this.props.actions.playSong, playNextAction: this.props.actions.pushSong, isFetching: this.props.isFetching, error: error, artist: this.props.artist, albums: this.props.albums, songs: this.props.songs });\n\t }\n\t }]);\n\t\n\t return ArtistPageIntl;\n\t}(_react.Component);\n\t\n\tArtistPageIntl.propTypes = {\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\t\n\tvar mapStateToProps = function mapStateToProps(state, ownProps) {\n\t // Get artist\n\t var artist = state.entities.getIn([\"entities\", \"artist\", ownProps.params.id]);\n\t var albums = new _immutable2.default.List();\n\t var songs = new _immutable2.default.Map();\n\t if (artist) {\n\t (function () {\n\t // Get albums\n\t var artistAlbums = artist.get(\"albums\");\n\t if (_immutable2.default.List.isList(artistAlbums)) {\n\t albums = artistAlbums.map(function (id) {\n\t return state.entities.getIn([\"entities\", \"album\", id]);\n\t });\n\t }\n\t // Get songs\n\t var artistSongs = artist.get(\"songs\");\n\t if (_immutable2.default.List.isList(artistSongs)) {\n\t songs = state.entities.getIn([\"entities\", \"song\"]).filter(function (song) {\n\t return artistSongs.includes(song.get(\"id\"));\n\t });\n\t }\n\t })();\n\t } else {\n\t artist = new _immutable2.default.Map();\n\t }\n\t return {\n\t isFetching: state.entities.isFetching,\n\t error: state.entities.error,\n\t artist: artist,\n\t albums: albums,\n\t songs: songs\n\t };\n\t};\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _reactIntl.injectIntl)(ArtistPageIntl));\n\n/***/ },\n/* 380 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _ArtistsPage = __webpack_require__(142);\n\t\n\tvar _ArtistsPage2 = _interopRequireDefault(_ArtistsPage);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Other views\n\t\n\t\n\t/**\n\t * Browse page is an alias for artists page at the moment.\n\t */\n\tvar BrowsePage = function (_Component) {\n\t _inherits(BrowsePage, _Component);\n\t\n\t function BrowsePage() {\n\t _classCallCheck(this, BrowsePage);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(BrowsePage).apply(this, arguments));\n\t }\n\t\n\t _createClass(BrowsePage, [{\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(_ArtistsPage2.default, this.props);\n\t }\n\t }]);\n\t\n\t return BrowsePage;\n\t}(_react.Component);\n\t\n\texports.default = BrowsePage;\n\n/***/ },\n/* 381 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Discover = __webpack_require__(338);\n\t\n\tvar _Discover2 = _interopRequireDefault(_Discover);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Components\n\t\n\t\n\t/**\n\t * Discover page\n\t */\n\tvar DiscoverPage = function (_Component) {\n\t _inherits(DiscoverPage, _Component);\n\t\n\t function DiscoverPage() {\n\t _classCallCheck(this, DiscoverPage);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(DiscoverPage).apply(this, arguments));\n\t }\n\t\n\t _createClass(DiscoverPage, [{\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(_Discover2.default, null);\n\t }\n\t }]);\n\t\n\t return DiscoverPage;\n\t}(_react.Component);\n\t\n\texports.default = DiscoverPage;\n\n/***/ },\n/* 382 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _ArtistsPage = __webpack_require__(142);\n\t\n\tvar _ArtistsPage2 = _interopRequireDefault(_ArtistsPage);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Other views\n\t\n\t\n\t/**\n\t * Homepage is an alias for Artists page at the moment.\n\t */\n\tvar HomePage = function (_Component) {\n\t _inherits(HomePage, _Component);\n\t\n\t function HomePage() {\n\t _classCallCheck(this, HomePage);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(HomePage).apply(this, arguments));\n\t }\n\t\n\t _createClass(HomePage, [{\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(_ArtistsPage2.default, this.props);\n\t }\n\t }]);\n\t\n\t return HomePage;\n\t}(_react.Component);\n\t\n\texports.default = HomePage;\n\n/***/ },\n/* 383 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.LoginPage = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _Login = __webpack_require__(339);\n\t\n\tvar _Login2 = _interopRequireDefault(_Login);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Components\n\t\n\t\n\t/**\n\t * Login page\n\t */\n\tvar LoginPage = exports.LoginPage = function (_Component) {\n\t _inherits(LoginPage, _Component);\n\t\n\t function LoginPage(props) {\n\t _classCallCheck(this, LoginPage);\n\t\n\t // Bind this\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(LoginPage).call(this, props));\n\t\n\t _this.handleSubmit = _this.handleSubmit.bind(_this);\n\t _this._getRedirectTo = _this._getRedirectTo.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Get URL to redirect to based on location props.\n\t */\n\t\n\t\n\t _createClass(LoginPage, [{\n\t key: \"_getRedirectTo\",\n\t value: function _getRedirectTo() {\n\t var redirectPathname = \"/\";\n\t var redirectQuery = {};\n\t var location = this.props.location;\n\t\n\t if (location.state && location.state.nextPathname) {\n\t redirectPathname = location.state.nextPathname;\n\t }\n\t if (location.state && location.state.nextQuery) {\n\t redirectQuery = location.state.nextQuery;\n\t }\n\t return {\n\t pathname: redirectPathname,\n\t query: redirectQuery\n\t };\n\t }\n\t }, {\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // This checks if the user is already connected or not and redirects\n\t // them if it is the case.\n\t\n\t // Get next page to redirect to\n\t var redirectTo = this._getRedirectTo();\n\t\n\t if (this.props.isAuthenticated) {\n\t // If user is already authenticated, redirects them\n\t this.context.router.replace(redirectTo);\n\t } else if (this.props.rememberMe) {\n\t // Else if remember me is set, try to reconnect them\n\t this.props.actions.loginUser(this.props.username, this.props.token, this.props.endpoint, true, redirectTo, true);\n\t }\n\t }\n\t\n\t /**\n\t * Handle click on submit button.\n\t */\n\t\n\t }, {\n\t key: \"handleSubmit\",\n\t value: function handleSubmit(username, password, endpoint, rememberMe) {\n\t // Get page to redirect to\n\t var redirectTo = this._getRedirectTo();\n\t // Trigger login action\n\t this.props.actions.loginUser(username, password, endpoint, rememberMe, redirectTo);\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(_Login2.default, { onSubmit: this.handleSubmit, username: this.props.username, endpoint: this.props.endpoint, rememberMe: this.props.rememberMe, isAuthenticating: this.props.isAuthenticating, error: this.props.error, info: this.props.info });\n\t }\n\t }]);\n\t\n\t return LoginPage;\n\t}(_react.Component);\n\t\n\tLoginPage.contextTypes = {\n\t router: _react.PropTypes.object.isRequired\n\t};\n\t\n\tvar mapStateToProps = function mapStateToProps(state) {\n\t return {\n\t username: state.auth.username,\n\t endpoint: state.auth.endpoint,\n\t rememberMe: state.auth.rememberMe,\n\t isAuthenticating: state.auth.isAuthenticating,\n\t isAuthenticated: state.auth.isAuthenticated,\n\t token: state.auth.token,\n\t error: state.auth.error,\n\t info: state.auth.info\n\t };\n\t};\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(LoginPage);\n\n/***/ },\n/* 384 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.LogoutPage = undefined;\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t/**\n\t * Logout page\n\t */\n\tvar LogoutPage = exports.LogoutPage = function (_Component) {\n\t _inherits(LogoutPage, _Component);\n\t\n\t function LogoutPage() {\n\t _classCallCheck(this, LogoutPage);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(LogoutPage).apply(this, arguments));\n\t }\n\t\n\t _createClass(LogoutPage, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Logout when component is mounted\n\t this.props.actions.logoutAndRedirect();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t return _react2.default.createElement(\"div\", null);\n\t }\n\t }]);\n\t\n\t return LogoutPage;\n\t}(_react.Component);\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(null, mapDispatchToProps)(LogoutPage);\n\n/***/ },\n/* 385 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _immutable = __webpack_require__(15);\n\t\n\tvar _immutable2 = _interopRequireDefault(_immutable);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _Songs = __webpack_require__(340);\n\t\n\tvar _Songs2 = _interopRequireDefault(_Songs);\n\t\n\tvar _api = __webpack_require__(90);\n\t\n\tvar _api2 = _interopRequireDefault(_api);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Local imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Components\n\t\n\t\n\t// Translations\n\t\n\t\n\t// Define translations\n\tvar songsMessages = (0, _reactIntl.defineMessages)((0, _utils.messagesMap)(Array.concat([], _api2.default)));\n\t\n\t/**\n\t * Paginated table of available songs\n\t */\n\t\n\tvar SongsPageIntl = function (_Component) {\n\t _inherits(SongsPageIntl, _Component);\n\t\n\t function SongsPageIntl() {\n\t _classCallCheck(this, SongsPageIntl);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(SongsPageIntl).apply(this, arguments));\n\t }\n\t\n\t _createClass(SongsPageIntl, [{\n\t key: \"componentWillMount\",\n\t value: function componentWillMount() {\n\t // Load the data for current page\n\t var currentPage = parseInt(this.props.location.query.page) || 1;\n\t this.props.actions.loadPaginatedSongs({ pageNumber: currentPage });\n\t }\n\t }, {\n\t key: \"componentWillReceiveProps\",\n\t value: function componentWillReceiveProps(nextProps) {\n\t // Load the data if page has changed\n\t var currentPage = parseInt(this.props.location.query.page) || 1;\n\t var nextPage = parseInt(nextProps.location.query.page) || 1;\n\t if (currentPage != nextPage) {\n\t // Unload data on page change\n\t this.props.actions.clearPaginatedResults();\n\t // Load new data\n\t this.props.actions.loadPaginatedSongs({ pageNumber: nextPage });\n\t }\n\t }\n\t }, {\n\t key: \"componentWillUnmount\",\n\t value: function componentWillUnmount() {\n\t // Unload data on page change\n\t this.props.actions.clearPaginatedResults();\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var formatMessage = this.props.intl.formatMessage;\n\t\n\t\n\t var pagination = (0, _utils.buildPaginationObject)(this.props.location, this.props.currentPage, this.props.nPages, this.props.actions.goToPage);\n\t\n\t var error = (0, _utils.handleErrorI18nObject)(this.props.error, formatMessage, songsMessages);\n\t\n\t return _react2.default.createElement(_Songs2.default, { playAction: this.props.actions.playSong, playNextAction: this.props.actions.pushSong, isFetching: this.props.isFetching, error: error, songs: this.props.songsList, pagination: pagination });\n\t }\n\t }]);\n\t\n\t return SongsPageIntl;\n\t}(_react.Component);\n\t\n\tSongsPageIntl.propTypes = {\n\t intl: _reactIntl.intlShape.isRequired\n\t};\n\t\n\tvar mapStateToProps = function mapStateToProps(state) {\n\t var songsList = new _immutable2.default.List();\n\t if (state.paginated.type == \"song\" && state.paginated.result.size > 0) {\n\t songsList = state.paginated.result.map(function (id) {\n\t var song = state.entities.getIn([\"entities\", \"song\", id]);\n\t // Add artist and album infos to song\n\t var artist = state.entities.getIn([\"entities\", \"artist\", song.get(\"artist\")]);\n\t var album = state.entities.getIn([\"entities\", \"album\", song.get(\"album\")]);\n\t return song.set(\"artist\", new _immutable2.default.Map({ id: artist.get(\"id\"), name: artist.get(\"name\") })).set(\"album\", new _immutable2.default.Map({ id: album.get(\"id\"), name: album.get(\"name\") }));\n\t });\n\t }\n\t return {\n\t isFetching: state.entities.isFetching,\n\t error: state.entities.error,\n\t songsList: songsList,\n\t currentPage: state.paginated.currentPage,\n\t nPages: state.paginated.nPages\n\t };\n\t};\n\t\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\t\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _reactIntl.injectIntl)(SongsPageIntl));\n\n/***/ },\n/* 386 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tvar _reactRedux = __webpack_require__(47);\n\t\n\tvar _howler = __webpack_require__(633);\n\t\n\tvar _actions = __webpack_require__(26);\n\t\n\tvar actionCreators = _interopRequireWildcard(_actions);\n\t\n\tvar _WebPlayer = __webpack_require__(341);\n\t\n\tvar _WebPlayer2 = _interopRequireDefault(_WebPlayer);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // NPM imports\n\t\n\t\n\t// Actions\n\t\n\t\n\t// Components\n\t\n\t\n\t/**\n\t * Webplayer container.\n\t */\n\tvar WebPlayer = function (_Component) {\n\t _inherits(WebPlayer, _Component);\n\t\n\t function WebPlayer(props) {\n\t _classCallCheck(this, WebPlayer);\n\t\n\t // Data attributes\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(WebPlayer).call(this, props));\n\t\n\t _this.howl = null;\n\t\n\t // Bind this\n\t _this.startPlaying = _this.startPlaying.bind(_this);\n\t return _this;\n\t }\n\t\n\t _createClass(WebPlayer, [{\n\t key: \"componentDidMount\",\n\t value: function componentDidMount() {\n\t // Start playback upon component mount\n\t this.startPlaying(this.props);\n\t }\n\t }, {\n\t key: \"componentWillUpdate\",\n\t value: function componentWillUpdate(nextProps) {\n\t // Handle stop\n\t if (!nextProps.currentSong || nextProps.playlist.size < 1) {\n\t if (this.howl) {\n\t this.howl.stop();\n\t }\n\t }\n\t\n\t // Toggle play / pause\n\t if (nextProps.isPlaying != this.props.isPlaying) {\n\t // This check ensure we do not start playing multiple times the\n\t // same song\n\t this.startPlaying(nextProps);\n\t }\n\t\n\t // If something is playing back\n\t if (this.howl) {\n\t // Set mute / unmute\n\t this.howl.mute(nextProps.isMute);\n\t // Set volume\n\t this.howl.volume(nextProps.volume / 100);\n\t }\n\t }\n\t\n\t /**\n\t * Handle playback through Howler and Web Audio API.\n\t *\n\t * @params props A set of props to use for setting play parameters.\n\t */\n\t\n\t }, {\n\t key: \"startPlaying\",\n\t value: function startPlaying(props) {\n\t if (props.isPlaying && props.currentSong) {\n\t // If it should be playing any song\n\t if (!this.howl) {\n\t // Build a new Howler object with current song to play\n\t var url = props.currentSong.get(\"url\");\n\t this.howl = new _howler.Howl({\n\t src: [url],\n\t html5: true, // Use HTML5 by default to allow streaming\n\t mute: props.isMute,\n\t volume: props.volume / 100, // Set current volume\n\t autoplay: false });\n\t } else // No autoplay, we handle it manually\n\t {}\n\t // Else, something is playing\n\t // TODO If it is not the expected song, change it\n\t\n\t // Start playing\n\t this.howl.play();\n\t } else {\n\t // If it should not be playing\n\t if (this.howl) {\n\t // Pause any running music\n\t this.howl.pause();\n\t }\n\t }\n\t }\n\t }, {\n\t key: \"render\",\n\t value: function render() {\n\t var _this2 = this;\n\t\n\t var webplayerProps = {\n\t isPlaying: this.props.isPlaying,\n\t isRandom: this.props.isRandom,\n\t isRepeat: this.props.isRepeat,\n\t isMute: this.props.isMute,\n\t volume: this.props.volume,\n\t currentIndex: this.props.currentIndex,\n\t playlist: this.props.playlist,\n\t currentSong: this.props.currentSong,\n\t currentArtist: this.props.currentArtist,\n\t // Use a lambda to ensure no first argument is passed to\n\t // togglePlaying\n\t onPlayPause: function onPlayPause() {\n\t return _this2.props.actions.togglePlaying();\n\t },\n\t onPrev: this.props.actions.playPreviousSong,\n\t onSkip: this.props.actions.playNextSong,\n\t onRandom: this.props.actions.toggleRandom,\n\t onRepeat: this.props.actions.toggleRepeat,\n\t onMute: this.props.actions.toggleMute\n\t };\n\t return this.props.playlist.size > 0 ? _react2.default.createElement(_WebPlayer2.default, webplayerProps) : _react2.default.createElement(\"div\", null);\n\t }\n\t }]);\n\t\n\t return WebPlayer;\n\t}(_react.Component);\n\t\n\tvar mapStateToProps = function mapStateToProps(state) {\n\t var currentIndex = state.webplayer.currentIndex;\n\t var playlist = state.webplayer.playlist;\n\t\n\t // Get current song and artist from entities store\n\t var currentSong = state.entities.getIn([\"entities\", \"song\", playlist.get(currentIndex)]);\n\t var currentArtist = undefined;\n\t if (currentSong) {\n\t currentArtist = state.entities.getIn([\"entities\", \"artist\", currentSong.get(\"artist\")]);\n\t }\n\t return {\n\t isPlaying: state.webplayer.isPlaying,\n\t isRandom: state.webplayer.isRandom,\n\t isRepeat: state.webplayer.isRepeat,\n\t isMute: state.webplayer.isMute,\n\t volume: state.webplayer.volume,\n\t currentIndex: currentIndex,\n\t playlist: playlist,\n\t currentSong: currentSong,\n\t currentArtist: currentArtist\n\t };\n\t};\n\tvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n\t return {\n\t actions: (0, _redux.bindActionCreators)(actionCreators, dispatch)\n\t };\n\t};\n\texports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(WebPlayer);\n\n/***/ },\n/* 387 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.rootElement = undefined;\n\texports.onWindowIntl = onWindowIntl;\n\texports.Intl = Intl;\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(762);\n\t\n\tvar _reactDom2 = _interopRequireDefault(_reactDom);\n\t\n\tvar _reactRouter = __webpack_require__(62);\n\t\n\tvar _reactRouterRedux = __webpack_require__(97);\n\t\n\tvar _reactRouterScroll = __webpack_require__(772);\n\t\n\tvar _reactRouterScroll2 = _interopRequireDefault(_reactRouterScroll);\n\t\n\tvar _configureStore = __webpack_require__(368);\n\t\n\tvar _configureStore2 = _interopRequireDefault(_configureStore);\n\t\n\tvar _reactIntl = __webpack_require__(23);\n\t\n\tvar _en = __webpack_require__(763);\n\t\n\tvar _en2 = _interopRequireDefault(_en);\n\t\n\tvar _fr = __webpack_require__(764);\n\t\n\tvar _fr2 = _interopRequireDefault(_fr);\n\t\n\tvar _utils = __webpack_require__(14);\n\t\n\tvar _locales = __webpack_require__(349);\n\t\n\tvar _locales2 = _interopRequireDefault(_locales);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /**\n\t * Main JS entry point for all the builds.\n\t *\n\t * Performs i18n and initial render.\n\t */\n\t// React stuff\n\t\n\t\n\t// Store\n\t\n\t\n\t// i18n stuff\n\t\n\t\n\t// Init store and history\n\tvar store = (0, _configureStore2.default)();\n\tvar history = (0, _reactRouterRedux.syncHistoryWithStore)(_reactRouter.hashHistory, store);\n\t\n\t// Get root element\n\tvar rootElement = exports.rootElement = document.getElementById(\"root\");\n\t\n\t/**\n\t * Main function to be called once window.Intl has been populated.\n\t *\n\t * Populates the locales messages and perform render.\n\t */\n\tfunction onWindowIntl() {\n\t // Add locales we support\n\t (0, _reactIntl.addLocaleData)([].concat(_toConsumableArray(_en2.default), _toConsumableArray(_fr2.default)));\n\t\n\t // Fetch current preferred locales from the browser\n\t var locales = (0, _utils.getBrowserLocales)();\n\t\n\t var locale = \"en-US\"; // Safe default\n\t // Populate strings with best matching locale\n\t var strings = {};\n\t for (var i = 0; i < locales.length; ++i) {\n\t if (_locales2.default[locales[i]]) {\n\t locale = locales[i];\n\t strings = _locales2.default[locale];\n\t break; // Break at first matching locale\n\t }\n\t }\n\t // Overload strings with default English translation, in case of missing translations\n\t strings = Object.assign(_locales2.default[\"en-US\"], strings);\n\t\n\t // Dynamically set html lang attribute\n\t document.documentElement.lang = locale;\n\t\n\t // Return a rendering function\n\t return function () {\n\t var Root = __webpack_require__(346).default;\n\t _reactDom2.default.render(_react2.default.createElement(Root, { store: store, history: history, render: (0, _reactRouter.applyRouterMiddleware)((0, _reactRouterScroll2.default)()), locale: locale, defaultLocale: \"en-US\", messages: strings }), rootElement);\n\t };\n\t};\n\t\n\t/**\n\t * Ensure window.Intl exists, or polyfill it.\n\t *\n\t * @param render Initial rendering function.\n\t */\n\tfunction Intl(render) {\n\t if (!window.Intl) {\n\t __webpack_require__.e/* nsure */(1, function (require) {\n\t __webpack_require__(324);\n\t __webpack_require__(325);\n\t __webpack_require__(326);\n\t render();\n\t });\n\t } else {\n\t render();\n\t }\n\t};\n\n/***/ },\n/* 388 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * This is the main JS entry point.\n\t * It loads either the production or the development index file, based on the\n\t * environment variables in use.\n\t */\n\tif (true) {\n\t module.exports = __webpack_require__(389);\n\t} else {\n\t module.exports = require(\"./index.development.js\");\n\t}\n\n/***/ },\n/* 389 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * This is the main JS entry point in production builds.\n\t */\n\t\n\t// Load the common index\n\tvar index = __webpack_require__(387);\n\t\n\t// Get the rendering function\n\tvar render = index.onWindowIntl();\n\t\n\t// Perform i18n and render\n\tindex.Intl(render);\n\n/***/ },\n/* 390 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {\"use strict\";\n\t\n\t__webpack_require__(587);\n\t\n\t__webpack_require__(863);\n\t\n\t__webpack_require__(406);\n\t\n\t/* eslint max-len: 0 */\n\t\n\tif (global._babelPolyfill) {\n\t throw new Error(\"only one instance of babel-polyfill is allowed\");\n\t}\n\tglobal._babelPolyfill = true;\n\t\n\t// Should be removed in the next major release:\n\t\n\tvar DEFINE_PROPERTY = \"defineProperty\";\n\tfunction define(O, key, value) {\n\t O[key] || Object[DEFINE_PROPERTY](O, key, {\n\t writable: true,\n\t configurable: true,\n\t value: value\n\t });\n\t}\n\t\n\tdefine(String.prototype, \"padLeft\", \"\".padStart);\n\tdefine(String.prototype, \"padRight\", \"\".padEnd);\n\t\n\t\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n\t [][key] && define(Array, key, Function.call.bind([][key]));\n\t});\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 391 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__ (596);\n\t__webpack_require__ (392);\n\n\n/***/ },\n/* 392 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__ (405);\n\t__webpack_require__ (395);\n\t__webpack_require__ (396);\n\t__webpack_require__ (397);\n\t__webpack_require__ (398);\n\t__webpack_require__ (399);\n\t__webpack_require__ (400);\n\t__webpack_require__ (404);\n\t__webpack_require__ (401);\n\t__webpack_require__ (402);\n\t__webpack_require__ (403);\n\t__webpack_require__ (394);\n\n\n/***/ },\n/* 393 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(391);\n\n\n/***/ },\n/* 394 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: affix.js v3.3.7\n\t * http://getbootstrap.com/javascript/#affix\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // AFFIX CLASS DEFINITION\n\t // ======================\n\t\n\t var Affix = function (element, options) {\n\t this.options = $.extend({}, Affix.DEFAULTS, options)\n\t\n\t this.$target = $(this.options.target)\n\t .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n\t .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\t\n\t this.$element = $(element)\n\t this.affixed = null\n\t this.unpin = null\n\t this.pinnedOffset = null\n\t\n\t this.checkPosition()\n\t }\n\t\n\t Affix.VERSION = '3.3.7'\n\t\n\t Affix.RESET = 'affix affix-top affix-bottom'\n\t\n\t Affix.DEFAULTS = {\n\t offset: 0,\n\t target: window\n\t }\n\t\n\t Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n\t var scrollTop = this.$target.scrollTop()\n\t var position = this.$element.offset()\n\t var targetHeight = this.$target.height()\n\t\n\t if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\t\n\t if (this.affixed == 'bottom') {\n\t if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n\t return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n\t }\n\t\n\t var initializing = this.affixed == null\n\t var colliderTop = initializing ? scrollTop : position.top\n\t var colliderHeight = initializing ? targetHeight : height\n\t\n\t if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n\t if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\t\n\t return false\n\t }\n\t\n\t Affix.prototype.getPinnedOffset = function () {\n\t if (this.pinnedOffset) return this.pinnedOffset\n\t this.$element.removeClass(Affix.RESET).addClass('affix')\n\t var scrollTop = this.$target.scrollTop()\n\t var position = this.$element.offset()\n\t return (this.pinnedOffset = position.top - scrollTop)\n\t }\n\t\n\t Affix.prototype.checkPositionWithEventLoop = function () {\n\t setTimeout($.proxy(this.checkPosition, this), 1)\n\t }\n\t\n\t Affix.prototype.checkPosition = function () {\n\t if (!this.$element.is(':visible')) return\n\t\n\t var height = this.$element.height()\n\t var offset = this.options.offset\n\t var offsetTop = offset.top\n\t var offsetBottom = offset.bottom\n\t var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\t\n\t if (typeof offset != 'object') offsetBottom = offsetTop = offset\n\t if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n\t if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\t\n\t var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\t\n\t if (this.affixed != affix) {\n\t if (this.unpin != null) this.$element.css('top', '')\n\t\n\t var affixType = 'affix' + (affix ? '-' + affix : '')\n\t var e = $.Event(affixType + '.bs.affix')\n\t\n\t this.$element.trigger(e)\n\t\n\t if (e.isDefaultPrevented()) return\n\t\n\t this.affixed = affix\n\t this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\t\n\t this.$element\n\t .removeClass(Affix.RESET)\n\t .addClass(affixType)\n\t .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n\t }\n\t\n\t if (affix == 'bottom') {\n\t this.$element.offset({\n\t top: scrollHeight - height - offsetBottom\n\t })\n\t }\n\t }\n\t\n\t\n\t // AFFIX PLUGIN DEFINITION\n\t // =======================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.affix')\n\t var options = typeof option == 'object' && option\n\t\n\t if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.affix\n\t\n\t $.fn.affix = Plugin\n\t $.fn.affix.Constructor = Affix\n\t\n\t\n\t // AFFIX NO CONFLICT\n\t // =================\n\t\n\t $.fn.affix.noConflict = function () {\n\t $.fn.affix = old\n\t return this\n\t }\n\t\n\t\n\t // AFFIX DATA-API\n\t // ==============\n\t\n\t $(window).on('load', function () {\n\t $('[data-spy=\"affix\"]').each(function () {\n\t var $spy = $(this)\n\t var data = $spy.data()\n\t\n\t data.offset = data.offset || {}\n\t\n\t if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n\t if (data.offsetTop != null) data.offset.top = data.offsetTop\n\t\n\t Plugin.call($spy, data)\n\t })\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 395 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: alert.js v3.3.7\n\t * http://getbootstrap.com/javascript/#alerts\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // ALERT CLASS DEFINITION\n\t // ======================\n\t\n\t var dismiss = '[data-dismiss=\"alert\"]'\n\t var Alert = function (el) {\n\t $(el).on('click', dismiss, this.close)\n\t }\n\t\n\t Alert.VERSION = '3.3.7'\n\t\n\t Alert.TRANSITION_DURATION = 150\n\t\n\t Alert.prototype.close = function (e) {\n\t var $this = $(this)\n\t var selector = $this.attr('data-target')\n\t\n\t if (!selector) {\n\t selector = $this.attr('href')\n\t selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n\t }\n\t\n\t var $parent = $(selector === '#' ? [] : selector)\n\t\n\t if (e) e.preventDefault()\n\t\n\t if (!$parent.length) {\n\t $parent = $this.closest('.alert')\n\t }\n\t\n\t $parent.trigger(e = $.Event('close.bs.alert'))\n\t\n\t if (e.isDefaultPrevented()) return\n\t\n\t $parent.removeClass('in')\n\t\n\t function removeElement() {\n\t // detach from parent, fire event then clean up data\n\t $parent.detach().trigger('closed.bs.alert').remove()\n\t }\n\t\n\t $.support.transition && $parent.hasClass('fade') ?\n\t $parent\n\t .one('bsTransitionEnd', removeElement)\n\t .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n\t removeElement()\n\t }\n\t\n\t\n\t // ALERT PLUGIN DEFINITION\n\t // =======================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.alert')\n\t\n\t if (!data) $this.data('bs.alert', (data = new Alert(this)))\n\t if (typeof option == 'string') data[option].call($this)\n\t })\n\t }\n\t\n\t var old = $.fn.alert\n\t\n\t $.fn.alert = Plugin\n\t $.fn.alert.Constructor = Alert\n\t\n\t\n\t // ALERT NO CONFLICT\n\t // =================\n\t\n\t $.fn.alert.noConflict = function () {\n\t $.fn.alert = old\n\t return this\n\t }\n\t\n\t\n\t // ALERT DATA-API\n\t // ==============\n\t\n\t $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 396 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: button.js v3.3.7\n\t * http://getbootstrap.com/javascript/#buttons\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // BUTTON PUBLIC CLASS DEFINITION\n\t // ==============================\n\t\n\t var Button = function (element, options) {\n\t this.$element = $(element)\n\t this.options = $.extend({}, Button.DEFAULTS, options)\n\t this.isLoading = false\n\t }\n\t\n\t Button.VERSION = '3.3.7'\n\t\n\t Button.DEFAULTS = {\n\t loadingText: 'loading...'\n\t }\n\t\n\t Button.prototype.setState = function (state) {\n\t var d = 'disabled'\n\t var $el = this.$element\n\t var val = $el.is('input') ? 'val' : 'html'\n\t var data = $el.data()\n\t\n\t state += 'Text'\n\t\n\t if (data.resetText == null) $el.data('resetText', $el[val]())\n\t\n\t // push to event loop to allow forms to submit\n\t setTimeout($.proxy(function () {\n\t $el[val](data[state] == null ? this.options[state] : data[state])\n\t\n\t if (state == 'loadingText') {\n\t this.isLoading = true\n\t $el.addClass(d).attr(d, d).prop(d, true)\n\t } else if (this.isLoading) {\n\t this.isLoading = false\n\t $el.removeClass(d).removeAttr(d).prop(d, false)\n\t }\n\t }, this), 0)\n\t }\n\t\n\t Button.prototype.toggle = function () {\n\t var changed = true\n\t var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\t\n\t if ($parent.length) {\n\t var $input = this.$element.find('input')\n\t if ($input.prop('type') == 'radio') {\n\t if ($input.prop('checked')) changed = false\n\t $parent.find('.active').removeClass('active')\n\t this.$element.addClass('active')\n\t } else if ($input.prop('type') == 'checkbox') {\n\t if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n\t this.$element.toggleClass('active')\n\t }\n\t $input.prop('checked', this.$element.hasClass('active'))\n\t if (changed) $input.trigger('change')\n\t } else {\n\t this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n\t this.$element.toggleClass('active')\n\t }\n\t }\n\t\n\t\n\t // BUTTON PLUGIN DEFINITION\n\t // ========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.button')\n\t var options = typeof option == 'object' && option\n\t\n\t if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\t\n\t if (option == 'toggle') data.toggle()\n\t else if (option) data.setState(option)\n\t })\n\t }\n\t\n\t var old = $.fn.button\n\t\n\t $.fn.button = Plugin\n\t $.fn.button.Constructor = Button\n\t\n\t\n\t // BUTTON NO CONFLICT\n\t // ==================\n\t\n\t $.fn.button.noConflict = function () {\n\t $.fn.button = old\n\t return this\n\t }\n\t\n\t\n\t // BUTTON DATA-API\n\t // ===============\n\t\n\t $(document)\n\t .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n\t var $btn = $(e.target).closest('.btn')\n\t Plugin.call($btn, 'toggle')\n\t if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n\t // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n\t e.preventDefault()\n\t // The target component still receive the focus\n\t if ($btn.is('input,button')) $btn.trigger('focus')\n\t else $btn.find('input:visible,button:visible').first().trigger('focus')\n\t }\n\t })\n\t .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n\t $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 397 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: carousel.js v3.3.7\n\t * http://getbootstrap.com/javascript/#carousel\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // CAROUSEL CLASS DEFINITION\n\t // =========================\n\t\n\t var Carousel = function (element, options) {\n\t this.$element = $(element)\n\t this.$indicators = this.$element.find('.carousel-indicators')\n\t this.options = options\n\t this.paused = null\n\t this.sliding = null\n\t this.interval = null\n\t this.$active = null\n\t this.$items = null\n\t\n\t this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\t\n\t this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n\t .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n\t .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n\t }\n\t\n\t Carousel.VERSION = '3.3.7'\n\t\n\t Carousel.TRANSITION_DURATION = 600\n\t\n\t Carousel.DEFAULTS = {\n\t interval: 5000,\n\t pause: 'hover',\n\t wrap: true,\n\t keyboard: true\n\t }\n\t\n\t Carousel.prototype.keydown = function (e) {\n\t if (/input|textarea/i.test(e.target.tagName)) return\n\t switch (e.which) {\n\t case 37: this.prev(); break\n\t case 39: this.next(); break\n\t default: return\n\t }\n\t\n\t e.preventDefault()\n\t }\n\t\n\t Carousel.prototype.cycle = function (e) {\n\t e || (this.paused = false)\n\t\n\t this.interval && clearInterval(this.interval)\n\t\n\t this.options.interval\n\t && !this.paused\n\t && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\t\n\t return this\n\t }\n\t\n\t Carousel.prototype.getItemIndex = function (item) {\n\t this.$items = item.parent().children('.item')\n\t return this.$items.index(item || this.$active)\n\t }\n\t\n\t Carousel.prototype.getItemForDirection = function (direction, active) {\n\t var activeIndex = this.getItemIndex(active)\n\t var willWrap = (direction == 'prev' && activeIndex === 0)\n\t || (direction == 'next' && activeIndex == (this.$items.length - 1))\n\t if (willWrap && !this.options.wrap) return active\n\t var delta = direction == 'prev' ? -1 : 1\n\t var itemIndex = (activeIndex + delta) % this.$items.length\n\t return this.$items.eq(itemIndex)\n\t }\n\t\n\t Carousel.prototype.to = function (pos) {\n\t var that = this\n\t var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\t\n\t if (pos > (this.$items.length - 1) || pos < 0) return\n\t\n\t if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n\t if (activeIndex == pos) return this.pause().cycle()\n\t\n\t return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n\t }\n\t\n\t Carousel.prototype.pause = function (e) {\n\t e || (this.paused = true)\n\t\n\t if (this.$element.find('.next, .prev').length && $.support.transition) {\n\t this.$element.trigger($.support.transition.end)\n\t this.cycle(true)\n\t }\n\t\n\t this.interval = clearInterval(this.interval)\n\t\n\t return this\n\t }\n\t\n\t Carousel.prototype.next = function () {\n\t if (this.sliding) return\n\t return this.slide('next')\n\t }\n\t\n\t Carousel.prototype.prev = function () {\n\t if (this.sliding) return\n\t return this.slide('prev')\n\t }\n\t\n\t Carousel.prototype.slide = function (type, next) {\n\t var $active = this.$element.find('.item.active')\n\t var $next = next || this.getItemForDirection(type, $active)\n\t var isCycling = this.interval\n\t var direction = type == 'next' ? 'left' : 'right'\n\t var that = this\n\t\n\t if ($next.hasClass('active')) return (this.sliding = false)\n\t\n\t var relatedTarget = $next[0]\n\t var slideEvent = $.Event('slide.bs.carousel', {\n\t relatedTarget: relatedTarget,\n\t direction: direction\n\t })\n\t this.$element.trigger(slideEvent)\n\t if (slideEvent.isDefaultPrevented()) return\n\t\n\t this.sliding = true\n\t\n\t isCycling && this.pause()\n\t\n\t if (this.$indicators.length) {\n\t this.$indicators.find('.active').removeClass('active')\n\t var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n\t $nextIndicator && $nextIndicator.addClass('active')\n\t }\n\t\n\t var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n\t if ($.support.transition && this.$element.hasClass('slide')) {\n\t $next.addClass(type)\n\t $next[0].offsetWidth // force reflow\n\t $active.addClass(direction)\n\t $next.addClass(direction)\n\t $active\n\t .one('bsTransitionEnd', function () {\n\t $next.removeClass([type, direction].join(' ')).addClass('active')\n\t $active.removeClass(['active', direction].join(' '))\n\t that.sliding = false\n\t setTimeout(function () {\n\t that.$element.trigger(slidEvent)\n\t }, 0)\n\t })\n\t .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n\t } else {\n\t $active.removeClass('active')\n\t $next.addClass('active')\n\t this.sliding = false\n\t this.$element.trigger(slidEvent)\n\t }\n\t\n\t isCycling && this.cycle()\n\t\n\t return this\n\t }\n\t\n\t\n\t // CAROUSEL PLUGIN DEFINITION\n\t // ==========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.carousel')\n\t var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\t var action = typeof option == 'string' ? option : options.slide\n\t\n\t if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n\t if (typeof option == 'number') data.to(option)\n\t else if (action) data[action]()\n\t else if (options.interval) data.pause().cycle()\n\t })\n\t }\n\t\n\t var old = $.fn.carousel\n\t\n\t $.fn.carousel = Plugin\n\t $.fn.carousel.Constructor = Carousel\n\t\n\t\n\t // CAROUSEL NO CONFLICT\n\t // ====================\n\t\n\t $.fn.carousel.noConflict = function () {\n\t $.fn.carousel = old\n\t return this\n\t }\n\t\n\t\n\t // CAROUSEL DATA-API\n\t // =================\n\t\n\t var clickHandler = function (e) {\n\t var href\n\t var $this = $(this)\n\t var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n\t if (!$target.hasClass('carousel')) return\n\t var options = $.extend({}, $target.data(), $this.data())\n\t var slideIndex = $this.attr('data-slide-to')\n\t if (slideIndex) options.interval = false\n\t\n\t Plugin.call($target, options)\n\t\n\t if (slideIndex) {\n\t $target.data('bs.carousel').to(slideIndex)\n\t }\n\t\n\t e.preventDefault()\n\t }\n\t\n\t $(document)\n\t .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n\t .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\t\n\t $(window).on('load', function () {\n\t $('[data-ride=\"carousel\"]').each(function () {\n\t var $carousel = $(this)\n\t Plugin.call($carousel, $carousel.data())\n\t })\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 398 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: collapse.js v3.3.7\n\t * http://getbootstrap.com/javascript/#collapse\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t/* jshint latedef: false */\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // COLLAPSE PUBLIC CLASS DEFINITION\n\t // ================================\n\t\n\t var Collapse = function (element, options) {\n\t this.$element = $(element)\n\t this.options = $.extend({}, Collapse.DEFAULTS, options)\n\t this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n\t '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n\t this.transitioning = null\n\t\n\t if (this.options.parent) {\n\t this.$parent = this.getParent()\n\t } else {\n\t this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n\t }\n\t\n\t if (this.options.toggle) this.toggle()\n\t }\n\t\n\t Collapse.VERSION = '3.3.7'\n\t\n\t Collapse.TRANSITION_DURATION = 350\n\t\n\t Collapse.DEFAULTS = {\n\t toggle: true\n\t }\n\t\n\t Collapse.prototype.dimension = function () {\n\t var hasWidth = this.$element.hasClass('width')\n\t return hasWidth ? 'width' : 'height'\n\t }\n\t\n\t Collapse.prototype.show = function () {\n\t if (this.transitioning || this.$element.hasClass('in')) return\n\t\n\t var activesData\n\t var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\t\n\t if (actives && actives.length) {\n\t activesData = actives.data('bs.collapse')\n\t if (activesData && activesData.transitioning) return\n\t }\n\t\n\t var startEvent = $.Event('show.bs.collapse')\n\t this.$element.trigger(startEvent)\n\t if (startEvent.isDefaultPrevented()) return\n\t\n\t if (actives && actives.length) {\n\t Plugin.call(actives, 'hide')\n\t activesData || actives.data('bs.collapse', null)\n\t }\n\t\n\t var dimension = this.dimension()\n\t\n\t this.$element\n\t .removeClass('collapse')\n\t .addClass('collapsing')[dimension](0)\n\t .attr('aria-expanded', true)\n\t\n\t this.$trigger\n\t .removeClass('collapsed')\n\t .attr('aria-expanded', true)\n\t\n\t this.transitioning = 1\n\t\n\t var complete = function () {\n\t this.$element\n\t .removeClass('collapsing')\n\t .addClass('collapse in')[dimension]('')\n\t this.transitioning = 0\n\t this.$element\n\t .trigger('shown.bs.collapse')\n\t }\n\t\n\t if (!$.support.transition) return complete.call(this)\n\t\n\t var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\t\n\t this.$element\n\t .one('bsTransitionEnd', $.proxy(complete, this))\n\t .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n\t }\n\t\n\t Collapse.prototype.hide = function () {\n\t if (this.transitioning || !this.$element.hasClass('in')) return\n\t\n\t var startEvent = $.Event('hide.bs.collapse')\n\t this.$element.trigger(startEvent)\n\t if (startEvent.isDefaultPrevented()) return\n\t\n\t var dimension = this.dimension()\n\t\n\t this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\t\n\t this.$element\n\t .addClass('collapsing')\n\t .removeClass('collapse in')\n\t .attr('aria-expanded', false)\n\t\n\t this.$trigger\n\t .addClass('collapsed')\n\t .attr('aria-expanded', false)\n\t\n\t this.transitioning = 1\n\t\n\t var complete = function () {\n\t this.transitioning = 0\n\t this.$element\n\t .removeClass('collapsing')\n\t .addClass('collapse')\n\t .trigger('hidden.bs.collapse')\n\t }\n\t\n\t if (!$.support.transition) return complete.call(this)\n\t\n\t this.$element\n\t [dimension](0)\n\t .one('bsTransitionEnd', $.proxy(complete, this))\n\t .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n\t }\n\t\n\t Collapse.prototype.toggle = function () {\n\t this[this.$element.hasClass('in') ? 'hide' : 'show']()\n\t }\n\t\n\t Collapse.prototype.getParent = function () {\n\t return $(this.options.parent)\n\t .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n\t .each($.proxy(function (i, element) {\n\t var $element = $(element)\n\t this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n\t }, this))\n\t .end()\n\t }\n\t\n\t Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n\t var isOpen = $element.hasClass('in')\n\t\n\t $element.attr('aria-expanded', isOpen)\n\t $trigger\n\t .toggleClass('collapsed', !isOpen)\n\t .attr('aria-expanded', isOpen)\n\t }\n\t\n\t function getTargetFromTrigger($trigger) {\n\t var href\n\t var target = $trigger.attr('data-target')\n\t || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\t\n\t return $(target)\n\t }\n\t\n\t\n\t // COLLAPSE PLUGIN DEFINITION\n\t // ==========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.collapse')\n\t var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\t\n\t if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n\t if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.collapse\n\t\n\t $.fn.collapse = Plugin\n\t $.fn.collapse.Constructor = Collapse\n\t\n\t\n\t // COLLAPSE NO CONFLICT\n\t // ====================\n\t\n\t $.fn.collapse.noConflict = function () {\n\t $.fn.collapse = old\n\t return this\n\t }\n\t\n\t\n\t // COLLAPSE DATA-API\n\t // =================\n\t\n\t $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n\t var $this = $(this)\n\t\n\t if (!$this.attr('data-target')) e.preventDefault()\n\t\n\t var $target = getTargetFromTrigger($this)\n\t var data = $target.data('bs.collapse')\n\t var option = data ? 'toggle' : $this.data()\n\t\n\t Plugin.call($target, option)\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 399 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: dropdown.js v3.3.7\n\t * http://getbootstrap.com/javascript/#dropdowns\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // DROPDOWN CLASS DEFINITION\n\t // =========================\n\t\n\t var backdrop = '.dropdown-backdrop'\n\t var toggle = '[data-toggle=\"dropdown\"]'\n\t var Dropdown = function (element) {\n\t $(element).on('click.bs.dropdown', this.toggle)\n\t }\n\t\n\t Dropdown.VERSION = '3.3.7'\n\t\n\t function getParent($this) {\n\t var selector = $this.attr('data-target')\n\t\n\t if (!selector) {\n\t selector = $this.attr('href')\n\t selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n\t }\n\t\n\t var $parent = selector && $(selector)\n\t\n\t return $parent && $parent.length ? $parent : $this.parent()\n\t }\n\t\n\t function clearMenus(e) {\n\t if (e && e.which === 3) return\n\t $(backdrop).remove()\n\t $(toggle).each(function () {\n\t var $this = $(this)\n\t var $parent = getParent($this)\n\t var relatedTarget = { relatedTarget: this }\n\t\n\t if (!$parent.hasClass('open')) return\n\t\n\t if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\t\n\t $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\t\n\t if (e.isDefaultPrevented()) return\n\t\n\t $this.attr('aria-expanded', 'false')\n\t $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n\t })\n\t }\n\t\n\t Dropdown.prototype.toggle = function (e) {\n\t var $this = $(this)\n\t\n\t if ($this.is('.disabled, :disabled')) return\n\t\n\t var $parent = getParent($this)\n\t var isActive = $parent.hasClass('open')\n\t\n\t clearMenus()\n\t\n\t if (!isActive) {\n\t if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n\t // if mobile we use a backdrop because click events don't delegate\n\t $(document.createElement('div'))\n\t .addClass('dropdown-backdrop')\n\t .insertAfter($(this))\n\t .on('click', clearMenus)\n\t }\n\t\n\t var relatedTarget = { relatedTarget: this }\n\t $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\t\n\t if (e.isDefaultPrevented()) return\n\t\n\t $this\n\t .trigger('focus')\n\t .attr('aria-expanded', 'true')\n\t\n\t $parent\n\t .toggleClass('open')\n\t .trigger($.Event('shown.bs.dropdown', relatedTarget))\n\t }\n\t\n\t return false\n\t }\n\t\n\t Dropdown.prototype.keydown = function (e) {\n\t if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\t\n\t var $this = $(this)\n\t\n\t e.preventDefault()\n\t e.stopPropagation()\n\t\n\t if ($this.is('.disabled, :disabled')) return\n\t\n\t var $parent = getParent($this)\n\t var isActive = $parent.hasClass('open')\n\t\n\t if (!isActive && e.which != 27 || isActive && e.which == 27) {\n\t if (e.which == 27) $parent.find(toggle).trigger('focus')\n\t return $this.trigger('click')\n\t }\n\t\n\t var desc = ' li:not(.disabled):visible a'\n\t var $items = $parent.find('.dropdown-menu' + desc)\n\t\n\t if (!$items.length) return\n\t\n\t var index = $items.index(e.target)\n\t\n\t if (e.which == 38 && index > 0) index-- // up\n\t if (e.which == 40 && index < $items.length - 1) index++ // down\n\t if (!~index) index = 0\n\t\n\t $items.eq(index).trigger('focus')\n\t }\n\t\n\t\n\t // DROPDOWN PLUGIN DEFINITION\n\t // ==========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.dropdown')\n\t\n\t if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n\t if (typeof option == 'string') data[option].call($this)\n\t })\n\t }\n\t\n\t var old = $.fn.dropdown\n\t\n\t $.fn.dropdown = Plugin\n\t $.fn.dropdown.Constructor = Dropdown\n\t\n\t\n\t // DROPDOWN NO CONFLICT\n\t // ====================\n\t\n\t $.fn.dropdown.noConflict = function () {\n\t $.fn.dropdown = old\n\t return this\n\t }\n\t\n\t\n\t // APPLY TO STANDARD DROPDOWN ELEMENTS\n\t // ===================================\n\t\n\t $(document)\n\t .on('click.bs.dropdown.data-api', clearMenus)\n\t .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n\t .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n\t .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n\t .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 400 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: modal.js v3.3.7\n\t * http://getbootstrap.com/javascript/#modals\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // MODAL CLASS DEFINITION\n\t // ======================\n\t\n\t var Modal = function (element, options) {\n\t this.options = options\n\t this.$body = $(document.body)\n\t this.$element = $(element)\n\t this.$dialog = this.$element.find('.modal-dialog')\n\t this.$backdrop = null\n\t this.isShown = null\n\t this.originalBodyPad = null\n\t this.scrollbarWidth = 0\n\t this.ignoreBackdropClick = false\n\t\n\t if (this.options.remote) {\n\t this.$element\n\t .find('.modal-content')\n\t .load(this.options.remote, $.proxy(function () {\n\t this.$element.trigger('loaded.bs.modal')\n\t }, this))\n\t }\n\t }\n\t\n\t Modal.VERSION = '3.3.7'\n\t\n\t Modal.TRANSITION_DURATION = 300\n\t Modal.BACKDROP_TRANSITION_DURATION = 150\n\t\n\t Modal.DEFAULTS = {\n\t backdrop: true,\n\t keyboard: true,\n\t show: true\n\t }\n\t\n\t Modal.prototype.toggle = function (_relatedTarget) {\n\t return this.isShown ? this.hide() : this.show(_relatedTarget)\n\t }\n\t\n\t Modal.prototype.show = function (_relatedTarget) {\n\t var that = this\n\t var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\t\n\t this.$element.trigger(e)\n\t\n\t if (this.isShown || e.isDefaultPrevented()) return\n\t\n\t this.isShown = true\n\t\n\t this.checkScrollbar()\n\t this.setScrollbar()\n\t this.$body.addClass('modal-open')\n\t\n\t this.escape()\n\t this.resize()\n\t\n\t this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\t\n\t this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n\t that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n\t if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n\t })\n\t })\n\t\n\t this.backdrop(function () {\n\t var transition = $.support.transition && that.$element.hasClass('fade')\n\t\n\t if (!that.$element.parent().length) {\n\t that.$element.appendTo(that.$body) // don't move modals dom position\n\t }\n\t\n\t that.$element\n\t .show()\n\t .scrollTop(0)\n\t\n\t that.adjustDialog()\n\t\n\t if (transition) {\n\t that.$element[0].offsetWidth // force reflow\n\t }\n\t\n\t that.$element.addClass('in')\n\t\n\t that.enforceFocus()\n\t\n\t var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\t\n\t transition ?\n\t that.$dialog // wait for modal to slide in\n\t .one('bsTransitionEnd', function () {\n\t that.$element.trigger('focus').trigger(e)\n\t })\n\t .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n\t that.$element.trigger('focus').trigger(e)\n\t })\n\t }\n\t\n\t Modal.prototype.hide = function (e) {\n\t if (e) e.preventDefault()\n\t\n\t e = $.Event('hide.bs.modal')\n\t\n\t this.$element.trigger(e)\n\t\n\t if (!this.isShown || e.isDefaultPrevented()) return\n\t\n\t this.isShown = false\n\t\n\t this.escape()\n\t this.resize()\n\t\n\t $(document).off('focusin.bs.modal')\n\t\n\t this.$element\n\t .removeClass('in')\n\t .off('click.dismiss.bs.modal')\n\t .off('mouseup.dismiss.bs.modal')\n\t\n\t this.$dialog.off('mousedown.dismiss.bs.modal')\n\t\n\t $.support.transition && this.$element.hasClass('fade') ?\n\t this.$element\n\t .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n\t .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n\t this.hideModal()\n\t }\n\t\n\t Modal.prototype.enforceFocus = function () {\n\t $(document)\n\t .off('focusin.bs.modal') // guard against infinite focus loop\n\t .on('focusin.bs.modal', $.proxy(function (e) {\n\t if (document !== e.target &&\n\t this.$element[0] !== e.target &&\n\t !this.$element.has(e.target).length) {\n\t this.$element.trigger('focus')\n\t }\n\t }, this))\n\t }\n\t\n\t Modal.prototype.escape = function () {\n\t if (this.isShown && this.options.keyboard) {\n\t this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n\t e.which == 27 && this.hide()\n\t }, this))\n\t } else if (!this.isShown) {\n\t this.$element.off('keydown.dismiss.bs.modal')\n\t }\n\t }\n\t\n\t Modal.prototype.resize = function () {\n\t if (this.isShown) {\n\t $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n\t } else {\n\t $(window).off('resize.bs.modal')\n\t }\n\t }\n\t\n\t Modal.prototype.hideModal = function () {\n\t var that = this\n\t this.$element.hide()\n\t this.backdrop(function () {\n\t that.$body.removeClass('modal-open')\n\t that.resetAdjustments()\n\t that.resetScrollbar()\n\t that.$element.trigger('hidden.bs.modal')\n\t })\n\t }\n\t\n\t Modal.prototype.removeBackdrop = function () {\n\t this.$backdrop && this.$backdrop.remove()\n\t this.$backdrop = null\n\t }\n\t\n\t Modal.prototype.backdrop = function (callback) {\n\t var that = this\n\t var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\t\n\t if (this.isShown && this.options.backdrop) {\n\t var doAnimate = $.support.transition && animate\n\t\n\t this.$backdrop = $(document.createElement('div'))\n\t .addClass('modal-backdrop ' + animate)\n\t .appendTo(this.$body)\n\t\n\t this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n\t if (this.ignoreBackdropClick) {\n\t this.ignoreBackdropClick = false\n\t return\n\t }\n\t if (e.target !== e.currentTarget) return\n\t this.options.backdrop == 'static'\n\t ? this.$element[0].focus()\n\t : this.hide()\n\t }, this))\n\t\n\t if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\t\n\t this.$backdrop.addClass('in')\n\t\n\t if (!callback) return\n\t\n\t doAnimate ?\n\t this.$backdrop\n\t .one('bsTransitionEnd', callback)\n\t .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n\t callback()\n\t\n\t } else if (!this.isShown && this.$backdrop) {\n\t this.$backdrop.removeClass('in')\n\t\n\t var callbackRemove = function () {\n\t that.removeBackdrop()\n\t callback && callback()\n\t }\n\t $.support.transition && this.$element.hasClass('fade') ?\n\t this.$backdrop\n\t .one('bsTransitionEnd', callbackRemove)\n\t .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n\t callbackRemove()\n\t\n\t } else if (callback) {\n\t callback()\n\t }\n\t }\n\t\n\t // these following methods are used to handle overflowing modals\n\t\n\t Modal.prototype.handleUpdate = function () {\n\t this.adjustDialog()\n\t }\n\t\n\t Modal.prototype.adjustDialog = function () {\n\t var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\t\n\t this.$element.css({\n\t paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n\t paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n\t })\n\t }\n\t\n\t Modal.prototype.resetAdjustments = function () {\n\t this.$element.css({\n\t paddingLeft: '',\n\t paddingRight: ''\n\t })\n\t }\n\t\n\t Modal.prototype.checkScrollbar = function () {\n\t var fullWindowWidth = window.innerWidth\n\t if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n\t var documentElementRect = document.documentElement.getBoundingClientRect()\n\t fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n\t }\n\t this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n\t this.scrollbarWidth = this.measureScrollbar()\n\t }\n\t\n\t Modal.prototype.setScrollbar = function () {\n\t var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n\t this.originalBodyPad = document.body.style.paddingRight || ''\n\t if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n\t }\n\t\n\t Modal.prototype.resetScrollbar = function () {\n\t this.$body.css('padding-right', this.originalBodyPad)\n\t }\n\t\n\t Modal.prototype.measureScrollbar = function () { // thx walsh\n\t var scrollDiv = document.createElement('div')\n\t scrollDiv.className = 'modal-scrollbar-measure'\n\t this.$body.append(scrollDiv)\n\t var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n\t this.$body[0].removeChild(scrollDiv)\n\t return scrollbarWidth\n\t }\n\t\n\t\n\t // MODAL PLUGIN DEFINITION\n\t // =======================\n\t\n\t function Plugin(option, _relatedTarget) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.modal')\n\t var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\t\n\t if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n\t if (typeof option == 'string') data[option](_relatedTarget)\n\t else if (options.show) data.show(_relatedTarget)\n\t })\n\t }\n\t\n\t var old = $.fn.modal\n\t\n\t $.fn.modal = Plugin\n\t $.fn.modal.Constructor = Modal\n\t\n\t\n\t // MODAL NO CONFLICT\n\t // =================\n\t\n\t $.fn.modal.noConflict = function () {\n\t $.fn.modal = old\n\t return this\n\t }\n\t\n\t\n\t // MODAL DATA-API\n\t // ==============\n\t\n\t $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n\t var $this = $(this)\n\t var href = $this.attr('href')\n\t var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n\t var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\t\n\t if ($this.is('a')) e.preventDefault()\n\t\n\t $target.one('show.bs.modal', function (showEvent) {\n\t if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n\t $target.one('hidden.bs.modal', function () {\n\t $this.is(':visible') && $this.trigger('focus')\n\t })\n\t })\n\t Plugin.call($target, option, this)\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 401 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: popover.js v3.3.7\n\t * http://getbootstrap.com/javascript/#popovers\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // POPOVER PUBLIC CLASS DEFINITION\n\t // ===============================\n\t\n\t var Popover = function (element, options) {\n\t this.init('popover', element, options)\n\t }\n\t\n\t if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\t\n\t Popover.VERSION = '3.3.7'\n\t\n\t Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n\t placement: 'right',\n\t trigger: 'click',\n\t content: '',\n\t template: '
'\n\t })\n\t\n\t\n\t // NOTE: POPOVER EXTENDS tooltip.js\n\t // ================================\n\t\n\t Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\t\n\t Popover.prototype.constructor = Popover\n\t\n\t Popover.prototype.getDefaults = function () {\n\t return Popover.DEFAULTS\n\t }\n\t\n\t Popover.prototype.setContent = function () {\n\t var $tip = this.tip()\n\t var title = this.getTitle()\n\t var content = this.getContent()\n\t\n\t $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n\t $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n\t this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n\t ](content)\n\t\n\t $tip.removeClass('fade top bottom left right in')\n\t\n\t // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n\t // this manually by checking the contents.\n\t if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n\t }\n\t\n\t Popover.prototype.hasContent = function () {\n\t return this.getTitle() || this.getContent()\n\t }\n\t\n\t Popover.prototype.getContent = function () {\n\t var $e = this.$element\n\t var o = this.options\n\t\n\t return $e.attr('data-content')\n\t || (typeof o.content == 'function' ?\n\t o.content.call($e[0]) :\n\t o.content)\n\t }\n\t\n\t Popover.prototype.arrow = function () {\n\t return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n\t }\n\t\n\t\n\t // POPOVER PLUGIN DEFINITION\n\t // =========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.popover')\n\t var options = typeof option == 'object' && option\n\t\n\t if (!data && /destroy|hide/.test(option)) return\n\t if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.popover\n\t\n\t $.fn.popover = Plugin\n\t $.fn.popover.Constructor = Popover\n\t\n\t\n\t // POPOVER NO CONFLICT\n\t // ===================\n\t\n\t $.fn.popover.noConflict = function () {\n\t $.fn.popover = old\n\t return this\n\t }\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 402 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: scrollspy.js v3.3.7\n\t * http://getbootstrap.com/javascript/#scrollspy\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // SCROLLSPY CLASS DEFINITION\n\t // ==========================\n\t\n\t function ScrollSpy(element, options) {\n\t this.$body = $(document.body)\n\t this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n\t this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n\t this.selector = (this.options.target || '') + ' .nav li > a'\n\t this.offsets = []\n\t this.targets = []\n\t this.activeTarget = null\n\t this.scrollHeight = 0\n\t\n\t this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n\t this.refresh()\n\t this.process()\n\t }\n\t\n\t ScrollSpy.VERSION = '3.3.7'\n\t\n\t ScrollSpy.DEFAULTS = {\n\t offset: 10\n\t }\n\t\n\t ScrollSpy.prototype.getScrollHeight = function () {\n\t return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n\t }\n\t\n\t ScrollSpy.prototype.refresh = function () {\n\t var that = this\n\t var offsetMethod = 'offset'\n\t var offsetBase = 0\n\t\n\t this.offsets = []\n\t this.targets = []\n\t this.scrollHeight = this.getScrollHeight()\n\t\n\t if (!$.isWindow(this.$scrollElement[0])) {\n\t offsetMethod = 'position'\n\t offsetBase = this.$scrollElement.scrollTop()\n\t }\n\t\n\t this.$body\n\t .find(this.selector)\n\t .map(function () {\n\t var $el = $(this)\n\t var href = $el.data('target') || $el.attr('href')\n\t var $href = /^#./.test(href) && $(href)\n\t\n\t return ($href\n\t && $href.length\n\t && $href.is(':visible')\n\t && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n\t })\n\t .sort(function (a, b) { return a[0] - b[0] })\n\t .each(function () {\n\t that.offsets.push(this[0])\n\t that.targets.push(this[1])\n\t })\n\t }\n\t\n\t ScrollSpy.prototype.process = function () {\n\t var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n\t var scrollHeight = this.getScrollHeight()\n\t var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n\t var offsets = this.offsets\n\t var targets = this.targets\n\t var activeTarget = this.activeTarget\n\t var i\n\t\n\t if (this.scrollHeight != scrollHeight) {\n\t this.refresh()\n\t }\n\t\n\t if (scrollTop >= maxScroll) {\n\t return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n\t }\n\t\n\t if (activeTarget && scrollTop < offsets[0]) {\n\t this.activeTarget = null\n\t return this.clear()\n\t }\n\t\n\t for (i = offsets.length; i--;) {\n\t activeTarget != targets[i]\n\t && scrollTop >= offsets[i]\n\t && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n\t && this.activate(targets[i])\n\t }\n\t }\n\t\n\t ScrollSpy.prototype.activate = function (target) {\n\t this.activeTarget = target\n\t\n\t this.clear()\n\t\n\t var selector = this.selector +\n\t '[data-target=\"' + target + '\"],' +\n\t this.selector + '[href=\"' + target + '\"]'\n\t\n\t var active = $(selector)\n\t .parents('li')\n\t .addClass('active')\n\t\n\t if (active.parent('.dropdown-menu').length) {\n\t active = active\n\t .closest('li.dropdown')\n\t .addClass('active')\n\t }\n\t\n\t active.trigger('activate.bs.scrollspy')\n\t }\n\t\n\t ScrollSpy.prototype.clear = function () {\n\t $(this.selector)\n\t .parentsUntil(this.options.target, '.active')\n\t .removeClass('active')\n\t }\n\t\n\t\n\t // SCROLLSPY PLUGIN DEFINITION\n\t // ===========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.scrollspy')\n\t var options = typeof option == 'object' && option\n\t\n\t if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.scrollspy\n\t\n\t $.fn.scrollspy = Plugin\n\t $.fn.scrollspy.Constructor = ScrollSpy\n\t\n\t\n\t // SCROLLSPY NO CONFLICT\n\t // =====================\n\t\n\t $.fn.scrollspy.noConflict = function () {\n\t $.fn.scrollspy = old\n\t return this\n\t }\n\t\n\t\n\t // SCROLLSPY DATA-API\n\t // ==================\n\t\n\t $(window).on('load.bs.scrollspy.data-api', function () {\n\t $('[data-spy=\"scroll\"]').each(function () {\n\t var $spy = $(this)\n\t Plugin.call($spy, $spy.data())\n\t })\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 403 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: tab.js v3.3.7\n\t * http://getbootstrap.com/javascript/#tabs\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // TAB CLASS DEFINITION\n\t // ====================\n\t\n\t var Tab = function (element) {\n\t // jscs:disable requireDollarBeforejQueryAssignment\n\t this.element = $(element)\n\t // jscs:enable requireDollarBeforejQueryAssignment\n\t }\n\t\n\t Tab.VERSION = '3.3.7'\n\t\n\t Tab.TRANSITION_DURATION = 150\n\t\n\t Tab.prototype.show = function () {\n\t var $this = this.element\n\t var $ul = $this.closest('ul:not(.dropdown-menu)')\n\t var selector = $this.data('target')\n\t\n\t if (!selector) {\n\t selector = $this.attr('href')\n\t selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n\t }\n\t\n\t if ($this.parent('li').hasClass('active')) return\n\t\n\t var $previous = $ul.find('.active:last a')\n\t var hideEvent = $.Event('hide.bs.tab', {\n\t relatedTarget: $this[0]\n\t })\n\t var showEvent = $.Event('show.bs.tab', {\n\t relatedTarget: $previous[0]\n\t })\n\t\n\t $previous.trigger(hideEvent)\n\t $this.trigger(showEvent)\n\t\n\t if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\t\n\t var $target = $(selector)\n\t\n\t this.activate($this.closest('li'), $ul)\n\t this.activate($target, $target.parent(), function () {\n\t $previous.trigger({\n\t type: 'hidden.bs.tab',\n\t relatedTarget: $this[0]\n\t })\n\t $this.trigger({\n\t type: 'shown.bs.tab',\n\t relatedTarget: $previous[0]\n\t })\n\t })\n\t }\n\t\n\t Tab.prototype.activate = function (element, container, callback) {\n\t var $active = container.find('> .active')\n\t var transition = callback\n\t && $.support.transition\n\t && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\t\n\t function next() {\n\t $active\n\t .removeClass('active')\n\t .find('> .dropdown-menu > .active')\n\t .removeClass('active')\n\t .end()\n\t .find('[data-toggle=\"tab\"]')\n\t .attr('aria-expanded', false)\n\t\n\t element\n\t .addClass('active')\n\t .find('[data-toggle=\"tab\"]')\n\t .attr('aria-expanded', true)\n\t\n\t if (transition) {\n\t element[0].offsetWidth // reflow for transition\n\t element.addClass('in')\n\t } else {\n\t element.removeClass('fade')\n\t }\n\t\n\t if (element.parent('.dropdown-menu').length) {\n\t element\n\t .closest('li.dropdown')\n\t .addClass('active')\n\t .end()\n\t .find('[data-toggle=\"tab\"]')\n\t .attr('aria-expanded', true)\n\t }\n\t\n\t callback && callback()\n\t }\n\t\n\t $active.length && transition ?\n\t $active\n\t .one('bsTransitionEnd', next)\n\t .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n\t next()\n\t\n\t $active.removeClass('in')\n\t }\n\t\n\t\n\t // TAB PLUGIN DEFINITION\n\t // =====================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.tab')\n\t\n\t if (!data) $this.data('bs.tab', (data = new Tab(this)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.tab\n\t\n\t $.fn.tab = Plugin\n\t $.fn.tab.Constructor = Tab\n\t\n\t\n\t // TAB NO CONFLICT\n\t // ===============\n\t\n\t $.fn.tab.noConflict = function () {\n\t $.fn.tab = old\n\t return this\n\t }\n\t\n\t\n\t // TAB DATA-API\n\t // ============\n\t\n\t var clickHandler = function (e) {\n\t e.preventDefault()\n\t Plugin.call($(this), 'show')\n\t }\n\t\n\t $(document)\n\t .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n\t .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 404 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: tooltip.js v3.3.7\n\t * http://getbootstrap.com/javascript/#tooltip\n\t * Inspired by the original jQuery.tipsy by Jason Frame\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // TOOLTIP PUBLIC CLASS DEFINITION\n\t // ===============================\n\t\n\t var Tooltip = function (element, options) {\n\t this.type = null\n\t this.options = null\n\t this.enabled = null\n\t this.timeout = null\n\t this.hoverState = null\n\t this.$element = null\n\t this.inState = null\n\t\n\t this.init('tooltip', element, options)\n\t }\n\t\n\t Tooltip.VERSION = '3.3.7'\n\t\n\t Tooltip.TRANSITION_DURATION = 150\n\t\n\t Tooltip.DEFAULTS = {\n\t animation: true,\n\t placement: 'top',\n\t selector: false,\n\t template: '
',\n\t trigger: 'hover focus',\n\t title: '',\n\t delay: 0,\n\t html: false,\n\t container: false,\n\t viewport: {\n\t selector: 'body',\n\t padding: 0\n\t }\n\t }\n\t\n\t Tooltip.prototype.init = function (type, element, options) {\n\t this.enabled = true\n\t this.type = type\n\t this.$element = $(element)\n\t this.options = this.getOptions(options)\n\t this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n\t this.inState = { click: false, hover: false, focus: false }\n\t\n\t if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n\t throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n\t }\n\t\n\t var triggers = this.options.trigger.split(' ')\n\t\n\t for (var i = triggers.length; i--;) {\n\t var trigger = triggers[i]\n\t\n\t if (trigger == 'click') {\n\t this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n\t } else if (trigger != 'manual') {\n\t var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n\t var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\t\n\t this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n\t this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n\t }\n\t }\n\t\n\t this.options.selector ?\n\t (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n\t this.fixTitle()\n\t }\n\t\n\t Tooltip.prototype.getDefaults = function () {\n\t return Tooltip.DEFAULTS\n\t }\n\t\n\t Tooltip.prototype.getOptions = function (options) {\n\t options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\t\n\t if (options.delay && typeof options.delay == 'number') {\n\t options.delay = {\n\t show: options.delay,\n\t hide: options.delay\n\t }\n\t }\n\t\n\t return options\n\t }\n\t\n\t Tooltip.prototype.getDelegateOptions = function () {\n\t var options = {}\n\t var defaults = this.getDefaults()\n\t\n\t this._options && $.each(this._options, function (key, value) {\n\t if (defaults[key] != value) options[key] = value\n\t })\n\t\n\t return options\n\t }\n\t\n\t Tooltip.prototype.enter = function (obj) {\n\t var self = obj instanceof this.constructor ?\n\t obj : $(obj.currentTarget).data('bs.' + this.type)\n\t\n\t if (!self) {\n\t self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n\t $(obj.currentTarget).data('bs.' + this.type, self)\n\t }\n\t\n\t if (obj instanceof $.Event) {\n\t self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n\t }\n\t\n\t if (self.tip().hasClass('in') || self.hoverState == 'in') {\n\t self.hoverState = 'in'\n\t return\n\t }\n\t\n\t clearTimeout(self.timeout)\n\t\n\t self.hoverState = 'in'\n\t\n\t if (!self.options.delay || !self.options.delay.show) return self.show()\n\t\n\t self.timeout = setTimeout(function () {\n\t if (self.hoverState == 'in') self.show()\n\t }, self.options.delay.show)\n\t }\n\t\n\t Tooltip.prototype.isInStateTrue = function () {\n\t for (var key in this.inState) {\n\t if (this.inState[key]) return true\n\t }\n\t\n\t return false\n\t }\n\t\n\t Tooltip.prototype.leave = function (obj) {\n\t var self = obj instanceof this.constructor ?\n\t obj : $(obj.currentTarget).data('bs.' + this.type)\n\t\n\t if (!self) {\n\t self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n\t $(obj.currentTarget).data('bs.' + this.type, self)\n\t }\n\t\n\t if (obj instanceof $.Event) {\n\t self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n\t }\n\t\n\t if (self.isInStateTrue()) return\n\t\n\t clearTimeout(self.timeout)\n\t\n\t self.hoverState = 'out'\n\t\n\t if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\t\n\t self.timeout = setTimeout(function () {\n\t if (self.hoverState == 'out') self.hide()\n\t }, self.options.delay.hide)\n\t }\n\t\n\t Tooltip.prototype.show = function () {\n\t var e = $.Event('show.bs.' + this.type)\n\t\n\t if (this.hasContent() && this.enabled) {\n\t this.$element.trigger(e)\n\t\n\t var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n\t if (e.isDefaultPrevented() || !inDom) return\n\t var that = this\n\t\n\t var $tip = this.tip()\n\t\n\t var tipId = this.getUID(this.type)\n\t\n\t this.setContent()\n\t $tip.attr('id', tipId)\n\t this.$element.attr('aria-describedby', tipId)\n\t\n\t if (this.options.animation) $tip.addClass('fade')\n\t\n\t var placement = typeof this.options.placement == 'function' ?\n\t this.options.placement.call(this, $tip[0], this.$element[0]) :\n\t this.options.placement\n\t\n\t var autoToken = /\\s?auto?\\s?/i\n\t var autoPlace = autoToken.test(placement)\n\t if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\t\n\t $tip\n\t .detach()\n\t .css({ top: 0, left: 0, display: 'block' })\n\t .addClass(placement)\n\t .data('bs.' + this.type, this)\n\t\n\t this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n\t this.$element.trigger('inserted.bs.' + this.type)\n\t\n\t var pos = this.getPosition()\n\t var actualWidth = $tip[0].offsetWidth\n\t var actualHeight = $tip[0].offsetHeight\n\t\n\t if (autoPlace) {\n\t var orgPlacement = placement\n\t var viewportDim = this.getPosition(this.$viewport)\n\t\n\t placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n\t placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n\t placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n\t placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n\t placement\n\t\n\t $tip\n\t .removeClass(orgPlacement)\n\t .addClass(placement)\n\t }\n\t\n\t var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\t\n\t this.applyPlacement(calculatedOffset, placement)\n\t\n\t var complete = function () {\n\t var prevHoverState = that.hoverState\n\t that.$element.trigger('shown.bs.' + that.type)\n\t that.hoverState = null\n\t\n\t if (prevHoverState == 'out') that.leave(that)\n\t }\n\t\n\t $.support.transition && this.$tip.hasClass('fade') ?\n\t $tip\n\t .one('bsTransitionEnd', complete)\n\t .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n\t complete()\n\t }\n\t }\n\t\n\t Tooltip.prototype.applyPlacement = function (offset, placement) {\n\t var $tip = this.tip()\n\t var width = $tip[0].offsetWidth\n\t var height = $tip[0].offsetHeight\n\t\n\t // manually read margins because getBoundingClientRect includes difference\n\t var marginTop = parseInt($tip.css('margin-top'), 10)\n\t var marginLeft = parseInt($tip.css('margin-left'), 10)\n\t\n\t // we must check for NaN for ie 8/9\n\t if (isNaN(marginTop)) marginTop = 0\n\t if (isNaN(marginLeft)) marginLeft = 0\n\t\n\t offset.top += marginTop\n\t offset.left += marginLeft\n\t\n\t // $.fn.offset doesn't round pixel values\n\t // so we use setOffset directly with our own function B-0\n\t $.offset.setOffset($tip[0], $.extend({\n\t using: function (props) {\n\t $tip.css({\n\t top: Math.round(props.top),\n\t left: Math.round(props.left)\n\t })\n\t }\n\t }, offset), 0)\n\t\n\t $tip.addClass('in')\n\t\n\t // check to see if placing tip in new offset caused the tip to resize itself\n\t var actualWidth = $tip[0].offsetWidth\n\t var actualHeight = $tip[0].offsetHeight\n\t\n\t if (placement == 'top' && actualHeight != height) {\n\t offset.top = offset.top + height - actualHeight\n\t }\n\t\n\t var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\t\n\t if (delta.left) offset.left += delta.left\n\t else offset.top += delta.top\n\t\n\t var isVertical = /top|bottom/.test(placement)\n\t var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n\t var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\t\n\t $tip.offset(offset)\n\t this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n\t }\n\t\n\t Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n\t this.arrow()\n\t .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n\t .css(isVertical ? 'top' : 'left', '')\n\t }\n\t\n\t Tooltip.prototype.setContent = function () {\n\t var $tip = this.tip()\n\t var title = this.getTitle()\n\t\n\t $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n\t $tip.removeClass('fade in top bottom left right')\n\t }\n\t\n\t Tooltip.prototype.hide = function (callback) {\n\t var that = this\n\t var $tip = $(this.$tip)\n\t var e = $.Event('hide.bs.' + this.type)\n\t\n\t function complete() {\n\t if (that.hoverState != 'in') $tip.detach()\n\t if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n\t that.$element\n\t .removeAttr('aria-describedby')\n\t .trigger('hidden.bs.' + that.type)\n\t }\n\t callback && callback()\n\t }\n\t\n\t this.$element.trigger(e)\n\t\n\t if (e.isDefaultPrevented()) return\n\t\n\t $tip.removeClass('in')\n\t\n\t $.support.transition && $tip.hasClass('fade') ?\n\t $tip\n\t .one('bsTransitionEnd', complete)\n\t .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n\t complete()\n\t\n\t this.hoverState = null\n\t\n\t return this\n\t }\n\t\n\t Tooltip.prototype.fixTitle = function () {\n\t var $e = this.$element\n\t if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n\t $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n\t }\n\t }\n\t\n\t Tooltip.prototype.hasContent = function () {\n\t return this.getTitle()\n\t }\n\t\n\t Tooltip.prototype.getPosition = function ($element) {\n\t $element = $element || this.$element\n\t\n\t var el = $element[0]\n\t var isBody = el.tagName == 'BODY'\n\t\n\t var elRect = el.getBoundingClientRect()\n\t if (elRect.width == null) {\n\t // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n\t elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n\t }\n\t var isSvg = window.SVGElement && el instanceof window.SVGElement\n\t // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n\t // See https://github.com/twbs/bootstrap/issues/20280\n\t var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n\t var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n\t var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\t\n\t return $.extend({}, elRect, scroll, outerDims, elOffset)\n\t }\n\t\n\t Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n\t return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n\t placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n\t placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n\t /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\t\n\t }\n\t\n\t Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n\t var delta = { top: 0, left: 0 }\n\t if (!this.$viewport) return delta\n\t\n\t var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n\t var viewportDimensions = this.getPosition(this.$viewport)\n\t\n\t if (/right|left/.test(placement)) {\n\t var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n\t var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n\t if (topEdgeOffset < viewportDimensions.top) { // top overflow\n\t delta.top = viewportDimensions.top - topEdgeOffset\n\t } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n\t delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n\t }\n\t } else {\n\t var leftEdgeOffset = pos.left - viewportPadding\n\t var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n\t if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n\t delta.left = viewportDimensions.left - leftEdgeOffset\n\t } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n\t delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n\t }\n\t }\n\t\n\t return delta\n\t }\n\t\n\t Tooltip.prototype.getTitle = function () {\n\t var title\n\t var $e = this.$element\n\t var o = this.options\n\t\n\t title = $e.attr('data-original-title')\n\t || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\t\n\t return title\n\t }\n\t\n\t Tooltip.prototype.getUID = function (prefix) {\n\t do prefix += ~~(Math.random() * 1000000)\n\t while (document.getElementById(prefix))\n\t return prefix\n\t }\n\t\n\t Tooltip.prototype.tip = function () {\n\t if (!this.$tip) {\n\t this.$tip = $(this.options.template)\n\t if (this.$tip.length != 1) {\n\t throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n\t }\n\t }\n\t return this.$tip\n\t }\n\t\n\t Tooltip.prototype.arrow = function () {\n\t return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n\t }\n\t\n\t Tooltip.prototype.enable = function () {\n\t this.enabled = true\n\t }\n\t\n\t Tooltip.prototype.disable = function () {\n\t this.enabled = false\n\t }\n\t\n\t Tooltip.prototype.toggleEnabled = function () {\n\t this.enabled = !this.enabled\n\t }\n\t\n\t Tooltip.prototype.toggle = function (e) {\n\t var self = this\n\t if (e) {\n\t self = $(e.currentTarget).data('bs.' + this.type)\n\t if (!self) {\n\t self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n\t $(e.currentTarget).data('bs.' + this.type, self)\n\t }\n\t }\n\t\n\t if (e) {\n\t self.inState.click = !self.inState.click\n\t if (self.isInStateTrue()) self.enter(self)\n\t else self.leave(self)\n\t } else {\n\t self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n\t }\n\t }\n\t\n\t Tooltip.prototype.destroy = function () {\n\t var that = this\n\t clearTimeout(this.timeout)\n\t this.hide(function () {\n\t that.$element.off('.' + that.type).removeData('bs.' + that.type)\n\t if (that.$tip) {\n\t that.$tip.detach()\n\t }\n\t that.$tip = null\n\t that.$arrow = null\n\t that.$viewport = null\n\t that.$element = null\n\t })\n\t }\n\t\n\t\n\t // TOOLTIP PLUGIN DEFINITION\n\t // =========================\n\t\n\t function Plugin(option) {\n\t return this.each(function () {\n\t var $this = $(this)\n\t var data = $this.data('bs.tooltip')\n\t var options = typeof option == 'object' && option\n\t\n\t if (!data && /destroy|hide/.test(option)) return\n\t if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n\t if (typeof option == 'string') data[option]()\n\t })\n\t }\n\t\n\t var old = $.fn.tooltip\n\t\n\t $.fn.tooltip = Plugin\n\t $.fn.tooltip.Constructor = Tooltip\n\t\n\t\n\t // TOOLTIP NO CONFLICT\n\t // ===================\n\t\n\t $.fn.tooltip.noConflict = function () {\n\t $.fn.tooltip = old\n\t return this\n\t }\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 405 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(jQuery) {/* ========================================================================\n\t * Bootstrap: transition.js v3.3.7\n\t * http://getbootstrap.com/javascript/#transitions\n\t * ========================================================================\n\t * Copyright 2011-2016 Twitter, Inc.\n\t * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n\t * ======================================================================== */\n\t\n\t\n\t+function ($) {\n\t 'use strict';\n\t\n\t // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n\t // ============================================================\n\t\n\t function transitionEnd() {\n\t var el = document.createElement('bootstrap')\n\t\n\t var transEndEventNames = {\n\t WebkitTransition : 'webkitTransitionEnd',\n\t MozTransition : 'transitionend',\n\t OTransition : 'oTransitionEnd otransitionend',\n\t transition : 'transitionend'\n\t }\n\t\n\t for (var name in transEndEventNames) {\n\t if (el.style[name] !== undefined) {\n\t return { end: transEndEventNames[name] }\n\t }\n\t }\n\t\n\t return false // explicit for ie8 ( ._.)\n\t }\n\t\n\t // http://blog.alexmaccaw.com/css-transitions\n\t $.fn.emulateTransitionEnd = function (duration) {\n\t var called = false\n\t var $el = this\n\t $(this).one('bsTransitionEnd', function () { called = true })\n\t var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n\t setTimeout(callback, duration)\n\t return this\n\t }\n\t\n\t $(function () {\n\t $.support.transition = transitionEnd()\n\t\n\t if (!$.support.transition) return\n\t\n\t $.event.special.bsTransitionEnd = {\n\t bindType: $.support.transition.end,\n\t delegateType: $.support.transition.end,\n\t handle: function (e) {\n\t if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n\t }\n\t }\n\t })\n\t\n\t}(jQuery);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(16)))\n\n/***/ },\n/* 406 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(416);\n\tmodule.exports = __webpack_require__(41).RegExp.escape;\n\n/***/ },\n/* 407 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(9)\r\n\t , isArray = __webpack_require__(151)\r\n\t , SPECIES = __webpack_require__(10)('species');\r\n\t\r\n\tmodule.exports = function(original){\r\n\t var C;\r\n\t if(isArray(original)){\r\n\t C = original.constructor;\r\n\t // cross-realm fallback\r\n\t if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;\r\n\t if(isObject(C)){\r\n\t C = C[SPECIES];\r\n\t if(C === null)C = undefined;\r\n\t }\r\n\t } return C === undefined ? Array : C;\r\n\t};\n\n/***/ },\n/* 408 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\n\tvar speciesConstructor = __webpack_require__(407);\n\t\n\tmodule.exports = function(original, length){\n\t return new (speciesConstructor(original))(length);\n\t};\n\n/***/ },\n/* 409 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar anObject = __webpack_require__(4)\r\n\t , toPrimitive = __webpack_require__(43)\r\n\t , NUMBER = 'number';\r\n\t\r\n\tmodule.exports = function(hint){\r\n\t if(hint !== 'string' && hint !== NUMBER && hint !== 'default')throw TypeError('Incorrect hint');\r\n\t return toPrimitive(anObject(this), hint != NUMBER);\r\n\t};\n\n/***/ },\n/* 410 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// all enumerable object keys, includes symbols\n\tvar getKeys = __webpack_require__(70)\n\t , gOPS = __webpack_require__(113)\n\t , pIE = __webpack_require__(93);\n\tmodule.exports = function(it){\n\t var result = getKeys(it)\n\t , getSymbols = gOPS.f;\n\t if(getSymbols){\n\t var symbols = getSymbols(it)\n\t , isEnum = pIE.f\n\t , i = 0\n\t , key;\n\t while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n\t } return result;\n\t};\n\n/***/ },\n/* 411 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getKeys = __webpack_require__(70)\n\t , toIObject = __webpack_require__(30);\n\tmodule.exports = function(object, el){\n\t var O = toIObject(object)\n\t , keys = getKeys(O)\n\t , length = keys.length\n\t , index = 0\n\t , key;\n\t while(length > index)if(O[key = keys[index++]] === el)return key;\n\t};\n\n/***/ },\n/* 412 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar path = __webpack_require__(413)\n\t , invoke = __webpack_require__(109)\n\t , aFunction = __webpack_require__(27);\n\tmodule.exports = function(/* ...pargs */){\n\t var fn = aFunction(this)\n\t , length = arguments.length\n\t , pargs = Array(length)\n\t , i = 0\n\t , _ = path._\n\t , holder = false;\n\t while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true;\n\t return function(/* ...args */){\n\t var that = this\n\t , aLen = arguments.length\n\t , j = 0, k = 0, args;\n\t if(!holder && !aLen)return invoke(fn, pargs, that);\n\t args = pargs.slice();\n\t if(holder)for(;length > j; j++)if(args[j] === _)args[j] = arguments[k++];\n\t while(aLen > k)args.push(arguments[k++]);\n\t return invoke(fn, args, that);\n\t };\n\t};\n\n/***/ },\n/* 413 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(7);\n\n/***/ },\n/* 414 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(regExp, replace){\n\t var replacer = replace === Object(replace) ? function(part){\n\t return replace[part];\n\t } : replace;\n\t return function(it){\n\t return String(it).replace(regExp, replacer);\n\t };\n\t};\n\n/***/ },\n/* 415 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar classof = __webpack_require__(81)\n\t , ITERATOR = __webpack_require__(10)('iterator')\n\t , Iterators = __webpack_require__(66);\n\tmodule.exports = __webpack_require__(41).isIterable = function(it){\n\t var O = Object(it);\n\t return O[ITERATOR] !== undefined\n\t || '@@iterator' in O\n\t || Iterators.hasOwnProperty(classof(O));\n\t};\n\n/***/ },\n/* 416 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/benjamingr/RexExp.escape\n\tvar $export = __webpack_require__(1)\n\t , $re = __webpack_require__(414)(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t\n\t$export($export.S, 'RegExp', {escape: function escape(it){ return $re(it); }});\n\n\n/***/ },\n/* 417 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.P, 'Array', {copyWithin: __webpack_require__(216)});\n\t\n\t__webpack_require__(80)('copyWithin');\n\n/***/ },\n/* 418 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $every = __webpack_require__(40)(4);\r\n\t\r\n\t$export($export.P + $export.F * !__webpack_require__(37)([].every, true), 'Array', {\r\n\t // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\r\n\t every: function every(callbackfn /* , thisArg */){\r\n\t return $every(this, callbackfn, arguments[1]);\r\n\t }\r\n\t});\n\n/***/ },\n/* 419 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.P, 'Array', {fill: __webpack_require__(143)});\n\t\n\t__webpack_require__(80)('fill');\n\n/***/ },\n/* 420 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , $filter = __webpack_require__(40)(2);\n\t\n\t$export($export.P + $export.F * !__webpack_require__(37)([].filter, true), 'Array', {\n\t // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n\t filter: function filter(callbackfn /* , thisArg */){\n\t return $filter(this, callbackfn, arguments[1]);\n\t }\n\t});\n\n/***/ },\n/* 421 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\n\tvar $export = __webpack_require__(1)\n\t , $find = __webpack_require__(40)(6)\n\t , KEY = 'findIndex'\n\t , forced = true;\n\t// Shouldn't skip holes\n\tif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n\t$export($export.P + $export.F * forced, 'Array', {\n\t findIndex: function findIndex(callbackfn/*, that = undefined */){\n\t return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t }\n\t});\n\t__webpack_require__(80)(KEY);\n\n/***/ },\n/* 422 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\n\tvar $export = __webpack_require__(1)\n\t , $find = __webpack_require__(40)(5)\n\t , KEY = 'find'\n\t , forced = true;\n\t// Shouldn't skip holes\n\tif(KEY in [])Array(1)[KEY](function(){ forced = false; });\n\t$export($export.P + $export.F * forced, 'Array', {\n\t find: function find(callbackfn/*, that = undefined */){\n\t return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n\t }\n\t});\n\t__webpack_require__(80)(KEY);\n\n/***/ },\n/* 423 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $forEach = __webpack_require__(40)(0)\r\n\t , STRICT = __webpack_require__(37)([].forEach, true);\r\n\t\r\n\t$export($export.P + $export.F * !STRICT, 'Array', {\r\n\t // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\r\n\t forEach: function forEach(callbackfn /* , thisArg */){\r\n\t return $forEach(this, callbackfn, arguments[1]);\r\n\t }\r\n\t});\n\n/***/ },\n/* 424 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar ctx = __webpack_require__(50)\n\t , $export = __webpack_require__(1)\n\t , toObject = __webpack_require__(19)\n\t , call = __webpack_require__(224)\n\t , isArrayIter = __webpack_require__(150)\n\t , toLength = __webpack_require__(18)\n\t , createProperty = __webpack_require__(144)\n\t , getIterFn = __webpack_require__(167);\n\t\n\t$export($export.S + $export.F * !__webpack_require__(111)(function(iter){ Array.from(iter); }), 'Array', {\n\t // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n\t from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n\t var O = toObject(arrayLike)\n\t , C = typeof this == 'function' ? this : Array\n\t , aLen = arguments.length\n\t , mapfn = aLen > 1 ? arguments[1] : undefined\n\t , mapping = mapfn !== undefined\n\t , index = 0\n\t , iterFn = getIterFn(O)\n\t , length, result, step, iterator;\n\t if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\t // if object isn't iterable or it's array with default iterator - use simple case\n\t if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n\t for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n\t createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n\t }\n\t } else {\n\t length = toLength(O.length);\n\t for(result = new C(length); length > index; index++){\n\t createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n\t }\n\t }\n\t result.length = index;\n\t return result;\n\t }\n\t});\n\n\n/***/ },\n/* 425 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $indexOf = __webpack_require__(105)(false)\r\n\t , $native = [].indexOf\r\n\t , NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\r\n\t\r\n\t$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(37)($native)), 'Array', {\r\n\t // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\r\n\t indexOf: function indexOf(searchElement /*, fromIndex = 0 */){\r\n\t return NEGATIVE_ZERO\r\n\t // convert -0 to +0\r\n\t ? $native.apply(this, arguments) || 0\r\n\t : $indexOf(this, searchElement, arguments[1]);\r\n\t }\r\n\t});\n\n/***/ },\n/* 426 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\r\n\tvar $export = __webpack_require__(1);\r\n\t\r\n\t$export($export.S, 'Array', {isArray: __webpack_require__(151)});\n\n/***/ },\n/* 427 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\t// 22.1.3.13 Array.prototype.join(separator)\r\n\tvar $export = __webpack_require__(1)\r\n\t , toIObject = __webpack_require__(30)\r\n\t , arrayJoin = [].join;\r\n\t\r\n\t// fallback for not array-like strings\r\n\t$export($export.P + $export.F * (__webpack_require__(92) != Object || !__webpack_require__(37)(arrayJoin)), 'Array', {\r\n\t join: function join(separator){\r\n\t return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\r\n\t }\r\n\t});\n\n/***/ },\n/* 428 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , toIObject = __webpack_require__(30)\r\n\t , toInteger = __webpack_require__(58)\r\n\t , toLength = __webpack_require__(18)\r\n\t , $native = [].lastIndexOf\r\n\t , NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\r\n\t\r\n\t$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(37)($native)), 'Array', {\r\n\t // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\r\n\t lastIndexOf: function lastIndexOf(searchElement /*, fromIndex = @[*-1] */){\r\n\t // convert -0 to +0\r\n\t if(NEGATIVE_ZERO)return $native.apply(this, arguments) || 0;\r\n\t var O = toIObject(this)\r\n\t , length = toLength(O.length)\r\n\t , index = length - 1;\r\n\t if(arguments.length > 1)index = Math.min(index, toInteger(arguments[1]));\r\n\t if(index < 0)index = length + index;\r\n\t for(;index >= 0; index--)if(index in O)if(O[index] === searchElement)return index || 0;\r\n\t return -1;\r\n\t }\r\n\t});\n\n/***/ },\n/* 429 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $map = __webpack_require__(40)(1);\r\n\t\r\n\t$export($export.P + $export.F * !__webpack_require__(37)([].map, true), 'Array', {\r\n\t // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\r\n\t map: function map(callbackfn /* , thisArg */){\r\n\t return $map(this, callbackfn, arguments[1]);\r\n\t }\r\n\t});\n\n/***/ },\n/* 430 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , createProperty = __webpack_require__(144);\n\t\n\t// WebKit Array.of isn't generic\n\t$export($export.S + $export.F * __webpack_require__(8)(function(){\n\t function F(){}\n\t return !(Array.of.call(F) instanceof F);\n\t}), 'Array', {\n\t // 22.1.2.3 Array.of( ...items)\n\t of: function of(/* ...args */){\n\t var index = 0\n\t , aLen = arguments.length\n\t , result = new (typeof this == 'function' ? this : Array)(aLen);\n\t while(aLen > index)createProperty(result, index, arguments[index++]);\n\t result.length = aLen;\n\t return result;\n\t }\n\t});\n\n/***/ },\n/* 431 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $reduce = __webpack_require__(218);\r\n\t\r\n\t$export($export.P + $export.F * !__webpack_require__(37)([].reduceRight, true), 'Array', {\r\n\t // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\r\n\t reduceRight: function reduceRight(callbackfn /* , initialValue */){\r\n\t return $reduce(this, callbackfn, arguments.length, arguments[1], true);\r\n\t }\r\n\t});\n\n/***/ },\n/* 432 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $reduce = __webpack_require__(218);\r\n\t\r\n\t$export($export.P + $export.F * !__webpack_require__(37)([].reduce, true), 'Array', {\r\n\t // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\r\n\t reduce: function reduce(callbackfn /* , initialValue */){\r\n\t return $reduce(this, callbackfn, arguments.length, arguments[1], false);\r\n\t }\r\n\t});\n\n/***/ },\n/* 433 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , html = __webpack_require__(148)\r\n\t , cof = __webpack_require__(35)\r\n\t , toIndex = __webpack_require__(73)\r\n\t , toLength = __webpack_require__(18)\r\n\t , arraySlice = [].slice;\r\n\t\r\n\t// fallback for not array-like ES3 strings and DOM objects\r\n\t$export($export.P + $export.F * __webpack_require__(8)(function(){\r\n\t if(html)arraySlice.call(html);\r\n\t}), 'Array', {\r\n\t slice: function slice(begin, end){\r\n\t var len = toLength(this.length)\r\n\t , klass = cof(this);\r\n\t end = end === undefined ? len : end;\r\n\t if(klass == 'Array')return arraySlice.call(this, begin, end);\r\n\t var start = toIndex(begin, len)\r\n\t , upTo = toIndex(end, len)\r\n\t , size = toLength(upTo - start)\r\n\t , cloned = Array(size)\r\n\t , i = 0;\r\n\t for(; i < size; i++)cloned[i] = klass == 'String'\r\n\t ? this.charAt(start + i)\r\n\t : this[start + i];\r\n\t return cloned;\r\n\t }\r\n\t});\n\n/***/ },\n/* 434 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $some = __webpack_require__(40)(3);\r\n\t\r\n\t$export($export.P + $export.F * !__webpack_require__(37)([].some, true), 'Array', {\r\n\t // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\r\n\t some: function some(callbackfn /* , thisArg */){\r\n\t return $some(this, callbackfn, arguments[1]);\r\n\t }\r\n\t});\n\n/***/ },\n/* 435 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , aFunction = __webpack_require__(27)\r\n\t , toObject = __webpack_require__(19)\r\n\t , fails = __webpack_require__(8)\r\n\t , $sort = [].sort\r\n\t , test = [1, 2, 3];\r\n\t\r\n\t$export($export.P + $export.F * (fails(function(){\r\n\t // IE8-\r\n\t test.sort(undefined);\r\n\t}) || !fails(function(){\r\n\t // V8 bug\r\n\t test.sort(null);\r\n\t // Old WebKit\r\n\t}) || !__webpack_require__(37)($sort)), 'Array', {\r\n\t // 22.1.3.25 Array.prototype.sort(comparefn)\r\n\t sort: function sort(comparefn){\r\n\t return comparefn === undefined\r\n\t ? $sort.call(toObject(this))\r\n\t : $sort.call(toObject(this), aFunction(comparefn));\r\n\t }\r\n\t});\n\n/***/ },\n/* 436 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(72)('Array');\n\n/***/ },\n/* 437 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.3.3.1 / 15.9.4.4 Date.now()\r\n\tvar $export = __webpack_require__(1);\r\n\t\r\n\t$export($export.S, 'Date', {now: function(){ return new Date().getTime(); }});\n\n/***/ },\n/* 438 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\t// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\r\n\tvar $export = __webpack_require__(1)\r\n\t , fails = __webpack_require__(8)\r\n\t , getTime = Date.prototype.getTime;\r\n\t\r\n\tvar lz = function(num){\r\n\t return num > 9 ? num : '0' + num;\r\n\t};\r\n\t\r\n\t// PhantomJS / old WebKit has a broken implementations\r\n\t$export($export.P + $export.F * (fails(function(){\r\n\t return new Date(-5e13 - 1).toISOString() != '0385-07-25T07:06:39.999Z';\r\n\t}) || !fails(function(){\r\n\t new Date(NaN).toISOString();\r\n\t})), 'Date', {\r\n\t toISOString: function toISOString(){\r\n\t if(!isFinite(getTime.call(this)))throw RangeError('Invalid time value');\r\n\t var d = this\r\n\t , y = d.getUTCFullYear()\r\n\t , m = d.getUTCMilliseconds()\r\n\t , s = y < 0 ? '-' : y > 9999 ? '+' : '';\r\n\t return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\r\n\t '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\r\n\t 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\r\n\t ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\r\n\t }\r\n\t});\n\n/***/ },\n/* 439 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , toObject = __webpack_require__(19)\n\t , toPrimitive = __webpack_require__(43);\n\t\n\t$export($export.P + $export.F * __webpack_require__(8)(function(){\n\t return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({toISOString: function(){ return 1; }}) !== 1;\n\t}), 'Date', {\n\t toJSON: function toJSON(key){\n\t var O = toObject(this)\n\t , pv = toPrimitive(O);\n\t return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n\t }\n\t});\n\n/***/ },\n/* 440 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar TO_PRIMITIVE = __webpack_require__(10)('toPrimitive')\r\n\t , proto = Date.prototype;\r\n\t\r\n\tif(!(TO_PRIMITIVE in proto))__webpack_require__(24)(proto, TO_PRIMITIVE, __webpack_require__(409));\n\n/***/ },\n/* 441 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar DateProto = Date.prototype\n\t , INVALID_DATE = 'Invalid Date'\n\t , TO_STRING = 'toString'\n\t , $toString = DateProto[TO_STRING]\n\t , getTime = DateProto.getTime;\n\tif(new Date(NaN) + '' != INVALID_DATE){\n\t __webpack_require__(28)(DateProto, TO_STRING, function toString(){\n\t var value = getTime.call(this);\n\t return value === value ? $toString.call(this) : INVALID_DATE;\n\t });\n\t}\n\n/***/ },\n/* 442 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\r\n\tvar $export = __webpack_require__(1);\r\n\t\r\n\t$export($export.P, 'Function', {bind: __webpack_require__(219)});\n\n/***/ },\n/* 443 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar isObject = __webpack_require__(9)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , HAS_INSTANCE = __webpack_require__(10)('hasInstance')\n\t , FunctionProto = Function.prototype;\n\t// 19.2.3.6 Function.prototype[@@hasInstance](V)\n\tif(!(HAS_INSTANCE in FunctionProto))__webpack_require__(13).f(FunctionProto, HAS_INSTANCE, {value: function(O){\n\t if(typeof this != 'function' || !isObject(O))return false;\n\t if(!isObject(this.prototype))return O instanceof this;\n\t // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n\t while(O = getPrototypeOf(O))if(this.prototype === O)return true;\n\t return false;\n\t}});\n\n/***/ },\n/* 444 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar dP = __webpack_require__(13).f\n\t , createDesc = __webpack_require__(57)\n\t , has = __webpack_require__(22)\n\t , FProto = Function.prototype\n\t , nameRE = /^\\s*function ([^ (]*)/\n\t , NAME = 'name';\n\t\n\tvar isExtensible = Object.isExtensible || function(){\n\t return true;\n\t};\n\t\n\t// 19.2.4.2 name\n\tNAME in FProto || __webpack_require__(12) && dP(FProto, NAME, {\n\t configurable: true,\n\t get: function(){\n\t try {\n\t var that = this\n\t , name = ('' + that).match(nameRE)[1];\n\t has(that, NAME) || !isExtensible(that) || dP(that, NAME, createDesc(5, name));\n\t return name;\n\t } catch(e){\n\t return '';\n\t }\n\t }\n\t});\n\n/***/ },\n/* 445 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.3 Math.acosh(x)\n\tvar $export = __webpack_require__(1)\n\t , log1p = __webpack_require__(226)\n\t , sqrt = Math.sqrt\n\t , $acosh = Math.acosh;\n\t\n\t$export($export.S + $export.F * !($acosh\n\t // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n\t && Math.floor($acosh(Number.MAX_VALUE)) == 710\n\t // Tor Browser bug: Math.acosh(Infinity) -> NaN \n\t && $acosh(Infinity) == Infinity\n\t), 'Math', {\n\t acosh: function acosh(x){\n\t return (x = +x) < 1 ? NaN : x > 94906265.62425156\n\t ? Math.log(x) + Math.LN2\n\t : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n\t }\n\t});\n\n/***/ },\n/* 446 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.5 Math.asinh(x)\n\tvar $export = __webpack_require__(1)\n\t , $asinh = Math.asinh;\n\t\n\tfunction asinh(x){\n\t return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n\t}\n\t\n\t// Tor Browser bug: Math.asinh(0) -> -0 \n\t$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {asinh: asinh});\n\n/***/ },\n/* 447 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.7 Math.atanh(x)\n\tvar $export = __webpack_require__(1)\n\t , $atanh = Math.atanh;\n\t\n\t// Tor Browser bug: Math.atanh(-0) -> 0 \n\t$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n\t atanh: function atanh(x){\n\t return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n\t }\n\t});\n\n/***/ },\n/* 448 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.9 Math.cbrt(x)\n\tvar $export = __webpack_require__(1)\n\t , sign = __webpack_require__(156);\n\t\n\t$export($export.S, 'Math', {\n\t cbrt: function cbrt(x){\n\t return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n\t }\n\t});\n\n/***/ },\n/* 449 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.11 Math.clz32(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t clz32: function clz32(x){\n\t return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n\t }\n\t});\n\n/***/ },\n/* 450 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.12 Math.cosh(x)\n\tvar $export = __webpack_require__(1)\n\t , exp = Math.exp;\n\t\n\t$export($export.S, 'Math', {\n\t cosh: function cosh(x){\n\t return (exp(x = +x) + exp(-x)) / 2;\n\t }\n\t});\n\n/***/ },\n/* 451 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.14 Math.expm1(x)\n\tvar $export = __webpack_require__(1)\n\t , $expm1 = __webpack_require__(155);\n\t\n\t$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {expm1: $expm1});\n\n/***/ },\n/* 452 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.16 Math.fround(x)\n\tvar $export = __webpack_require__(1)\n\t , sign = __webpack_require__(156)\n\t , pow = Math.pow\n\t , EPSILON = pow(2, -52)\n\t , EPSILON32 = pow(2, -23)\n\t , MAX32 = pow(2, 127) * (2 - EPSILON32)\n\t , MIN32 = pow(2, -126);\n\t\n\tvar roundTiesToEven = function(n){\n\t return n + 1 / EPSILON - 1 / EPSILON;\n\t};\n\t\n\t\n\t$export($export.S, 'Math', {\n\t fround: function fround(x){\n\t var $abs = Math.abs(x)\n\t , $sign = sign(x)\n\t , a, result;\n\t if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n\t a = (1 + EPSILON32 / EPSILON) * $abs;\n\t result = a - (a - $abs);\n\t if(result > MAX32 || result != result)return $sign * Infinity;\n\t return $sign * result;\n\t }\n\t});\n\n/***/ },\n/* 453 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\n\tvar $export = __webpack_require__(1)\n\t , abs = Math.abs;\n\t\n\t$export($export.S, 'Math', {\n\t hypot: function hypot(value1, value2){ // eslint-disable-line no-unused-vars\n\t var sum = 0\n\t , i = 0\n\t , aLen = arguments.length\n\t , larg = 0\n\t , arg, div;\n\t while(i < aLen){\n\t arg = abs(arguments[i++]);\n\t if(larg < arg){\n\t div = larg / arg;\n\t sum = sum * div * div + 1;\n\t larg = arg;\n\t } else if(arg > 0){\n\t div = arg / larg;\n\t sum += div * div;\n\t } else sum += arg;\n\t }\n\t return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n\t }\n\t});\n\n/***/ },\n/* 454 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.18 Math.imul(x, y)\n\tvar $export = __webpack_require__(1)\n\t , $imul = Math.imul;\n\t\n\t// some WebKit versions fails with big numbers, some has wrong arity\n\t$export($export.S + $export.F * __webpack_require__(8)(function(){\n\t return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n\t}), 'Math', {\n\t imul: function imul(x, y){\n\t var UINT16 = 0xffff\n\t , xn = +x\n\t , yn = +y\n\t , xl = UINT16 & xn\n\t , yl = UINT16 & yn;\n\t return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n\t }\n\t});\n\n/***/ },\n/* 455 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.21 Math.log10(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t log10: function log10(x){\n\t return Math.log(x) / Math.LN10;\n\t }\n\t});\n\n/***/ },\n/* 456 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.20 Math.log1p(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {log1p: __webpack_require__(226)});\n\n/***/ },\n/* 457 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.22 Math.log2(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t log2: function log2(x){\n\t return Math.log(x) / Math.LN2;\n\t }\n\t});\n\n/***/ },\n/* 458 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.28 Math.sign(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {sign: __webpack_require__(156)});\n\n/***/ },\n/* 459 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.30 Math.sinh(x)\n\tvar $export = __webpack_require__(1)\n\t , expm1 = __webpack_require__(155)\n\t , exp = Math.exp;\n\t\n\t// V8 near Chromium 38 has a problem with very small numbers\n\t$export($export.S + $export.F * __webpack_require__(8)(function(){\n\t return !Math.sinh(-2e-17) != -2e-17;\n\t}), 'Math', {\n\t sinh: function sinh(x){\n\t return Math.abs(x = +x) < 1\n\t ? (expm1(x) - expm1(-x)) / 2\n\t : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n\t }\n\t});\n\n/***/ },\n/* 460 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.33 Math.tanh(x)\n\tvar $export = __webpack_require__(1)\n\t , expm1 = __webpack_require__(155)\n\t , exp = Math.exp;\n\t\n\t$export($export.S, 'Math', {\n\t tanh: function tanh(x){\n\t var a = expm1(x = +x)\n\t , b = expm1(-x);\n\t return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n\t }\n\t});\n\n/***/ },\n/* 461 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.2.2.34 Math.trunc(x)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t trunc: function trunc(it){\n\t return (it > 0 ? Math.floor : Math.ceil)(it);\n\t }\n\t});\n\n/***/ },\n/* 462 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar global = __webpack_require__(7)\n\t , has = __webpack_require__(22)\n\t , cof = __webpack_require__(35)\n\t , inheritIfRequired = __webpack_require__(149)\n\t , toPrimitive = __webpack_require__(43)\n\t , fails = __webpack_require__(8)\n\t , gOPN = __webpack_require__(69).f\n\t , gOPD = __webpack_require__(32).f\n\t , dP = __webpack_require__(13).f\n\t , $trim = __webpack_require__(84).trim\n\t , NUMBER = 'Number'\n\t , $Number = global[NUMBER]\n\t , Base = $Number\n\t , proto = $Number.prototype\n\t // Opera ~12 has broken Object#toString\n\t , BROKEN_COF = cof(__webpack_require__(68)(proto)) == NUMBER\n\t , TRIM = 'trim' in String.prototype;\n\t\n\t// 7.1.3 ToNumber(argument)\n\tvar toNumber = function(argument){\n\t var it = toPrimitive(argument, false);\n\t if(typeof it == 'string' && it.length > 2){\n\t it = TRIM ? it.trim() : $trim(it, 3);\n\t var first = it.charCodeAt(0)\n\t , third, radix, maxCode;\n\t if(first === 43 || first === 45){\n\t third = it.charCodeAt(2);\n\t if(third === 88 || third === 120)return NaN; // Number('+0x1') should be NaN, old V8 fix\n\t } else if(first === 48){\n\t switch(it.charCodeAt(1)){\n\t case 66 : case 98 : radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n\t case 79 : case 111 : radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n\t default : return +it;\n\t }\n\t for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){\n\t code = digits.charCodeAt(i);\n\t // parseInt parses a string to a first unavailable symbol\n\t // but ToNumber should return NaN if a string contains unavailable symbols\n\t if(code < 48 || code > maxCode)return NaN;\n\t } return parseInt(digits, radix);\n\t }\n\t } return +it;\n\t};\n\t\n\tif(!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')){\n\t $Number = function Number(value){\n\t var it = arguments.length < 1 ? 0 : value\n\t , that = this;\n\t return that instanceof $Number\n\t // check on 1..constructor(foo) case\n\t && (BROKEN_COF ? fails(function(){ proto.valueOf.call(that); }) : cof(that) != NUMBER)\n\t ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n\t };\n\t for(var keys = __webpack_require__(12) ? gOPN(Base) : (\n\t // ES3:\n\t 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n\t // ES6 (in case, if modules with ES6 Number statics required before):\n\t 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n\t 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n\t ).split(','), j = 0, key; keys.length > j; j++){\n\t if(has(Base, key = keys[j]) && !has($Number, key)){\n\t dP($Number, key, gOPD(Base, key));\n\t }\n\t }\n\t $Number.prototype = proto;\n\t proto.constructor = $Number;\n\t __webpack_require__(28)(global, NUMBER, $Number);\n\t}\n\n/***/ },\n/* 463 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.1 Number.EPSILON\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Number', {EPSILON: Math.pow(2, -52)});\n\n/***/ },\n/* 464 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.2 Number.isFinite(number)\n\tvar $export = __webpack_require__(1)\n\t , _isFinite = __webpack_require__(7).isFinite;\n\t\n\t$export($export.S, 'Number', {\n\t isFinite: function isFinite(it){\n\t return typeof it == 'number' && _isFinite(it);\n\t }\n\t});\n\n/***/ },\n/* 465 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.3 Number.isInteger(number)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Number', {isInteger: __webpack_require__(152)});\n\n/***/ },\n/* 466 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.4 Number.isNaN(number)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Number', {\n\t isNaN: function isNaN(number){\n\t return number != number;\n\t }\n\t});\n\n/***/ },\n/* 467 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.5 Number.isSafeInteger(number)\n\tvar $export = __webpack_require__(1)\n\t , isInteger = __webpack_require__(152)\n\t , abs = Math.abs;\n\t\n\t$export($export.S, 'Number', {\n\t isSafeInteger: function isSafeInteger(number){\n\t return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n\t }\n\t});\n\n/***/ },\n/* 468 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.6 Number.MAX_SAFE_INTEGER\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Number', {MAX_SAFE_INTEGER: 0x1fffffffffffff});\n\n/***/ },\n/* 469 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 20.1.2.10 Number.MIN_SAFE_INTEGER\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Number', {MIN_SAFE_INTEGER: -0x1fffffffffffff});\n\n/***/ },\n/* 470 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\n\t , $parseFloat = __webpack_require__(233);\n\t// 20.1.2.12 Number.parseFloat(string)\n\t$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {parseFloat: $parseFloat});\n\n/***/ },\n/* 471 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\n\t , $parseInt = __webpack_require__(234);\n\t// 20.1.2.13 Number.parseInt(string, radix)\n\t$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {parseInt: $parseInt});\n\n/***/ },\n/* 472 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , anInstance = __webpack_require__(55)\r\n\t , toInteger = __webpack_require__(58)\r\n\t , aNumberValue = __webpack_require__(215)\r\n\t , repeat = __webpack_require__(162)\r\n\t , $toFixed = 1..toFixed\r\n\t , floor = Math.floor\r\n\t , data = [0, 0, 0, 0, 0, 0]\r\n\t , ERROR = 'Number.toFixed: incorrect invocation!'\r\n\t , ZERO = '0';\r\n\t\r\n\tvar multiply = function(n, c){\r\n\t var i = -1\r\n\t , c2 = c;\r\n\t while(++i < 6){\r\n\t c2 += n * data[i];\r\n\t data[i] = c2 % 1e7;\r\n\t c2 = floor(c2 / 1e7);\r\n\t }\r\n\t};\r\n\tvar divide = function(n){\r\n\t var i = 6\r\n\t , c = 0;\r\n\t while(--i >= 0){\r\n\t c += data[i];\r\n\t data[i] = floor(c / n);\r\n\t c = (c % n) * 1e7;\r\n\t }\r\n\t};\r\n\tvar numToString = function(){\r\n\t var i = 6\r\n\t , s = '';\r\n\t while(--i >= 0){\r\n\t if(s !== '' || i === 0 || data[i] !== 0){\r\n\t var t = String(data[i]);\r\n\t s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\r\n\t }\r\n\t } return s;\r\n\t};\r\n\tvar pow = function(x, n, acc){\r\n\t return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\r\n\t};\r\n\tvar log = function(x){\r\n\t var n = 0\r\n\t , x2 = x;\r\n\t while(x2 >= 4096){\r\n\t n += 12;\r\n\t x2 /= 4096;\r\n\t }\r\n\t while(x2 >= 2){\r\n\t n += 1;\r\n\t x2 /= 2;\r\n\t } return n;\r\n\t};\r\n\t\r\n\t$export($export.P + $export.F * (!!$toFixed && (\r\n\t 0.00008.toFixed(3) !== '0.000' ||\r\n\t 0.9.toFixed(0) !== '1' ||\r\n\t 1.255.toFixed(2) !== '1.25' ||\r\n\t 1000000000000000128..toFixed(0) !== '1000000000000000128'\r\n\t) || !__webpack_require__(8)(function(){\r\n\t // V8 ~ Android 4.3-\r\n\t $toFixed.call({});\r\n\t})), 'Number', {\r\n\t toFixed: function toFixed(fractionDigits){\r\n\t var x = aNumberValue(this, ERROR)\r\n\t , f = toInteger(fractionDigits)\r\n\t , s = ''\r\n\t , m = ZERO\r\n\t , e, z, j, k;\r\n\t if(f < 0 || f > 20)throw RangeError(ERROR);\r\n\t if(x != x)return 'NaN';\r\n\t if(x <= -1e21 || x >= 1e21)return String(x);\r\n\t if(x < 0){\r\n\t s = '-';\r\n\t x = -x;\r\n\t }\r\n\t if(x > 1e-21){\r\n\t e = log(x * pow(2, 69, 1)) - 69;\r\n\t z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\r\n\t z *= 0x10000000000000;\r\n\t e = 52 - e;\r\n\t if(e > 0){\r\n\t multiply(0, z);\r\n\t j = f;\r\n\t while(j >= 7){\r\n\t multiply(1e7, 0);\r\n\t j -= 7;\r\n\t }\r\n\t multiply(pow(10, j, 1), 0);\r\n\t j = e - 1;\r\n\t while(j >= 23){\r\n\t divide(1 << 23);\r\n\t j -= 23;\r\n\t }\r\n\t divide(1 << j);\r\n\t multiply(1, 1);\r\n\t divide(2);\r\n\t m = numToString();\r\n\t } else {\r\n\t multiply(0, z);\r\n\t multiply(1 << -e, 0);\r\n\t m = numToString() + repeat.call(ZERO, f);\r\n\t }\r\n\t }\r\n\t if(f > 0){\r\n\t k = m.length;\r\n\t m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\r\n\t } else {\r\n\t m = s + m;\r\n\t } return m;\r\n\t }\r\n\t});\n\n/***/ },\n/* 473 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , $fails = __webpack_require__(8)\r\n\t , aNumberValue = __webpack_require__(215)\r\n\t , $toPrecision = 1..toPrecision;\r\n\t\r\n\t$export($export.P + $export.F * ($fails(function(){\r\n\t // IE7-\r\n\t return $toPrecision.call(1, undefined) !== '1';\r\n\t}) || !$fails(function(){\r\n\t // V8 ~ Android 4.3-\r\n\t $toPrecision.call({});\r\n\t})), 'Number', {\r\n\t toPrecision: function toPrecision(precision){\r\n\t var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\r\n\t return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); \r\n\t }\r\n\t});\n\n/***/ },\n/* 474 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.1 Object.assign(target, source)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S + $export.F, 'Object', {assign: __webpack_require__(227)});\n\n/***/ },\n/* 475 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\r\n\t// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\r\n\t$export($export.S, 'Object', {create: __webpack_require__(68)});\n\n/***/ },\n/* 476 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1);\r\n\t// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\r\n\t$export($export.S + $export.F * !__webpack_require__(12), 'Object', {defineProperties: __webpack_require__(228)});\n\n/***/ },\n/* 477 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1);\r\n\t// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\r\n\t$export($export.S + $export.F * !__webpack_require__(12), 'Object', {defineProperty: __webpack_require__(13).f});\n\n/***/ },\n/* 478 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.5 Object.freeze(O)\n\tvar isObject = __webpack_require__(9)\n\t , meta = __webpack_require__(56).onFreeze;\n\t\n\t__webpack_require__(42)('freeze', function($freeze){\n\t return function freeze(it){\n\t return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n\t };\n\t});\n\n/***/ },\n/* 479 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\tvar toIObject = __webpack_require__(30)\n\t , $getOwnPropertyDescriptor = __webpack_require__(32).f;\n\t\n\t__webpack_require__(42)('getOwnPropertyDescriptor', function(){\n\t return function getOwnPropertyDescriptor(it, key){\n\t return $getOwnPropertyDescriptor(toIObject(it), key);\n\t };\n\t});\n\n/***/ },\n/* 480 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.7 Object.getOwnPropertyNames(O)\n\t__webpack_require__(42)('getOwnPropertyNames', function(){\n\t return __webpack_require__(229).f;\n\t});\n\n/***/ },\n/* 481 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.9 Object.getPrototypeOf(O)\n\tvar toObject = __webpack_require__(19)\n\t , $getPrototypeOf = __webpack_require__(33);\n\t\n\t__webpack_require__(42)('getPrototypeOf', function(){\n\t return function getPrototypeOf(it){\n\t return $getPrototypeOf(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 482 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.11 Object.isExtensible(O)\n\tvar isObject = __webpack_require__(9);\n\t\n\t__webpack_require__(42)('isExtensible', function($isExtensible){\n\t return function isExtensible(it){\n\t return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n\t };\n\t});\n\n/***/ },\n/* 483 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.12 Object.isFrozen(O)\n\tvar isObject = __webpack_require__(9);\n\t\n\t__webpack_require__(42)('isFrozen', function($isFrozen){\n\t return function isFrozen(it){\n\t return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n\t };\n\t});\n\n/***/ },\n/* 484 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.13 Object.isSealed(O)\n\tvar isObject = __webpack_require__(9);\n\t\n\t__webpack_require__(42)('isSealed', function($isSealed){\n\t return function isSealed(it){\n\t return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n\t };\n\t});\n\n/***/ },\n/* 485 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.10 Object.is(value1, value2)\n\tvar $export = __webpack_require__(1);\n\t$export($export.S, 'Object', {is: __webpack_require__(235)});\n\n/***/ },\n/* 486 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.14 Object.keys(O)\n\tvar toObject = __webpack_require__(19)\n\t , $keys = __webpack_require__(70);\n\t\n\t__webpack_require__(42)('keys', function(){\n\t return function keys(it){\n\t return $keys(toObject(it));\n\t };\n\t});\n\n/***/ },\n/* 487 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.15 Object.preventExtensions(O)\n\tvar isObject = __webpack_require__(9)\n\t , meta = __webpack_require__(56).onFreeze;\n\t\n\t__webpack_require__(42)('preventExtensions', function($preventExtensions){\n\t return function preventExtensions(it){\n\t return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n\t };\n\t});\n\n/***/ },\n/* 488 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.2.17 Object.seal(O)\n\tvar isObject = __webpack_require__(9)\n\t , meta = __webpack_require__(56).onFreeze;\n\t\n\t__webpack_require__(42)('seal', function($seal){\n\t return function seal(it){\n\t return $seal && isObject(it) ? $seal(meta(it)) : it;\n\t };\n\t});\n\n/***/ },\n/* 489 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 19.1.3.19 Object.setPrototypeOf(O, proto)\n\tvar $export = __webpack_require__(1);\n\t$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(114).set});\n\n/***/ },\n/* 490 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 19.1.3.6 Object.prototype.toString()\n\tvar classof = __webpack_require__(81)\n\t , test = {};\n\ttest[__webpack_require__(10)('toStringTag')] = 'z';\n\tif(test + '' != '[object z]'){\n\t __webpack_require__(28)(Object.prototype, 'toString', function toString(){\n\t return '[object ' + classof(this) + ']';\n\t }, true);\n\t}\n\n/***/ },\n/* 491 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\r\n\t , $parseFloat = __webpack_require__(233);\r\n\t// 18.2.4 parseFloat(string)\r\n\t$export($export.G + $export.F * (parseFloat != $parseFloat), {parseFloat: $parseFloat});\n\n/***/ },\n/* 492 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\r\n\t , $parseInt = __webpack_require__(234);\r\n\t// 18.2.5 parseInt(string, radix)\r\n\t$export($export.G + $export.F * (parseInt != $parseInt), {parseInt: $parseInt});\n\n/***/ },\n/* 493 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar LIBRARY = __webpack_require__(67)\n\t , global = __webpack_require__(7)\n\t , ctx = __webpack_require__(50)\n\t , classof = __webpack_require__(81)\n\t , $export = __webpack_require__(1)\n\t , isObject = __webpack_require__(9)\n\t , anObject = __webpack_require__(4)\n\t , aFunction = __webpack_require__(27)\n\t , anInstance = __webpack_require__(55)\n\t , forOf = __webpack_require__(82)\n\t , setProto = __webpack_require__(114).set\n\t , speciesConstructor = __webpack_require__(159)\n\t , task = __webpack_require__(164).set\n\t , microtask = __webpack_require__(157)()\n\t , PROMISE = 'Promise'\n\t , TypeError = global.TypeError\n\t , process = global.process\n\t , $Promise = global[PROMISE]\n\t , process = global.process\n\t , isNode = classof(process) == 'process'\n\t , empty = function(){ /* empty */ }\n\t , Internal, GenericPromiseCapability, Wrapper;\n\t\n\tvar USE_NATIVE = !!function(){\n\t try {\n\t // correct subclassing with @@species support\n\t var promise = $Promise.resolve(1)\n\t , FakePromise = (promise.constructor = {})[__webpack_require__(10)('species')] = function(exec){ exec(empty, empty); };\n\t // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n\t return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n\t } catch(e){ /* empty */ }\n\t}();\n\t\n\t// helpers\n\tvar sameConstructor = function(a, b){\n\t // with library wrapper special case\n\t return a === b || a === $Promise && b === Wrapper;\n\t};\n\tvar isThenable = function(it){\n\t var then;\n\t return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n\t};\n\tvar newPromiseCapability = function(C){\n\t return sameConstructor($Promise, C)\n\t ? new PromiseCapability(C)\n\t : new GenericPromiseCapability(C);\n\t};\n\tvar PromiseCapability = GenericPromiseCapability = function(C){\n\t var resolve, reject;\n\t this.promise = new C(function($$resolve, $$reject){\n\t if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor');\n\t resolve = $$resolve;\n\t reject = $$reject;\n\t });\n\t this.resolve = aFunction(resolve);\n\t this.reject = aFunction(reject);\n\t};\n\tvar perform = function(exec){\n\t try {\n\t exec();\n\t } catch(e){\n\t return {error: e};\n\t }\n\t};\n\tvar notify = function(promise, isReject){\n\t if(promise._n)return;\n\t promise._n = true;\n\t var chain = promise._c;\n\t microtask(function(){\n\t var value = promise._v\n\t , ok = promise._s == 1\n\t , i = 0;\n\t var run = function(reaction){\n\t var handler = ok ? reaction.ok : reaction.fail\n\t , resolve = reaction.resolve\n\t , reject = reaction.reject\n\t , domain = reaction.domain\n\t , result, then;\n\t try {\n\t if(handler){\n\t if(!ok){\n\t if(promise._h == 2)onHandleUnhandled(promise);\n\t promise._h = 1;\n\t }\n\t if(handler === true)result = value;\n\t else {\n\t if(domain)domain.enter();\n\t result = handler(value);\n\t if(domain)domain.exit();\n\t }\n\t if(result === reaction.promise){\n\t reject(TypeError('Promise-chain cycle'));\n\t } else if(then = isThenable(result)){\n\t then.call(result, resolve, reject);\n\t } else resolve(result);\n\t } else reject(value);\n\t } catch(e){\n\t reject(e);\n\t }\n\t };\n\t while(chain.length > i)run(chain[i++]); // variable length - can't use forEach\n\t promise._c = [];\n\t promise._n = false;\n\t if(isReject && !promise._h)onUnhandled(promise);\n\t });\n\t};\n\tvar onUnhandled = function(promise){\n\t task.call(global, function(){\n\t var value = promise._v\n\t , abrupt, handler, console;\n\t if(isUnhandled(promise)){\n\t abrupt = perform(function(){\n\t if(isNode){\n\t process.emit('unhandledRejection', value, promise);\n\t } else if(handler = global.onunhandledrejection){\n\t handler({promise: promise, reason: value});\n\t } else if((console = global.console) && console.error){\n\t console.error('Unhandled promise rejection', value);\n\t }\n\t });\n\t // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n\t promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n\t } promise._a = undefined;\n\t if(abrupt)throw abrupt.error;\n\t });\n\t};\n\tvar isUnhandled = function(promise){\n\t if(promise._h == 1)return false;\n\t var chain = promise._a || promise._c\n\t , i = 0\n\t , reaction;\n\t while(chain.length > i){\n\t reaction = chain[i++];\n\t if(reaction.fail || !isUnhandled(reaction.promise))return false;\n\t } return true;\n\t};\n\tvar onHandleUnhandled = function(promise){\n\t task.call(global, function(){\n\t var handler;\n\t if(isNode){\n\t process.emit('rejectionHandled', promise);\n\t } else if(handler = global.onrejectionhandled){\n\t handler({promise: promise, reason: promise._v});\n\t }\n\t });\n\t};\n\tvar $reject = function(value){\n\t var promise = this;\n\t if(promise._d)return;\n\t promise._d = true;\n\t promise = promise._w || promise; // unwrap\n\t promise._v = value;\n\t promise._s = 2;\n\t if(!promise._a)promise._a = promise._c.slice();\n\t notify(promise, true);\n\t};\n\tvar $resolve = function(value){\n\t var promise = this\n\t , then;\n\t if(promise._d)return;\n\t promise._d = true;\n\t promise = promise._w || promise; // unwrap\n\t try {\n\t if(promise === value)throw TypeError(\"Promise can't be resolved itself\");\n\t if(then = isThenable(value)){\n\t microtask(function(){\n\t var wrapper = {_w: promise, _d: false}; // wrap\n\t try {\n\t then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n\t } catch(e){\n\t $reject.call(wrapper, e);\n\t }\n\t });\n\t } else {\n\t promise._v = value;\n\t promise._s = 1;\n\t notify(promise, false);\n\t }\n\t } catch(e){\n\t $reject.call({_w: promise, _d: false}, e); // wrap\n\t }\n\t};\n\t\n\t// constructor polyfill\n\tif(!USE_NATIVE){\n\t // 25.4.3.1 Promise(executor)\n\t $Promise = function Promise(executor){\n\t anInstance(this, $Promise, PROMISE, '_h');\n\t aFunction(executor);\n\t Internal.call(this);\n\t try {\n\t executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n\t } catch(err){\n\t $reject.call(this, err);\n\t }\n\t };\n\t Internal = function Promise(executor){\n\t this._c = []; // <- awaiting reactions\n\t this._a = undefined; // <- checked in isUnhandled reactions\n\t this._s = 0; // <- state\n\t this._d = false; // <- done\n\t this._v = undefined; // <- value\n\t this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n\t this._n = false; // <- notify\n\t };\n\t Internal.prototype = __webpack_require__(71)($Promise.prototype, {\n\t // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n\t then: function then(onFulfilled, onRejected){\n\t var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n\t reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n\t reaction.fail = typeof onRejected == 'function' && onRejected;\n\t reaction.domain = isNode ? process.domain : undefined;\n\t this._c.push(reaction);\n\t if(this._a)this._a.push(reaction);\n\t if(this._s)notify(this, false);\n\t return reaction.promise;\n\t },\n\t // 25.4.5.1 Promise.prototype.catch(onRejected)\n\t 'catch': function(onRejected){\n\t return this.then(undefined, onRejected);\n\t }\n\t });\n\t PromiseCapability = function(){\n\t var promise = new Internal;\n\t this.promise = promise;\n\t this.resolve = ctx($resolve, promise, 1);\n\t this.reject = ctx($reject, promise, 1);\n\t };\n\t}\n\t\n\t$export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise});\n\t__webpack_require__(83)($Promise, PROMISE);\n\t__webpack_require__(72)(PROMISE);\n\tWrapper = __webpack_require__(41)[PROMISE];\n\t\n\t// statics\n\t$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n\t // 25.4.4.5 Promise.reject(r)\n\t reject: function reject(r){\n\t var capability = newPromiseCapability(this)\n\t , $$reject = capability.reject;\n\t $$reject(r);\n\t return capability.promise;\n\t }\n\t});\n\t$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n\t // 25.4.4.6 Promise.resolve(x)\n\t resolve: function resolve(x){\n\t // instanceof instead of internal slot check because we should fix it without replacement native Promise core\n\t if(x instanceof $Promise && sameConstructor(x.constructor, this))return x;\n\t var capability = newPromiseCapability(this)\n\t , $$resolve = capability.resolve;\n\t $$resolve(x);\n\t return capability.promise;\n\t }\n\t});\n\t$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(111)(function(iter){\n\t $Promise.all(iter)['catch'](empty);\n\t})), PROMISE, {\n\t // 25.4.4.1 Promise.all(iterable)\n\t all: function all(iterable){\n\t var C = this\n\t , capability = newPromiseCapability(C)\n\t , resolve = capability.resolve\n\t , reject = capability.reject;\n\t var abrupt = perform(function(){\n\t var values = []\n\t , index = 0\n\t , remaining = 1;\n\t forOf(iterable, false, function(promise){\n\t var $index = index++\n\t , alreadyCalled = false;\n\t values.push(undefined);\n\t remaining++;\n\t C.resolve(promise).then(function(value){\n\t if(alreadyCalled)return;\n\t alreadyCalled = true;\n\t values[$index] = value;\n\t --remaining || resolve(values);\n\t }, reject);\n\t });\n\t --remaining || resolve(values);\n\t });\n\t if(abrupt)reject(abrupt.error);\n\t return capability.promise;\n\t },\n\t // 25.4.4.4 Promise.race(iterable)\n\t race: function race(iterable){\n\t var C = this\n\t , capability = newPromiseCapability(C)\n\t , reject = capability.reject;\n\t var abrupt = perform(function(){\n\t forOf(iterable, false, function(promise){\n\t C.resolve(promise).then(capability.resolve, reject);\n\t });\n\t });\n\t if(abrupt)reject(abrupt.error);\n\t return capability.promise;\n\t }\n\t});\n\n/***/ },\n/* 494 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\n\tvar $export = __webpack_require__(1)\n\t , aFunction = __webpack_require__(27)\n\t , anObject = __webpack_require__(4)\n\t , _apply = Function.apply;\n\t\n\t$export($export.S, 'Reflect', {\n\t apply: function apply(target, thisArgument, argumentsList){\n\t return _apply.call(aFunction(target), thisArgument, anObject(argumentsList));\n\t }\n\t});\n\n/***/ },\n/* 495 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\n\tvar $export = __webpack_require__(1)\n\t , create = __webpack_require__(68)\n\t , aFunction = __webpack_require__(27)\n\t , anObject = __webpack_require__(4)\n\t , isObject = __webpack_require__(9)\n\t , bind = __webpack_require__(219);\n\t\n\t// MS Edge supports only 2 arguments\n\t// FF Nightly sets third argument as `new.target`, but does not create `this` from it\n\t$export($export.S + $export.F * __webpack_require__(8)(function(){\n\t function F(){}\n\t return !(Reflect.construct(function(){}, [], F) instanceof F);\n\t}), 'Reflect', {\n\t construct: function construct(Target, args /*, newTarget*/){\n\t aFunction(Target);\n\t anObject(args);\n\t var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n\t if(Target == newTarget){\n\t // w/o altered newTarget, optimization for 0-4 arguments\n\t switch(args.length){\n\t case 0: return new Target;\n\t case 1: return new Target(args[0]);\n\t case 2: return new Target(args[0], args[1]);\n\t case 3: return new Target(args[0], args[1], args[2]);\n\t case 4: return new Target(args[0], args[1], args[2], args[3]);\n\t }\n\t // w/o altered newTarget, lot of arguments case\n\t var $args = [null];\n\t $args.push.apply($args, args);\n\t return new (bind.apply(Target, $args));\n\t }\n\t // with altered newTarget, not support built-in constructors\n\t var proto = newTarget.prototype\n\t , instance = create(isObject(proto) ? proto : Object.prototype)\n\t , result = Function.apply.call(Target, instance, args);\n\t return isObject(result) ? result : instance;\n\t }\n\t});\n\n/***/ },\n/* 496 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\n\tvar dP = __webpack_require__(13)\n\t , $export = __webpack_require__(1)\n\t , anObject = __webpack_require__(4)\n\t , toPrimitive = __webpack_require__(43);\n\t\n\t// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n\t$export($export.S + $export.F * __webpack_require__(8)(function(){\n\t Reflect.defineProperty(dP.f({}, 1, {value: 1}), 1, {value: 2});\n\t}), 'Reflect', {\n\t defineProperty: function defineProperty(target, propertyKey, attributes){\n\t anObject(target);\n\t propertyKey = toPrimitive(propertyKey, true);\n\t anObject(attributes);\n\t try {\n\t dP.f(target, propertyKey, attributes);\n\t return true;\n\t } catch(e){\n\t return false;\n\t }\n\t }\n\t});\n\n/***/ },\n/* 497 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.4 Reflect.deleteProperty(target, propertyKey)\n\tvar $export = __webpack_require__(1)\n\t , gOPD = __webpack_require__(32).f\n\t , anObject = __webpack_require__(4);\n\t\n\t$export($export.S, 'Reflect', {\n\t deleteProperty: function deleteProperty(target, propertyKey){\n\t var desc = gOPD(anObject(target), propertyKey);\n\t return desc && !desc.configurable ? false : delete target[propertyKey];\n\t }\n\t});\n\n/***/ },\n/* 498 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 26.1.5 Reflect.enumerate(target)\n\tvar $export = __webpack_require__(1)\n\t , anObject = __webpack_require__(4);\n\tvar Enumerate = function(iterated){\n\t this._t = anObject(iterated); // target\n\t this._i = 0; // next index\n\t var keys = this._k = [] // keys\n\t , key;\n\t for(key in iterated)keys.push(key);\n\t};\n\t__webpack_require__(153)(Enumerate, 'Object', function(){\n\t var that = this\n\t , keys = that._k\n\t , key;\n\t do {\n\t if(that._i >= keys.length)return {value: undefined, done: true};\n\t } while(!((key = keys[that._i++]) in that._t));\n\t return {value: key, done: false};\n\t});\n\t\n\t$export($export.S, 'Reflect', {\n\t enumerate: function enumerate(target){\n\t return new Enumerate(target);\n\t }\n\t});\n\n/***/ },\n/* 499 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\n\tvar gOPD = __webpack_require__(32)\n\t , $export = __webpack_require__(1)\n\t , anObject = __webpack_require__(4);\n\t\n\t$export($export.S, 'Reflect', {\n\t getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey){\n\t return gOPD.f(anObject(target), propertyKey);\n\t }\n\t});\n\n/***/ },\n/* 500 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.8 Reflect.getPrototypeOf(target)\n\tvar $export = __webpack_require__(1)\n\t , getProto = __webpack_require__(33)\n\t , anObject = __webpack_require__(4);\n\t\n\t$export($export.S, 'Reflect', {\n\t getPrototypeOf: function getPrototypeOf(target){\n\t return getProto(anObject(target));\n\t }\n\t});\n\n/***/ },\n/* 501 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.6 Reflect.get(target, propertyKey [, receiver])\n\tvar gOPD = __webpack_require__(32)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , has = __webpack_require__(22)\n\t , $export = __webpack_require__(1)\n\t , isObject = __webpack_require__(9)\n\t , anObject = __webpack_require__(4);\n\t\n\tfunction get(target, propertyKey/*, receiver*/){\n\t var receiver = arguments.length < 3 ? target : arguments[2]\n\t , desc, proto;\n\t if(anObject(target) === receiver)return target[propertyKey];\n\t if(desc = gOPD.f(target, propertyKey))return has(desc, 'value')\n\t ? desc.value\n\t : desc.get !== undefined\n\t ? desc.get.call(receiver)\n\t : undefined;\n\t if(isObject(proto = getPrototypeOf(target)))return get(proto, propertyKey, receiver);\n\t}\n\t\n\t$export($export.S, 'Reflect', {get: get});\n\n/***/ },\n/* 502 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.9 Reflect.has(target, propertyKey)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Reflect', {\n\t has: function has(target, propertyKey){\n\t return propertyKey in target;\n\t }\n\t});\n\n/***/ },\n/* 503 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.10 Reflect.isExtensible(target)\n\tvar $export = __webpack_require__(1)\n\t , anObject = __webpack_require__(4)\n\t , $isExtensible = Object.isExtensible;\n\t\n\t$export($export.S, 'Reflect', {\n\t isExtensible: function isExtensible(target){\n\t anObject(target);\n\t return $isExtensible ? $isExtensible(target) : true;\n\t }\n\t});\n\n/***/ },\n/* 504 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.11 Reflect.ownKeys(target)\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Reflect', {ownKeys: __webpack_require__(232)});\n\n/***/ },\n/* 505 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.12 Reflect.preventExtensions(target)\n\tvar $export = __webpack_require__(1)\n\t , anObject = __webpack_require__(4)\n\t , $preventExtensions = Object.preventExtensions;\n\t\n\t$export($export.S, 'Reflect', {\n\t preventExtensions: function preventExtensions(target){\n\t anObject(target);\n\t try {\n\t if($preventExtensions)$preventExtensions(target);\n\t return true;\n\t } catch(e){\n\t return false;\n\t }\n\t }\n\t});\n\n/***/ },\n/* 506 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.14 Reflect.setPrototypeOf(target, proto)\n\tvar $export = __webpack_require__(1)\n\t , setProto = __webpack_require__(114);\n\t\n\tif(setProto)$export($export.S, 'Reflect', {\n\t setPrototypeOf: function setPrototypeOf(target, proto){\n\t setProto.check(target, proto);\n\t try {\n\t setProto.set(target, proto);\n\t return true;\n\t } catch(e){\n\t return false;\n\t }\n\t }\n\t});\n\n/***/ },\n/* 507 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\n\tvar dP = __webpack_require__(13)\n\t , gOPD = __webpack_require__(32)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , has = __webpack_require__(22)\n\t , $export = __webpack_require__(1)\n\t , createDesc = __webpack_require__(57)\n\t , anObject = __webpack_require__(4)\n\t , isObject = __webpack_require__(9);\n\t\n\tfunction set(target, propertyKey, V/*, receiver*/){\n\t var receiver = arguments.length < 4 ? target : arguments[3]\n\t , ownDesc = gOPD.f(anObject(target), propertyKey)\n\t , existingDescriptor, proto;\n\t if(!ownDesc){\n\t if(isObject(proto = getPrototypeOf(target))){\n\t return set(proto, propertyKey, V, receiver);\n\t }\n\t ownDesc = createDesc(0);\n\t }\n\t if(has(ownDesc, 'value')){\n\t if(ownDesc.writable === false || !isObject(receiver))return false;\n\t existingDescriptor = gOPD.f(receiver, propertyKey) || createDesc(0);\n\t existingDescriptor.value = V;\n\t dP.f(receiver, propertyKey, existingDescriptor);\n\t return true;\n\t }\n\t return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n\t}\n\t\n\t$export($export.S, 'Reflect', {set: set});\n\n/***/ },\n/* 508 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar global = __webpack_require__(7)\n\t , inheritIfRequired = __webpack_require__(149)\n\t , dP = __webpack_require__(13).f\n\t , gOPN = __webpack_require__(69).f\n\t , isRegExp = __webpack_require__(110)\n\t , $flags = __webpack_require__(108)\n\t , $RegExp = global.RegExp\n\t , Base = $RegExp\n\t , proto = $RegExp.prototype\n\t , re1 = /a/g\n\t , re2 = /a/g\n\t // \"new\" creates a new object, old webkit buggy here\n\t , CORRECT_NEW = new $RegExp(re1) !== re1;\n\t\n\tif(__webpack_require__(12) && (!CORRECT_NEW || __webpack_require__(8)(function(){\n\t re2[__webpack_require__(10)('match')] = false;\n\t // RegExp constructor can alter flags and IsRegExp works correct with @@match\n\t return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n\t}))){\n\t $RegExp = function RegExp(p, f){\n\t var tiRE = this instanceof $RegExp\n\t , piRE = isRegExp(p)\n\t , fiU = f === undefined;\n\t return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n\t : inheritIfRequired(CORRECT_NEW\n\t ? new Base(piRE && !fiU ? p.source : p, f)\n\t : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n\t , tiRE ? this : proto, $RegExp);\n\t };\n\t var proxy = function(key){\n\t key in $RegExp || dP($RegExp, key, {\n\t configurable: true,\n\t get: function(){ return Base[key]; },\n\t set: function(it){ Base[key] = it; }\n\t });\n\t };\n\t for(var keys = gOPN(Base), i = 0; keys.length > i; )proxy(keys[i++]);\n\t proto.constructor = $RegExp;\n\t $RegExp.prototype = proto;\n\t __webpack_require__(28)(global, 'RegExp', $RegExp);\n\t}\n\t\n\t__webpack_require__(72)('RegExp');\n\n/***/ },\n/* 509 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// @@match logic\n\t__webpack_require__(107)('match', 1, function(defined, MATCH, $match){\n\t // 21.1.3.11 String.prototype.match(regexp)\n\t return [function match(regexp){\n\t 'use strict';\n\t var O = defined(this)\n\t , fn = regexp == undefined ? undefined : regexp[MATCH];\n\t return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n\t }, $match];\n\t});\n\n/***/ },\n/* 510 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// @@replace logic\n\t__webpack_require__(107)('replace', 2, function(defined, REPLACE, $replace){\n\t // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n\t return [function replace(searchValue, replaceValue){\n\t 'use strict';\n\t var O = defined(this)\n\t , fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n\t return fn !== undefined\n\t ? fn.call(searchValue, O, replaceValue)\n\t : $replace.call(String(O), searchValue, replaceValue);\n\t }, $replace];\n\t});\n\n/***/ },\n/* 511 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// @@search logic\n\t__webpack_require__(107)('search', 1, function(defined, SEARCH, $search){\n\t // 21.1.3.15 String.prototype.search(regexp)\n\t return [function search(regexp){\n\t 'use strict';\n\t var O = defined(this)\n\t , fn = regexp == undefined ? undefined : regexp[SEARCH];\n\t return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n\t }, $search];\n\t});\n\n/***/ },\n/* 512 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// @@split logic\n\t__webpack_require__(107)('split', 2, function(defined, SPLIT, $split){\n\t 'use strict';\n\t var isRegExp = __webpack_require__(110)\n\t , _split = $split\n\t , $push = [].push\n\t , $SPLIT = 'split'\n\t , LENGTH = 'length'\n\t , LAST_INDEX = 'lastIndex';\n\t if(\n\t 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n\t 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n\t 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n\t '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n\t '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n\t ''[$SPLIT](/.?/)[LENGTH]\n\t ){\n\t var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n\t // based on es5-shim implementation, need to rework it\n\t $split = function(separator, limit){\n\t var string = String(this);\n\t if(separator === undefined && limit === 0)return [];\n\t // If `separator` is not a regex, use native split\n\t if(!isRegExp(separator))return _split.call(string, separator, limit);\n\t var output = [];\n\t var flags = (separator.ignoreCase ? 'i' : '') +\n\t (separator.multiline ? 'm' : '') +\n\t (separator.unicode ? 'u' : '') +\n\t (separator.sticky ? 'y' : '');\n\t var lastLastIndex = 0;\n\t var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n\t // Make `global` and avoid `lastIndex` issues by working with a copy\n\t var separatorCopy = new RegExp(separator.source, flags + 'g');\n\t var separator2, match, lastIndex, lastLength, i;\n\t // Doesn't need flags gy, but they don't hurt\n\t if(!NPCG)separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n\t while(match = separatorCopy.exec(string)){\n\t // `separatorCopy.lastIndex` is not reliable cross-browser\n\t lastIndex = match.index + match[0][LENGTH];\n\t if(lastIndex > lastLastIndex){\n\t output.push(string.slice(lastLastIndex, match.index));\n\t // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n\t if(!NPCG && match[LENGTH] > 1)match[0].replace(separator2, function(){\n\t for(i = 1; i < arguments[LENGTH] - 2; i++)if(arguments[i] === undefined)match[i] = undefined;\n\t });\n\t if(match[LENGTH] > 1 && match.index < string[LENGTH])$push.apply(output, match.slice(1));\n\t lastLength = match[0][LENGTH];\n\t lastLastIndex = lastIndex;\n\t if(output[LENGTH] >= splitLimit)break;\n\t }\n\t if(separatorCopy[LAST_INDEX] === match.index)separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n\t }\n\t if(lastLastIndex === string[LENGTH]){\n\t if(lastLength || !separatorCopy.test(''))output.push('');\n\t } else output.push(string.slice(lastLastIndex));\n\t return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n\t };\n\t // Chakra, V8\n\t } else if('0'[$SPLIT](undefined, 0)[LENGTH]){\n\t $split = function(separator, limit){\n\t return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n\t };\n\t }\n\t // 21.1.3.17 String.prototype.split(separator, limit)\n\t return [function split(separator, limit){\n\t var O = defined(this)\n\t , fn = separator == undefined ? undefined : separator[SPLIT];\n\t return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n\t }, $split];\n\t});\n\n/***/ },\n/* 513 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\t__webpack_require__(239);\r\n\tvar anObject = __webpack_require__(4)\r\n\t , $flags = __webpack_require__(108)\r\n\t , DESCRIPTORS = __webpack_require__(12)\r\n\t , TO_STRING = 'toString'\r\n\t , $toString = /./[TO_STRING];\r\n\t\r\n\tvar define = function(fn){\r\n\t __webpack_require__(28)(RegExp.prototype, TO_STRING, fn, true);\r\n\t};\r\n\t\r\n\t// 21.2.5.14 RegExp.prototype.toString()\r\n\tif(__webpack_require__(8)(function(){ return $toString.call({source: 'a', flags: 'b'}) != '/a/b'; })){\r\n\t define(function toString(){\r\n\t var R = anObject(this);\r\n\t return '/'.concat(R.source, '/',\r\n\t 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\r\n\t });\r\n\t// FF44- RegExp#toString has a wrong name\r\n\t} else if($toString.name != TO_STRING){\r\n\t define(function toString(){\r\n\t return $toString.call(this);\r\n\t });\r\n\t}\n\n/***/ },\n/* 514 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.2 String.prototype.anchor(name)\n\t__webpack_require__(29)('anchor', function(createHTML){\n\t return function anchor(name){\n\t return createHTML(this, 'a', 'name', name);\n\t }\n\t});\n\n/***/ },\n/* 515 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.3 String.prototype.big()\n\t__webpack_require__(29)('big', function(createHTML){\n\t return function big(){\n\t return createHTML(this, 'big', '', '');\n\t }\n\t});\n\n/***/ },\n/* 516 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.4 String.prototype.blink()\n\t__webpack_require__(29)('blink', function(createHTML){\n\t return function blink(){\n\t return createHTML(this, 'blink', '', '');\n\t }\n\t});\n\n/***/ },\n/* 517 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.5 String.prototype.bold()\n\t__webpack_require__(29)('bold', function(createHTML){\n\t return function bold(){\n\t return createHTML(this, 'b', '', '');\n\t }\n\t});\n\n/***/ },\n/* 518 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , $at = __webpack_require__(160)(false);\n\t$export($export.P, 'String', {\n\t // 21.1.3.3 String.prototype.codePointAt(pos)\n\t codePointAt: function codePointAt(pos){\n\t return $at(this, pos);\n\t }\n\t});\n\n/***/ },\n/* 519 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , toLength = __webpack_require__(18)\n\t , context = __webpack_require__(161)\n\t , ENDS_WITH = 'endsWith'\n\t , $endsWith = ''[ENDS_WITH];\n\t\n\t$export($export.P + $export.F * __webpack_require__(147)(ENDS_WITH), 'String', {\n\t endsWith: function endsWith(searchString /*, endPosition = @length */){\n\t var that = context(this, searchString, ENDS_WITH)\n\t , endPosition = arguments.length > 1 ? arguments[1] : undefined\n\t , len = toLength(that.length)\n\t , end = endPosition === undefined ? len : Math.min(toLength(endPosition), len)\n\t , search = String(searchString);\n\t return $endsWith\n\t ? $endsWith.call(that, search, end)\n\t : that.slice(end - search.length, end) === search;\n\t }\n\t});\n\n/***/ },\n/* 520 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.6 String.prototype.fixed()\n\t__webpack_require__(29)('fixed', function(createHTML){\n\t return function fixed(){\n\t return createHTML(this, 'tt', '', '');\n\t }\n\t});\n\n/***/ },\n/* 521 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.7 String.prototype.fontcolor(color)\n\t__webpack_require__(29)('fontcolor', function(createHTML){\n\t return function fontcolor(color){\n\t return createHTML(this, 'font', 'color', color);\n\t }\n\t});\n\n/***/ },\n/* 522 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.8 String.prototype.fontsize(size)\n\t__webpack_require__(29)('fontsize', function(createHTML){\n\t return function fontsize(size){\n\t return createHTML(this, 'font', 'size', size);\n\t }\n\t});\n\n/***/ },\n/* 523 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\n\t , toIndex = __webpack_require__(73)\n\t , fromCharCode = String.fromCharCode\n\t , $fromCodePoint = String.fromCodePoint;\n\t\n\t// length should be 1, old FF problem\n\t$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n\t // 21.1.2.2 String.fromCodePoint(...codePoints)\n\t fromCodePoint: function fromCodePoint(x){ // eslint-disable-line no-unused-vars\n\t var res = []\n\t , aLen = arguments.length\n\t , i = 0\n\t , code;\n\t while(aLen > i){\n\t code = +arguments[i++];\n\t if(toIndex(code, 0x10ffff) !== code)throw RangeError(code + ' is not a valid code point');\n\t res.push(code < 0x10000\n\t ? fromCharCode(code)\n\t : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n\t );\n\t } return res.join('');\n\t }\n\t});\n\n/***/ },\n/* 524 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , context = __webpack_require__(161)\n\t , INCLUDES = 'includes';\n\t\n\t$export($export.P + $export.F * __webpack_require__(147)(INCLUDES), 'String', {\n\t includes: function includes(searchString /*, position = 0 */){\n\t return !!~context(this, searchString, INCLUDES)\n\t .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n\t }\n\t});\n\n/***/ },\n/* 525 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.9 String.prototype.italics()\n\t__webpack_require__(29)('italics', function(createHTML){\n\t return function italics(){\n\t return createHTML(this, 'i', '', '');\n\t }\n\t});\n\n/***/ },\n/* 526 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $at = __webpack_require__(160)(true);\n\t\n\t// 21.1.3.27 String.prototype[@@iterator]()\n\t__webpack_require__(154)(String, 'String', function(iterated){\n\t this._t = String(iterated); // target\n\t this._i = 0; // next index\n\t// 21.1.5.2.1 %StringIteratorPrototype%.next()\n\t}, function(){\n\t var O = this._t\n\t , index = this._i\n\t , point;\n\t if(index >= O.length)return {value: undefined, done: true};\n\t point = $at(O, index);\n\t this._i += point.length;\n\t return {value: point, done: false};\n\t});\n\n/***/ },\n/* 527 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.10 String.prototype.link(url)\n\t__webpack_require__(29)('link', function(createHTML){\n\t return function link(url){\n\t return createHTML(this, 'a', 'href', url);\n\t }\n\t});\n\n/***/ },\n/* 528 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\n\t , toIObject = __webpack_require__(30)\n\t , toLength = __webpack_require__(18);\n\t\n\t$export($export.S, 'String', {\n\t // 21.1.2.4 String.raw(callSite, ...substitutions)\n\t raw: function raw(callSite){\n\t var tpl = toIObject(callSite.raw)\n\t , len = toLength(tpl.length)\n\t , aLen = arguments.length\n\t , res = []\n\t , i = 0;\n\t while(len > i){\n\t res.push(String(tpl[i++]));\n\t if(i < aLen)res.push(String(arguments[i]));\n\t } return res.join('');\n\t }\n\t});\n\n/***/ },\n/* 529 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.P, 'String', {\n\t // 21.1.3.13 String.prototype.repeat(count)\n\t repeat: __webpack_require__(162)\n\t});\n\n/***/ },\n/* 530 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.11 String.prototype.small()\n\t__webpack_require__(29)('small', function(createHTML){\n\t return function small(){\n\t return createHTML(this, 'small', '', '');\n\t }\n\t});\n\n/***/ },\n/* 531 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , toLength = __webpack_require__(18)\n\t , context = __webpack_require__(161)\n\t , STARTS_WITH = 'startsWith'\n\t , $startsWith = ''[STARTS_WITH];\n\t\n\t$export($export.P + $export.F * __webpack_require__(147)(STARTS_WITH), 'String', {\n\t startsWith: function startsWith(searchString /*, position = 0 */){\n\t var that = context(this, searchString, STARTS_WITH)\n\t , index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length))\n\t , search = String(searchString);\n\t return $startsWith\n\t ? $startsWith.call(that, search, index)\n\t : that.slice(index, index + search.length) === search;\n\t }\n\t});\n\n/***/ },\n/* 532 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.12 String.prototype.strike()\n\t__webpack_require__(29)('strike', function(createHTML){\n\t return function strike(){\n\t return createHTML(this, 'strike', '', '');\n\t }\n\t});\n\n/***/ },\n/* 533 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.13 String.prototype.sub()\n\t__webpack_require__(29)('sub', function(createHTML){\n\t return function sub(){\n\t return createHTML(this, 'sub', '', '');\n\t }\n\t});\n\n/***/ },\n/* 534 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// B.2.3.14 String.prototype.sup()\n\t__webpack_require__(29)('sup', function(createHTML){\n\t return function sup(){\n\t return createHTML(this, 'sup', '', '');\n\t }\n\t});\n\n/***/ },\n/* 535 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// 21.1.3.25 String.prototype.trim()\n\t__webpack_require__(84)('trim', function($trim){\n\t return function trim(){\n\t return $trim(this, 3);\n\t };\n\t});\n\n/***/ },\n/* 536 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// ECMAScript 6 symbols shim\n\tvar global = __webpack_require__(7)\n\t , has = __webpack_require__(22)\n\t , DESCRIPTORS = __webpack_require__(12)\n\t , $export = __webpack_require__(1)\n\t , redefine = __webpack_require__(28)\n\t , META = __webpack_require__(56).KEY\n\t , $fails = __webpack_require__(8)\n\t , shared = __webpack_require__(115)\n\t , setToStringTag = __webpack_require__(83)\n\t , uid = __webpack_require__(74)\n\t , wks = __webpack_require__(10)\n\t , wksExt = __webpack_require__(237)\n\t , wksDefine = __webpack_require__(166)\n\t , keyOf = __webpack_require__(411)\n\t , enumKeys = __webpack_require__(410)\n\t , isArray = __webpack_require__(151)\n\t , anObject = __webpack_require__(4)\n\t , toIObject = __webpack_require__(30)\n\t , toPrimitive = __webpack_require__(43)\n\t , createDesc = __webpack_require__(57)\n\t , _create = __webpack_require__(68)\n\t , gOPNExt = __webpack_require__(229)\n\t , $GOPD = __webpack_require__(32)\n\t , $DP = __webpack_require__(13)\n\t , $keys = __webpack_require__(70)\n\t , gOPD = $GOPD.f\n\t , dP = $DP.f\n\t , gOPN = gOPNExt.f\n\t , $Symbol = global.Symbol\n\t , $JSON = global.JSON\n\t , _stringify = $JSON && $JSON.stringify\n\t , PROTOTYPE = 'prototype'\n\t , HIDDEN = wks('_hidden')\n\t , TO_PRIMITIVE = wks('toPrimitive')\n\t , isEnum = {}.propertyIsEnumerable\n\t , SymbolRegistry = shared('symbol-registry')\n\t , AllSymbols = shared('symbols')\n\t , OPSymbols = shared('op-symbols')\n\t , ObjectProto = Object[PROTOTYPE]\n\t , USE_NATIVE = typeof $Symbol == 'function'\n\t , QObject = global.QObject;\n\t// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\n\tvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\t\n\t// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\n\tvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n\t return _create(dP({}, 'a', {\n\t get: function(){ return dP(this, 'a', {value: 7}).a; }\n\t })).a != 7;\n\t}) ? function(it, key, D){\n\t var protoDesc = gOPD(ObjectProto, key);\n\t if(protoDesc)delete ObjectProto[key];\n\t dP(it, key, D);\n\t if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n\t} : dP;\n\t\n\tvar wrap = function(tag){\n\t var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\t sym._k = tag;\n\t return sym;\n\t};\n\t\n\tvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n\t return typeof it == 'symbol';\n\t} : function(it){\n\t return it instanceof $Symbol;\n\t};\n\t\n\tvar $defineProperty = function defineProperty(it, key, D){\n\t if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n\t anObject(it);\n\t key = toPrimitive(key, true);\n\t anObject(D);\n\t if(has(AllSymbols, key)){\n\t if(!D.enumerable){\n\t if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n\t it[HIDDEN][key] = true;\n\t } else {\n\t if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n\t D = _create(D, {enumerable: createDesc(0, false)});\n\t } return setSymbolDesc(it, key, D);\n\t } return dP(it, key, D);\n\t};\n\tvar $defineProperties = function defineProperties(it, P){\n\t anObject(it);\n\t var keys = enumKeys(P = toIObject(P))\n\t , i = 0\n\t , l = keys.length\n\t , key;\n\t while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n\t return it;\n\t};\n\tvar $create = function create(it, P){\n\t return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n\t};\n\tvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n\t var E = isEnum.call(this, key = toPrimitive(key, true));\n\t if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n\t return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n\t};\n\tvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n\t it = toIObject(it);\n\t key = toPrimitive(key, true);\n\t if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n\t var D = gOPD(it, key);\n\t if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n\t return D;\n\t};\n\tvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n\t var names = gOPN(toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n\t } return result;\n\t};\n\tvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n\t var IS_OP = it === ObjectProto\n\t , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n\t , result = []\n\t , i = 0\n\t , key;\n\t while(names.length > i){\n\t if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n\t } return result;\n\t};\n\t\n\t// 19.4.1.1 Symbol([description])\n\tif(!USE_NATIVE){\n\t $Symbol = function Symbol(){\n\t if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n\t var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\t var $set = function(value){\n\t if(this === ObjectProto)$set.call(OPSymbols, value);\n\t if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n\t setSymbolDesc(this, tag, createDesc(1, value));\n\t };\n\t if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n\t return wrap(tag);\n\t };\n\t redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n\t return this._k;\n\t });\n\t\n\t $GOPD.f = $getOwnPropertyDescriptor;\n\t $DP.f = $defineProperty;\n\t __webpack_require__(69).f = gOPNExt.f = $getOwnPropertyNames;\n\t __webpack_require__(93).f = $propertyIsEnumerable;\n\t __webpack_require__(113).f = $getOwnPropertySymbols;\n\t\n\t if(DESCRIPTORS && !__webpack_require__(67)){\n\t redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n\t }\n\t\n\t wksExt.f = function(name){\n\t return wrap(wks(name));\n\t }\n\t}\n\t\n\t$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\t\n\tfor(var symbols = (\n\t // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n\t 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n\t).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\t\n\tfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n\t // 19.4.2.1 Symbol.for(key)\n\t 'for': function(key){\n\t return has(SymbolRegistry, key += '')\n\t ? SymbolRegistry[key]\n\t : SymbolRegistry[key] = $Symbol(key);\n\t },\n\t // 19.4.2.5 Symbol.keyFor(sym)\n\t keyFor: function keyFor(key){\n\t if(isSymbol(key))return keyOf(SymbolRegistry, key);\n\t throw TypeError(key + ' is not a symbol!');\n\t },\n\t useSetter: function(){ setter = true; },\n\t useSimple: function(){ setter = false; }\n\t});\n\t\n\t$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n\t // 19.1.2.2 Object.create(O [, Properties])\n\t create: $create,\n\t // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n\t defineProperty: $defineProperty,\n\t // 19.1.2.3 Object.defineProperties(O, Properties)\n\t defineProperties: $defineProperties,\n\t // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n\t getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n\t // 19.1.2.7 Object.getOwnPropertyNames(O)\n\t getOwnPropertyNames: $getOwnPropertyNames,\n\t // 19.1.2.8 Object.getOwnPropertySymbols(O)\n\t getOwnPropertySymbols: $getOwnPropertySymbols\n\t});\n\t\n\t// 24.3.2 JSON.stringify(value [, replacer [, space]])\n\t$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n\t var S = $Symbol();\n\t // MS Edge converts symbol values to JSON as {}\n\t // WebKit converts symbol values to JSON as null\n\t // V8 throws on boxed symbols\n\t return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n\t})), 'JSON', {\n\t stringify: function stringify(it){\n\t if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n\t var args = [it]\n\t , i = 1\n\t , replacer, $replacer;\n\t while(arguments.length > i)args.push(arguments[i++]);\n\t replacer = args[1];\n\t if(typeof replacer == 'function')$replacer = replacer;\n\t if($replacer || !isArray(replacer))replacer = function(key, value){\n\t if($replacer)value = $replacer.call(this, key, value);\n\t if(!isSymbol(value))return value;\n\t };\n\t args[1] = replacer;\n\t return _stringify.apply($JSON, args);\n\t }\n\t});\n\t\n\t// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n\t$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(24)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n\t// 19.4.3.5 Symbol.prototype[@@toStringTag]\n\tsetToStringTag($Symbol, 'Symbol');\n\t// 20.2.1.9 Math[@@toStringTag]\n\tsetToStringTag(Math, 'Math', true);\n\t// 24.3.3 JSON[@@toStringTag]\n\tsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ },\n/* 537 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar $export = __webpack_require__(1)\n\t , $typed = __webpack_require__(116)\n\t , buffer = __webpack_require__(165)\n\t , anObject = __webpack_require__(4)\n\t , toIndex = __webpack_require__(73)\n\t , toLength = __webpack_require__(18)\n\t , isObject = __webpack_require__(9)\n\t , TYPED_ARRAY = __webpack_require__(10)('typed_array')\n\t , ArrayBuffer = __webpack_require__(7).ArrayBuffer\n\t , speciesConstructor = __webpack_require__(159)\n\t , $ArrayBuffer = buffer.ArrayBuffer\n\t , $DataView = buffer.DataView\n\t , $isView = $typed.ABV && ArrayBuffer.isView\n\t , $slice = $ArrayBuffer.prototype.slice\n\t , VIEW = $typed.VIEW\n\t , ARRAY_BUFFER = 'ArrayBuffer';\n\t\n\t$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {ArrayBuffer: $ArrayBuffer});\n\t\n\t$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n\t // 24.1.3.1 ArrayBuffer.isView(arg)\n\t isView: function isView(it){\n\t return $isView && $isView(it) || isObject(it) && VIEW in it;\n\t }\n\t});\n\t\n\t$export($export.P + $export.U + $export.F * __webpack_require__(8)(function(){\n\t return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n\t}), ARRAY_BUFFER, {\n\t // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n\t slice: function slice(start, end){\n\t if($slice !== undefined && end === undefined)return $slice.call(anObject(this), start); // FF fix\n\t var len = anObject(this).byteLength\n\t , first = toIndex(start, len)\n\t , final = toIndex(end === undefined ? len : end, len)\n\t , result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first))\n\t , viewS = new $DataView(this)\n\t , viewT = new $DataView(result)\n\t , index = 0;\n\t while(first < final){\n\t viewT.setUint8(index++, viewS.getUint8(first++));\n\t } return result;\n\t }\n\t});\n\t\n\t__webpack_require__(72)(ARRAY_BUFFER);\n\n/***/ },\n/* 538 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1);\n\t$export($export.G + $export.W + $export.F * !__webpack_require__(116).ABV, {\n\t DataView: __webpack_require__(165).DataView\n\t});\n\n/***/ },\n/* 539 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Float32', 4, function(init){\n\t return function Float32Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 540 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Float64', 8, function(init){\n\t return function Float64Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 541 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Int16', 2, function(init){\n\t return function Int16Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 542 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Int32', 4, function(init){\n\t return function Int32Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 543 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Int8', 1, function(init){\n\t return function Int8Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 544 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Uint16', 2, function(init){\n\t return function Uint16Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 545 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Uint32', 4, function(init){\n\t return function Uint32Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 546 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Uint8', 1, function(init){\n\t return function Uint8Array(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t});\n\n/***/ },\n/* 547 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(52)('Uint8', 1, function(init){\n\t return function Uint8ClampedArray(data, byteOffset, length){\n\t return init(this, data, byteOffset, length);\n\t };\n\t}, true);\n\n/***/ },\n/* 548 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar weak = __webpack_require__(222);\n\t\n\t// 23.4 WeakSet Objects\n\t__webpack_require__(106)('WeakSet', function(get){\n\t return function WeakSet(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n\t}, {\n\t // 23.4.3.1 WeakSet.prototype.add(value)\n\t add: function add(value){\n\t return weak.def(this, value, true);\n\t }\n\t}, weak, false, true);\n\n/***/ },\n/* 549 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/tc39/Array.prototype.includes\n\tvar $export = __webpack_require__(1)\n\t , $includes = __webpack_require__(105)(true);\n\t\n\t$export($export.P, 'Array', {\n\t includes: function includes(el /*, fromIndex = 0 */){\n\t return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n\t }\n\t});\n\t\n\t__webpack_require__(80)('includes');\n\n/***/ },\n/* 550 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\r\n\tvar $export = __webpack_require__(1)\r\n\t , microtask = __webpack_require__(157)()\r\n\t , process = __webpack_require__(7).process\r\n\t , isNode = __webpack_require__(35)(process) == 'process';\r\n\t\r\n\t$export($export.G, {\r\n\t asap: function asap(fn){\r\n\t var domain = isNode && process.domain;\r\n\t microtask(domain ? domain.bind(fn) : fn);\r\n\t }\r\n\t});\n\n/***/ },\n/* 551 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/ljharb/proposal-is-error\n\tvar $export = __webpack_require__(1)\n\t , cof = __webpack_require__(35);\n\t\n\t$export($export.S, 'Error', {\n\t isError: function isError(it){\n\t return cof(it) === 'Error';\n\t }\n\t});\n\n/***/ },\n/* 552 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(221)('Map')});\n\n/***/ },\n/* 553 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t iaddh: function iaddh(x0, x1, y0, y1){\n\t var $x0 = x0 >>> 0\n\t , $x1 = x1 >>> 0\n\t , $y0 = y0 >>> 0;\n\t return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n\t }\n\t});\n\n/***/ },\n/* 554 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t imulh: function imulh(u, v){\n\t var UINT16 = 0xffff\n\t , $u = +u\n\t , $v = +v\n\t , u0 = $u & UINT16\n\t , v0 = $v & UINT16\n\t , u1 = $u >> 16\n\t , v1 = $v >> 16\n\t , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n\t return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n\t }\n\t});\n\n/***/ },\n/* 555 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t isubh: function isubh(x0, x1, y0, y1){\n\t var $x0 = x0 >>> 0\n\t , $x1 = x1 >>> 0\n\t , $y0 = y0 >>> 0;\n\t return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n\t }\n\t});\n\n/***/ },\n/* 556 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'Math', {\n\t umulh: function umulh(u, v){\n\t var UINT16 = 0xffff\n\t , $u = +u\n\t , $v = +v\n\t , u0 = $u & UINT16\n\t , v0 = $v & UINT16\n\t , u1 = $u >>> 16\n\t , v1 = $v >>> 16\n\t , t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n\t return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n\t }\n\t});\n\n/***/ },\n/* 557 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , toObject = __webpack_require__(19)\r\n\t , aFunction = __webpack_require__(27)\r\n\t , $defineProperty = __webpack_require__(13);\r\n\t\r\n\t// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\r\n\t__webpack_require__(12) && $export($export.P + __webpack_require__(112), 'Object', {\r\n\t __defineGetter__: function __defineGetter__(P, getter){\r\n\t $defineProperty.f(toObject(this), P, {get: aFunction(getter), enumerable: true, configurable: true});\r\n\t }\r\n\t});\n\n/***/ },\n/* 558 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , toObject = __webpack_require__(19)\r\n\t , aFunction = __webpack_require__(27)\r\n\t , $defineProperty = __webpack_require__(13);\r\n\t\r\n\t// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\r\n\t__webpack_require__(12) && $export($export.P + __webpack_require__(112), 'Object', {\r\n\t __defineSetter__: function __defineSetter__(P, setter){\r\n\t $defineProperty.f(toObject(this), P, {set: aFunction(setter), enumerable: true, configurable: true});\r\n\t }\r\n\t});\n\n/***/ },\n/* 559 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-values-entries\n\tvar $export = __webpack_require__(1)\n\t , $entries = __webpack_require__(231)(true);\n\t\n\t$export($export.S, 'Object', {\n\t entries: function entries(it){\n\t return $entries(it);\n\t }\n\t});\n\n/***/ },\n/* 560 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-getownpropertydescriptors\n\tvar $export = __webpack_require__(1)\n\t , ownKeys = __webpack_require__(232)\n\t , toIObject = __webpack_require__(30)\n\t , gOPD = __webpack_require__(32)\n\t , createProperty = __webpack_require__(144);\n\t\n\t$export($export.S, 'Object', {\n\t getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object){\n\t var O = toIObject(object)\n\t , getDesc = gOPD.f\n\t , keys = ownKeys(O)\n\t , result = {}\n\t , i = 0\n\t , key, D;\n\t while(keys.length > i)createProperty(result, key = keys[i++], getDesc(O, key));\n\t return result;\n\t }\n\t});\n\n/***/ },\n/* 561 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , toObject = __webpack_require__(19)\r\n\t , toPrimitive = __webpack_require__(43)\r\n\t , getPrototypeOf = __webpack_require__(33)\r\n\t , getOwnPropertyDescriptor = __webpack_require__(32).f;\r\n\t\r\n\t// B.2.2.4 Object.prototype.__lookupGetter__(P)\r\n\t__webpack_require__(12) && $export($export.P + __webpack_require__(112), 'Object', {\r\n\t __lookupGetter__: function __lookupGetter__(P){\r\n\t var O = toObject(this)\r\n\t , K = toPrimitive(P, true)\r\n\t , D;\r\n\t do {\r\n\t if(D = getOwnPropertyDescriptor(O, K))return D.get;\r\n\t } while(O = getPrototypeOf(O));\r\n\t }\r\n\t});\n\n/***/ },\n/* 562 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\tvar $export = __webpack_require__(1)\r\n\t , toObject = __webpack_require__(19)\r\n\t , toPrimitive = __webpack_require__(43)\r\n\t , getPrototypeOf = __webpack_require__(33)\r\n\t , getOwnPropertyDescriptor = __webpack_require__(32).f;\r\n\t\r\n\t// B.2.2.5 Object.prototype.__lookupSetter__(P)\r\n\t__webpack_require__(12) && $export($export.P + __webpack_require__(112), 'Object', {\r\n\t __lookupSetter__: function __lookupSetter__(P){\r\n\t var O = toObject(this)\r\n\t , K = toPrimitive(P, true)\r\n\t , D;\r\n\t do {\r\n\t if(D = getOwnPropertyDescriptor(O, K))return D.set;\r\n\t } while(O = getPrototypeOf(O));\r\n\t }\r\n\t});\n\n/***/ },\n/* 563 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/tc39/proposal-object-values-entries\n\tvar $export = __webpack_require__(1)\n\t , $values = __webpack_require__(231)(false);\n\t\n\t$export($export.S, 'Object', {\n\t values: function values(it){\n\t return $values(it);\n\t }\n\t});\n\n/***/ },\n/* 564 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\t// https://github.com/zenparsing/es-observable\r\n\tvar $export = __webpack_require__(1)\r\n\t , global = __webpack_require__(7)\r\n\t , core = __webpack_require__(41)\r\n\t , microtask = __webpack_require__(157)()\r\n\t , OBSERVABLE = __webpack_require__(10)('observable')\r\n\t , aFunction = __webpack_require__(27)\r\n\t , anObject = __webpack_require__(4)\r\n\t , anInstance = __webpack_require__(55)\r\n\t , redefineAll = __webpack_require__(71)\r\n\t , hide = __webpack_require__(24)\r\n\t , forOf = __webpack_require__(82)\r\n\t , RETURN = forOf.RETURN;\r\n\t\r\n\tvar getMethod = function(fn){\r\n\t return fn == null ? undefined : aFunction(fn);\r\n\t};\r\n\t\r\n\tvar cleanupSubscription = function(subscription){\r\n\t var cleanup = subscription._c;\r\n\t if(cleanup){\r\n\t subscription._c = undefined;\r\n\t cleanup();\r\n\t }\r\n\t};\r\n\t\r\n\tvar subscriptionClosed = function(subscription){\r\n\t return subscription._o === undefined;\r\n\t};\r\n\t\r\n\tvar closeSubscription = function(subscription){\r\n\t if(!subscriptionClosed(subscription)){\r\n\t subscription._o = undefined;\r\n\t cleanupSubscription(subscription);\r\n\t }\r\n\t};\r\n\t\r\n\tvar Subscription = function(observer, subscriber){\r\n\t anObject(observer);\r\n\t this._c = undefined;\r\n\t this._o = observer;\r\n\t observer = new SubscriptionObserver(this);\r\n\t try {\r\n\t var cleanup = subscriber(observer)\r\n\t , subscription = cleanup;\r\n\t if(cleanup != null){\r\n\t if(typeof cleanup.unsubscribe === 'function')cleanup = function(){ subscription.unsubscribe(); };\r\n\t else aFunction(cleanup);\r\n\t this._c = cleanup;\r\n\t }\r\n\t } catch(e){\r\n\t observer.error(e);\r\n\t return;\r\n\t } if(subscriptionClosed(this))cleanupSubscription(this);\r\n\t};\r\n\t\r\n\tSubscription.prototype = redefineAll({}, {\r\n\t unsubscribe: function unsubscribe(){ closeSubscription(this); }\r\n\t});\r\n\t\r\n\tvar SubscriptionObserver = function(subscription){\r\n\t this._s = subscription;\r\n\t};\r\n\t\r\n\tSubscriptionObserver.prototype = redefineAll({}, {\r\n\t next: function next(value){\r\n\t var subscription = this._s;\r\n\t if(!subscriptionClosed(subscription)){\r\n\t var observer = subscription._o;\r\n\t try {\r\n\t var m = getMethod(observer.next);\r\n\t if(m)return m.call(observer, value);\r\n\t } catch(e){\r\n\t try {\r\n\t closeSubscription(subscription);\r\n\t } finally {\r\n\t throw e;\r\n\t }\r\n\t }\r\n\t }\r\n\t },\r\n\t error: function error(value){\r\n\t var subscription = this._s;\r\n\t if(subscriptionClosed(subscription))throw value;\r\n\t var observer = subscription._o;\r\n\t subscription._o = undefined;\r\n\t try {\r\n\t var m = getMethod(observer.error);\r\n\t if(!m)throw value;\r\n\t value = m.call(observer, value);\r\n\t } catch(e){\r\n\t try {\r\n\t cleanupSubscription(subscription);\r\n\t } finally {\r\n\t throw e;\r\n\t }\r\n\t } cleanupSubscription(subscription);\r\n\t return value;\r\n\t },\r\n\t complete: function complete(value){\r\n\t var subscription = this._s;\r\n\t if(!subscriptionClosed(subscription)){\r\n\t var observer = subscription._o;\r\n\t subscription._o = undefined;\r\n\t try {\r\n\t var m = getMethod(observer.complete);\r\n\t value = m ? m.call(observer, value) : undefined;\r\n\t } catch(e){\r\n\t try {\r\n\t cleanupSubscription(subscription);\r\n\t } finally {\r\n\t throw e;\r\n\t }\r\n\t } cleanupSubscription(subscription);\r\n\t return value;\r\n\t }\r\n\t }\r\n\t});\r\n\t\r\n\tvar $Observable = function Observable(subscriber){\r\n\t anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\r\n\t};\r\n\t\r\n\tredefineAll($Observable.prototype, {\r\n\t subscribe: function subscribe(observer){\r\n\t return new Subscription(observer, this._f);\r\n\t },\r\n\t forEach: function forEach(fn){\r\n\t var that = this;\r\n\t return new (core.Promise || global.Promise)(function(resolve, reject){\r\n\t aFunction(fn);\r\n\t var subscription = that.subscribe({\r\n\t next : function(value){\r\n\t try {\r\n\t return fn(value);\r\n\t } catch(e){\r\n\t reject(e);\r\n\t subscription.unsubscribe();\r\n\t }\r\n\t },\r\n\t error: reject,\r\n\t complete: resolve\r\n\t });\r\n\t });\r\n\t }\r\n\t});\r\n\t\r\n\tredefineAll($Observable, {\r\n\t from: function from(x){\r\n\t var C = typeof this === 'function' ? this : $Observable;\r\n\t var method = getMethod(anObject(x)[OBSERVABLE]);\r\n\t if(method){\r\n\t var observable = anObject(method.call(x));\r\n\t return observable.constructor === C ? observable : new C(function(observer){\r\n\t return observable.subscribe(observer);\r\n\t });\r\n\t }\r\n\t return new C(function(observer){\r\n\t var done = false;\r\n\t microtask(function(){\r\n\t if(!done){\r\n\t try {\r\n\t if(forOf(x, false, function(it){\r\n\t observer.next(it);\r\n\t if(done)return RETURN;\r\n\t }) === RETURN)return;\r\n\t } catch(e){\r\n\t if(done)throw e;\r\n\t observer.error(e);\r\n\t return;\r\n\t } observer.complete();\r\n\t }\r\n\t });\r\n\t return function(){ done = true; };\r\n\t });\r\n\t },\r\n\t of: function of(){\r\n\t for(var i = 0, l = arguments.length, items = Array(l); i < l;)items[i] = arguments[i++];\r\n\t return new (typeof this === 'function' ? this : $Observable)(function(observer){\r\n\t var done = false;\r\n\t microtask(function(){\r\n\t if(!done){\r\n\t for(var i = 0; i < items.length; ++i){\r\n\t observer.next(items[i]);\r\n\t if(done)return;\r\n\t } observer.complete();\r\n\t }\r\n\t });\r\n\t return function(){ done = true; };\r\n\t });\r\n\t }\r\n\t});\r\n\t\r\n\thide($Observable.prototype, OBSERVABLE, function(){ return this; });\r\n\t\r\n\t$export($export.G, {Observable: $Observable});\r\n\t\r\n\t__webpack_require__(72)('Observable');\n\n/***/ },\n/* 565 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , toMetaKey = metadata.key\n\t , ordinaryDefineOwnMetadata = metadata.set;\n\t\n\tmetadata.exp({defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey){\n\t ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n\t}});\n\n/***/ },\n/* 566 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , toMetaKey = metadata.key\n\t , getOrCreateMetadataMap = metadata.map\n\t , store = metadata.store;\n\t\n\tmetadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){\n\t var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])\n\t , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n\t if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;\n\t if(metadataMap.size)return true;\n\t var targetMetadata = store.get(target);\n\t targetMetadata['delete'](targetKey);\n\t return !!targetMetadata.size || store['delete'](target);\n\t}});\n\n/***/ },\n/* 567 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Set = __webpack_require__(240)\n\t , from = __webpack_require__(217)\n\t , metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , ordinaryOwnMetadataKeys = metadata.keys\n\t , toMetaKey = metadata.key;\n\t\n\tvar ordinaryMetadataKeys = function(O, P){\n\t var oKeys = ordinaryOwnMetadataKeys(O, P)\n\t , parent = getPrototypeOf(O);\n\t if(parent === null)return oKeys;\n\t var pKeys = ordinaryMetadataKeys(parent, P);\n\t return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n\t};\n\t\n\tmetadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){\n\t return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n\t}});\n\n/***/ },\n/* 568 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , ordinaryHasOwnMetadata = metadata.has\n\t , ordinaryGetOwnMetadata = metadata.get\n\t , toMetaKey = metadata.key;\n\t\n\tvar ordinaryGetMetadata = function(MetadataKey, O, P){\n\t var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n\t if(hasOwn)return ordinaryGetOwnMetadata(MetadataKey, O, P);\n\t var parent = getPrototypeOf(O);\n\t return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n\t};\n\t\n\tmetadata.exp({getMetadata: function getMetadata(metadataKey, target /*, targetKey */){\n\t return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n\t}});\n\n/***/ },\n/* 569 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , ordinaryOwnMetadataKeys = metadata.keys\n\t , toMetaKey = metadata.key;\n\t\n\tmetadata.exp({getOwnMetadataKeys: function getOwnMetadataKeys(target /*, targetKey */){\n\t return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n\t}});\n\n/***/ },\n/* 570 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , ordinaryGetOwnMetadata = metadata.get\n\t , toMetaKey = metadata.key;\n\t\n\tmetadata.exp({getOwnMetadata: function getOwnMetadata(metadataKey, target /*, targetKey */){\n\t return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n\t , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n\t}});\n\n/***/ },\n/* 571 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , getPrototypeOf = __webpack_require__(33)\n\t , ordinaryHasOwnMetadata = metadata.has\n\t , toMetaKey = metadata.key;\n\t\n\tvar ordinaryHasMetadata = function(MetadataKey, O, P){\n\t var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n\t if(hasOwn)return true;\n\t var parent = getPrototypeOf(O);\n\t return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n\t};\n\t\n\tmetadata.exp({hasMetadata: function hasMetadata(metadataKey, target /*, targetKey */){\n\t return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n\t}});\n\n/***/ },\n/* 572 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , ordinaryHasOwnMetadata = metadata.has\n\t , toMetaKey = metadata.key;\n\t\n\tmetadata.exp({hasOwnMetadata: function hasOwnMetadata(metadataKey, target /*, targetKey */){\n\t return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n\t , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n\t}});\n\n/***/ },\n/* 573 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar metadata = __webpack_require__(51)\n\t , anObject = __webpack_require__(4)\n\t , aFunction = __webpack_require__(27)\n\t , toMetaKey = metadata.key\n\t , ordinaryDefineOwnMetadata = metadata.set;\n\t\n\tmetadata.exp({metadata: function metadata(metadataKey, metadataValue){\n\t return function decorator(target, targetKey){\n\t ordinaryDefineOwnMetadata(\n\t metadataKey, metadataValue,\n\t (targetKey !== undefined ? anObject : aFunction)(target),\n\t toMetaKey(targetKey)\n\t );\n\t };\n\t}});\n\n/***/ },\n/* 574 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/DavidBruant/Map-Set.prototype.toJSON\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.P + $export.R, 'Set', {toJSON: __webpack_require__(221)('Set')});\n\n/***/ },\n/* 575 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/mathiasbynens/String.prototype.at\n\tvar $export = __webpack_require__(1)\n\t , $at = __webpack_require__(160)(true);\n\t\n\t$export($export.P, 'String', {\n\t at: function at(pos){\n\t return $at(this, pos);\n\t }\n\t});\n\n/***/ },\n/* 576 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\r\n\t// https://tc39.github.io/String.prototype.matchAll/\r\n\tvar $export = __webpack_require__(1)\r\n\t , defined = __webpack_require__(36)\r\n\t , toLength = __webpack_require__(18)\r\n\t , isRegExp = __webpack_require__(110)\r\n\t , getFlags = __webpack_require__(108)\r\n\t , RegExpProto = RegExp.prototype;\r\n\t\r\n\tvar $RegExpStringIterator = function(regexp, string){\r\n\t this._r = regexp;\r\n\t this._s = string;\r\n\t};\r\n\t\r\n\t__webpack_require__(153)($RegExpStringIterator, 'RegExp String', function next(){\r\n\t var match = this._r.exec(this._s);\r\n\t return {value: match, done: match === null};\r\n\t});\r\n\t\r\n\t$export($export.P, 'String', {\r\n\t matchAll: function matchAll(regexp){\r\n\t defined(this);\r\n\t if(!isRegExp(regexp))throw TypeError(regexp + ' is not a regexp!');\r\n\t var S = String(this)\r\n\t , flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp)\r\n\t , rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\r\n\t rx.lastIndex = toLength(regexp.lastIndex);\r\n\t return new $RegExpStringIterator(rx, S);\r\n\t }\r\n\t});\n\n/***/ },\n/* 577 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/tc39/proposal-string-pad-start-end\n\tvar $export = __webpack_require__(1)\n\t , $pad = __webpack_require__(236);\n\t\n\t$export($export.P, 'String', {\n\t padEnd: function padEnd(maxLength /*, fillString = ' ' */){\n\t return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n\t }\n\t});\n\n/***/ },\n/* 578 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/tc39/proposal-string-pad-start-end\n\tvar $export = __webpack_require__(1)\n\t , $pad = __webpack_require__(236);\n\t\n\t$export($export.P, 'String', {\n\t padStart: function padStart(maxLength /*, fillString = ' ' */){\n\t return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n\t }\n\t});\n\n/***/ },\n/* 579 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n\t__webpack_require__(84)('trimLeft', function($trim){\n\t return function trimLeft(){\n\t return $trim(this, 1);\n\t };\n\t}, 'trimStart');\n\n/***/ },\n/* 580 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n\t__webpack_require__(84)('trimRight', function($trim){\n\t return function trimRight(){\n\t return $trim(this, 2);\n\t };\n\t}, 'trimEnd');\n\n/***/ },\n/* 581 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(166)('asyncIterator');\n\n/***/ },\n/* 582 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(166)('observable');\n\n/***/ },\n/* 583 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// https://github.com/ljharb/proposal-global\n\tvar $export = __webpack_require__(1);\n\t\n\t$export($export.S, 'System', {global: __webpack_require__(7)});\n\n/***/ },\n/* 584 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $iterators = __webpack_require__(168)\n\t , redefine = __webpack_require__(28)\n\t , global = __webpack_require__(7)\n\t , hide = __webpack_require__(24)\n\t , Iterators = __webpack_require__(66)\n\t , wks = __webpack_require__(10)\n\t , ITERATOR = wks('iterator')\n\t , TO_STRING_TAG = wks('toStringTag')\n\t , ArrayValues = Iterators.Array;\n\t\n\tfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n\t var NAME = collections[i]\n\t , Collection = global[NAME]\n\t , proto = Collection && Collection.prototype\n\t , key;\n\t if(proto){\n\t if(!proto[ITERATOR])hide(proto, ITERATOR, ArrayValues);\n\t if(!proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n\t Iterators[NAME] = ArrayValues;\n\t for(key in $iterators)if(!proto[key])redefine(proto, key, $iterators[key], true);\n\t }\n\t}\n\n/***/ },\n/* 585 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar $export = __webpack_require__(1)\n\t , $task = __webpack_require__(164);\n\t$export($export.G + $export.B, {\n\t setImmediate: $task.set,\n\t clearImmediate: $task.clear\n\t});\n\n/***/ },\n/* 586 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// ie9- setTimeout & setInterval additional parameters fix\n\tvar global = __webpack_require__(7)\n\t , $export = __webpack_require__(1)\n\t , invoke = __webpack_require__(109)\n\t , partial = __webpack_require__(412)\n\t , navigator = global.navigator\n\t , MSIE = !!navigator && /MSIE .\\./.test(navigator.userAgent); // <- dirty ie9- check\n\tvar wrap = function(set){\n\t return MSIE ? function(fn, time /*, ...args */){\n\t return set(invoke(\n\t partial,\n\t [].slice.call(arguments, 2),\n\t typeof fn == 'function' ? fn : Function(fn)\n\t ), time);\n\t } : set;\n\t};\n\t$export($export.G + $export.B + $export.F * MSIE, {\n\t setTimeout: wrap(global.setTimeout),\n\t setInterval: wrap(global.setInterval)\n\t});\n\n/***/ },\n/* 587 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(536);\n\t__webpack_require__(475);\n\t__webpack_require__(477);\n\t__webpack_require__(476);\n\t__webpack_require__(479);\n\t__webpack_require__(481);\n\t__webpack_require__(486);\n\t__webpack_require__(480);\n\t__webpack_require__(478);\n\t__webpack_require__(488);\n\t__webpack_require__(487);\n\t__webpack_require__(483);\n\t__webpack_require__(484);\n\t__webpack_require__(482);\n\t__webpack_require__(474);\n\t__webpack_require__(485);\n\t__webpack_require__(489);\n\t__webpack_require__(490);\n\t__webpack_require__(442);\n\t__webpack_require__(444);\n\t__webpack_require__(443);\n\t__webpack_require__(492);\n\t__webpack_require__(491);\n\t__webpack_require__(462);\n\t__webpack_require__(472);\n\t__webpack_require__(473);\n\t__webpack_require__(463);\n\t__webpack_require__(464);\n\t__webpack_require__(465);\n\t__webpack_require__(466);\n\t__webpack_require__(467);\n\t__webpack_require__(468);\n\t__webpack_require__(469);\n\t__webpack_require__(470);\n\t__webpack_require__(471);\n\t__webpack_require__(445);\n\t__webpack_require__(446);\n\t__webpack_require__(447);\n\t__webpack_require__(448);\n\t__webpack_require__(449);\n\t__webpack_require__(450);\n\t__webpack_require__(451);\n\t__webpack_require__(452);\n\t__webpack_require__(453);\n\t__webpack_require__(454);\n\t__webpack_require__(455);\n\t__webpack_require__(456);\n\t__webpack_require__(457);\n\t__webpack_require__(458);\n\t__webpack_require__(459);\n\t__webpack_require__(460);\n\t__webpack_require__(461);\n\t__webpack_require__(523);\n\t__webpack_require__(528);\n\t__webpack_require__(535);\n\t__webpack_require__(526);\n\t__webpack_require__(518);\n\t__webpack_require__(519);\n\t__webpack_require__(524);\n\t__webpack_require__(529);\n\t__webpack_require__(531);\n\t__webpack_require__(514);\n\t__webpack_require__(515);\n\t__webpack_require__(516);\n\t__webpack_require__(517);\n\t__webpack_require__(520);\n\t__webpack_require__(521);\n\t__webpack_require__(522);\n\t__webpack_require__(525);\n\t__webpack_require__(527);\n\t__webpack_require__(530);\n\t__webpack_require__(532);\n\t__webpack_require__(533);\n\t__webpack_require__(534);\n\t__webpack_require__(437);\n\t__webpack_require__(439);\n\t__webpack_require__(438);\n\t__webpack_require__(441);\n\t__webpack_require__(440);\n\t__webpack_require__(426);\n\t__webpack_require__(424);\n\t__webpack_require__(430);\n\t__webpack_require__(427);\n\t__webpack_require__(433);\n\t__webpack_require__(435);\n\t__webpack_require__(423);\n\t__webpack_require__(429);\n\t__webpack_require__(420);\n\t__webpack_require__(434);\n\t__webpack_require__(418);\n\t__webpack_require__(432);\n\t__webpack_require__(431);\n\t__webpack_require__(425);\n\t__webpack_require__(428);\n\t__webpack_require__(417);\n\t__webpack_require__(419);\n\t__webpack_require__(422);\n\t__webpack_require__(421);\n\t__webpack_require__(436);\n\t__webpack_require__(168);\n\t__webpack_require__(508);\n\t__webpack_require__(513);\n\t__webpack_require__(239);\n\t__webpack_require__(509);\n\t__webpack_require__(510);\n\t__webpack_require__(511);\n\t__webpack_require__(512);\n\t__webpack_require__(493);\n\t__webpack_require__(238);\n\t__webpack_require__(240);\n\t__webpack_require__(241);\n\t__webpack_require__(548);\n\t__webpack_require__(537);\n\t__webpack_require__(538);\n\t__webpack_require__(543);\n\t__webpack_require__(546);\n\t__webpack_require__(547);\n\t__webpack_require__(541);\n\t__webpack_require__(544);\n\t__webpack_require__(542);\n\t__webpack_require__(545);\n\t__webpack_require__(539);\n\t__webpack_require__(540);\n\t__webpack_require__(494);\n\t__webpack_require__(495);\n\t__webpack_require__(496);\n\t__webpack_require__(497);\n\t__webpack_require__(498);\n\t__webpack_require__(501);\n\t__webpack_require__(499);\n\t__webpack_require__(500);\n\t__webpack_require__(502);\n\t__webpack_require__(503);\n\t__webpack_require__(504);\n\t__webpack_require__(505);\n\t__webpack_require__(507);\n\t__webpack_require__(506);\n\t__webpack_require__(549);\n\t__webpack_require__(575);\n\t__webpack_require__(578);\n\t__webpack_require__(577);\n\t__webpack_require__(579);\n\t__webpack_require__(580);\n\t__webpack_require__(576);\n\t__webpack_require__(581);\n\t__webpack_require__(582);\n\t__webpack_require__(560);\n\t__webpack_require__(563);\n\t__webpack_require__(559);\n\t__webpack_require__(557);\n\t__webpack_require__(558);\n\t__webpack_require__(561);\n\t__webpack_require__(562);\n\t__webpack_require__(552);\n\t__webpack_require__(574);\n\t__webpack_require__(583);\n\t__webpack_require__(551);\n\t__webpack_require__(553);\n\t__webpack_require__(555);\n\t__webpack_require__(554);\n\t__webpack_require__(556);\n\t__webpack_require__(565);\n\t__webpack_require__(566);\n\t__webpack_require__(568);\n\t__webpack_require__(567);\n\t__webpack_require__(570);\n\t__webpack_require__(569);\n\t__webpack_require__(571);\n\t__webpack_require__(572);\n\t__webpack_require__(573);\n\t__webpack_require__(550);\n\t__webpack_require__(564);\n\t__webpack_require__(586);\n\t__webpack_require__(585);\n\t__webpack_require__(584);\n\tmodule.exports = __webpack_require__(41);\n\n/***/ },\n/* 588 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar pSlice = Array.prototype.slice;\n\tvar objectKeys = __webpack_require__(590);\n\tvar isArguments = __webpack_require__(589);\n\t\n\tvar deepEqual = module.exports = function (actual, expected, opts) {\n\t if (!opts) opts = {};\n\t // 7.1. All identical values are equivalent, as determined by ===.\n\t if (actual === expected) {\n\t return true;\n\t\n\t } else if (actual instanceof Date && expected instanceof Date) {\n\t return actual.getTime() === expected.getTime();\n\t\n\t // 7.3. Other pairs that do not both pass typeof value == 'object',\n\t // equivalence is determined by ==.\n\t } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n\t return opts.strict ? actual === expected : actual == expected;\n\t\n\t // 7.4. For all other Object pairs, including Array objects, equivalence is\n\t // determined by having the same number of owned properties (as verified\n\t // with Object.prototype.hasOwnProperty.call), the same set of keys\n\t // (although not necessarily the same order), equivalent values for every\n\t // corresponding key, and an identical 'prototype' property. Note: this\n\t // accounts for both named and indexed properties on Arrays.\n\t } else {\n\t return objEquiv(actual, expected, opts);\n\t }\n\t}\n\t\n\tfunction isUndefinedOrNull(value) {\n\t return value === null || value === undefined;\n\t}\n\t\n\tfunction isBuffer (x) {\n\t if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n\t if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n\t return false;\n\t }\n\t if (x.length > 0 && typeof x[0] !== 'number') return false;\n\t return true;\n\t}\n\t\n\tfunction objEquiv(a, b, opts) {\n\t var i, key;\n\t if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n\t return false;\n\t // an identical 'prototype' property.\n\t if (a.prototype !== b.prototype) return false;\n\t //~~~I've managed to break Object.keys through screwy arguments passing.\n\t // Converting to array solves the problem.\n\t if (isArguments(a)) {\n\t if (!isArguments(b)) {\n\t return false;\n\t }\n\t a = pSlice.call(a);\n\t b = pSlice.call(b);\n\t return deepEqual(a, b, opts);\n\t }\n\t if (isBuffer(a)) {\n\t if (!isBuffer(b)) {\n\t return false;\n\t }\n\t if (a.length !== b.length) return false;\n\t for (i = 0; i < a.length; i++) {\n\t if (a[i] !== b[i]) return false;\n\t }\n\t return true;\n\t }\n\t try {\n\t var ka = objectKeys(a),\n\t kb = objectKeys(b);\n\t } catch (e) {//happens when one is a string literal and the other isn't\n\t return false;\n\t }\n\t // having the same number of owned properties (keys incorporates\n\t // hasOwnProperty)\n\t if (ka.length != kb.length)\n\t return false;\n\t //the same set of keys (although not necessarily the same order),\n\t ka.sort();\n\t kb.sort();\n\t //~~~cheap key test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t if (ka[i] != kb[i])\n\t return false;\n\t }\n\t //equivalent values for every corresponding key, and\n\t //~~~possibly expensive deep test\n\t for (i = ka.length - 1; i >= 0; i--) {\n\t key = ka[i];\n\t if (!deepEqual(a[key], b[key], opts)) return false;\n\t }\n\t return typeof a === typeof b;\n\t}\n\n\n/***/ },\n/* 589 */\n/***/ function(module, exports) {\n\n\tvar supportsArgumentsClass = (function(){\n\t return Object.prototype.toString.call(arguments)\n\t})() == '[object Arguments]';\n\t\n\texports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\t\n\texports.supported = supported;\n\tfunction supported(object) {\n\t return Object.prototype.toString.call(object) == '[object Arguments]';\n\t};\n\t\n\texports.unsupported = unsupported;\n\tfunction unsupported(object){\n\t return object &&\n\t typeof object == 'object' &&\n\t typeof object.length == 'number' &&\n\t Object.prototype.hasOwnProperty.call(object, 'callee') &&\n\t !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n\t false;\n\t};\n\n\n/***/ },\n/* 590 */\n/***/ function(module, exports) {\n\n\texports = module.exports = typeof Object.keys === 'function'\n\t ? Object.keys : shim;\n\t\n\texports.shim = shim;\n\tfunction shim (obj) {\n\t var keys = [];\n\t for (var key in obj) keys.push(key);\n\t return keys;\n\t}\n\n\n/***/ },\n/* 591 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar canUseDOM = __webpack_require__(169);\n\tvar off = function off() {};\n\t\n\tif (canUseDOM) {\n\t\n\t off = (function () {\n\t\n\t if (document.addEventListener) return function (node, eventName, handler, capture) {\n\t return node.removeEventListener(eventName, handler, capture || false);\n\t };else if (document.attachEvent) return function (node, eventName, handler) {\n\t return node.detachEvent('on' + eventName, handler);\n\t };\n\t })();\n\t}\n\t\n\tmodule.exports = off;\n\n/***/ },\n/* 592 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar canUseDOM = __webpack_require__(169);\n\tvar on = function on() {};\n\t\n\tif (canUseDOM) {\n\t on = (function () {\n\t\n\t if (document.addEventListener) return function (node, eventName, handler, capture) {\n\t return node.addEventListener(eventName, handler, capture || false);\n\t };else if (document.attachEvent) return function (node, eventName, handler) {\n\t return node.attachEvent('on' + eventName, handler);\n\t };\n\t })();\n\t}\n\t\n\tmodule.exports = on;\n\n/***/ },\n/* 593 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar getWindow = __webpack_require__(243);\n\t\n\tmodule.exports = function scrollTop(node, val) {\n\t var win = getWindow(node);\n\t\n\t if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n\t\n\t if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n\t};\n\n/***/ },\n/* 594 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar getWindow = __webpack_require__(243);\n\t\n\tmodule.exports = function scrollTop(node, val) {\n\t var win = getWindow(node);\n\t\n\t if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n\t\n\t if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n\t};\n\n/***/ },\n/* 595 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar canUseDOM = __webpack_require__(169);\n\t\n\tvar vendors = ['', 'webkit', 'moz', 'o', 'ms'],\n\t cancel = 'clearTimeout',\n\t raf = fallback,\n\t compatRaf;\n\t\n\tvar getKey = function getKey(vendor, k) {\n\t return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';\n\t};\n\t\n\tif (canUseDOM) {\n\t vendors.some(function (vendor) {\n\t var rafKey = getKey(vendor, 'request');\n\t\n\t if (rafKey in window) {\n\t cancel = getKey(vendor, 'cancel');\n\t return raf = function (cb) {\n\t return window[rafKey](cb);\n\t };\n\t }\n\t });\n\t}\n\t\n\t/* https://github.com/component/raf */\n\tvar prev = new Date().getTime();\n\t\n\tfunction fallback(fn) {\n\t var curr = new Date().getTime(),\n\t ms = Math.max(0, 16 - (curr - prev)),\n\t req = setTimeout(fn, ms);\n\t\n\t prev = curr;\n\t return req;\n\t}\n\t\n\tcompatRaf = function (cb) {\n\t return raf(cb);\n\t};\n\tcompatRaf.cancel = function (id) {\n\t return window[cancel](id);\n\t};\n\t\n\tmodule.exports = compatRaf;\n\n/***/ },\n/* 596 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 597 */\n596,\n/* 598 */\n596,\n/* 599 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"row\":\"Album__row__2o5fb\",\"art\":\"Album__art__1tMui\",\"play\":\"Album__play__2zFWE Songs__play__1O6-p\",\"playNext\":\"Album__playNext__3KXjB Songs__playNext__2v-xp\",\"nameRow\":\"Album__nameRow__12kfS\",\"artRow\":\"Album__artRow__3ouy5\",\"songs\":\"Album__songs__1PPsj Songs__songs__CIaD9\"};\n\n/***/ },\n/* 600 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"name\":\"Artist__name__3mI6y\",\"art\":\"Artist__art__3QV3w\"};\n\n/***/ },\n/* 601 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"noMarginTop\":\"Discover__noMarginTop__2bubk\",\"h2Title\":\"Discover__h2Title__25yU5\",\"caret\":\"Discover__caret__1zwQ4\",\"dashedUnderline\":\"Discover__dashedUnderline__2ePE6\",\"dropdown-menu\":\"Discover__dropdown-menu__o2cZr\"};\n\n/***/ },\n/* 602 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"titleImage\":\"Login__titleImage__33L1L\",\"submit\":\"Login__submit__1BiPC\"};\n\n/***/ },\n/* 603 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"play\":\"Songs__play__1O6-p\",\"playNext\":\"Songs__playNext__2v-xp\",\"songs\":\"Songs__songs__CIaD9\"};\n\n/***/ },\n/* 604 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"filter\":\"FilterBar__filter__2xukG\",\"legend\":\"FilterBar__legend__1wPAA\",\"form-group\":\"FilterBar__form-group__3coaa\"};\n\n/***/ },\n/* 605 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"placeholders\":\"Grid__placeholders__3sosj\",\"name\":\"Grid__name__2qx8M\",\"art\":\"Grid__art__2OMDU\"};\n\n/***/ },\n/* 606 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"nav\":\"Pagination__nav__1sgUO\",\"pointer\":\"Pagination__pointer__27wCb\"};\n\n/***/ },\n/* 607 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"webplayer\":\"WebPlayer__webplayer__22F_4\",\"art\":\"WebPlayer__art__omkHN\",\"artRow\":\"WebPlayer__artRow__9onVV\",\"controls\":\"WebPlayer__controls__we9ux\",\"btn\":\"WebPlayer__btn__1S8Hy\",\"prevBtn\":\"WebPlayer__prevBtn__QTVVR WebPlayer__btn__1S8Hy\",\"playPauseBtn\":\"WebPlayer__playPauseBtn__yN44O WebPlayer__btn__1S8Hy\",\"nextBtn\":\"WebPlayer__nextBtn__2582V WebPlayer__btn__1S8Hy\",\"volumeBtn\":\"WebPlayer__volumeBtn__2OcLS WebPlayer__btn__1S8Hy\",\"repeatBtn\":\"WebPlayer__repeatBtn__w2JIN WebPlayer__btn__1S8Hy\",\"randomBtn\":\"WebPlayer__randomBtn__2NB_N WebPlayer__btn__1S8Hy\",\"playlistBtn\":\"WebPlayer__playlistBtn__3rkYH WebPlayer__btn__1S8Hy\",\"active\":\"WebPlayer__active__3OOYe\"};\n\n/***/ },\n/* 608 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\tmodule.exports = {\"sidebar\":\"Sidebar__sidebar__2XLQ1\",\"collapse\":\"Sidebar__collapse__3-rUF\",\"link\":\"Sidebar__link__1faG5\",\"active\":\"Sidebar__active__3HL57 Sidebar__link__1faG5\",\"title\":\"Sidebar__title__XR8sf\",\"imgTitle\":\"Sidebar__imgTitle__1iVIJ\",\"toggle\":\"Sidebar__toggle__32s05\",\"icon-bar\":\"Sidebar__icon-bar__kStJV\",\"icon-navbar\":\"Sidebar__icon-navbar__1oNVr\",\"container-fluid\":\"Sidebar__container-fluid__3rTUW\",\"nav\":\"Sidebar__nav__13nUO\",\"main-panel\":\"Sidebar__main-panel__3FfOV\",\"nav-list\":\"Sidebar__nav-list__1jNav\"};\n\n/***/ },\n/* 609 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @typechecks\n\t */\n\t\n\tvar _hyphenPattern = /-(.)/g;\n\t\n\t/**\n\t * Camelcases a hyphenated string, for example:\n\t *\n\t * > camelize('background-color')\n\t * < \"backgroundColor\"\n\t *\n\t * @param {string} string\n\t * @return {string}\n\t */\n\tfunction camelize(string) {\n\t return string.replace(_hyphenPattern, function (_, character) {\n\t return character.toUpperCase();\n\t });\n\t}\n\t\n\tmodule.exports = camelize;\n\n/***/ },\n/* 610 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @typechecks\n\t */\n\t\n\t'use strict';\n\t\n\tvar camelize = __webpack_require__(609);\n\t\n\tvar msPattern = /^-ms-/;\n\t\n\t/**\n\t * Camelcases a hyphenated CSS property name, for example:\n\t *\n\t * > camelizeStyleName('background-color')\n\t * < \"backgroundColor\"\n\t * > camelizeStyleName('-moz-transition')\n\t * < \"MozTransition\"\n\t * > camelizeStyleName('-ms-transition')\n\t * < \"msTransition\"\n\t *\n\t * As Andi Smith suggests\n\t * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n\t * is converted to lowercase `ms`.\n\t *\n\t * @param {string} string\n\t * @return {string}\n\t */\n\tfunction camelizeStyleName(string) {\n\t return camelize(string.replace(msPattern, 'ms-'));\n\t}\n\t\n\tmodule.exports = camelizeStyleName;\n\n/***/ },\n/* 611 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * \n\t */\n\t\n\tvar isTextNode = __webpack_require__(619);\n\t\n\t/*eslint-disable no-bitwise */\n\t\n\t/**\n\t * Checks if a given DOM node contains or is another DOM node.\n\t */\n\tfunction containsNode(outerNode, innerNode) {\n\t if (!outerNode || !innerNode) {\n\t return false;\n\t } else if (outerNode === innerNode) {\n\t return true;\n\t } else if (isTextNode(outerNode)) {\n\t return false;\n\t } else if (isTextNode(innerNode)) {\n\t return containsNode(outerNode, innerNode.parentNode);\n\t } else if ('contains' in outerNode) {\n\t return outerNode.contains(innerNode);\n\t } else if (outerNode.compareDocumentPosition) {\n\t return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n\t } else {\n\t return false;\n\t }\n\t}\n\t\n\tmodule.exports = containsNode;\n\n/***/ },\n/* 612 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @typechecks\n\t */\n\t\n\tvar invariant = __webpack_require__(3);\n\t\n\t/**\n\t * Convert array-like objects to arrays.\n\t *\n\t * This API assumes the caller knows the contents of the data type. For less\n\t * well defined inputs use createArrayFromMixed.\n\t *\n\t * @param {object|function|filelist} obj\n\t * @return {array}\n\t */\n\tfunction toArray(obj) {\n\t var length = obj.length;\n\t\n\t // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n\t // in old versions of Safari).\n\t !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? false ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\t\n\t !(typeof length === 'number') ? false ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\t\n\t !(length === 0 || length - 1 in obj) ? false ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\t\n\t !(typeof obj.callee !== 'function') ? false ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\t\n\t // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n\t // without method will throw during the slice call and skip straight to the\n\t // fallback.\n\t if (obj.hasOwnProperty) {\n\t try {\n\t return Array.prototype.slice.call(obj);\n\t } catch (e) {\n\t // IE < 9 does not support Array#slice on collections objects\n\t }\n\t }\n\t\n\t // Fall back to copying key by key. This assumes all keys have a value,\n\t // so will not preserve sparsely populated inputs.\n\t var ret = Array(length);\n\t for (var ii = 0; ii < length; ii++) {\n\t ret[ii] = obj[ii];\n\t }\n\t return ret;\n\t}\n\t\n\t/**\n\t * Perform a heuristic test to determine if an object is \"array-like\".\n\t *\n\t * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n\t * Joshu replied: \"Mu.\"\n\t *\n\t * This function determines if its argument has \"array nature\": it returns\n\t * true if the argument is an actual array, an `arguments' object, or an\n\t * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n\t *\n\t * It will return false for other array-like objects like Filelist.\n\t *\n\t * @param {*} obj\n\t * @return {boolean}\n\t */\n\tfunction hasArrayNature(obj) {\n\t return(\n\t // not null/false\n\t !!obj && (\n\t // arrays are objects, NodeLists are functions in Safari\n\t typeof obj == 'object' || typeof obj == 'function') &&\n\t // quacks like an array\n\t 'length' in obj &&\n\t // not window\n\t !('setInterval' in obj) &&\n\t // no DOM node should be considered an array-like\n\t // a 'select' element has 'length' and 'item' properties on IE8\n\t typeof obj.nodeType != 'number' && (\n\t // a real array\n\t Array.isArray(obj) ||\n\t // arguments\n\t 'callee' in obj ||\n\t // HTMLCollection/NodeList\n\t 'item' in obj)\n\t );\n\t}\n\t\n\t/**\n\t * Ensure that the argument is an array by wrapping it in an array if it is not.\n\t * Creates a copy of the argument if it is already an array.\n\t *\n\t * This is mostly useful idiomatically:\n\t *\n\t * var createArrayFromMixed = require('createArrayFromMixed');\n\t *\n\t * function takesOneOrMoreThings(things) {\n\t * things = createArrayFromMixed(things);\n\t * ...\n\t * }\n\t *\n\t * This allows you to treat `things' as an array, but accept scalars in the API.\n\t *\n\t * If you need to convert an array-like object, like `arguments`, into an array\n\t * use toArray instead.\n\t *\n\t * @param {*} obj\n\t * @return {array}\n\t */\n\tfunction createArrayFromMixed(obj) {\n\t if (!hasArrayNature(obj)) {\n\t return [obj];\n\t } else if (Array.isArray(obj)) {\n\t return obj.slice();\n\t } else {\n\t return toArray(obj);\n\t }\n\t}\n\t\n\tmodule.exports = createArrayFromMixed;\n\n/***/ },\n/* 613 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @typechecks\n\t */\n\t\n\t/*eslint-disable fb-www/unsafe-html*/\n\t\n\tvar ExecutionEnvironment = __webpack_require__(25);\n\t\n\tvar createArrayFromMixed = __webpack_require__(612);\n\tvar getMarkupWrap = __webpack_require__(614);\n\tvar invariant = __webpack_require__(3);\n\t\n\t/**\n\t * Dummy container used to render all markup.\n\t */\n\tvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\t\n\t/**\n\t * Pattern used by `getNodeName`.\n\t */\n\tvar nodeNamePattern = /^\\s*<(\\w+)/;\n\t\n\t/**\n\t * Extracts the `nodeName` of the first element in a string of markup.\n\t *\n\t * @param {string} markup String of markup.\n\t * @return {?string} Node name of the supplied markup.\n\t */\n\tfunction getNodeName(markup) {\n\t var nodeNameMatch = markup.match(nodeNamePattern);\n\t return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n\t}\n\t\n\t/**\n\t * Creates an array containing the nodes rendered from the supplied markup. The\n\t * optionally supplied `handleScript` function will be invoked once for each\n\t * true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/isObjectLike.js\n ** module id = 77\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/**\n * A React component for the font-awesome icon library.\n *\n *\n * @param {Boolean} [border=false] Whether or not to show a border radius\n * @param {String} [className] An extra set of CSS classes to add to the component\n * @param {Boolean} [fixedWidth=false] Make buttons fixed width\n * @param {String} [flip=false] Flip the icon's orientation.\n * @param {Boolean} [inverse=false]Inverse the icon's color\n * @param {String} name Name of the icon to use\n * @param {Boolean} [pulse=false] Rotate icon with 8 steps (rather than smoothly)\n * @param {Number} [rotate] The degress to rotate the icon by\n * @param {String} [size] The icon scaling size\n * @param {Boolean} [spin=false] Spin the icon\n * @param {String} [stack] Stack an icon on top of another\n * @module FontAwesome\n * @type {ReactClass}\n */\nexports.default = _react2.default.createClass({\n\n displayName: 'FontAwesome',\n\n propTypes: {\n border: _react2.default.PropTypes.bool,\n className: _react2.default.PropTypes.string,\n fixedWidth: _react2.default.PropTypes.bool,\n flip: _react2.default.PropTypes.oneOf(['horizontal', 'vertical']),\n inverse: _react2.default.PropTypes.bool,\n name: _react2.default.PropTypes.string.isRequired,\n pulse: _react2.default.PropTypes.bool,\n rotate: _react2.default.PropTypes.oneOf([90, 180, 270]),\n size: _react2.default.PropTypes.oneOf(['lg', '2x', '3x', '4x', '5x']),\n spin: _react2.default.PropTypes.bool,\n stack: _react2.default.PropTypes.oneOf(['1x', '2x'])\n },\n\n render: function render() {\n var _props = this.props;\n var border = _props.border;\n var fixedWidth = _props.fixedWidth;\n var flip = _props.flip;\n var inverse = _props.inverse;\n var name = _props.name;\n var pulse = _props.pulse;\n var rotate = _props.rotate;\n var size = _props.size;\n var spin = _props.spin;\n var stack = _props.stack;\n\n var props = _objectWithoutProperties(_props, ['border', 'fixedWidth', 'flip', 'inverse', 'name', 'pulse', 'rotate', 'size', 'spin', 'stack']);\n\n var className = 'fa fa-' + name;\n\n if (size) {\n className += ' fa-' + size;\n }\n\n if (spin) {\n className += ' fa-spin';\n }\n\n if (pulse) {\n className += ' fa-pulse';\n }\n\n if (border) {\n className += ' fa-border';\n }\n\n if (fixedWidth) {\n className += ' fa-fw';\n }\n\n if (inverse) {\n className += ' fa-inverse';\n }\n\n if (flip) {\n className += ' fa-flip-' + flip;\n }\n\n if (rotate) {\n className += ' fa-rotate-' + rotate;\n }\n\n if (stack) {\n className += ' fa-stack-' + stack;\n }\n\n if (this.props.className) {\n className += ' ' + this.props.className;\n }\n\n return _react2.default.createElement('span', _extends({}, props, {\n className: className\n }));\n }\n});\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-fontawesome/lib/index.js\n ** module id = 78\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.routes = exports.route = exports.components = exports.component = exports.history = undefined;\nexports.falsy = falsy;\n\nvar _react = require('react');\n\nvar func = _react.PropTypes.func;\nvar object = _react.PropTypes.object;\nvar arrayOf = _react.PropTypes.arrayOf;\nvar oneOfType = _react.PropTypes.oneOfType;\nvar element = _react.PropTypes.element;\nvar shape = _react.PropTypes.shape;\nvar string = _react.PropTypes.string;\nfunction falsy(props, propName, componentName) {\n if (props[propName]) return new Error('<' + componentName + '> should not have a \"' + propName + '\" prop');\n}\n\nvar history = exports.history = shape({\n listen: func.isRequired,\n push: func.isRequired,\n replace: func.isRequired,\n go: func.isRequired,\n goBack: func.isRequired,\n goForward: func.isRequired\n});\n\nvar component = exports.component = oneOfType([func, string]);\nvar components = exports.components = oneOfType([component, object]);\nvar route = exports.route = oneOfType([object, element]);\nvar routes = exports.routes = oneOfType([route, arrayOf(route)]);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-router/lib/InternalPropTypes.js\n ** module id = 79\n ** module chunks = 0\n **/","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables')\n , ArrayProto = Array.prototype;\nif(ArrayProto[UNSCOPABLES] == undefined)require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function(key){\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/modules/_add-to-unscopables.js\n ** module id = 80\n ** module chunks = 0\n **/","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/modules/_classof.js\n ** module id = 81\n ** module chunks = 0\n **/","var ctx = require('./_ctx')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , anObject = require('./_an-object')\n , toLength = require('./_to-length')\n , getIterFn = require('./core.get-iterator-method')\n , BREAK = {}\n , RETURN = {};\nvar exports = module.exports = function(iterable, entries, fn, that, ITERATOR){\n var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)\n , f = ctx(fn, that, entries ? 2 : 1)\n , index = 0\n , length, step, iterator, result;\n if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if(result === BREAK || result === RETURN)return result;\n } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){\n result = call(iterator, f, step.value, entries);\n if(result === BREAK || result === RETURN)return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/modules/_for-of.js\n ** module id = 82\n ** module chunks = 0\n **/","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/modules/_set-to-string-tag.js\n ** module id = 83\n ** module chunks = 0\n **/","var $export = require('./_export')\n , defined = require('./_defined')\n , fails = require('./_fails')\n , spaces = require('./_string-ws')\n , space = '[' + spaces + ']'\n , non = '\\u200b\\u0085'\n , ltrim = RegExp('^' + space + space + '*')\n , rtrim = RegExp(space + space + '*$');\n\nvar exporter = function(KEY, exec, ALIAS){\n var exp = {};\n var FORCE = fails(function(){\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if(ALIAS)exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function(string, TYPE){\n string = String(defined(string));\n if(TYPE & 1)string = string.replace(ltrim, '');\n if(TYPE & 2)string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/core-js/modules/_string-trim.js\n ** module id = 84\n ** module chunks = 0\n **/","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash/_getNative.js\n ** module id = 85\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compilePattern = compilePattern;\nexports.matchPattern = matchPattern;\nexports.getParamNames = getParamNames;\nexports.getParams = getParams;\nexports.formatPattern = formatPattern;\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction _compilePattern(pattern) {\n var regexpSource = '';\n var paramNames = [];\n var tokens = [];\n\n var match = void 0,\n lastIndex = 0,\n matcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|\\*\\*|\\*|\\(|\\)/g;\n while (match = matcher.exec(pattern)) {\n if (match.index !== lastIndex) {\n tokens.push(pattern.slice(lastIndex, match.index));\n regexpSource += escapeRegExp(pattern.slice(lastIndex, match.index));\n }\n\n if (match[1]) {\n regexpSource += '([^/]+)';\n paramNames.push(match[1]);\n } else if (match[0] === '**') {\n regexpSource += '(.*)';\n paramNames.push('splat');\n } else if (match[0] === '*') {\n regexpSource += '(.*?)';\n paramNames.push('splat');\n } else if (match[0] === '(') {\n regexpSource += '(?:';\n } else if (match[0] === ')') {\n regexpSource += ')?';\n }\n\n tokens.push(match[0]);\n\n lastIndex = matcher.lastIndex;\n }\n\n if (lastIndex !== pattern.length) {\n tokens.push(pattern.slice(lastIndex, pattern.length));\n regexpSource += escapeRegExp(pattern.slice(lastIndex, pattern.length));\n }\n\n return {\n pattern: pattern,\n regexpSource: regexpSource,\n paramNames: paramNames,\n tokens: tokens\n };\n}\n\nvar CompiledPatternsCache = Object.create(null);\n\nfunction compilePattern(pattern) {\n if (!CompiledPatternsCache[pattern]) CompiledPatternsCache[pattern] = _compilePattern(pattern);\n\n return CompiledPatternsCache[pattern];\n}\n\n/**\n * Attempts to match a pattern on the given pathname. Patterns may use\n * the following special characters:\n *\n * - :paramName Matches a URL segment up to the next /, ?, or #. The\n * captured string is considered a \"param\"\n * - () Wraps a segment of the URL that is optional\n * - * Consumes (non-greedy) all characters up to the next\n * character in the pattern, or to the end of the URL if\n * there is none\n * - ** Consumes (greedy) all characters up to the next character\n * in the pattern, or to the end of the URL if there is none\n *\n * The function calls callback(error, matched) when finished.\n * The return value is an object with the following properties:\n *\n * - remainingPathname\n * - paramNames\n * - paramValues\n */\nfunction matchPattern(pattern, pathname) {\n // Ensure pattern starts with leading slash for consistency with pathname.\n if (pattern.charAt(0) !== '/') {\n pattern = '/' + pattern;\n }\n\n var _compilePattern2 = compilePattern(pattern);\n\n var regexpSource = _compilePattern2.regexpSource;\n var paramNames = _compilePattern2.paramNames;\n var tokens = _compilePattern2.tokens;\n\n\n if (pattern.charAt(pattern.length - 1) !== '/') {\n regexpSource += '/?'; // Allow optional path separator at end.\n }\n\n // Special-case patterns like '*' for catch-all routes.\n if (tokens[tokens.length - 1] === '*') {\n regexpSource += '$';\n }\n\n var match = pathname.match(new RegExp('^' + regexpSource, 'i'));\n if (match == null) {\n return null;\n }\n\n var matchedPath = match[0];\n var remainingPathname = pathname.substr(matchedPath.length);\n\n if (remainingPathname) {\n // Require that the match ends at a path separator, if we didn't match\n // the full path, so any remaining pathname is a new path segment.\n if (matchedPath.charAt(matchedPath.length - 1) !== '/') {\n return null;\n }\n\n // If there is a remaining pathname, treat the path separator as part of\n // the remaining pathname for properly continuing the match.\n remainingPathname = '/' + remainingPathname;\n }\n\n return {\n remainingPathname: remainingPathname,\n paramNames: paramNames,\n paramValues: match.slice(1).map(function (v) {\n return v && decodeURIComponent(v);\n })\n };\n}\n\nfunction getParamNames(pattern) {\n return compilePattern(pattern).paramNames;\n}\n\nfunction getParams(pattern, pathname) {\n var match = matchPattern(pattern, pathname);\n if (!match) {\n return null;\n }\n\n var paramNames = match.paramNames;\n var paramValues = match.paramValues;\n\n var params = {};\n\n paramNames.forEach(function (paramName, index) {\n params[paramName] = paramValues[index];\n });\n\n return params;\n}\n\n/**\n * Returns a version of the given pattern with params interpolated. Throws\n * if there is a dynamic segment of the pattern for which there is no param.\n */\nfunction formatPattern(pattern, params) {\n params = params || {};\n\n var _compilePattern3 = compilePattern(pattern);\n\n var tokens = _compilePattern3.tokens;\n\n var parenCount = 0,\n pathname = '',\n splatIndex = 0;\n\n var token = void 0,\n paramName = void 0,\n paramValue = void 0;\n for (var i = 0, len = tokens.length; i < len; ++i) {\n token = tokens[i];\n\n if (token === '*' || token === '**') {\n paramValue = Array.isArray(params.splat) ? params.splat[splatIndex++] : params.splat;\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Missing splat #%s for path \"%s\"', splatIndex, pattern) : (0, _invariant2.default)(false) : void 0;\n\n if (paramValue != null) pathname += encodeURI(paramValue);\n } else if (token === '(') {\n parenCount += 1;\n } else if (token === ')') {\n parenCount -= 1;\n } else if (token.charAt(0) === ':') {\n paramName = token.substring(1);\n paramValue = params[paramName];\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Missing \"%s\" parameter for path \"%s\"', paramName, pattern) : (0, _invariant2.default)(false) : void 0;\n\n if (paramValue != null) pathname += encodeURIComponent(paramValue);\n } else {\n pathname += token;\n }\n }\n\n return pathname.replace(/\\/+/g, '/');\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-router/lib/PatternUtils.js\n ** module id = 86\n ** module chunks = 0\n **/","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMLazyTree\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some