From 9b20c949572c5b1d8787956c4d7c05bc3898bc31 Mon Sep 17 00:00:00 2001 From: Tyler Thompson Date: Tue, 27 Sep 2016 20:57:31 -0700 Subject: [PATCH] 10.0.0 --- dist/redux-little-router.js | 1000 +++++++++++++++------------ dist/redux-little-router.js.map | 2 +- dist/redux-little-router.min.js | 4 +- dist/redux-little-router.min.js.map | 2 +- package.json | 2 +- 5 files changed, 561 insertions(+), 449 deletions(-) diff --git a/dist/redux-little-router.js b/dist/redux-little-router.js index b6dabc6f..5854381b 100644 --- a/dist/redux-little-router.js +++ b/dist/redux-little-router.js @@ -7,7 +7,7 @@ exports["ReduxLittleRouter"] = factory(require("react")); else root["ReduxLittleRouter"] = factory(root["React"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_32__) { +})(this, function(__WEBPACK_EXTERNAL_MODULE_37__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -59,35 +59,47 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - exports.createMatcher = exports.locationDidChange = exports.routerReducer = exports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.RelativeFragment = exports.AbsoluteFragment = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.RouterProvider = exports.provideRouter = exports.initializeCurrentLocation = exports.createStoreWithRouter = undefined; + exports.createMatcher = exports.locationDidChange = exports.createStoreWithRouter = exports.routerReducer = exports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.RelativeFragment = exports.AbsoluteFragment = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.RouterProvider = exports.provideRouter = exports.initializeCurrentLocation = exports.routerForExpress = exports.routerForBrowser = undefined; - var _storeEnhancer = __webpack_require__(1); + var _browserRouter = __webpack_require__(1); + + var _browserRouter2 = _interopRequireDefault(_browserRouter); + + var _expressRouter = __webpack_require__(34); + + var _expressRouter2 = _interopRequireDefault(_expressRouter); + + var _storeEnhancer = __webpack_require__(22); var _storeEnhancer2 = _interopRequireDefault(_storeEnhancer); - var _provider = __webpack_require__(31); + var _actionCreators = __webpack_require__(29); + + var _provider = __webpack_require__(36); var _provider2 = _interopRequireDefault(_provider); - var _link = __webpack_require__(56); + var _link = __webpack_require__(61); - var _fragment = __webpack_require__(57); + var _fragment = __webpack_require__(62); var _reducer = __webpack_require__(27); var _reducer2 = _interopRequireDefault(_reducer); - var _createMatcher = __webpack_require__(24); + var _createMatcher = __webpack_require__(23); var _createMatcher2 = _interopRequireDefault(_createMatcher); - var _actionTypes = __webpack_require__(23); + var _actionTypes = __webpack_require__(28); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Fragment = _fragment.AbsoluteFragment; - exports.createStoreWithRouter = _storeEnhancer2.default; - exports.initializeCurrentLocation = _storeEnhancer.initializeCurrentLocation; + + exports.routerForBrowser = _browserRouter2.default; + exports.routerForExpress = _expressRouter2.default; + exports.initializeCurrentLocation = _actionCreators.initializeCurrentLocation; exports.provideRouter = _provider2.default; exports.RouterProvider = _provider.RouterProvider; exports.Link = _link.Link; @@ -102,7 +114,8 @@ return /******/ (function(modules) { // webpackBootstrap exports.GO_FORWARD = _actionTypes.GO_FORWARD; exports.GO_BACK = _actionTypes.GO_BACK; exports.routerReducer = _reducer2.default; - exports.locationDidChange = _storeEnhancer.locationDidChange; + exports.createStoreWithRouter = _storeEnhancer2.default; + exports.locationDidChange = _actionCreators.locationDidChange; exports.createMatcher = _createMatcher2.default; /***/ }, @@ -114,187 +127,48 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - exports.initializeCurrentLocation = exports.locationDidChange = undefined; - - var _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; }; var _createBrowserHistory = __webpack_require__(2); var _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory); - var _createMemoryHistory = __webpack_require__(17); - - var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory); - - var _useBasename = __webpack_require__(18); + var _useBasename = __webpack_require__(17); var _useBasename2 = _interopRequireDefault(_useBasename); - var _useQueries = __webpack_require__(19); + var _useQueries = __webpack_require__(18); var _useQueries2 = _interopRequireDefault(_useQueries); - var _actionTypes = __webpack_require__(23); + var _storeEnhancer = __webpack_require__(22); - var _createMatcher = __webpack_require__(24); - - var _createMatcher2 = _interopRequireDefault(_createMatcher); - - var _reducer = __webpack_require__(27); - - var _reducer2 = _interopRequireDefault(_reducer); - - var _flattenRoutes = __webpack_require__(28); - - var _flattenRoutes2 = _interopRequireDefault(_flattenRoutes); - - var _initialRouterState = __webpack_require__(30); - - var _initialRouterState2 = _interopRequireDefault(_initialRouterState); + var _storeEnhancer2 = _interopRequireDefault(_storeEnhancer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - var README_MESSAGE = '\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n'; - - var locationDidChange = exports.locationDidChange = function locationDidChange(_ref) { - var location = _ref.location; - var matchRoute = _ref.matchRoute; - - // Extract the pathname so that we don't match against the basename. - // This avoids requiring basename-hardcoded routes. - var pathname = location.pathname; - - - return { - type: _actionTypes.LOCATION_CHANGED, - payload: _extends({}, location, matchRoute(pathname)) - }; - }; - - var initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) { - return { - type: _actionTypes.LOCATION_CHANGED, - payload: location - }; + /* istanbul ignore next: unstubbable! */ + var realLocation = function realLocation() { + return window.location; }; - var resolveHistory = function resolveHistory(_ref2) { - var basename = _ref2.basename; - var forServerRender = _ref2.forServerRender; - - var historyFactory = forServerRender ? _createMemoryHistory2.default : _createBrowserHistory2.default; + exports.default = function (_ref) { + var routes = _ref.routes; + var basename = _ref.basename; + var _ref$getLocation = _ref.getLocation; + var getLocation = _ref$getLocation === undefined ? realLocation : _ref$getLocation; - return (0, _useBasename2.default)((0, _useQueries2.default)(historyFactory))({ + var history = (0, _useBasename2.default)((0, _useQueries2.default)(_createBrowserHistory2.default))({ basename: basename }); - }; - - exports.default = function (_ref3) { - var nestedRoutes = _ref3.routes; - var pathname = _ref3.pathname; - var query = _ref3.query; - var _ref3$basename = _ref3.basename; - var basename = _ref3$basename === undefined ? '' : _ref3$basename; - var _ref3$forServerRender = _ref3.forServerRender; - var forServerRender = _ref3$forServerRender === undefined ? false : _ref3$forServerRender; - var _ref3$createMatcher = _ref3.createMatcher; - var createMatcher = _ref3$createMatcher === undefined ? _createMatcher2.default : _ref3$createMatcher; - var userHistory = _ref3.history; - - if (!nestedRoutes) { - throw Error('\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ' + README_MESSAGE + '\n '); - } - - // eslint-disable-next-line no-magic-numbers - if (!Object.keys(nestedRoutes).every(function (route) { - return route.indexOf('/') === 0; - })) { - throw Error('\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ' + README_MESSAGE + '\n '); - } - - var routes = (0, _flattenRoutes2.default)(nestedRoutes); - - var history = userHistory || resolveHistory({ - basename: basename, forServerRender: forServerRender - }); - - return function (createStore) { - return function (reducer, initialState, enhancer) { - var enhancedReducer = function enhancedReducer(state, action) { - var vanillaState = _extends({}, state); - delete vanillaState.router; - - var newState = reducer(vanillaState, action); - - // Support redux-loop - if (Array.isArray(newState)) { - var nextState = newState[0]; // eslint-disable-line no-magic-numbers - var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers - return [_extends({}, nextState, { - router: (0, _reducer2.default)(state && state.router, action) - }), nextEffects]; - } - - return _extends({}, newState, { - router: (0, _reducer2.default)(state && state.router, action) - }); - }; - - var store = createStore(enhancedReducer, pathname || query ? _extends({}, initialState, { - router: (0, _initialRouterState2.default)({ - pathname: pathname, query: query || {}, routes: routes, history: history - }) - }) : initialState, enhancer); - - var matchRoute = createMatcher(routes); - var matchWildcardRoute = createMatcher(routes, true); - history.listen(function (location) { - if (location) { - store.dispatch(locationDidChange({ - location: location, matchRoute: matchRoute - })); - } - }); + var _getLocation = getLocation(); - var dispatch = function dispatch(action) { - switch (action.type) { - case _actionTypes.PUSH: - history.push(action.payload); - return null; - case _actionTypes.REPLACE: - history.replace(action.payload); - return null; - case _actionTypes.GO: - history.go(action.payload); - return null; - case _actionTypes.GO_BACK: - history.goBack(); - return null; - case _actionTypes.GO_FORWARD: - history.goForward(); - return null; - default: - // We return the result of dispatch here - // to retain compatibility with enhancers - // that return a promise from dispatch. - return store.dispatch(action); - } - }; - - return _extends({}, store, { - dispatch: dispatch, + var pathname = _getLocation.pathname; + var search = _getLocation.search; - // We attach routes here to allow - // to access unserializable properties of route results. - routes: routes, + var location = history.createLocation({ pathname: pathname, search: search }); - history: history, - matchRoute: matchRoute, - matchWildcardRoute: matchWildcardRoute - }); - }; - }; + return (0, _storeEnhancer2.default)({ routes: routes, history: history, location: location }); }; /***/ }, @@ -1497,152 +1371,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 17 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; }; - - var _warning = __webpack_require__(9); - - var _warning2 = _interopRequireDefault(_warning); - - var _invariant = __webpack_require__(4); - - var _invariant2 = _interopRequireDefault(_invariant); - - var _LocationUtils = __webpack_require__(7); - - var _PathUtils = __webpack_require__(8); - - var _createHistory = __webpack_require__(14); - - var _createHistory2 = _interopRequireDefault(_createHistory); - - var _Actions = __webpack_require__(10); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var createStateStorage = function createStateStorage(entries) { - return entries.filter(function (entry) { - return entry.state; - }).reduce(function (memo, entry) { - memo[entry.key] = entry.state; - return memo; - }, {}); - }; - - var createMemoryHistory = function createMemoryHistory() { - var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - - if (Array.isArray(options)) { - options = { entries: options }; - } else if (typeof options === 'string') { - options = { entries: [options] }; - } - - var getCurrentLocation = function getCurrentLocation() { - var entry = entries[current]; - var path = (0, _PathUtils.createPath)(entry); - - var key = void 0, - state = void 0; - if (entry.key) { - key = entry.key; - state = readState(key); - } - - var init = (0, _PathUtils.parsePath)(path); - - return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key); - }; - - var canGo = function canGo(n) { - var index = current + n; - return index >= 0 && index < entries.length; - }; - - var go = function go(n) { - if (!n) return; - - if (!canGo(n)) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0; - - return; - } - - current += n; - var currentLocation = getCurrentLocation(); - - // Change action to POP - history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP })); - }; - - var pushLocation = function pushLocation(location) { - current += 1; - - if (current < entries.length) entries.splice(current); - - entries.push(location); - - saveState(location.key, location.state); - }; - - var replaceLocation = function replaceLocation(location) { - entries[current] = location; - saveState(location.key, location.state); - }; - - var history = (0, _createHistory2.default)(_extends({}, options, { - getCurrentLocation: getCurrentLocation, - pushLocation: pushLocation, - replaceLocation: replaceLocation, - go: go - })); - - var _options = options; - var entries = _options.entries; - var current = _options.current; - - - if (typeof entries === 'string') { - entries = [entries]; - } else if (!Array.isArray(entries)) { - entries = ['/']; - } - - entries = entries.map(function (entry) { - return (0, _LocationUtils.createLocation)(entry); - }); - - if (current == null) { - current = entries.length - 1; - } else { - !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0; - } - - var storage = createStateStorage(entries); - - var saveState = function saveState(key, state) { - return storage[key] = state; - }; - - var readState = function readState(key) { - return storage[key]; - }; - - return history; - }; - - exports.default = createMemoryHistory; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) - -/***/ }, -/* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1758,7 +1486,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = useBasename; /***/ }, -/* 19 */ +/* 18 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1769,7 +1497,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _queryString = __webpack_require__(20); + var _queryString = __webpack_require__(19); var _runTransitionHook = __webpack_require__(16); @@ -1886,12 +1614,12 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = useQueries; /***/ }, -/* 20 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var strictUriEncode = __webpack_require__(21); - var objectAssign = __webpack_require__(22); + var strictUriEncode = __webpack_require__(20); + var objectAssign = __webpack_require__(21); function encode(value, opts) { if (opts.encode) { @@ -1990,7 +1718,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 21 */ +/* 20 */ /***/ function(module, exports) { 'use strict'; @@ -2002,7 +1730,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 22 */ +/* 21 */ /***/ function(module, exports) { 'use strict'; @@ -2091,23 +1819,92 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 23 */ -/***/ function(module, exports) { +/* 22 */ +/***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); - var LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED'; - var PUSH = exports.PUSH = 'ROUTER_PUSH'; - var REPLACE = exports.REPLACE = 'ROUTER_REPLACE'; - var GO = exports.GO = 'ROUTER_GO'; - var GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK'; - var GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD'; + + var _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; }; + + var _createMatcher = __webpack_require__(23); + + var _createMatcher2 = _interopRequireDefault(_createMatcher); + + var _reducerEnhancer = __webpack_require__(26); + + var _reducerEnhancer2 = _interopRequireDefault(_reducerEnhancer); + + var _actionCreators = __webpack_require__(29); + + var _wrapDispatch = __webpack_require__(30); + + var _wrapDispatch2 = _interopRequireDefault(_wrapDispatch); + + var _validateRoutes = __webpack_require__(31); + + var _validateRoutes2 = _interopRequireDefault(_validateRoutes); + + var _flattenRoutes = __webpack_require__(32); + + var _flattenRoutes2 = _interopRequireDefault(_flattenRoutes); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (_ref) { + var nestedRoutes = _ref.routes; + var history = _ref.history; + var location = _ref.location; + var _ref$createMatcher = _ref.createMatcher; + var createMatcher = _ref$createMatcher === undefined ? _createMatcher2.default : _ref$createMatcher; + + (0, _validateRoutes2.default)(nestedRoutes); + var routes = (0, _flattenRoutes2.default)(nestedRoutes); + + return function (createStore) { + return function (reducer, initialState, enhancer) { + var enhancedReducer = (0, _reducerEnhancer2.default)(reducer); + + var matchRoute = createMatcher(routes); + var matchWildcardRoute = createMatcher(routes, true); + + var initialStateWithRouter = _extends({}, initialState, { + router: _extends({}, location, matchRoute(location.pathname)) + }); + + var store = createStore(enhancedReducer, initialStateWithRouter, enhancer); + + history.listen(function (newLocation) { + /* istanbul ignore else */ + if (newLocation) { + store.dispatch((0, _actionCreators.locationDidChange)({ + location: newLocation, matchRoute: matchRoute + })); + } + }); + + var dispatch = (0, _wrapDispatch2.default)(store, history); + + return _extends({}, store, { + dispatch: dispatch, + + // We attach routes here to allow + // to access unserializable properties of route results. + routes: routes, + + history: history, + matchRoute: matchRoute, + matchWildcardRoute: matchWildcardRoute + }); + }; + }; + }; /***/ }, -/* 24 */ +/* 23 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2116,7 +1913,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _urlPattern = __webpack_require__(25); + var _urlPattern = __webpack_require__(24); var _urlPattern2 = _interopRequireDefault(_urlPattern); @@ -2203,14 +2000,14 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 25 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0 var slice = [].slice; (function(root, factory) { - if (('function' === "function") && (__webpack_require__(26) != null)) { + if (('function' === "function") && (__webpack_require__(25) != null)) { return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if (typeof exports !== "undefined" && exports !== null) { return module.exports = factory(); @@ -2645,13 +2442,53 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 26 */ +/* 25 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; /* WEBPACK VAR INJECTION */}.call(exports, {})) +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _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; }; + + var _reducer = __webpack_require__(27); + + var _reducer2 = _interopRequireDefault(_reducer); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (vanillaReducer) { + return function (state, action) { + var vanillaState = _extends({}, state); + delete vanillaState.router; + + var newState = vanillaReducer(vanillaState, action); + + // Support redux-loop + if (Array.isArray(newState)) { + var nextState = newState[0]; // eslint-disable-line no-magic-numbers + var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers + return [_extends({}, nextState, { + router: (0, _reducer2.default)(state && state.router, action) + }), nextEffects]; + } + + return _extends({}, newState, { + router: (0, _reducer2.default)(state && state.router, action) + }); + }; + }; + /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { @@ -2662,41 +2499,157 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _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; }; - - var _actionTypes = __webpack_require__(23); - - function _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; } - - exports.default = function () { - var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - var action = arguments[1]; - - if (action.type === _actionTypes.LOCATION_CHANGED) { - // No-op the initial route action - if (state && state.pathname === action.payload.pathname) { - return state; - } - - // Extract the previous state, but dump the - // previous state's previous state so that the - // state tree doesn't keep growing indefinitely - if (state) { - // eslint-disable-next-line no-unused-vars - var previous = state.previous; - - var oldState = _objectWithoutProperties(state, ['previous']); + var _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; }; + + var _actionTypes = __webpack_require__(28); + + function _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; } + + exports.default = function () { + var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var action = arguments[1]; + + if (action.type === _actionTypes.LOCATION_CHANGED) { + // No-op the initial route action + if (state && state.pathname === action.payload.pathname && state.search === action.payload.search) { + return state; + } + + // Extract the previous state, but dump the + // previous state's previous state so that the + // state tree doesn't keep growing indefinitely + if (state) { + // eslint-disable-next-line no-unused-vars + var previous = state.previous; + + var oldState = _objectWithoutProperties(state, ['previous']); + + return _extends({}, action.payload, { + previous: oldState + }); + } + } + return state; + }; + +/***/ }, +/* 28 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + var LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED'; + var PUSH = exports.PUSH = 'ROUTER_PUSH'; + var REPLACE = exports.REPLACE = 'ROUTER_REPLACE'; + var GO = exports.GO = 'ROUTER_GO'; + var GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK'; + var GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD'; + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.initializeCurrentLocation = exports.locationDidChange = undefined; + + var _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; }; + + var _actionTypes = __webpack_require__(28); + + var locationDidChange = exports.locationDidChange = function locationDidChange(_ref) { + var location = _ref.location; + var matchRoute = _ref.matchRoute; + + // Extract the pathname so that we don't match against the basename. + // This avoids requiring basename-hardcoded routes. + var pathname = location.pathname; + + + return { + type: _actionTypes.LOCATION_CHANGED, + payload: _extends({}, location, matchRoute(pathname)) + }; + }; + + var initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) { + return { + type: _actionTypes.LOCATION_CHANGED, + payload: location + }; + }; + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _actionTypes = __webpack_require__(28); + + exports.default = function (store, history) { + return function (action) { + switch (action.type) { + case _actionTypes.PUSH: + history.push(action.payload); + return null; + case _actionTypes.REPLACE: + history.replace(action.payload); + return null; + case _actionTypes.GO: + history.go(action.payload); + return null; + case _actionTypes.GO_BACK: + history.goBack(); + return null; + case _actionTypes.GO_FORWARD: + history.goForward(); + return null; + default: + // We return the result of dispatch here + // to retain compatibility with enhancers + // that return a promise from dispatch. + return store.dispatch(action); + } + }; + }; + +/***/ }, +/* 31 */ +/***/ function(module, exports) { + + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + var README_MESSAGE = '\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n'; + + exports.default = function (routes) { + if (!routes) { + throw Error('\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ' + README_MESSAGE + '\n '); + } - return _extends({}, action.payload, { - previous: oldState - }); - } + // eslint-disable-next-line no-magic-numbers + if (!Object.keys(routes).every(function (route) { + return route.indexOf('/') === 0; + })) { + throw Error('\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ' + README_MESSAGE + '\n '); } - return state; }; /***/ }, -/* 28 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2707,7 +2660,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _lodash = __webpack_require__(29); + var _lodash = __webpack_require__(33); var _lodash2 = _interopRequireDefault(_lodash); @@ -2765,7 +2718,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = flattenRoutes; /***/ }, -/* 29 */ +/* 33 */ /***/ function(module, exports) { /** @@ -3408,7 +3361,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 30 */ +/* 34 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3417,29 +3370,188 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _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; }; + var _createMemoryHistory = __webpack_require__(35); - var _createMatcher = __webpack_require__(24); + var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory); - var _createMatcher2 = _interopRequireDefault(_createMatcher); + var _useBasename = __webpack_require__(17); + + var _useBasename2 = _interopRequireDefault(_useBasename); + + var _useQueries = __webpack_require__(18); + + var _useQueries2 = _interopRequireDefault(_useQueries); + + var _storeEnhancer = __webpack_require__(22); + + var _storeEnhancer2 = _interopRequireDefault(_storeEnhancer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (_ref) { - var _ref$pathname = _ref.pathname; - var pathname = _ref$pathname === undefined ? '/' : _ref$pathname; - var _ref$query = _ref.query; - var query = _ref$query === undefined ? {} : _ref$query; var routes = _ref.routes; - var history = _ref.history; - return _extends({}, history.createLocation({ - pathname: pathname, - query: query - }), (0, _createMatcher2.default)(routes)(pathname)); + var request = _ref.request; + + var history = (0, _useBasename2.default)((0, _useQueries2.default)(_createMemoryHistory2.default))({ + basename: request.baseUrl + }); + + var location = history.createLocation({ + pathname: request.path, + query: request.query + }); + + return (0, _storeEnhancer2.default)({ routes: routes, history: history, location: location }); }; /***/ }, -/* 31 */ +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + + var _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; }; + + var _warning = __webpack_require__(9); + + var _warning2 = _interopRequireDefault(_warning); + + var _invariant = __webpack_require__(4); + + var _invariant2 = _interopRequireDefault(_invariant); + + var _LocationUtils = __webpack_require__(7); + + var _PathUtils = __webpack_require__(8); + + var _createHistory = __webpack_require__(14); + + var _createHistory2 = _interopRequireDefault(_createHistory); + + var _Actions = __webpack_require__(10); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var createStateStorage = function createStateStorage(entries) { + return entries.filter(function (entry) { + return entry.state; + }).reduce(function (memo, entry) { + memo[entry.key] = entry.state; + return memo; + }, {}); + }; + + var createMemoryHistory = function createMemoryHistory() { + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + if (Array.isArray(options)) { + options = { entries: options }; + } else if (typeof options === 'string') { + options = { entries: [options] }; + } + + var getCurrentLocation = function getCurrentLocation() { + var entry = entries[current]; + var path = (0, _PathUtils.createPath)(entry); + + var key = void 0, + state = void 0; + if (entry.key) { + key = entry.key; + state = readState(key); + } + + var init = (0, _PathUtils.parsePath)(path); + + return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key); + }; + + var canGo = function canGo(n) { + var index = current + n; + return index >= 0 && index < entries.length; + }; + + var go = function go(n) { + if (!n) return; + + if (!canGo(n)) { + process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0; + + return; + } + + current += n; + var currentLocation = getCurrentLocation(); + + // Change action to POP + history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP })); + }; + + var pushLocation = function pushLocation(location) { + current += 1; + + if (current < entries.length) entries.splice(current); + + entries.push(location); + + saveState(location.key, location.state); + }; + + var replaceLocation = function replaceLocation(location) { + entries[current] = location; + saveState(location.key, location.state); + }; + + var history = (0, _createHistory2.default)(_extends({}, options, { + getCurrentLocation: getCurrentLocation, + pushLocation: pushLocation, + replaceLocation: replaceLocation, + go: go + })); + + var _options = options; + var entries = _options.entries; + var current = _options.current; + + + if (typeof entries === 'string') { + entries = [entries]; + } else if (!Array.isArray(entries)) { + entries = ['/']; + } + + entries = entries.map(function (entry) { + return (0, _LocationUtils.createLocation)(entry); + }); + + if (current == null) { + current = entries.length - 1; + } else { + !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0; + } + + var storage = createStateStorage(entries); + + var saveState = function saveState(key, state) { + return storage[key] = state; + }; + + var readState = function readState(key) { + return storage[key]; + }; + + return history; + }; + + exports.default = createMemoryHistory; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + +/***/ }, +/* 36 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3453,11 +3565,11 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; }(); - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); var _react2 = _interopRequireDefault(_react); - var _reactRedux = __webpack_require__(33); + var _reactRedux = __webpack_require__(38); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3535,13 +3647,13 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 32 */ +/* 37 */ /***/ function(module, exports) { - module.exports = __WEBPACK_EXTERNAL_MODULE_32__; + module.exports = __WEBPACK_EXTERNAL_MODULE_37__; /***/ }, -/* 33 */ +/* 38 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3549,11 +3661,11 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports.connect = exports.Provider = undefined; - var _Provider = __webpack_require__(34); + var _Provider = __webpack_require__(39); var _Provider2 = _interopRequireDefault(_Provider); - var _connect = __webpack_require__(37); + var _connect = __webpack_require__(42); var _connect2 = _interopRequireDefault(_connect); @@ -3563,7 +3675,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.connect = _connect2["default"]; /***/ }, -/* 34 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -3571,13 +3683,13 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports["default"] = undefined; - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); - var _storeShape = __webpack_require__(35); + var _storeShape = __webpack_require__(40); var _storeShape2 = _interopRequireDefault(_storeShape); - var _warning = __webpack_require__(36); + var _warning = __webpack_require__(41); var _warning2 = _interopRequireDefault(_warning); @@ -3647,14 +3759,14 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 35 */ +/* 40 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); exports["default"] = _react.PropTypes.shape({ subscribe: _react.PropTypes.func.isRequired, @@ -3663,7 +3775,7 @@ return /******/ (function(modules) { // webpackBootstrap }); /***/ }, -/* 36 */ +/* 41 */ /***/ function(module, exports) { 'use strict'; @@ -3692,7 +3804,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 37 */ +/* 42 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -3702,29 +3814,29 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports["default"] = connect; - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); - var _storeShape = __webpack_require__(35); + var _storeShape = __webpack_require__(40); var _storeShape2 = _interopRequireDefault(_storeShape); - var _shallowEqual = __webpack_require__(38); + var _shallowEqual = __webpack_require__(43); var _shallowEqual2 = _interopRequireDefault(_shallowEqual); - var _wrapActionCreators = __webpack_require__(39); + var _wrapActionCreators = __webpack_require__(44); var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators); - var _warning = __webpack_require__(36); + var _warning = __webpack_require__(41); var _warning2 = _interopRequireDefault(_warning); - var _isPlainObject = __webpack_require__(42); + var _isPlainObject = __webpack_require__(47); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _hoistNonReactStatics = __webpack_require__(55); + var _hoistNonReactStatics = __webpack_require__(60); var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); @@ -4091,7 +4203,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 38 */ +/* 43 */ /***/ function(module, exports) { "use strict"; @@ -4122,7 +4234,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 39 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -4130,7 +4242,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports["default"] = wrapActionCreators; - var _redux = __webpack_require__(40); + var _redux = __webpack_require__(45); function wrapActionCreators(actionCreators) { return function (dispatch) { @@ -4139,7 +4251,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 40 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -4147,27 +4259,27 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined; - var _createStore = __webpack_require__(41); + var _createStore = __webpack_require__(46); var _createStore2 = _interopRequireDefault(_createStore); - var _combineReducers = __webpack_require__(50); + var _combineReducers = __webpack_require__(55); var _combineReducers2 = _interopRequireDefault(_combineReducers); - var _bindActionCreators = __webpack_require__(52); + var _bindActionCreators = __webpack_require__(57); var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators); - var _applyMiddleware = __webpack_require__(53); + var _applyMiddleware = __webpack_require__(58); var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware); - var _compose = __webpack_require__(54); + var _compose = __webpack_require__(59); var _compose2 = _interopRequireDefault(_compose); - var _warning = __webpack_require__(51); + var _warning = __webpack_require__(56); var _warning2 = _interopRequireDefault(_warning); @@ -4191,7 +4303,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 41 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -4200,11 +4312,11 @@ return /******/ (function(modules) { // webpackBootstrap exports.ActionTypes = undefined; exports['default'] = createStore; - var _isPlainObject = __webpack_require__(42); + var _isPlainObject = __webpack_require__(47); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _symbolObservable = __webpack_require__(47); + var _symbolObservable = __webpack_require__(52); var _symbolObservable2 = _interopRequireDefault(_symbolObservable); @@ -4457,12 +4569,12 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 42 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { - var getPrototype = __webpack_require__(43), - isHostObject = __webpack_require__(45), - isObjectLike = __webpack_require__(46); + var getPrototype = __webpack_require__(48), + isHostObject = __webpack_require__(50), + isObjectLike = __webpack_require__(51); /** `Object#toString` result references. */ var objectTag = '[object Object]'; @@ -4533,10 +4645,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 43 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { - var overArg = __webpack_require__(44); + var overArg = __webpack_require__(49); /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); @@ -4545,7 +4657,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 44 */ +/* 49 */ /***/ function(module, exports) { /** @@ -4566,7 +4678,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 45 */ +/* 50 */ /***/ function(module, exports) { /** @@ -4592,7 +4704,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 46 */ +/* 51 */ /***/ function(module, exports) { /** @@ -4627,14 +4739,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 47 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(48); + module.exports = __webpack_require__(53); /***/ }, -/* 48 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {'use strict'; @@ -4643,7 +4755,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _ponyfill = __webpack_require__(49); + var _ponyfill = __webpack_require__(54); var _ponyfill2 = _interopRequireDefault(_ponyfill); @@ -4662,7 +4774,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 49 */ +/* 54 */ /***/ function(module, exports) { 'use strict'; @@ -4690,7 +4802,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 50 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -4698,13 +4810,13 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports['default'] = combineReducers; - var _createStore = __webpack_require__(41); + var _createStore = __webpack_require__(46); - var _isPlainObject = __webpack_require__(42); + var _isPlainObject = __webpack_require__(47); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _warning = __webpack_require__(51); + var _warning = __webpack_require__(56); var _warning2 = _interopRequireDefault(_warning); @@ -4838,7 +4950,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }, -/* 51 */ +/* 56 */ /***/ function(module, exports) { 'use strict'; @@ -4868,7 +4980,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 52 */ +/* 57 */ /***/ function(module, exports) { 'use strict'; @@ -4924,7 +5036,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 53 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -4935,7 +5047,7 @@ return /******/ (function(modules) { // webpackBootstrap exports['default'] = applyMiddleware; - var _compose = __webpack_require__(54); + var _compose = __webpack_require__(59); var _compose2 = _interopRequireDefault(_compose); @@ -4987,7 +5099,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 54 */ +/* 59 */ /***/ function(module, exports) { "use strict"; @@ -5030,7 +5142,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 55 */ +/* 60 */ /***/ function(module, exports) { /** @@ -5086,7 +5198,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 56 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -5100,11 +5212,11 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); var _react2 = _interopRequireDefault(_react); - var _actionTypes = __webpack_require__(23); + var _actionTypes = __webpack_require__(28); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -5287,7 +5399,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.PersistentQueryLink = PersistentQueryLink; /***/ }, -/* 57 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -5301,7 +5413,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; }(); - var _react = __webpack_require__(32); + var _react = __webpack_require__(37); var _react2 = _interopRequireDefault(_react); diff --git a/dist/redux-little-router.js.map b/dist/redux-little-router.js.map index bc028e51..53142259 100644 --- a/dist/redux-little-router.js.map +++ b/dist/redux-little-router.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 7fc39571871413c0db12","webpack:///./index.js","webpack:///./store-enhancer.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/query-string/~/object-assign/index.js","webpack:///./action-types.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./util/initial-router-state.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/_isHostObject.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./link.js","webpack:///./fragment.js"],"names":["Fragment","createStoreWithRouter","initializeCurrentLocation","provideRouter","RouterProvider","Link","PersistentQueryLink","AbsoluteFragment","RelativeFragment","LOCATION_CHANGED","PUSH","REPLACE","GO","GO_FORWARD","GO_BACK","routerReducer","locationDidChange","createMatcher","README_MESSAGE","location","matchRoute","pathname","type","payload","resolveHistory","basename","forServerRender","historyFactory","nestedRoutes","routes","query","userHistory","history","Error","Object","keys","every","route","indexOf","createStore","reducer","initialState","enhancer","enhancedReducer","state","action","vanillaState","router","newState","Array","isArray","nextState","nextEffects","store","matchWildcardRoute","listen","dispatch","push","replace","go","goBack","goForward","find","list","predicate","i","length","item","wildcardMatcher","routeList","incomingUrl","routeToMatch","split","storedRoute","match","pattern","params","result","eagerMatcher","wildcard","sort","reverse","map","previous","oldState","filterObject","target","reduce","acc","key","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","forEach","baseRoute","routeKey","routeValue","parent","createLocation","RouterProviderImpl","props","routerState","getState","children","childContextTypes","object","ComposedComponent","LEFT_MOUSE_BUTTON","normalizeHref","normalizeLocation","href","pathnameAndQuery","search","resolveQueryForLocation","linkLocation","persistQuery","currentLocation","currentQuery","isNotLeftClick","e","button","hasModifier","Boolean","shiftKey","altKey","metaKey","ctrlKey","handleClick","replaceState","onClick","defaultPrevented","preventDefault","context","rest","locationDescriptor","contextTypes","propTypes","node","absolute","relative","parentRoute","forRoute","routePrefix","string","withConditions","matchResult","forRoutes","anyMatch","some"],"mappings":"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;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAoB;AACpB;AACA;AACA,IAAG;AACH;;AAEA,wC;;;;;;;AC9FA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;ACjGA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjFO,KAAM7C,8CAAmB,yBAAzB;AACA,KAAMC,sBAAO,aAAb;AACA,KAAMC,4BAAU,gBAAhB;AACA,KAAMC,kBAAK,WAAX;AACA,KAAME,4BAAU,gBAAhB;AACA,KAAMD,kCAAa,mBAAnB,C;;;;;;;;;;;;ACLP;;;;;;AAQA,KAAMiD,OAAO,SAAPA,IAAO,CAACC,IAAD,EAAOC,SAAP,EAAqB;AAChC,QAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,KAAKG,MAAzB,EAAiCD,GAAjC,EAAsC;AACpC,SAAME,OAAOJ,KAAKE,CAAL,CAAb;AACA,SAAID,UAAUG,IAAV,CAAJ,EAAqB;AACnB,cAAOA,IAAP;AACD;AACF;AACD,UAAO,IAAP;AACD,EARD;;;AAUA,KAAMC,kBAAkB,SAAlBA,eAAkB,CAACC,SAAD;AAAA,UACtB,UAACC,WAAD,EAAoD;AAAA,SAA9BC,YAA8B,yDAAP,EAAO;;AAClD;AACA,SAAMlD,WAAWiD,YAAYE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAjB;;AAEA,SAAMC,cAAcX,KAAKO,SAAL,EAAgB;AAAA,cAClChC,MAAMA,KAAN,KAAgBkC,YADkB;AAAA,MAAhB,CAApB;;AAIA,SAAI,CAACE,WAAL,EAAkB;AAAE,cAAO,IAAP;AAAc;;AAElC,SAAMC,QAAQD,YAAYE,OAAZ,CAAoBD,KAApB,CAA0BrD,QAA1B,CAAd;;AAEA,SAAIqD,KAAJ,EAAW;AACT,cAAO;AACLrC,gBAAOoC,YAAYpC,KADd;AAELuC,iBAAQF,KAFH;AAGLG,iBAAQJ,YAAYI;AAHf,QAAP;AAKD;;AAED,YAAO,IAAP;AACD,IAtBqB;AAAA,EAAxB;;AAwBA,KAAMC,eAAe,SAAfA,YAAe,CAACT,SAAD;AAAA,UACnB,UAACC,WAAD,EAAyB;AACzB;AACE,SAAMjD,WAAWiD,YAAYE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAjB;;AAEA;AACA,UAAK,IAAIP,IAAI,CAAb,EAAgBA,IAAII,UAAUH,MAA9B,EAAsCD,GAAtC,EAA2C;AACzC,WAAMQ,cAAcJ,UAAUJ,CAAV,CAApB;AACA,WAAMS,QAAQD,YAAYE,OAAZ,CAAoBD,KAApB,CAA0BrD,QAA1B,CAAd;;AAEA,WAAIqD,KAAJ,EAAW;AACT;AACA,gBAAO;AACLrC,kBAAOoC,YAAYpC,KADd;AAELuC,mBAAQF,KAFH;AAGLG,mBAAQJ,YAAYI;AAHf,UAAP;AAKD;AACF;;AAED,YAAO,IAAP;AACD,IArBkB;AAAA,EAArB;;mBAuBe,UAAChD,MAAD,EAA4C;AAAA,OAA3BkD,QAA2B,yDAAV,KAAU;;AACzD,OAAMV,YAAYnC,OAAOC,IAAP,CAAYN,MAAZ,EACfmD,IADe,GACRC,OADQ,GACEC,GADF,CACM;AAAA,YAAU;AAC9B7C,mBAD8B;AAE9BsC,gBAAS;AACP;AADO,YAEJtC,KAFI,IAEI0C,YAAY,GAAZ,IAAmB,EAFvB,EAFqB;AAM9BF,eAAQhD,OAAOQ,KAAP;AANsB,MAAV;AAAA,IADN,CAAlB;;AAUA,UAAO0C,WACHX,gBAAgBC,SAAhB,CADG,GAEHS,aAAaT,SAAb,CAFJ;AAGD,E;;;;;;AChFD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD,eAAe;;AAEhE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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ACA;;AAEA;AACA;;AAEA;AACA,yEAAwE;;AAExE;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,yBAAyB;AAChD;;AAEA;AACA,yGAAwG,gBAAgB;;AAExH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF;AACxF;AACA,YAAW;AACX,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACxYA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACzBA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wC;;;;;;;AC7CA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,YAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,aAAY,yBAAyB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACpQA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;;;;;;ACAA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,sBAAqB;;AAErB;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA,6B;;;;;;;ACrBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,G;;;;;;ACtBA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAmE;AACnE;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,sCAAsC;;AAEjF;AACA;AACA;;AAEA;AACA,oCAAmC,aAAa;AAChD;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,yEAAwE;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC7IA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;ACxBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,cAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClDA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA,yEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;AACA;AACA,E;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_32__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7fc39571871413c0db12\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport { AbsoluteFragment, RelativeFragment } from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nconst Fragment = AbsoluteFragment;\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n AbsoluteFragment,\n RelativeFragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\n\nimport flattenRoutes from './util/flatten-routes';\nimport initialRouterState from './util/initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes: nestedRoutes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!nestedRoutes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(nestedRoutes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const routes = flattenRoutes(nestedRoutes);\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = { ...state };\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...newState,\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n })\n } : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {\n ...store,\n dispatch,\n\n // We attach routes here to allow \n // to access unserializable properties of route results.\n routes,\n\n history,\n matchRoute,\n matchWildcardRoute\n };\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _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\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, 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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\n * Copyright 2014-2015, 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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _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\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 17\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 18\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/~/object-assign/index.js\n ** module id = 22\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 25\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 26\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n if (state) {\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldState } = state;\n return {\n ...action.payload,\n previous: oldState\n };\n }\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes, acc = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/flatten-routes.js\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash.assign/index.js\n ** module id = 29\n ** module chunks = 0\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from '../create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: Store };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_32__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 32\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 33\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 34\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 35\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 36\n ** module chunks = 0\n **/","'use strict';\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\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 37\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 38\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 39\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 40\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 41\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 42\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 43\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 44\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 45\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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 = 46\n ** module chunks = 0\n **/","module.exports = require('./lib/index');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 47\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root = undefined; /* global window */\n\nif (typeof global !== 'undefined') {\n\troot = global;\n} else if (typeof window !== 'undefined') {\n\troot = window;\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/index.js\n ** module id = 48\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/ponyfill.js\n ** module id = 49\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 50\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 51\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 52\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\nexports['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 53\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 54\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 55\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({\n e,\n target,\n location,\n replaceState,\n router,\n onClick\n}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\n\nimport React, { Component, PropTypes } from 'react';\n\ntype RelativeProps = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n children: React.Element<*>\n};\n\ntype AbsoluteProps = RelativeProps & {\n forRoutes?: [string]\n};\n\nconst absolute = (ComposedComponent: ReactClass<*>) => {\n class AbsoluteFragment extends Component {\n props: AbsoluteProps;\n\n render() {\n const { store } = this.context.router;\n const location = store.getState().router;\n\n return (\n \n );\n }\n }\n\n AbsoluteFragment.contextTypes = {\n router: PropTypes.object\n };\n\n return AbsoluteFragment;\n};\n\nconst relative = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n getChildContext() {\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: this.context.parentRoute &&\n this.context.parentRoute !== '/' &&\n this.context.parentRoute !== this.props.forRoute\n ? `${this.context.parentRoute}${this.props.forRoute}`\n : this.props.forRoute\n };\n }\n\n props: RelativeProps;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\ntype Props = AbsoluteProps | RelativeProps;\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (!matchResult) { return null; }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (Array.isArray(props.forRoutes)) {\n const anyMatch = props.forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nexport const AbsoluteFragment = absolute(Fragment);\nexport const RelativeFragment = relative(Fragment);\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 05825aabc1473913b385","webpack:///./index.js","webpack:///./browser-router.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./store-enhancer.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer-enhancer.js","webpack:///./reducer.js","webpack:///./action-types.js","webpack:///./action-creators.js","webpack:///./wrap-dispatch.js","webpack:///./util/validate-routes.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./express-router.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/_isHostObject.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./link.js","webpack:///./fragment.js"],"names":["Fragment","routerForBrowser","routerForExpress","initializeCurrentLocation","provideRouter","RouterProvider","Link","PersistentQueryLink","AbsoluteFragment","RelativeFragment","LOCATION_CHANGED","PUSH","REPLACE","GO","GO_FORWARD","GO_BACK","routerReducer","createStoreWithRouter","locationDidChange","createMatcher","realLocation","window","location","routes","basename","getLocation","history","pathname","search","createLocation","nestedRoutes","createStore","reducer","initialState","enhancer","enhancedReducer","matchRoute","matchWildcardRoute","initialStateWithRouter","router","store","listen","newLocation","dispatch","find","list","predicate","i","length","item","wildcardMatcher","routeList","incomingUrl","routeToMatch","split","storedRoute","route","match","pattern","params","result","eagerMatcher","wildcard","Object","keys","sort","reverse","map","vanillaReducer","state","action","vanillaState","newState","Array","isArray","nextState","nextEffects","type","payload","previous","oldState","push","replace","go","goBack","goForward","README_MESSAGE","Error","every","indexOf","filterObject","target","reduce","acc","key","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","forEach","baseRoute","routeKey","routeValue","parent","request","baseUrl","path","query","RouterProviderImpl","props","routerState","getState","children","childContextTypes","object","ComposedComponent","LEFT_MOUSE_BUTTON","normalizeHref","normalizeLocation","href","pathnameAndQuery","resolveQueryForLocation","linkLocation","persistQuery","currentLocation","currentQuery","isNotLeftClick","e","button","hasModifier","Boolean","shiftKey","altKey","metaKey","ctrlKey","handleClick","replaceState","onClick","defaultPrevented","preventDefault","context","rest","locationDescriptor","contextTypes","propTypes","node","absolute","relative","parentRoute","forRoute","routePrefix","string","withConditions","matchResult","forRoutes","anyMatch","some"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACrCA;;;;AACA;;;;AACA;;;;AACA;;AAEA;;;;AACA;;AACA;;AAEA;;;;AACA;;;;AAEA;;;;AASA,KAAMA,qCAAN;;SAIEC,gB;SACAC,gB;SACAC,yB;SAGAC,a;SACAC,c;SACAC,I;SACAC,mB;SACAP,Q,GAAAA,Q;SACAQ,gB;SACAC,gB;SAGAC,gB;SACAC,I;SACAC,O;SACAC,E;SACAC,U;SACAC,O;SAGAC,a;SACAC,qB;SACAC,iB;SACAC,a;;;;;;;;;;;;AClDF;;;;AACA;;;;AACA;;;;AAEA;;;;;;AAQA;AACA,KAAMC,eAAe,SAAfA,YAAe;AAAA,UAAMC,OAAOC,QAAb;AAAA,EAArB;;mBAEe,gBAIU;AAAA,OAHvBC,MAGuB,QAHvBA,MAGuB;AAAA,OAFvBC,QAEuB,QAFvBA,QAEuB;AAAA,+BADvBC,WACuB;AAAA,OADvBA,WACuB,oCADTL,YACS;;AACvB,OAAMM,UAAU,2BAAY,yDAAZ,EAA8C;AAC5DF;AAD4D,IAA9C,CAAhB;;AADuB,sBAKMC,aALN;;AAAA,OAKfE,QALe,gBAKfA,QALe;AAAA,OAKLC,MALK,gBAKLA,MALK;;AAMvB,OAAMN,WAAWI,QACdG,cADc,CACC,EAAEF,kBAAF,EAAYC,cAAZ,EADD,CAAjB;;AAGA,UAAO,6BAAc,EAAEL,cAAF,EAAUG,gBAAV,EAAmBJ,kBAAnB,EAAd,CAAP;AACD,E;;;;;;AC9BD;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,wCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,4EAA4E,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAE3Q,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,qBAAqB;AACxC;AACA;AACA,yEAAwE;;AAExE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA,+CAA8C;AAC9C;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAoB;AACpB;AACA;AACA,IAAG;AACH;;AAEA,wC;;;;;;;AC9FA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;AACA,EAAC;AACD,2H;;;;;;ACLA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA,gBAAe,WAAW;AAC1B;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA,G;;;;;;ACrFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;ACnFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+B;;;;;;ACvBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACjCA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,wEAAuE;;;AAGvE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2GAA0G;AAC1G;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA,6GAA4G;;AAE5G;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,6GAA4G;;AAE5G;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,G;;;;;;;AChFA;;AAEA;AACA;AACA,EAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf;;AAEA;AACA;AACA,gBAAe;AACf,G;;;;;;ACtCA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA,yEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;AACL;;AAEA;AACA,oMAAmM;;AAEnM;;AAEA;AACA,oDAAmD;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;AACA;;AAEA,6EAA4E;AAC5E;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;ACnLA;;AAEA;AACA;AACA,EAAC;;AAED,mCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,wBAAuB;;AAEvB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,G;;;;;;AC5DA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,iKAAgK;AAChK;AACA;;AAEA,qC;;;;;;;ACxBA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,2EAA0E;;AAE1E;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,+B;;;;;;AC9GA;;AAEA;AACA;AACA,EAAC;;AAED,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA0E;;AAE1E;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,uBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,8B;;;;;;AC1HA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAE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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnbD;;;;;;;;;;;;;;;;ACEA;;;;;;mBAEe,UAACiB,cAAD;AAAA,UACb,UAACC,KAAD,EAAeC,MAAf,EAAkC;AAChC,SAAMC,4BAAoBF,KAApB,CAAN;AACA,YAAOE,aAAahC,MAApB;;AAEA,SAAMiC,WAAWJ,eAAeG,YAAf,EAA6BD,MAA7B,CAAjB;;AAEA;AACA,SAAIG,MAAMC,OAAN,CAAcF,QAAd,CAAJ,EAA6B;AAC3B,WAAMG,YAAYH,SAAS,CAAT,CAAlB,CAD2B,CACI;AAC/B,WAAMI,cAAcJ,SAAS,CAAT,CAApB,CAF2B,CAEM;AACjC,cAAO,cAEAG,SAFA;AAGHpC,iBAAQ,uBAAc8B,SAASA,MAAM9B,MAA7B,EAAqC+B,MAArC;AAHL,WAKLM,WALK,CAAP;AAOD;;AAED,yBACKJ,QADL;AAEEjC,eAAQ,uBAAc8B,SAASA,MAAM9B,MAA7B,EAAqC+B,MAArC;AAFV;AAID,IAxBY;AAAA,E;;;;;;;;;;;;;;ACDf;;;;mBAEe,YAAoD;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AEA;AACA,kDAAiD,eAAe;;AAEhE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3nBA;;;;AACA;;;;AACA;;;;AAEA;;;;;;mBAYe,gBAA2C;AAAA,OAAxC/E,MAAwC,QAAxCA,MAAwC;AAAA,OAAhCqF,OAAgC,QAAhCA,OAAgC;;AACxD,OAAMlF,UAAU,2BAAY,wDAAZ,EAA6C;AAC3DF,eAAUoF,QAAQC;AADyC,IAA7C,CAAhB;;AAIA,OAAMvF,WAAWI,QAAQG,cAAR,CAAuB;AACtCF,eAAUiF,QAAQE,IADoB;AAEtCC,YAAOH,QAAQG;AAFuB,IAAvB,CAAjB;;AAKA,UAAO,6BAAc,EAAExF,cAAF,EAAUG,gBAAV,EAAmBJ,kBAAnB,EAA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,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,kDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,2CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA,GAAE;AACF;AACA,WAAU;AACV;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA,oBAAmB;AACnB;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yEAAwE;;AAExE;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,yBAAyB;AAChD;;AAEA;AACA,yGAAwG,gBAAgB;;AAExH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF;AACxF;AACA,YAAW;AACX,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;ACxYA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACzBA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wC;;;;;;;AC7CA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,YAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,aAAY,yBAAyB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACpQA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;;;;;;ACAA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,sBAAqB;;AAErB;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA,6B;;;;;;;ACrBA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,G;;;;;;ACtBA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAmE;AACnE;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,sCAAsC;;AAEjF;AACA;AACA;;AAEA;AACA,oCAAmC,aAAa;AAChD;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,yEAAwE;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC7IA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;ACxBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,cAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClDA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA,yEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;AACA;AACA,E;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,mEAAkE,aAAa;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,E;;;;;;ACrCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;AC9CA;;;;AAEA;;;;;;;;;;;;AAaA,KAAMO,oBAAoB,CAA1B;;AAEA,KAAMC,gBAAgB,SAAhBA,aAAgB;AAAA,gBACjBnG,SAASE,QAAT,IAAqB,EADJ,IACSF,SAASK,QADlB;AAAA,EAAtB;;AAGA,KAAM+F,oBAAoB,SAApBA,iBAAoB,OAAQ;AAChC,OAAI,OAAOC,IAAP,KAAgB,QAApB,EAA8B;AAC5B,SAAMC,mBAAmBD,KAAKrE,KAAL,CAAW,GAAX,CAAzB;AACA,SAAM3B,WAAWiG,iBAAiB,CAAjB,CAAjB,CAF4B,CAEU;AACtC,SAAMb,QAAQa,iBAAiB,CAAjB,CAAd,CAH4B,CAGO;AACnC,YAAOb,QAAQ,EAAEpF,kBAAF,EAAYC,cAAYmF,KAAxB,EAAR,GAA4C,EAAEpF,kBAAF,EAAnD;AACD;AACD,UAAOgG,IAAP;AACD,EARD;;AAUA,KAAME,0BAA0B,SAA1BA,uBAA0B,OAI1B;AAAA,OAHJC,YAGI,QAHJA,YAGI;AAAA,OAFJC,YAEI,QAFJA,YAEI;AAAA,OADJC,eACI,QADJA,eACI;;AACJ,OAAMC,eAAeD,mBACnBA,gBAAgBjB,KADlB;;AAGA;AACA;AACA,OACEgB,gBACAE,YADA,IAEA,CAACH,aAAalG,MAFd,IAGA,CAACkG,aAAaf,KAJhB,EAKE;AACA,YAAO;AACLpF,iBAAUmG,aAAanG,QADlB;AAELoF,cAAOkB;AAFF,MAAP;AAID;;AAED,UAAOH,YAAP;AACD,EAvBD;;AAyBA,KAAMI,iBAAiB,SAAjBA,cAAiB;AAAA,UAAKC,EAAEC,MAAF,IAAYD,EAAEC,MAAF,KAAaZ,iBAA9B;AAAA,EAAvB;AACA,KAAMa,cAAc,SAAdA,WAAc;AAAA,UAClBC,QAAQH,EAAEI,QAAF,IAAcJ,EAAEK,MAAhB,IAA0BL,EAAEM,OAA5B,IAAuCN,EAAEO,OAAjD,CADkB;AAAA,EAApB;;AAGA,KAAMC,cAAc,SAAdA,WAAc,QAOd;AAAA,OANJR,CAMI,SANJA,CAMI;AAAA,OALJxC,MAKI,SALJA,MAKI;AAAA,OAJJrE,QAII,SAJJA,QAII;AAAA,OAHJsH,YAGI,SAHJA,YAGI;AAAA,OAFJrG,MAEI,SAFJA,MAEI;AAAA,OADJsG,OACI,SADJA,OACI;;AACJ,OAAIA,OAAJ,EAAa;AAAEA,aAAQV,CAAR;AAAa;;AAE5B,OAAIE,YAAYF,CAAZ,KAAkBD,eAAeC,CAAf,CAAtB,EAAyC;AAAE;AAAS;;AAEpD,OAAIA,EAAEW,gBAAN,EAAwB;AAAE;AAAS;;AAEnC;AACA,OAAInD,MAAJ,EAAY;AAAE;AAAS;;AAEvBwC,KAAEY,cAAF;;AAEA,OAAIxG,MAAJ,EAAY;AACVA,YAAOC,KAAP,CAAaG,QAAb,CAAsB;AACpBkC,aAAM+D,uDADc;AAEpB9D,gBAASxD;AAFW,MAAtB;AAID;AACF,EAzBD;;AA2BA,KAAMhB,OAAO,SAAPA,IAAO,CACX2G,KADW,EAEX+B,OAFW,EAKR;AAAA,OAED5B,QAFC,GASCH,KATD,CAEDG,QAFC;AAAA,OAGDO,IAHC,GASCV,KATD,CAGDU,IAHC;AAAA,OAIDkB,OAJC,GASC5B,KATD,CAID4B,OAJC;AAAA,OAKDd,YALC,GASCd,KATD,CAKDc,YALC;AAAA,OAMDa,YANC,GASC3B,KATD,CAMD2B,YANC;AAAA,OAODjD,MAPC,GASCsB,KATD,CAODtB,MAPC;;AAAA,OAQEsD,IARF,4BASChC,KATD;;AAAA,OAWK1E,MAXL,GAWgByG,OAXhB,CAWKzG,MAXL;;;AAaH,OAAM2G,qBACJrB,wBAAwB;AACtBC,mBAAcJ,kBAAkBC,IAAlB,CADQ;AAEtBK,sBAAiBzF,OAAOC,KAAP,CAAa2E,QAAb,GAAwB5E,MAFnB;AAGtBwF;AAHsB,IAAxB,CADF;;AAOA,OAAMzG,WAAWiB,OAAOC,KAAP,CAAad,OAAb,CACdG,cADc,CACCqH,kBADD,CAAjB;;AAGA,UACE;AAAA;AAAA;AACE,aAAMzB,cAAcnG,QAAd,CADR;AAEE;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA,SAAS;AAAA,gBAAKqH,YAAY;AACxBR,eADwB;AAExB7G,6BAFwB;AAGxBuH,2BAHwB;AAIxBD,qCAJwB;AAKxBrG,yBALwB;AAMxBoD;AANwB,UAAZ,CAAL;AAAA,QAAT;AAFF,QAUMsD,IAVN;AAYG7B;AAZH,IADF;AAgBD,EA5CD;;AA8CA9G,MAAK6I,YAAL,GAAoB;AAClB5G,WAAQ,iBAAU+E;AADA,EAApB;;AAIA,KAAM/G;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,8BACK;AAAA,oBACuB,KAAK0G,KAD5B;AAAA,WACCG,QADD,UACCA,QADD;;AAAA,WACc6B,IADd;;AAEP,cAAO;AAAC,aAAD;AAAA,sBAAUA,IAAV,IAAgB,kBAAhB;AAA8B7B;AAA9B,QAAP;AACD;AAJG;;AAAA;AAAA,oBAAN;;AAOA7G,qBAAoB6I,SAApB,GAAgC;AAC9BhC,aAAU,iBAAUiC;AADU,EAAhC;;AAIA9I,qBAAoB4I,YAApB,GAAmC;AACjC5G,WAAQ,iBAAU+E;AADe,EAAnC;;SAIShH,I,GAAAA,I;SAAMC,mB,GAAAA,mB;;;;;;;;;;;;;;;;;ACvJf;;;;;;;;;;;;;;AAcA,KAAM+I,WAAW,SAAXA,QAAW,CAAC/B,iBAAD,EAAsC;AAAA,OAC/C/G,gBAD+C;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,gCAI1C;AAAA,aACCgC,KADD,GACW,KAAKwG,OAAL,CAAazG,MADxB,CACCC,KADD;;AAEP,aAAMlB,WAAWkB,MAAM2E,QAAN,GAAiB5E,MAAlC;;AAEA,gBACE,8BAAC,iBAAD;AACE,qBAAUjB,QADZ;AAEE,uBAAYkB,MAAMJ;AAFpB,YAGM,KAAK6E,KAHX,EADF;AAOD;AAfkD;;AAAA;AAAA;;AAkBrDzG,oBAAiB2I,YAAjB,GAAgC;AAC9B5G,aAAQ,iBAAU+E;AADY,IAAhC;;AAIA,UAAO9G,gBAAP;AACD,EAvBD;;AAyBA,KAAM+I,WAAW,SAAXA,QAAW,CAAChC,iBAAD,EAAsC;AAAA,OAC/C9G,gBAD+C;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,yCAEjC;AAChB,gBAAO;AACL;AACA;AACA+I,wBAAa,KAAKR,OAAL,CAAaQ,WAAb,IACX,KAAKR,OAAL,CAAaQ,WAAb,KAA6B,GADlB,IAEX,KAAKR,OAAL,CAAaQ,WAAb,KAA6B,KAAKvC,KAAL,CAAWwC,QAF7B,QAGJ,KAAKT,OAAL,CAAaQ,WAHT,GAGuB,KAAKvC,KAAL,CAAWwC,QAHlC,GAIP,KAAKxC,KAAL,CAAWwC;AAPZ,UAAP;AASD;AAZkD;AAAA;AAAA,gCAgB1C;AAAA,sBACiC,KAAKxC,KADtC;AAAA,aACCG,QADD,UACCA,QADD;AAAA,aACWqC,QADX,UACWA,QADX;;AAAA,aACwBR,IADxB;;AAAA,wBAEyB,KAAKD,OAF9B;AAAA,aAECzG,MAFD,YAECA,MAFD;AAAA,aAESiH,WAFT,YAESA,WAFT;AAAA,aAGChH,KAHD,GAGWD,MAHX,CAGCC,KAHD;;;AAKP,aAAMlB,WAAWkB,MAAM2E,QAAN,GAAiB5E,MAAlC;;AAEA,aAAMmH,cAAcF,eAClBA,gBAAgB,GADE,GACIA,WADJ,GACkB,EADtC;;AAGA,gBACE,8BAAC,iBAAD;AACE,qBAAUlI,QADZ;AAEE,uBAAYkB,MAAMH,kBAFpB;AAGE,qBAAUoH,iBAAeC,WAAf,GAA6BD,QAHzC;AAIE,qBAAUrC;AAJZ,YAKM6B,IALN,EADF;AASD;AAnCkD;;AAAA;AAAA;;AAsCrD;;;AACAxI,oBAAiB0I,YAAjB,GAAgC;AAC9B5G,aAAQ,iBAAU+E,MADY;AAE9BkC,kBAAa,iBAAUG;AAFO,IAAhC;;AAKA;AACAlJ,oBAAiB4G,iBAAjB,GAAqC;AACnCmC,kBAAa,iBAAUG;AADY,IAArC;;AAIA,UAAOlJ,gBAAP;AACD,EAlDD;;AAsDA,KAAMT,WAAW,SAAXA,QAAW,CAACiH,KAAD,EAAkB;AAAA,OAE/B3F,QAF+B,GAO7B2F,KAP6B,CAE/B3F,QAF+B;AAAA,OAG/Bc,UAH+B,GAO7B6E,KAP6B,CAG/B7E,UAH+B;AAAA,OAI/BqH,QAJ+B,GAO7BxC,KAP6B,CAI/BwC,QAJ+B;AAAA,OAK/BG,cAL+B,GAO7B3C,KAP6B,CAK/B2C,cAL+B;AAAA,OAM/BxC,QAN+B,GAO7BH,KAP6B,CAM/BG,QAN+B;;;AASjC,OAAMyC,cAAczH,WAAWd,SAASK,QAApB,EAA8B8H,QAA9B,CAApB;;AAEA,OAAI,CAACI,WAAL,EAAkB;AAAE,YAAO,IAAP;AAAc;;AAElC,OACEJ,YACAI,YAAYrG,KAAZ,KAAsBiG,QAFxB,EAGE;AACA,YAAO,IAAP;AACD;;AAED,OAAIhF,MAAMC,OAAN,CAAcuC,MAAM6C,SAApB,CAAJ,EAAoC;AAClC,SAAMC,WAAW9C,MAAM6C,SAAN,CAAgBE,IAAhB,CAAqB;AAAA,cACpCH,YAAYrG,KAAZ,KAAsBA,KADc;AAAA,MAArB,CAAjB;;AAIA,SAAI,CAACuG,QAAL,EAAe;AACb,cAAO,IAAP;AACD;AACF;;AAED,OAAIH,kBAAkB,CAACA,eAAetI,QAAf,CAAvB,EAAiD;AAC/C,YAAO,IAAP;AACD;;AAED,UAAO;AAAA;AAAA;AAAM8F;AAAN,IAAP;AACD,EAnCD;;AAqCO,KAAM5G,8CAAmB8I,SAAStJ,QAAT,CAAzB;AACA,KAAMS,8CAAmB8I,SAASvJ,QAAT,CAAzB,C","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_37__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 05825aabc1473913b385\n **/","// @flow\nimport routerForBrowser from './browser-router';\nimport routerForExpress from './express-router';\nimport createStoreWithRouter from './store-enhancer';\nimport { locationDidChange, initializeCurrentLocation } from './action-creators';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport { AbsoluteFragment, RelativeFragment } from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nconst Fragment = AbsoluteFragment;\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n AbsoluteFragment,\n RelativeFragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n createStoreWithRouter,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport installRouter from './store-enhancer';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = useBasename(useQueries(createBrowserHistory))({\n basename\n });\n\n const { pathname, search } = getLocation();\n const location = history\n .createLocation({ pathname, search });\n\n return installRouter({ routes, history, location });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./browser-router.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _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\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/process/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, 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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 8\n ** module chunks = 0\n **/","/**\n * Copyright 2014-2015, 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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 14\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _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\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 16\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type { History } from 'history';\n\nimport { default as matcherFactory } from './create-matcher';\nimport attachRouterToReducer from './reducer-enhancer';\nimport { locationDidChange } from './action-creators';\nimport wrapDispatch from './wrap-dispatch';\n\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype StoreEnhancerArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: StoreEnhancerArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = attachRouterToReducer(reducer);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n const initialStateWithRouter = {\n ...initialState,\n router: {\n ...location,\n ...matchRoute(location.pathname)\n }\n };\n\n const store = createStore(\n enhancedReducer,\n initialStateWithRouter,\n enhancer\n );\n\n history.listen(newLocation => {\n /* istanbul ignore else */\n if (newLocation) {\n store.dispatch(locationDidChange({\n location: newLocation, matchRoute\n }));\n }\n });\n\n const dispatch = wrapDispatch(store, history);\n\n return {\n ...store,\n dispatch,\n\n // We attach routes here to allow \n // to access unserializable properties of route results.\n routes,\n\n history,\n matchRoute,\n matchWildcardRoute\n };\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","// @flow\nimport type { Reducer, State, Action } from 'redux';\nimport routerReducer from './reducer';\n\nexport default (vanillaReducer: Reducer) =>\n (state: State, action: Action) => {\n const vanillaState = { ...state };\n delete vanillaState.router;\n\n const newState = vanillaReducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...newState,\n router: routerReducer(state && state.router, action)\n };\n };\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer-enhancer.js\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state &&\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n if (state) {\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldState } = state;\n return {\n ...action.payload,\n previous: oldState\n };\n }\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport { LOCATION_CHANGED } from './action-types';\nimport type { Location } from 'history';\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-creators.js\n **/","import {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nexport default (store, history) => action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./wrap-dispatch.js\n **/","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/validate-routes.js\n **/","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/flatten-routes.js\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash.assign/index.js\n ** module id = 33\n ** module chunks = 0\n **/","// @flow\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport installRouter from './store-enhancer';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n }\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = useBasename(useQueries(createMemoryHistory))({\n basename: request.baseUrl\n });\n\n const location = history.createLocation({\n pathname: request.path,\n query: request.query\n });\n\n return installRouter({ routes, history, location });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./express-router.js\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 35\n ** module chunks = 0\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: Store };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_37__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 37\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 38\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 39\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 40\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 41\n ** module chunks = 0\n **/","'use strict';\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\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 42\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 43\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 44\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 45\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 46\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 47\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 48\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 49\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 50\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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 = 51\n ** module chunks = 0\n **/","module.exports = require('./lib/index');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 52\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root = undefined; /* global window */\n\nif (typeof global !== 'undefined') {\n\troot = global;\n} else if (typeof window !== 'undefined') {\n\troot = window;\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/index.js\n ** module id = 53\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/ponyfill.js\n ** module id = 54\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 55\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 56\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 57\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\nexports['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 58\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 59\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 60\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({\n e,\n target,\n location,\n replaceState,\n router,\n onClick\n}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\n\nimport React, { Component, PropTypes } from 'react';\n\ntype RelativeProps = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n children: React.Element<*>\n};\n\ntype AbsoluteProps = RelativeProps & {\n forRoutes?: [string]\n};\n\nconst absolute = (ComposedComponent: ReactClass<*>) => {\n class AbsoluteFragment extends Component {\n props: AbsoluteProps;\n\n render() {\n const { store } = this.context.router;\n const location = store.getState().router;\n\n return (\n \n );\n }\n }\n\n AbsoluteFragment.contextTypes = {\n router: PropTypes.object\n };\n\n return AbsoluteFragment;\n};\n\nconst relative = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n getChildContext() {\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: this.context.parentRoute &&\n this.context.parentRoute !== '/' &&\n this.context.parentRoute !== this.props.forRoute\n ? `${this.context.parentRoute}${this.props.forRoute}`\n : this.props.forRoute\n };\n }\n\n props: RelativeProps;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\ntype Props = AbsoluteProps | RelativeProps;\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (!matchResult) { return null; }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (Array.isArray(props.forRoutes)) {\n const anyMatch = props.forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nexport const AbsoluteFragment = absolute(Fragment);\nexport const RelativeFragment = relative(Fragment);\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/redux-little-router.min.js b/dist/redux-little-router.min.js index d28ab965..6dfdd568 100644 --- a/dist/redux-little-router.min.js +++ b/dist/redux-little-router.min.js @@ -1,3 +1,3 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReduxLittleRouter=t(require("react")):e.ReduxLittleRouter=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatcher=t.locationDidChange=t.routerReducer=t.GO_BACK=t.GO_FORWARD=t.GO=t.REPLACE=t.PUSH=t.LOCATION_CHANGED=t.RelativeFragment=t.AbsoluteFragment=t.Fragment=t.PersistentQueryLink=t.Link=t.RouterProvider=t.provideRouter=t.initializeCurrentLocation=t.createStoreWithRouter=void 0;var o=r(1),i=n(o),a=r(30),u=n(a),c=r(55),s=r(56),f=r(26),l=n(f),p=r(23),d=n(p),h=r(22),y=s.AbsoluteFragment;t.createStoreWithRouter=i["default"],t.initializeCurrentLocation=o.initializeCurrentLocation,t.provideRouter=u["default"],t.RouterProvider=a.RouterProvider,t.Link=c.Link,t.PersistentQueryLink=c.PersistentQueryLink,t.Fragment=y,t.AbsoluteFragment=s.AbsoluteFragment,t.RelativeFragment=s.RelativeFragment,t.LOCATION_CHANGED=h.LOCATION_CHANGED,t.PUSH=h.PUSH,t.REPLACE=h.REPLACE,t.GO=h.GO,t.GO_FORWARD=h.GO_FORWARD,t.GO_BACK=h.GO_BACK,t.routerReducer=l["default"],t.locationDidChange=o.locationDidChange,t.createMatcher=d["default"]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.initializeCurrentLocation=t.locationDidChange=void 0;var o=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===a)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),i=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,i.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,i.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);tr;r++)t[r]=arguments[r];return i=!0,a?void(c=t):void n.apply(void 0,t)},f=function l(){if(!i&&(u=!0,!a)){for(a=!0;!i&&e>o&&u;)u=!1,t(o++,l,s);return a=!1,i?void n.apply(void 0,r(c)):void(o>=e&&u&&(i=!0,n()))}};f()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),i=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];return i(r.createLocation.apply(r,[c(e)].concat(n)))};return o({},r,{getCurrentLocation:s,listenBefore:f,listen:l,push:p,replace:d,createPath:h,createHref:y,createLocation:v})}};t["default"]=c},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?t-1:0),o=1;t>o;o++)n[o-1]=arguments[o];var i=r.createLocation.apply(r,[p(e,e.query)].concat(n));return e.query&&(i.query=(0,c.createQuery)(e.query)),a(i)};return o({},r,{getCurrentLocation:d,listenBefore:h,listen:y,push:v,replace:g,createPath:b,createHref:m,createLocation:O})}};t["default"]=p},function(e,t,r){"use strict";function n(e,t){return t.encode?t.strict?o(e):encodeURIComponent(e):e}var o=r(20),i=r(21);t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e){var t=Object.create(null);return"string"!=typeof e?t:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var r=e.replace(/\+/g," ").split("="),n=r.shift(),o=r.length>0?r.join("="):void 0;n=decodeURIComponent(n),o=void 0===o?null:decodeURIComponent(o),void 0===t[n]?t[n]=o:Array.isArray(t[n])?t[n].push(o):t[n]=[t[n],o]}),t):t},t.stringify=function(e,t){var r={encode:!0,strict:!0};return t=i(r,t),e?Object.keys(e).sort().map(function(r){var o=e[r];if(void 0===o)return"";if(null===o)return n(r,t);if(Array.isArray(o)){var i=[];return o.slice().forEach(function(e){void 0!==e&&(null===e?i.push(n(r,t)):i.push(n(r,t)+"="+n(e,t)))}),i.join("&")}return n(r,t)+"="+n(o,t)}).filter(function(e){return e.length>0}).join("&"):""}},function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function n(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;10>r;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(i){return!1}}var o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=n()?Object.assign:function(e,t){for(var n,a,u=r(e),c=1;ci))return a=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),a;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,i;if(Array.isArray(e)){for(o=-1,i=e.length;++o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=e.length>3&&"function"==typeof i?(o--,i):void 0,a&&p(r[0],r[1],a)&&(i=3>o?void 0:i,o=1),t=Object(t);++n-1&&e%1==0&&t>e}function p(e,t,r){if(!O(r))return!1;var n=typeof t;return("number"==n?v(r)&&l(t,r.length):"string"==n&&t in r)?h(r[t],e):!1}function d(e){var t=e&&e.constructor,r="function"==typeof t&&t.prototype||R;return e===r}function h(e,t){return e===t||e!==e&&t!==t}function y(e){return g(e)&&A.call(e,"callee")&&(!M.call(e,"callee")||x.call(e)==C)}function v(e){return null!=e&&m(e.length)&&!b(e)}function g(e){return P(e)&&v(e)}function b(e){var t=O(e)?x.call(e):"";return t==j||t==E}function m(e){return"number"==typeof e&&e>-1&&e%1==0&&_>=e}function O(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function P(e){return!!e&&"object"==typeof e}function w(e){return v(e)?i(e):u(e)}var _=9007199254740991,C="[object Arguments]",j="[object Function]",E="[object GeneratorFunction]",S=/^(?:0|[1-9]\d*)$/,R=Object.prototype,A=R.hasOwnProperty,x=R.toString,M=R.propertyIsEnumerable,L=o(Object.keys,Object),T=Math.max,k=!M.call({valueOf:1},"valueOf"),N=Array.isArray,D=f(function(e,t){if(k||d(t)||v(t))return void s(t,w(t),e);for(var r in t)A.call(t,r)&&a(e,r,t[r])});e.exports=D},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t, "+('or explicitly pass "store" as a prop to "'+r+'".'));var c=a.store.getState();return a.state={storeState:c},a.clearCache(),a}return a(u,n),u.prototype.shouldComponentUpdate=function(){return!m||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var r=e.getState(),n=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(r,t):this.finalMapStateToProps(r);return n},u.prototype.configureFinalMapState=function(e,t){var r=p(e.getState(),t),n="function"==typeof r;return this.finalMapStateToProps=n?r:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,n?this.computeStateProps(e,t):r},u.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var r=e.dispatch,n=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(r,t):this.finalMapDispatchToProps(r);return n},u.prototype.configureFinalMapDispatch=function(e,t){var r=h(e.dispatch,t),n="function"==typeof r;return this.finalMapDispatchToProps=n?r:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,n?this.computeDispatchProps(e,t):r},u.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return this.stateProps&&(0,y["default"])(e,this.stateProps)?!1:(this.stateProps=e,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return this.dispatchProps&&(0,y["default"])(e,this.dispatchProps)?!1:(this.dispatchProps=e,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return this.mergedProps&&A&&(0,y["default"])(e,this.mergedProps)?!1:(this.mergedProps=e,!0)},u.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){s&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(e){m&&(0,y["default"])(e,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!m||t!==e){if(m&&!this.doStatePropsDependOnOwnProps){var r=c(this.updateStatePropsIfNeeded,this);if(!r)return;r===S&&(this.statePropsPrecalculationError=S.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},u.prototype.getWrappedInstance=function(){return(0,_["default"])(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},u.prototype.render=function(){var t=this.haveOwnPropsChanged,r=this.hasStoreStateChanged,n=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;m&&i&&(a=r||t&&this.doStatePropsDependOnOwnProps,u=t&&this.doDispatchPropsDependOnOwnProps);var c=!1,s=!1;n?c=!0:a&&(c=this.updateStatePropsIfNeeded()),u&&(s=this.updateDispatchPropsIfNeeded());var p=!0;return p=c||s||t?this.updateMergedPropsIfNeeded():!1,!p&&i?i:(w?this.renderedElement=(0,l.createElement)(e,f({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,l.createElement)(e,this.mergedProps),this.renderedElement)},u}(l.Component);return n.displayName=r,n.WrappedComponent=e,n.contextTypes={store:d["default"]},n.propTypes={store:d["default"]},(0,P["default"])(n,e)}}var f=Object.assign||function(e){for(var t=1;tr;r++)t[r]=arguments[r];return function(e){return function(r,n,o){var a=e(r,n,o),c=a.dispatch,s=[],f={getState:a.getState,dispatch:function(e){return c(e)}};return s=t.map(function(e){return e(f)}),c=u["default"].apply(void 0,s)(a.dispatch),i({},a,{dispatch:c})}}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;tr;r++)t[r]=arguments[r];if(0===t.length)return function(e){return e};if(1===t.length)return t[0];var n=t[t.length-1],o=t.slice(0,-1);return function(){return o.reduceRight(function(e,t){return t(e)},n.apply(void 0,arguments))}}t.__esModule=!0,t["default"]=r},function(e,t){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,mixins:!0,propTypes:!0,type:!0},n={name:!0,length:!0,prototype:!0,caller:!0,arguments:!0,arity:!0},o="function"==typeof Object.getOwnPropertySymbols;e.exports=function(e,t,i){if("string"!=typeof t){var a=Object.getOwnPropertyNames(t);o&&(a=a.concat(Object.getOwnPropertySymbols(t)));for(var u=0;u=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var c=function(){function e(e,t){for(var r=0;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.RelativeFragment=t.AbsoluteFragment=void 0;var c=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw r}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(c(e))}catch(r){if(r.name===a)return}if(t)try{return JSON.parse(t)}catch(r){}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var n=r(5);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return n.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return n.go}});var o=r(6),i=r(7);t.getCurrentLocation=function(){return(0,o.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,i.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,i.createPath)(e)),!1}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t=e&&u&&(i=!0,n()))}};f()}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(8),i=(n(o),function(e,t,r){var n=e(t,r);e.length<2&&r(n)});t["default"]=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?t-1:0),o=1;o1?t-1:0),o=1;oi))return a=Array.isArray(u)?u[o]:u,n&&(r[t]=o+1),a;if(n)throw new Error("too few values provided for key `"+t+"`")}else if(n)throw new Error("no values provided for key `"+t+"`")},r=function(e,t,n){var o,i;if(Array.isArray(e)){for(o=-1,i=e.length;++o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1?r[o-1]:void 0,a=o>2?r[2]:void 0;for(i=e.length>3&&"function"==typeof i?(o--, +i):void 0,a&&p(r[0],r[1],a)&&(i=o<3?void 0:i,o=1),t=Object(t);++n-1&&e%1==0&&e-1&&e%1==0&&e<=_}function O(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function P(e){return!!e&&"object"==typeof e}function w(e){return v(e)?i(e):u(e)}var _=9007199254740991,C="[object Arguments]",j="[object Function]",E="[object GeneratorFunction]",S=/^(?:0|[1-9]\d*)$/,A=Object.prototype,R=A.hasOwnProperty,x=A.toString,M=A.propertyIsEnumerable,L=o(Object.keys,Object),T=Math.max,k=!M.call({valueOf:1},"valueOf"),N=Array.isArray,D=f(function(e,t){if(k||d(t)||v(t))return void s(t,w(t),e);for(var r in t)R.call(t,r)&&a(e,r,t[r])});e.exports=D},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=r(34),i=n(o),a=r(16),u=n(a),c=r(17),s=n(c),f=r(21),l=n(f);t["default"]=function(e){var t=e.routes,r=e.request,n=(0,u["default"])((0,s["default"])(i["default"]))({basename:r.baseUrl}),o=n.createLocation({pathname:r.path,query:r.query});return(0,l["default"])({routes:t,history:n,location:o})}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0&&t=0&&v, "+('or explicitly pass "store" as a prop to "'+r+'".'));var c=a.store.getState();return a.state={storeState:c},a.clearCache(),a}return a(u,n),u.prototype.shouldComponentUpdate=function(){return!m||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var r=e.getState(),n=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(r,t):this.finalMapStateToProps(r);return n},u.prototype.configureFinalMapState=function(e,t){var r=p(e.getState(),t),n="function"==typeof r;return this.finalMapStateToProps=n?r:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,n?this.computeStateProps(e,t):r},u.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var r=e.dispatch,n=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(r,t):this.finalMapDispatchToProps(r);return n},u.prototype.configureFinalMapDispatch=function(e,t){var r=h(e.dispatch,t),n="function"==typeof r;return this.finalMapDispatchToProps=n?r:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,n?this.computeDispatchProps(e,t):r},u.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,y["default"])(e,this.stateProps))&&(this.stateProps=e,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,y["default"])(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&R&&(0,y["default"])(e,this.mergedProps))&&(this.mergedProps=e,!0)},u.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){s&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(e){m&&(0,y["default"])(e,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!m||t!==e){if(m&&!this.doStatePropsDependOnOwnProps){var r=c(this.updateStatePropsIfNeeded,this);if(!r)return;r===S&&(this.statePropsPrecalculationError=S.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},u.prototype.getWrappedInstance=function(){return(0,_["default"])(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},u.prototype.render=function(){var t=this.haveOwnPropsChanged,r=this.hasStoreStateChanged,n=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;m&&i&&(a=r||t&&this.doStatePropsDependOnOwnProps,u=t&&this.doDispatchPropsDependOnOwnProps);var c=!1,s=!1;n?c=!0:a&&(c=this.updateStatePropsIfNeeded()),u&&(s=this.updateDispatchPropsIfNeeded());var p=!0;return p=!!(c||s||t)&&this.updateMergedPropsIfNeeded(),!p&&i?i:(w?this.renderedElement=(0,l.createElement)(e,f({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,l.createElement)(e,this.mergedProps),this.renderedElement)},u}(l.Component);return n.displayName=r,n.WrappedComponent=e,n.contextTypes={store:d["default"]},n.propTypes={store:d["default"]},(0,P["default"])(n,e)}}var f=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var c=function(){function e(e,t){for(var r=0;r=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.RelativeFragment=t.AbsoluteFragment=void 0;var c=Object.assign||function(e){for(var t=1;t\n\t // to access unserializable properties of route results.\n\t routes: routes,\n\t\n\t history: history,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 2 */\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 _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 _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _ExecutionEnvironment = __webpack_require__(4);\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\t\n\tvar _RefreshProtocol = __webpack_require__(12);\n\t\n\tvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\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/**\n\t * Creates and returns a history object that uses HTML5's history API\n\t * (pushState, replaceState, and the popstate event) to manage history.\n\t * This is the recommended method of managing history in browsers because\n\t * it provides the cleanest URLs.\n\t *\n\t * Note: In browsers that do not support the HTML5 history API full\n\t * page reloads will be used to preserve clean URLs. You can force this\n\t * behavior using { forceRefresh: true } in options.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t !_ExecutionEnvironment.canUseDOM ? false ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\t\n\t var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n\t var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\t\n\t var getUserConfirmation = Protocol.getUserConfirmation;\n\t var getCurrentLocation = Protocol.getCurrentLocation;\n\t var pushLocation = Protocol.pushLocation;\n\t var replaceLocation = Protocol.replaceLocation;\n\t var go = Protocol.go;\n\t\n\t\n\t var history = (0, _createHistory2.default)(_extends({\n\t getUserConfirmation: getUserConfirmation }, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var listenerCount = 0,\n\t stopListener = void 0;\n\t\n\t var startListener = function startListener(listener, before) {\n\t if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\t\n\t var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\t\n\t return function () {\n\t unlisten();\n\t\n\t if (--listenerCount === 0) stopListener();\n\t };\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t return startListener(listener, true);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return startListener(listener, false);\n\t };\n\t\n\t return _extends({}, history, {\n\t listenBefore: listenBefore,\n\t listen: listen\n\t });\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, 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'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/***/ },\n/* 5 */\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.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _DOMStateStorage = __webpack_require__(11);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\t/* eslint-disable no-alert */\n\t\n\t\n\tvar PopStateEvent = 'popstate';\n\t\n\tvar _createLocation = function _createLocation(historyState) {\n\t var key = historyState && historyState.key;\n\t\n\t return (0, _LocationUtils.createLocation)({\n\t pathname: window.location.pathname,\n\t search: window.location.search,\n\t hash: window.location.hash,\n\t state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n\t }, undefined, key);\n\t};\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t var historyState = void 0;\n\t try {\n\t historyState = window.history.state || {};\n\t } catch (error) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/mjackson/history/pull/289\n\t historyState = {};\n\t }\n\t\n\t return _createLocation(historyState);\n\t};\n\t\n\tvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t};\n\t\n\tvar startListener = exports.startListener = function startListener(listener) {\n\t var handlePopState = function handlePopState(event) {\n\t if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n\t listener(_createLocation(event.state));\n\t };\n\t\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t return function () {\n\t return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t };\n\t};\n\t\n\tvar updateLocation = function updateLocation(location, updateState) {\n\t var state = location.state;\n\t var key = location.key;\n\t\n\t\n\t if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\t\n\t updateState({ key: key }, (0, _PathUtils.createPath)(location));\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.pushState(state, null, path);\n\t });\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.replaceState(state, null, path);\n\t });\n\t};\n\t\n\tvar go = exports.go = function go(n) {\n\t if (n) window.history.go(n);\n\t};\n\n/***/ },\n/* 6 */\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.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createQuery = exports.createQuery = function createQuery(props) {\n\t return _extends(Object.create(null), props);\n\t};\n\t\n\tvar createLocation = exports.createLocation = function createLocation() {\n\t var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n\t var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\t\n\t var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\t\n\t var pathname = object.pathname || '/';\n\t var search = object.search || '';\n\t var hash = object.hash || '';\n\t var state = object.state;\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash,\n\t state: state,\n\t action: action,\n\t key: key\n\t };\n\t};\n\t\n\tvar isDate = function isDate(object) {\n\t return Object.prototype.toString.call(object) === '[object Date]';\n\t};\n\t\n\tvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (typeofA !== typeofB) return false;\n\t\n\t !(typeofA !== 'function') ? false ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t // Not the same object, but same type.\n\t if (typeofA === 'object') {\n\t !!(isDate(a) && isDate(b)) ? false ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n\t return statesAreEqual(a[key], b[key]);\n\t });\n\t\n\t return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n\t return statesAreEqual(item, b[index]);\n\t });\n\t }\n\t\n\t // All other serializable types (string, number, boolean)\n\t // should be strict equal.\n\t return false;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.key === b.key &&\n\t // a.action === b.action && // Different action !== location change.\n\t a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n\t};\n\n/***/ },\n/* 7 */\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.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n\t return typeof path === 'string' && path.charAt(0) === '/';\n\t};\n\t\n\tvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n\t var _parsePath = parsePath(path);\n\t\n\t var pathname = _parsePath.pathname;\n\t var search = _parsePath.search;\n\t var hash = _parsePath.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n\t hash: hash\n\t });\n\t};\n\t\n\tvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n\t var _parsePath2 = parsePath(path);\n\t\n\t var pathname = _parsePath2.pathname;\n\t var search = _parsePath2.search;\n\t var hash = _parsePath2.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n\t return prefix === '?' ? prefix : suffix;\n\t }),\n\t hash: hash\n\t });\n\t};\n\t\n\tvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n\t var _parsePath3 = parsePath(path);\n\t\n\t var search = _parsePath3.search;\n\t\n\t var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n\t return match && match[1];\n\t};\n\t\n\tvar extractPath = function extractPath(string) {\n\t var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n\t return match == null ? string : string.substring(match[0].length);\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = extractPath(path);\n\t var search = '';\n\t var hash = '';\n\t\n\t false ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substring(hashIndex);\n\t pathname = pathname.substring(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substring(searchIndex);\n\t pathname = pathname.substring(0, searchIndex);\n\t }\n\t\n\t if (pathname === '') pathname = '/';\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t if (location == null || typeof location === 'string') return location;\n\t\n\t var basename = location.basename;\n\t var pathname = location.pathname;\n\t var search = location.search;\n\t var hash = location.hash;\n\t\n\t var path = (basename || '') + pathname;\n\t\n\t if (search && search !== '?') path += search;\n\t\n\t if (hash) path += hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, 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'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\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.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\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.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\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 _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\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\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\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\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\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 _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\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 _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 _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 17 */\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 _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 _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 18 */\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 _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 _queryString = __webpack_require__(19);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(20);\n\tvar objectAssign = __webpack_require__(21);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn encode(key, opts);\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 23 */\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 _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar find = function find(list, predicate) {\n\t for (var i = 0; i < list.length; i++) {\n\t var item = list[i];\n\t if (predicate(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t};\n\t\n\t\n\tvar wildcardMatcher = function wildcardMatcher(routeList) {\n\t return function (incomingUrl) {\n\t var routeToMatch = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\t\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t var storedRoute = find(routeList, function (route) {\n\t return route.route === routeToMatch;\n\t });\n\t\n\t if (!storedRoute) {\n\t return null;\n\t }\n\t\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\tvar eagerMatcher = function eagerMatcher(routeList) {\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\texports.default = function (routes) {\n\t var wildcard = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\t\n\t var routeList = Object.keys(routes).sort().reverse().map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(\n\t // Prepend with wildcards if requested\n\t '' + route + (wildcard && '*' || '')),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return wildcard ? wildcardMatcher(routeList) : eagerMatcher(routeList);\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\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 _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 _actionTypes = __webpack_require__(22);\n\t\n\tfunction _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\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname) {\n\t return state;\n\t }\n\t\n\t // Extract the previous state, but dump the\n\t // previous state's previous state so that the\n\t // state tree doesn't keep growing indefinitely\n\t if (state) {\n\t // eslint-disable-next-line no-unused-vars\n\t var previous = state.previous;\n\t\n\t var oldState = _objectWithoutProperties(state, ['previous']);\n\t\n\t return _extends({}, action.payload, {\n\t previous: oldState\n\t });\n\t }\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\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 _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 _lodash = __webpack_require__(28);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\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\tvar filterObject = function filterObject(target, predicate) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t return predicate(key) ? _extends({}, acc, _defineProperty({}, key, target[key])) : acc;\n\t }, {});\n\t};\n\t\n\tvar mapObject = function mapObject(target, transformKey, transformValue) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t var newKey = transformKey ? transformKey(key) : key;\n\t var newValue = transformValue ? transformValue(target[key]) : target[key];\n\t return _extends({}, acc, _defineProperty({}, newKey, newValue));\n\t }, {});\n\t};\n\t\n\tvar onlyRoutes = function onlyRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') === 0;\n\t });\n\t};\n\t\n\tvar withoutRoutes = function withoutRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') !== 0;\n\t });\n\t};\n\t\n\tvar flattenRoutes = function flattenRoutes(routes) {\n\t var acc = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\t\n\t Object.keys(routes).forEach(function (key) {\n\t var baseRoute = key === '/' ? '' : key;\n\t flattenRoutes(mapObject(onlyRoutes(routes[key]), function (routeKey) {\n\t return '' + baseRoute + routeKey;\n\t }, function (routeValue) {\n\t return _extends({}, routeValue, {\n\t parent: _extends({}, withoutRoutes(routes[key]), {\n\t route: key\n\t })\n\t });\n\t }), acc);\n\t });\n\t\n\t (0, _lodash2.default)(acc, mapObject(routes, null, withoutRoutes));\n\t\n\t return acc;\n\t};\n\t\n\texports.default = flattenRoutes;\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]';\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeKeys = overArg(Object.keys, Object),\n\t nativeMax = Math.max;\n\t\n\t/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\n\tvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\t\n\t var length = result.length,\n\t skipIndexes = !!length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseRest(func, start) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = array;\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\t\n\t/**\n\t * Creates a function like `_.assign`.\n\t *\n\t * @private\n\t * @param {Function} assigner The function to assign values.\n\t * @returns {Function} Returns the new assigner function.\n\t */\n\tfunction createAssigner(assigner) {\n\t return baseRest(function(object, sources) {\n\t var index = -1,\n\t length = sources.length,\n\t customizer = length > 1 ? sources[length - 1] : undefined,\n\t guard = length > 2 ? sources[2] : undefined;\n\t\n\t customizer = (assigner.length > 3 && typeof customizer == 'function')\n\t ? (length--, customizer)\n\t : undefined;\n\t\n\t if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n\t customizer = length < 3 ? undefined : customizer;\n\t length = 1;\n\t }\n\t object = Object(object);\n\t while (++index < length) {\n\t var source = sources[index];\n\t if (source) {\n\t assigner(object, source, index, customizer);\n\t }\n\t }\n\t return object;\n\t });\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/**\n\t * Checks if the given arguments are from an iteratee call.\n\t *\n\t * @private\n\t * @param {*} value The potential iteratee value argument.\n\t * @param {*} index The potential iteratee index or key argument.\n\t * @param {*} object The potential iteratee object argument.\n\t * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n\t * else `false`.\n\t */\n\tfunction isIterateeCall(value, index, object) {\n\t if (!isObject(object)) {\n\t return false;\n\t }\n\t var type = typeof index;\n\t if (type == 'number'\n\t ? (isArrayLike(object) && isIndex(index, object.length))\n\t : (type == 'string' && index in object)\n\t ) {\n\t return eq(object[index], value);\n\t }\n\t return false;\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\t/**\n\t * Assigns own enumerable string keyed properties of source objects to the\n\t * destination object. Source objects are applied from left to right.\n\t * Subsequent sources overwrite property assignments of previous sources.\n\t *\n\t * **Note:** This method mutates `object` and is loosely based on\n\t * [`Object.assign`](https://mdn.io/Object/assign).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.10.0\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [sources] The source objects.\n\t * @returns {Object} Returns `object`.\n\t * @see _.assignIn\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * function Bar() {\n\t * this.c = 3;\n\t * }\n\t *\n\t * Foo.prototype.b = 2;\n\t * Bar.prototype.d = 4;\n\t *\n\t * _.assign({ 'a': 0 }, new Foo, new Bar);\n\t * // => { 'a': 1, 'c': 3 }\n\t */\n\tvar assign = createAssigner(function(object, source) {\n\t if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n\t copyObject(source, keys(source), object);\n\t return;\n\t }\n\t for (var key in source) {\n\t if (hasOwnProperty.call(source, key)) {\n\t assignValue(object, key, source[key]);\n\t }\n\t }\n\t});\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 29 */\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 _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 _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var _ref$pathname = _ref.pathname;\n\t var pathname = _ref$pathname === undefined ? '/' : _ref$pathname;\n\t var _ref$query = _ref.query;\n\t var query = _ref$query === undefined ? {} : _ref$query;\n\t var routes = _ref.routes;\n\t var history = _ref.history;\n\t return _extends({}, history.createLocation({\n\t pathname: pathname,\n\t query: query\n\t }), (0, _createMatcher2.default)(routes)(pathname));\n\t};\n\n/***/ },\n/* 30 */\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.RouterProvider = 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__(31);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(32);\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\tvar RouterProviderImpl = function (_Component) {\n\t _inherits(RouterProviderImpl, _Component);\n\t\n\t function RouterProviderImpl(props) {\n\t _classCallCheck(this, RouterProviderImpl);\n\t\n\t var _this = _possibleConstructorReturn(this, (RouterProviderImpl.__proto__ || Object.getPrototypeOf(RouterProviderImpl)).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProviderImpl, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var store = this.router.store;\n\t\n\t var routerState = store.getState().router;\n\t\n\t // Ensure that the router props from connect()\n\t // actually get to the child component(s)\n\t return (0, _react.cloneElement)(this.props.children, {\n\t router: _extends({}, routerState, {\n\t\n\t // This is a hack to allow routes to define\n\t // unserializable things like components\n\t result: store.routes[routerState.route]\n\t })\n\t });\n\t }\n\t }]);\n\t\n\t return RouterProviderImpl;\n\t}(_react.Component);\n\t\n\tRouterProviderImpl.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) {\n\t return {\n\t router: state.router\n\t };\n\t})(RouterProviderImpl);\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_31__;\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.connect = exports.Provider = undefined;\n\t\n\tvar _Provider = __webpack_require__(33);\n\t\n\tvar _Provider2 = _interopRequireDefault(_Provider);\n\t\n\tvar _connect = __webpack_require__(36);\n\t\n\tvar _connect2 = _interopRequireDefault(_connect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\texports.Provider = _Provider2[\"default\"];\n\texports.connect = _connect2[\"default\"];\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = undefined;\n\t\n\tvar _react = __webpack_require__(31);\n\t\n\tvar _storeShape = __webpack_require__(34);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _warning = __webpack_require__(35);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\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\tvar didWarnAboutReceivingStore = false;\n\tfunction warnAboutReceivingStore() {\n\t if (didWarnAboutReceivingStore) {\n\t return;\n\t }\n\t didWarnAboutReceivingStore = true;\n\t\n\t (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n\t}\n\t\n\tvar Provider = function (_Component) {\n\t _inherits(Provider, _Component);\n\t\n\t Provider.prototype.getChildContext = function getChildContext() {\n\t return { store: this.store };\n\t };\n\t\n\t function Provider(props, context) {\n\t _classCallCheck(this, Provider);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.store = props.store;\n\t return _this;\n\t }\n\t\n\t Provider.prototype.render = function render() {\n\t var children = this.props.children;\n\t\n\t return _react.Children.only(children);\n\t };\n\t\n\t return Provider;\n\t}(_react.Component);\n\t\n\texports[\"default\"] = Provider;\n\t\n\tif (false) {\n\t Provider.prototype.componentWillReceiveProps = function (nextProps) {\n\t var store = this.store;\n\t var nextStore = nextProps.store;\n\t\n\t if (store !== nextStore) {\n\t warnAboutReceivingStore();\n\t }\n\t };\n\t}\n\t\n\tProvider.propTypes = {\n\t store: _storeShape2[\"default\"].isRequired,\n\t children: _react.PropTypes.element.isRequired\n\t};\n\tProvider.childContextTypes = {\n\t store: _storeShape2[\"default\"].isRequired\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(31);\n\t\n\texports[\"default\"] = _react.PropTypes.shape({\n\t subscribe: _react.PropTypes.func.isRequired,\n\t dispatch: _react.PropTypes.func.isRequired,\n\t getState: _react.PropTypes.func.isRequired\n\t});\n\n/***/ },\n/* 35 */\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 you can use this stack\n\t // to find the callsite that caused this warning to fire.\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/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\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\texports.__esModule = true;\n\texports[\"default\"] = connect;\n\t\n\tvar _react = __webpack_require__(31);\n\t\n\tvar _storeShape = __webpack_require__(34);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _shallowEqual = __webpack_require__(37);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _wrapActionCreators = __webpack_require__(38);\n\t\n\tvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\t\n\tvar _warning = __webpack_require__(35);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _isPlainObject = __webpack_require__(41);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _hoistNonReactStatics = __webpack_require__(54);\n\t\n\tvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\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\tvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n\t return {};\n\t}; // eslint-disable-line no-unused-vars\n\tvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n\t return { dispatch: dispatch };\n\t};\n\tvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n\t return _extends({}, parentProps, stateProps, dispatchProps);\n\t};\n\t\n\tfunction getDisplayName(WrappedComponent) {\n\t return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t}\n\t\n\tvar errorObject = { value: null };\n\tfunction tryCatch(fn, ctx) {\n\t try {\n\t return fn.apply(ctx);\n\t } catch (e) {\n\t errorObject.value = e;\n\t return errorObject;\n\t }\n\t}\n\t\n\t// Helps track hot reloading.\n\tvar nextVersion = 0;\n\t\n\tfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n\t var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\t\n\t var shouldSubscribe = Boolean(mapStateToProps);\n\t var mapState = mapStateToProps || defaultMapStateToProps;\n\t\n\t var mapDispatch = undefined;\n\t if (typeof mapDispatchToProps === 'function') {\n\t mapDispatch = mapDispatchToProps;\n\t } else if (!mapDispatchToProps) {\n\t mapDispatch = defaultMapDispatchToProps;\n\t } else {\n\t mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n\t }\n\t\n\t var finalMergeProps = mergeProps || defaultMergeProps;\n\t var _options$pure = options.pure;\n\t var pure = _options$pure === undefined ? true : _options$pure;\n\t var _options$withRef = options.withRef;\n\t var withRef = _options$withRef === undefined ? false : _options$withRef;\n\t\n\t var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\t\n\t // Helps track hot reloading.\n\t var version = nextVersion++;\n\t\n\t return function wrapWithConnect(WrappedComponent) {\n\t var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\t\n\t function checkStateShape(props, methodName) {\n\t if (!(0, _isPlainObject2[\"default\"])(props)) {\n\t (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n\t }\n\t }\n\t\n\t function computeMergedProps(stateProps, dispatchProps, parentProps) {\n\t var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n\t if (false) {\n\t checkStateShape(mergedProps, 'mergeProps');\n\t }\n\t return mergedProps;\n\t }\n\t\n\t var Connect = function (_Component) {\n\t _inherits(Connect, _Component);\n\t\n\t Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n\t return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n\t };\n\t\n\t function Connect(props, context) {\n\t _classCallCheck(this, Connect);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.version = version;\n\t _this.store = props.store || context.store;\n\t\n\t (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\t\n\t var storeState = _this.store.getState();\n\t _this.state = { storeState: storeState };\n\t _this.clearCache();\n\t return _this;\n\t }\n\t\n\t Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n\t if (!this.finalMapStateToProps) {\n\t return this.configureFinalMapState(store, props);\n\t }\n\t\n\t var state = store.getState();\n\t var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\t\n\t if (false) {\n\t checkStateShape(stateProps, 'mapStateToProps');\n\t }\n\t return stateProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n\t var mappedState = mapState(store.getState(), props);\n\t var isFactory = typeof mappedState === 'function';\n\t\n\t this.finalMapStateToProps = isFactory ? mappedState : mapState;\n\t this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeStateProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedState, 'mapStateToProps');\n\t }\n\t return mappedState;\n\t };\n\t\n\t Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n\t if (!this.finalMapDispatchToProps) {\n\t return this.configureFinalMapDispatch(store, props);\n\t }\n\t\n\t var dispatch = store.dispatch;\n\t\n\t var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\t\n\t if (false) {\n\t checkStateShape(dispatchProps, 'mapDispatchToProps');\n\t }\n\t return dispatchProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n\t var mappedDispatch = mapDispatch(store.dispatch, props);\n\t var isFactory = typeof mappedDispatch === 'function';\n\t\n\t this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n\t this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeDispatchProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedDispatch, 'mapDispatchToProps');\n\t }\n\t return mappedDispatch;\n\t };\n\t\n\t Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n\t var nextStateProps = this.computeStateProps(this.store, this.props);\n\t if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n\t return false;\n\t }\n\t\n\t this.stateProps = nextStateProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n\t var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n\t if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n\t return false;\n\t }\n\t\n\t this.dispatchProps = nextDispatchProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n\t var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n\t if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n\t return false;\n\t }\n\t\n\t this.mergedProps = nextMergedProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.isSubscribed = function isSubscribed() {\n\t return typeof this.unsubscribe === 'function';\n\t };\n\t\n\t Connect.prototype.trySubscribe = function trySubscribe() {\n\t if (shouldSubscribe && !this.unsubscribe) {\n\t this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n\t this.handleChange();\n\t }\n\t };\n\t\n\t Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n\t if (this.unsubscribe) {\n\t this.unsubscribe();\n\t this.unsubscribe = null;\n\t }\n\t };\n\t\n\t Connect.prototype.componentDidMount = function componentDidMount() {\n\t this.trySubscribe();\n\t };\n\t\n\t Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n\t this.haveOwnPropsChanged = true;\n\t }\n\t };\n\t\n\t Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.tryUnsubscribe();\n\t this.clearCache();\n\t };\n\t\n\t Connect.prototype.clearCache = function clearCache() {\n\t this.dispatchProps = null;\n\t this.stateProps = null;\n\t this.mergedProps = null;\n\t this.haveOwnPropsChanged = true;\n\t this.hasStoreStateChanged = true;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t this.renderedElement = null;\n\t this.finalMapDispatchToProps = null;\n\t this.finalMapStateToProps = null;\n\t };\n\t\n\t Connect.prototype.handleChange = function handleChange() {\n\t if (!this.unsubscribe) {\n\t return;\n\t }\n\t\n\t var storeState = this.store.getState();\n\t var prevStoreState = this.state.storeState;\n\t if (pure && prevStoreState === storeState) {\n\t return;\n\t }\n\t\n\t if (pure && !this.doStatePropsDependOnOwnProps) {\n\t var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n\t if (!haveStatePropsChanged) {\n\t return;\n\t }\n\t if (haveStatePropsChanged === errorObject) {\n\t this.statePropsPrecalculationError = errorObject.value;\n\t }\n\t this.haveStatePropsBeenPrecalculated = true;\n\t }\n\t\n\t this.hasStoreStateChanged = true;\n\t this.setState({ storeState: storeState });\n\t };\n\t\n\t Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n\t (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\t\n\t return this.refs.wrappedInstance;\n\t };\n\t\n\t Connect.prototype.render = function render() {\n\t var haveOwnPropsChanged = this.haveOwnPropsChanged;\n\t var hasStoreStateChanged = this.hasStoreStateChanged;\n\t var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n\t var statePropsPrecalculationError = this.statePropsPrecalculationError;\n\t var renderedElement = this.renderedElement;\n\t\n\t this.haveOwnPropsChanged = false;\n\t this.hasStoreStateChanged = false;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t\n\t if (statePropsPrecalculationError) {\n\t throw statePropsPrecalculationError;\n\t }\n\t\n\t var shouldUpdateStateProps = true;\n\t var shouldUpdateDispatchProps = true;\n\t if (pure && renderedElement) {\n\t shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n\t shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n\t }\n\t\n\t var haveStatePropsChanged = false;\n\t var haveDispatchPropsChanged = false;\n\t if (haveStatePropsBeenPrecalculated) {\n\t haveStatePropsChanged = true;\n\t } else if (shouldUpdateStateProps) {\n\t haveStatePropsChanged = this.updateStatePropsIfNeeded();\n\t }\n\t if (shouldUpdateDispatchProps) {\n\t haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n\t }\n\t\n\t var haveMergedPropsChanged = true;\n\t if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n\t haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n\t } else {\n\t haveMergedPropsChanged = false;\n\t }\n\t\n\t if (!haveMergedPropsChanged && renderedElement) {\n\t return renderedElement;\n\t }\n\t\n\t if (withRef) {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n\t ref: 'wrappedInstance'\n\t }));\n\t } else {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n\t }\n\t\n\t return this.renderedElement;\n\t };\n\t\n\t return Connect;\n\t }(_react.Component);\n\t\n\t Connect.displayName = connectDisplayName;\n\t Connect.WrappedComponent = WrappedComponent;\n\t Connect.contextTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t Connect.propTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t\n\t if (false) {\n\t Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n\t if (this.version === version) {\n\t return;\n\t }\n\t\n\t // We are hot reloading!\n\t this.version = version;\n\t this.trySubscribe();\n\t this.clearCache();\n\t };\n\t }\n\t\n\t return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n\t };\n\t}\n\n/***/ },\n/* 37 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = wrapActionCreators;\n\t\n\tvar _redux = __webpack_require__(39);\n\t\n\tfunction wrapActionCreators(actionCreators) {\n\t return function (dispatch) {\n\t return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n\t };\n\t}\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\t\n\tvar _createStore = __webpack_require__(40);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _combineReducers = __webpack_require__(49);\n\t\n\tvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\t\n\tvar _bindActionCreators = __webpack_require__(51);\n\t\n\tvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\t\n\tvar _applyMiddleware = __webpack_require__(52);\n\t\n\tvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\t\n\tvar _compose = __webpack_require__(53);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tvar _warning = __webpack_require__(50);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t* This is a dummy function to check if the function name has been altered by minification.\n\t* If the function has been minified and NODE_ENV !== 'production', warn the user.\n\t*/\n\tfunction isCrushed() {}\n\t\n\tif (false) {\n\t (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n\t}\n\t\n\texports.createStore = _createStore2['default'];\n\texports.combineReducers = _combineReducers2['default'];\n\texports.bindActionCreators = _bindActionCreators2['default'];\n\texports.applyMiddleware = _applyMiddleware2['default'];\n\texports.compose = _compose2['default'];\n\n/***/ },\n/* 40 */\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__(41);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(46);\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} [preloadedState] 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, preloadedState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = preloadedState;\n\t preloadedState = 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, preloadedState);\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 = preloadedState;\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 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/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getPrototype = __webpack_require__(42),\n\t isHostObject = __webpack_require__(44),\n\t isObjectLike = __webpack_require__(45);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) ||\n\t objectToString.call(value) != objectTag || isHostObject(value)) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return (typeof Ctor == 'function' &&\n\t Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(43);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ },\n/* 43 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ },\n/* 44 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = isHostObject;\n\n\n/***/ },\n/* 45 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(47);\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _ponyfill = __webpack_require__(48);\n\t\n\tvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar root = undefined; /* global window */\n\t\n\tif (typeof global !== 'undefined') {\n\t\troot = global;\n\t} else if (typeof window !== 'undefined') {\n\t\troot = window;\n\t}\n\t\n\tvar result = (0, _ponyfill2['default'])(root);\n\texports['default'] = result;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\texports['default'] = symbolObservablePonyfill;\n\tfunction symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar _Symbol = root.Symbol;\n\t\n\t\tif (typeof _Symbol === 'function') {\n\t\t\tif (_Symbol.observable) {\n\t\t\t\tresult = _Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = _Symbol('observable');\n\t\t\t\t_Symbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = combineReducers;\n\t\n\tvar _createStore = __webpack_require__(40);\n\t\n\tvar _isPlainObject = __webpack_require__(41);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(50);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction getUndefinedStateErrorMessage(key, action) {\n\t var actionType = action && action.type;\n\t var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\t\n\t return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n\t}\n\t\n\tfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n\t var reducerKeys = Object.keys(reducers);\n\t var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\t\n\t if (reducerKeys.length === 0) {\n\t return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n\t }\n\t\n\t if (!(0, _isPlainObject2['default'])(inputState)) {\n\t return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n\t }\n\t\n\t var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n\t return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n\t });\n\t\n\t unexpectedKeys.forEach(function (key) {\n\t unexpectedKeyCache[key] = true;\n\t });\n\t\n\t if (unexpectedKeys.length > 0) {\n\t return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n\t }\n\t}\n\t\n\tfunction assertReducerSanity(reducers) {\n\t Object.keys(reducers).forEach(function (key) {\n\t var reducer = reducers[key];\n\t var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\t\n\t if (typeof initialState === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n\t }\n\t\n\t var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\t if (typeof reducer(undefined, { type: type }) === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Turns an object whose values are different reducer functions, into a single\n\t * reducer function. It will call every child reducer, and gather their results\n\t * into a single state object, whose keys correspond to the keys of the passed\n\t * reducer functions.\n\t *\n\t * @param {Object} reducers An object whose values correspond to different\n\t * reducer functions that need to be combined into one. One handy way to obtain\n\t * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n\t * undefined for any action. Instead, they should return their initial state\n\t * if the state passed to them was undefined, and the current state for any\n\t * unrecognized action.\n\t *\n\t * @returns {Function} A reducer function that invokes every reducer inside the\n\t * passed object, and builds a state object with the same shape.\n\t */\n\tfunction combineReducers(reducers) {\n\t var reducerKeys = Object.keys(reducers);\n\t var finalReducers = {};\n\t for (var i = 0; i < reducerKeys.length; i++) {\n\t var key = reducerKeys[i];\n\t\n\t if (false) {\n\t if (typeof reducers[key] === 'undefined') {\n\t (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n\t }\n\t }\n\t\n\t if (typeof reducers[key] === 'function') {\n\t finalReducers[key] = reducers[key];\n\t }\n\t }\n\t var finalReducerKeys = Object.keys(finalReducers);\n\t\n\t if (false) {\n\t var unexpectedKeyCache = {};\n\t }\n\t\n\t var sanityError;\n\t try {\n\t assertReducerSanity(finalReducers);\n\t } catch (e) {\n\t sanityError = e;\n\t }\n\t\n\t return function combination() {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (sanityError) {\n\t throw sanityError;\n\t }\n\t\n\t if (false) {\n\t var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\t if (warningMessage) {\n\t (0, _warning2['default'])(warningMessage);\n\t }\n\t }\n\t\n\t var hasChanged = false;\n\t var nextState = {};\n\t for (var i = 0; i < finalReducerKeys.length; i++) {\n\t var key = finalReducerKeys[i];\n\t var reducer = finalReducers[key];\n\t var previousStateForKey = state[key];\n\t var nextStateForKey = reducer(previousStateForKey, action);\n\t if (typeof nextStateForKey === 'undefined') {\n\t var errorMessage = getUndefinedStateErrorMessage(key, action);\n\t throw new Error(errorMessage);\n\t }\n\t nextState[key] = nextStateForKey;\n\t hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n\t }\n\t return hasChanged ? nextState : state;\n\t };\n\t}\n\n/***/ },\n/* 50 */\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/* 51 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = bindActionCreators;\n\tfunction bindActionCreator(actionCreator, dispatch) {\n\t return function () {\n\t return dispatch(actionCreator.apply(undefined, arguments));\n\t };\n\t}\n\t\n\t/**\n\t * Turns an object whose values are action creators, into an object with the\n\t * same keys, but with every function wrapped into a `dispatch` call so they\n\t * may be invoked directly. This is just a convenience method, as you can call\n\t * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n\t *\n\t * For convenience, you can also pass a single function as the first argument,\n\t * and get a function in return.\n\t *\n\t * @param {Function|Object} actionCreators An object whose values are action\n\t * creator functions. One handy way to obtain it is to use ES6 `import * as`\n\t * syntax. You may also pass a single function.\n\t *\n\t * @param {Function} dispatch The `dispatch` function available on your Redux\n\t * store.\n\t *\n\t * @returns {Function|Object} The object mimicking the original object, but with\n\t * every action creator wrapped into the `dispatch` call. If you passed a\n\t * function as `actionCreators`, the return value will also be a single\n\t * function.\n\t */\n\tfunction bindActionCreators(actionCreators, dispatch) {\n\t if (typeof actionCreators === 'function') {\n\t return bindActionCreator(actionCreators, dispatch);\n\t }\n\t\n\t if (typeof actionCreators !== 'object' || actionCreators === null) {\n\t throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n\t }\n\t\n\t var keys = Object.keys(actionCreators);\n\t var boundActionCreators = {};\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var actionCreator = actionCreators[key];\n\t if (typeof actionCreator === 'function') {\n\t boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n\t }\n\t }\n\t return boundActionCreators;\n\t}\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\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\texports['default'] = applyMiddleware;\n\t\n\tvar _compose = __webpack_require__(53);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * Creates a store enhancer that applies middleware to the dispatch method\n\t * of the Redux store. This is handy for a variety of tasks, such as expressing\n\t * asynchronous actions in a concise manner, or logging every action payload.\n\t *\n\t * See `redux-thunk` package as an example of the Redux middleware.\n\t *\n\t * Because middleware is potentially asynchronous, this should be the first\n\t * store enhancer in the composition chain.\n\t *\n\t * Note that each middleware will be given the `dispatch` and `getState` functions\n\t * as named arguments.\n\t *\n\t * @param {...Function} middlewares The middleware chain to be applied.\n\t * @returns {Function} A store enhancer applying the middleware.\n\t */\n\tfunction applyMiddleware() {\n\t for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n\t middlewares[_key] = arguments[_key];\n\t }\n\t\n\t return function (createStore) {\n\t return function (reducer, preloadedState, enhancer) {\n\t var store = createStore(reducer, preloadedState, enhancer);\n\t var _dispatch = store.dispatch;\n\t var chain = [];\n\t\n\t var middlewareAPI = {\n\t getState: store.getState,\n\t dispatch: function dispatch(action) {\n\t return _dispatch(action);\n\t }\n\t };\n\t chain = middlewares.map(function (middleware) {\n\t return middleware(middlewareAPI);\n\t });\n\t _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\t\n\t return _extends({}, store, {\n\t dispatch: _dispatch\n\t });\n\t };\n\t };\n\t}\n\n/***/ },\n/* 53 */\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 }\n\t\n\t if (funcs.length === 1) {\n\t return funcs[0];\n\t }\n\t\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return function () {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t };\n\t}\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2015, Yahoo! Inc.\n\t * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n\t */\n\t'use strict';\n\t\n\tvar REACT_STATICS = {\n\t childContextTypes: true,\n\t contextTypes: true,\n\t defaultProps: true,\n\t displayName: true,\n\t getDefaultProps: true,\n\t mixins: true,\n\t propTypes: true,\n\t type: true\n\t};\n\t\n\tvar KNOWN_STATICS = {\n\t name: true,\n\t length: true,\n\t prototype: true,\n\t caller: true,\n\t arguments: true,\n\t arity: true\n\t};\n\t\n\tvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\t\n\tmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n\t if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\t var keys = Object.getOwnPropertyNames(sourceComponent);\n\t\n\t /* istanbul ignore else */\n\t if (isGetOwnPropertySymbolsAvailable) {\n\t keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n\t }\n\t\n\t for (var i = 0; i < keys.length; ++i) {\n\t if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n\t try {\n\t targetComponent[keys[i]] = sourceComponent[keys[i]];\n\t } catch (error) {\n\t\n\t }\n\t }\n\t }\n\t }\n\t\n\t return targetComponent;\n\t};\n\n\n/***/ },\n/* 55 */\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.PersistentQueryLink = exports.Link = 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 _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 _react = __webpack_require__(31);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(22);\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\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar handleClick = function handleClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t var onClick = _ref2.onClick;\n\t\n\t if (onClick) {\n\t onClick(e);\n\t }\n\t\n\t if (hasModifier(e) || isNotLeftClick(e)) {\n\t return;\n\t }\n\t\n\t if (e.defaultPrevented) {\n\t return;\n\t }\n\t\n\t // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n\t if (target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var children = props.children;\n\t var href = props.href;\n\t var onClick = props.onClick;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var target = props.target;\n\t\n\t var rest = _objectWithoutProperties(props, ['children', 'href', 'onClick', 'persistQuery', 'replaceState', 'target']);\n\t\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: normalizeHref(location),\n\t onClick: function (_onClick) {\n\t function onClick(_x) {\n\t return _onClick.apply(this, arguments);\n\t }\n\t\n\t onClick.toString = function () {\n\t return _onClick.toString();\n\t };\n\t\n\t return onClick;\n\t }(function (e) {\n\t return handleClick({\n\t e: e,\n\t location: location,\n\t onClick: onClick,\n\t replaceState: replaceState,\n\t router: router,\n\t target: target\n\t });\n\t })\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, (PersistentQueryLink.__proto__ || Object.getPrototypeOf(PersistentQueryLink)).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 56 */\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.RelativeFragment = exports.AbsoluteFragment = 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__(31);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\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\tvar absolute = function absolute(ComposedComponent) {\n\t var AbsoluteFragment = function (_Component) {\n\t _inherits(AbsoluteFragment, _Component);\n\t\n\t function AbsoluteFragment() {\n\t _classCallCheck(this, AbsoluteFragment);\n\t\n\t return _possibleConstructorReturn(this, (AbsoluteFragment.__proto__ || Object.getPrototypeOf(AbsoluteFragment)).apply(this, arguments));\n\t }\n\t\n\t _createClass(AbsoluteFragment, [{\n\t key: 'render',\n\t value: function render() {\n\t var store = this.context.router.store;\n\t\n\t var location = store.getState().router;\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t location: location,\n\t matchRoute: store.matchRoute\n\t }, this.props));\n\t }\n\t }]);\n\t\n\t return AbsoluteFragment;\n\t }(_react.Component);\n\t\n\t AbsoluteFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t };\n\t\n\t return AbsoluteFragment;\n\t};\n\t\n\tvar relative = function relative(ComposedComponent) {\n\t var RelativeFragment = function (_Component2) {\n\t _inherits(RelativeFragment, _Component2);\n\t\n\t function RelativeFragment() {\n\t _classCallCheck(this, RelativeFragment);\n\t\n\t return _possibleConstructorReturn(this, (RelativeFragment.__proto__ || Object.getPrototypeOf(RelativeFragment)).apply(this, arguments));\n\t }\n\t\n\t _createClass(RelativeFragment, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t // Append the parent route if this isn't the first\n\t // RelativeFragment in the hierarchy.\n\t parentRoute: this.context.parentRoute && this.context.parentRoute !== '/' && this.context.parentRoute !== this.props.forRoute ? '' + this.context.parentRoute + this.props.forRoute : this.props.forRoute\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t var forRoute = _props.forRoute;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children', 'forRoute']);\n\t\n\t var _context = this.context;\n\t var router = _context.router;\n\t var parentRoute = _context.parentRoute;\n\t var store = router.store;\n\t\n\t\n\t var location = store.getState().router;\n\t\n\t var routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t location: location,\n\t matchRoute: store.matchWildcardRoute,\n\t forRoute: forRoute && '' + routePrefix + forRoute,\n\t children: children\n\t }, rest));\n\t }\n\t }]);\n\t\n\t return RelativeFragment;\n\t }(_react.Component);\n\t\n\t // Consumes this context...\n\t\n\t\n\t RelativeFragment.contextTypes = {\n\t router: _react.PropTypes.object,\n\t parentRoute: _react.PropTypes.string\n\t };\n\t\n\t // ...and provides this context.\n\t RelativeFragment.childContextTypes = {\n\t parentRoute: _react.PropTypes.string\n\t };\n\t\n\t return RelativeFragment;\n\t};\n\t\n\tvar Fragment = function Fragment(props) {\n\t var location = props.location;\n\t var matchRoute = props.matchRoute;\n\t var forRoute = props.forRoute;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t\n\t\n\t var matchResult = matchRoute(location.pathname, forRoute);\n\t\n\t if (!matchResult) {\n\t return null;\n\t }\n\t\n\t if (forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (Array.isArray(props.forRoutes)) {\n\t var anyMatch = props.forRoutes.some(function (route) {\n\t return matchResult.route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\tvar AbsoluteFragment = exports.AbsoluteFragment = absolute(Fragment);\n\tvar RelativeFragment = exports.RelativeFragment = relative(Fragment);\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap f8c162cfce21887e4a46\n **/","// @flow\nimport createStoreWithRouter, {\n locationDidChange,\n initializeCurrentLocation\n} from './store-enhancer';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport { AbsoluteFragment, RelativeFragment } from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nconst Fragment = AbsoluteFragment;\n\nexport {\n // High-level Redux API\n createStoreWithRouter,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n AbsoluteFragment,\n RelativeFragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type {\n Pathname,\n Query,\n Location,\n History\n} from 'history';\n\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport {\n LOCATION_CHANGED,\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nimport { default as matcherFactory } from './create-matcher';\nimport routerReducer from './reducer';\n\nimport flattenRoutes from './util/flatten-routes';\nimport initialRouterState from './util/initial-router-state';\n\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nconst resolveHistory = ({\n basename,\n forServerRender\n}) => {\n const historyFactory = forServerRender\n ? createMemoryHistory\n : createBrowserHistory;\n\n return useBasename(useQueries(historyFactory))({\n basename\n });\n};\n\ntype StoreEnhancerArgs = {\n routes: Object,\n pathname: Pathname,\n query?: Query,\n basename?: Pathname,\n forServerRender?: bool,\n createMatcher?: Function,\n history?: History\n};\n\nexport default ({\n routes: nestedRoutes,\n pathname,\n query,\n basename = '',\n forServerRender = false,\n createMatcher = matcherFactory,\n history: userHistory\n}: StoreEnhancerArgs) => {\n if (!nestedRoutes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(nestedRoutes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n\n const routes = flattenRoutes(nestedRoutes);\n\n const history = userHistory || resolveHistory({\n basename, forServerRender\n });\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = (state, action) => {\n const vanillaState = { ...state };\n delete vanillaState.router;\n\n const newState = reducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...newState,\n router: routerReducer(state && state.router, action)\n };\n };\n\n const store = createStore(\n enhancedReducer,\n pathname || query ? {\n ...initialState,\n router: initialRouterState({\n pathname, query: query || {}, routes, history\n })\n } : initialState,\n enhancer\n );\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n history.listen(location => {\n if (location) {\n store.dispatch(locationDidChange({\n location, matchRoute\n }));\n }\n });\n\n const dispatch = action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n };\n\n return {\n ...store,\n dispatch,\n\n // We attach routes here to allow \n // to access unserializable properties of route results.\n routes,\n\n history,\n matchRoute,\n matchWildcardRoute\n };\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _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\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, 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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\n * Copyright 2014-2015, 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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _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\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 16\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 17\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/~/object-assign/index.js\n ** module id = 21\n ** module chunks = 0\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 24\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 25\n ** module chunks = 0\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (state && state.pathname === action.payload.pathname) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n if (state) {\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldState } = state;\n return {\n ...action.payload,\n previous: oldState\n };\n }\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","import assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes, acc = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/flatten-routes.js\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash.assign/index.js\n ** module id = 28\n ** module chunks = 0\n **/","// @flow\nimport type {\n Query,\n History\n} from 'history';\n\nimport createMatcher from '../create-matcher';\n\ntype Args = {\n pathname: string,\n query: Query,\n routes: {[key: string]: Object},\n history: History\n};\n\nexport default ({\n pathname = '/',\n query = {},\n routes,\n history\n}: Args) => ({\n ...history.createLocation({\n pathname,\n query\n }),\n ...createMatcher(routes)(pathname)\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/initial-router-state.js\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: Store };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_31__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 31\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 32\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 33\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 34\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 35\n ** module chunks = 0\n **/","'use strict';\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\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 36\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 37\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 38\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 39\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 40\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 41\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 42\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 43\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 44\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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 = 45\n ** module chunks = 0\n **/","module.exports = require('./lib/index');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 46\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root = undefined; /* global window */\n\nif (typeof global !== 'undefined') {\n\troot = global;\n} else if (typeof window !== 'undefined') {\n\troot = window;\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/index.js\n ** module id = 47\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/ponyfill.js\n ** module id = 48\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 49\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 50\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 51\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\nexports['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 52\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 53\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 54\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({\n e,\n target,\n location,\n replaceState,\n router,\n onClick\n}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\n\nimport React, { Component, PropTypes } from 'react';\n\ntype RelativeProps = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n children: React.Element<*>\n};\n\ntype AbsoluteProps = RelativeProps & {\n forRoutes?: [string]\n};\n\nconst absolute = (ComposedComponent: ReactClass<*>) => {\n class AbsoluteFragment extends Component {\n props: AbsoluteProps;\n\n render() {\n const { store } = this.context.router;\n const location = store.getState().router;\n\n return (\n \n );\n }\n }\n\n AbsoluteFragment.contextTypes = {\n router: PropTypes.object\n };\n\n return AbsoluteFragment;\n};\n\nconst relative = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n getChildContext() {\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: this.context.parentRoute &&\n this.context.parentRoute !== '/' &&\n this.context.parentRoute !== this.props.forRoute\n ? `${this.context.parentRoute}${this.props.forRoute}`\n : this.props.forRoute\n };\n }\n\n props: RelativeProps;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\ntype Props = AbsoluteProps | RelativeProps;\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (!matchResult) { return null; }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (Array.isArray(props.forRoutes)) {\n const anyMatch = props.forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nexport const AbsoluteFragment = absolute(Fragment);\nexport const RelativeFragment = relative(Fragment);\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///redux-little-router.min.js","webpack:///webpack/bootstrap 076196f0fe7b6aa6248e","webpack:///./index.js","webpack:///./browser-router.js","webpack:///../~/history/lib/createBrowserHistory.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/lib/ExecutionEnvironment.js","webpack:///../~/history/lib/BrowserProtocol.js","webpack:///../~/history/lib/LocationUtils.js","webpack:///../~/history/lib/PathUtils.js","webpack:///../~/warning/browser.js","webpack:///../~/history/lib/Actions.js","webpack:///../~/history/lib/DOMUtils.js","webpack:///../~/history/lib/DOMStateStorage.js","webpack:///../~/history/lib/RefreshProtocol.js","webpack:///../~/history/lib/createHistory.js","webpack:///../~/history/lib/AsyncUtils.js","webpack:///../~/history/lib/runTransitionHook.js","webpack:///../~/history/lib/useBasename.js","webpack:///../~/history/lib/useQueries.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./store-enhancer.js","webpack:///./create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./reducer-enhancer.js","webpack:///./reducer.js","webpack:///./action-types.js","webpack:///./action-creators.js","webpack:///./wrap-dispatch.js","webpack:///./util/validate-routes.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./express-router.js","webpack:///../~/history/lib/createMemoryHistory.js","webpack:///./provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/_isHostObject.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./link.js","webpack:///./fragment.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_36__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","createMatcher","locationDidChange","createStoreWithRouter","routerReducer","GO_BACK","GO_FORWARD","GO","REPLACE","PUSH","LOCATION_CHANGED","RelativeFragment","AbsoluteFragment","Fragment","PersistentQueryLink","Link","RouterProvider","provideRouter","initializeCurrentLocation","routerForExpress","routerForBrowser","undefined","_browserRouter","_browserRouter2","_expressRouter","_expressRouter2","_storeEnhancer","_storeEnhancer2","_actionCreators","_provider","_provider2","_link","_fragment","_reducer","_reducer2","_createMatcher","_createMatcher2","_actionTypes","_createBrowserHistory","_createBrowserHistory2","_useBasename","_useBasename2","_useQueries","_useQueries2","realLocation","window","location","_ref","routes","basename","_ref$getLocation","getLocation","history","_getLocation","pathname","search","createLocation","_interopRequireWildcard","newObj","key","prototype","hasOwnProperty","_extends","assign","target","i","arguments","length","source","_invariant","_invariant2","_ExecutionEnvironment","_BrowserProtocol","BrowserProtocol","_RefreshProtocol","RefreshProtocol","_DOMUtils","_createHistory","_createHistory2","createBrowserHistory","options","canUseDOM","useRefresh","forceRefresh","supportsHistory","Protocol","getUserConfirmation","getCurrentLocation","pushLocation","replaceLocation","go","listenerCount","stopListener","startListener","listener","before","transitionTo","unlisten","listenBefore","listen","invariant","condition","format","a","b","d","e","f","error","Error","args","argIndex","replace","name","framesToPop","document","createElement","_LocationUtils","_DOMStateStorage","_PathUtils","PopStateEvent","_createLocation","historyState","hash","state","readState","updateLocation","message","callback","confirm","handlePopState","event","addEventListener","removeEventListener","updateState","saveState","createPath","path","pushState","replaceState","n","locationsAreEqual","statesAreEqual","createQuery","_typeof","Symbol","iterator","constructor","_Actions","isDate","props","create","input","action","POP","object","parsePath","toString","typeofA","typeofB","Array","isArray","every","item","index","keys","getQueryStringValueFromPath","stripQueryStringValueFromPath","addQueryStringValueToPath","isAbsolutePath","_warning","extractPath","charAt","_parsePath","indexOf","_parsePath2","RegExp","match","prefix","suffix","_parsePath3","string","substring","hashIndex","searchIndex","warning","node","attachEvent","detachEvent","ua","navigator","userAgent","supportsGoWithoutReloadUsingHash","QuotaExceededErrors","SecurityError","KeyPrefix","createKey","sessionStorage","removeItem","setItem","JSON","stringify","json","getItem","parse","enumerable","get","href","_toConsumableArray","arr","arr2","from","_AsyncUtils","_runTransitionHook","_runTransitionHook2","createHistory","keyLength","currentLocation","pendingLocation","beforeListeners","listeners","allKeys","getCurrentIndex","nextLocation","currentIndex","concat","slice","forEach","push","filter","confirmTransitionTo","loopAsync","next","done","result","ok","prevPath","nextPath","prevIndex","nextIndex","goBack","goForward","Math","random","substr","createHref","turns","work","currentTurn","isDone","isSync","hasNext","doneArgs","_len","_key","apply","runTransitionHook","hook","useBasename","addBasename","prependBasename","pname","normalizedBasename","normalizedPathname","_queryString","defaultStringifyQuery","query","defaultParseQueryString","useQueries","stringifyQuery","parseQueryString","decodeQuery","encodeQuery","queryString","newLocation","encode","opts","strict","strictUriEncode","encodeURIComponent","objectAssign","extract","str","split","ret","trim","param","parts","shift","val","join","decodeURIComponent","defaults","sort","map","val2","x","charCodeAt","toUpperCase","toObject","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","propIsEnumerable","propertyIsEnumerable","symbols","to","s","getOwnPropertySymbols","_reducerEnhancer","_reducerEnhancer2","_wrapDispatch","_wrapDispatch2","_validateRoutes","_validateRoutes2","_flattenRoutes","_flattenRoutes2","nestedRoutes","_ref$createMatcher","createStore","reducer","initialState","enhancer","enhancedReducer","matchRoute","matchWildcardRoute","initialStateWithRouter","router","store","dispatch","_urlPattern","_urlPattern2","find","list","predicate","wildcardMatcher","routeList","incomingUrl","routeToMatch","storedRoute","route","pattern","params","eagerMatcher","wildcard","reverse","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","UrlPattern","P","astNodeContainsSegmentsForProvidedParams","astNodeToNames","astNodeToRegexString","baseAstNodeToRegexString","concatMap","defaultOptions","escapeForRegex","getParam","keysAndValuesToObject","newParser","regexGroupCount","stringConcatMap","array","results","regex","exec","values","Result","rest","Tagged","tag","parser","tagged","matches","sequence","parsers","pick","indexes","lazy","fn","cached","baseMany","end","stringResult","atLeastOneResultRequired","endResult","parserResult","many1","concatMany1Till","firstChoice","U","wildcardChar","optional","optionalSegmentStartChar","optionalSegmentEndChar","segmentNameCharset","named","segmentNameStartChar","escapedChar","escapeChar","token","segmentValueCharset","astNode","nextIndexes","sideEffects","maxIndex","arg1","arg2","groupCount","parsed","withoutWhitespace","isRegex","ast","names","url","groups","__webpack_amd_options__","vanillaReducer","vanillaState","newState","nextState","nextEffects","_objectWithoutProperties","type","payload","oldState","previous","README_MESSAGE","_defineProperty","configurable","writable","_lodash","_lodash2","filterObject","reduce","acc","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","baseRoute","routeKey","routeValue","parent","func","thisArg","baseTimes","iteratee","overArg","transform","arg","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignValue","objValue","eq","baseKeys","isPrototype","nativeKeys","baseRest","start","nativeMax","otherArgs","copyObject","customizer","createAssigner","assigner","sources","guard","isIterateeCall","MAX_SAFE_INTEGER","reIsUint","test","isObject","isArrayLike","Ctor","proto","objectProto","other","isArrayLikeObject","objectToString","argsTag","isLength","isFunction","isObjectLike","funcTag","genTag","max","nonEnumShadows","valueOf","_createMemoryHistory","_createMemoryHistory2","request","baseUrl","createStateStorage","entries","entry","memo","createMemoryHistory","current","init","canGo","splice","_options","storage","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_createClass","defineProperties","descriptor","protoProps","staticProps","_react","_react2","_reactRedux","RouterProviderImpl","_Component","_this","getPrototypeOf","routerState","getState","cloneElement","children","Component","childContextTypes","PropTypes","connect","ComposedComponent","Provider","_Provider","_Provider2","_connect","_connect2","_storeShape","_storeShape2","context","getChildContext","render","Children","only","propTypes","isRequired","element","shape","subscribe","console","getDisplayName","WrappedComponent","displayName","tryCatch","ctx","errorObject","mapStateToProps","mapDispatchToProps","mergeProps","shouldSubscribe","Boolean","mapState","defaultMapStateToProps","mapDispatch","_wrapActionCreators2","defaultMapDispatchToProps","finalMergeProps","defaultMergeProps","_options$pure","pure","_options$withRef","withRef","checkMergedEquals","version","nextVersion","computeMergedProps","stateProps","dispatchProps","parentProps","mergedProps","connectDisplayName","Connect","storeState","clearCache","shouldComponentUpdate","haveOwnPropsChanged","hasStoreStateChanged","computeStateProps","finalMapStateToProps","configureFinalMapState","doStatePropsDependOnOwnProps","mappedState","isFactory","computeDispatchProps","finalMapDispatchToProps","configureFinalMapDispatch","doDispatchPropsDependOnOwnProps","mappedDispatch","updateStatePropsIfNeeded","nextStateProps","_shallowEqual2","updateDispatchPropsIfNeeded","nextDispatchProps","updateMergedPropsIfNeeded","nextMergedProps","isSubscribed","unsubscribe","trySubscribe","handleChange","bind","tryUnsubscribe","componentDidMount","componentWillReceiveProps","nextProps","componentWillUnmount","haveStatePropsBeenPrecalculated","statePropsPrecalculationError","renderedElement","prevStoreState","haveStatePropsChanged","setState","getWrappedInstance","refs","wrappedInstance","shouldUpdateStateProps","shouldUpdateDispatchProps","haveDispatchPropsChanged","haveMergedPropsChanged","ref","contextTypes","_hoistNonReactStatics2","_shallowEqual","_wrapActionCreators","_isPlainObject","_hoistNonReactStatics","shallowEqual","objA","objB","keysA","keysB","hasOwn","wrapActionCreators","actionCreators","_redux","bindActionCreators","compose","applyMiddleware","combineReducers","_createStore","_createStore2","_combineReducers","_combineReducers2","_bindActionCreators","_bindActionCreators2","_applyMiddleware","_applyMiddleware2","_compose","_compose2","preloadedState","ensureCanMutateNextListeners","nextListeners","currentListeners","currentState","_isPlainObject2","isDispatching","currentReducer","replaceReducer","nextReducer","ActionTypes","INIT","observable","outerSubscribe","observer","observeState","_symbolObservable2","_ref2","_symbolObservable","isPlainObject","objectTag","isHostObject","getPrototype","funcToString","objectCtorString","funcProto","Function","global","_ponyfill","_ponyfill2","symbolObservablePonyfill","_Symbol","getUndefinedStateErrorMessage","actionType","actionName","assertReducerSanity","reducers","reducerKeys","finalReducers","sanityError","finalReducerKeys","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","boundActionCreators","middlewares","_dispatch","chain","middlewareAPI","middleware","funcs","last","reduceRight","composed","REACT_STATICS","defaultProps","getDefaultProps","mixins","KNOWN_STATICS","caller","arity","isGetOwnPropertySymbolsAvailable","targetComponent","sourceComponent","customStatics","LEFT_MOUSE_BUTTON","normalizeHref","normalizeLocation","pathnameAndQuery","resolveQueryForLocation","linkLocation","persistQuery","currentQuery","isNotLeftClick","button","hasModifier","shiftKey","altKey","metaKey","ctrlKey","handleClick","onClick","defaultPrevented","preventDefault","locationDescriptor","_onClick","_x","_props","absolute","relative","_Component2","parentRoute","forRoute","_context","routePrefix","withConditions","matchResult","forRoutes","anyMatch","some"],"mappings":"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","file":"redux-little-router.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_36__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_36__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.createMatcher = exports.locationDidChange = exports.createStoreWithRouter = exports.routerReducer = exports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.RelativeFragment = exports.AbsoluteFragment = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.RouterProvider = exports.provideRouter = exports.initializeCurrentLocation = exports.routerForExpress = exports.routerForBrowser = undefined;\n\t\n\tvar _browserRouter = __webpack_require__(1);\n\t\n\tvar _browserRouter2 = _interopRequireDefault(_browserRouter);\n\t\n\tvar _expressRouter = __webpack_require__(33);\n\t\n\tvar _expressRouter2 = _interopRequireDefault(_expressRouter);\n\t\n\tvar _storeEnhancer = __webpack_require__(21);\n\t\n\tvar _storeEnhancer2 = _interopRequireDefault(_storeEnhancer);\n\t\n\tvar _actionCreators = __webpack_require__(28);\n\t\n\tvar _provider = __webpack_require__(35);\n\t\n\tvar _provider2 = _interopRequireDefault(_provider);\n\t\n\tvar _link = __webpack_require__(60);\n\t\n\tvar _fragment = __webpack_require__(61);\n\t\n\tvar _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _createMatcher = __webpack_require__(22);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _actionTypes = __webpack_require__(27);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar Fragment = _fragment.AbsoluteFragment;\n\t\n\texports.routerForBrowser = _browserRouter2.default;\n\texports.routerForExpress = _expressRouter2.default;\n\texports.initializeCurrentLocation = _actionCreators.initializeCurrentLocation;\n\texports.provideRouter = _provider2.default;\n\texports.RouterProvider = _provider.RouterProvider;\n\texports.Link = _link.Link;\n\texports.PersistentQueryLink = _link.PersistentQueryLink;\n\texports.Fragment = Fragment;\n\texports.AbsoluteFragment = _fragment.AbsoluteFragment;\n\texports.RelativeFragment = _fragment.RelativeFragment;\n\texports.LOCATION_CHANGED = _actionTypes.LOCATION_CHANGED;\n\texports.PUSH = _actionTypes.PUSH;\n\texports.REPLACE = _actionTypes.REPLACE;\n\texports.GO = _actionTypes.GO;\n\texports.GO_FORWARD = _actionTypes.GO_FORWARD;\n\texports.GO_BACK = _actionTypes.GO_BACK;\n\texports.routerReducer = _reducer2.default;\n\texports.createStoreWithRouter = _storeEnhancer2.default;\n\texports.locationDidChange = _actionCreators.locationDidChange;\n\texports.createMatcher = _createMatcher2.default;\n\n/***/ },\n/* 1 */\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 _createBrowserHistory = __webpack_require__(2);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _useBasename = __webpack_require__(16);\n\t\n\tvar _useBasename2 = _interopRequireDefault(_useBasename);\n\t\n\tvar _useQueries = __webpack_require__(17);\n\t\n\tvar _useQueries2 = _interopRequireDefault(_useQueries);\n\t\n\tvar _storeEnhancer = __webpack_require__(21);\n\t\n\tvar _storeEnhancer2 = _interopRequireDefault(_storeEnhancer);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/* istanbul ignore next: unstubbable! */\n\tvar realLocation = function realLocation() {\n\t return window.location;\n\t};\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes;\n\t var basename = _ref.basename;\n\t var _ref$getLocation = _ref.getLocation;\n\t var getLocation = _ref$getLocation === undefined ? realLocation : _ref$getLocation;\n\t\n\t var history = (0, _useBasename2.default)((0, _useQueries2.default)(_createBrowserHistory2.default))({\n\t basename: basename\n\t });\n\t\n\t var _getLocation = getLocation();\n\t\n\t var pathname = _getLocation.pathname;\n\t var search = _getLocation.search;\n\t\n\t var location = history.createLocation({ pathname: pathname, search: search });\n\t\n\t return (0, _storeEnhancer2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 2 */\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 _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 _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _ExecutionEnvironment = __webpack_require__(4);\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\t\n\tvar _RefreshProtocol = __webpack_require__(12);\n\t\n\tvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\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/**\n\t * Creates and returns a history object that uses HTML5's history API\n\t * (pushState, replaceState, and the popstate event) to manage history.\n\t * This is the recommended method of managing history in browsers because\n\t * it provides the cleanest URLs.\n\t *\n\t * Note: In browsers that do not support the HTML5 history API full\n\t * page reloads will be used to preserve clean URLs. You can force this\n\t * behavior using { forceRefresh: true } in options.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t !_ExecutionEnvironment.canUseDOM ? false ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\t\n\t var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n\t var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\t\n\t var getUserConfirmation = Protocol.getUserConfirmation;\n\t var getCurrentLocation = Protocol.getCurrentLocation;\n\t var pushLocation = Protocol.pushLocation;\n\t var replaceLocation = Protocol.replaceLocation;\n\t var go = Protocol.go;\n\t\n\t\n\t var history = (0, _createHistory2.default)(_extends({\n\t getUserConfirmation: getUserConfirmation }, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var listenerCount = 0,\n\t stopListener = void 0;\n\t\n\t var startListener = function startListener(listener, before) {\n\t if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\t\n\t var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\t\n\t return function () {\n\t unlisten();\n\t\n\t if (--listenerCount === 0) stopListener();\n\t };\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t return startListener(listener, true);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return startListener(listener, false);\n\t };\n\t\n\t return _extends({}, history, {\n\t listenBefore: listenBefore,\n\t listen: listen\n\t });\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, 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'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/***/ },\n/* 5 */\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.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _DOMUtils = __webpack_require__(10);\n\t\n\tvar _DOMStateStorage = __webpack_require__(11);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\t/* eslint-disable no-alert */\n\t\n\t\n\tvar PopStateEvent = 'popstate';\n\t\n\tvar _createLocation = function _createLocation(historyState) {\n\t var key = historyState && historyState.key;\n\t\n\t return (0, _LocationUtils.createLocation)({\n\t pathname: window.location.pathname,\n\t search: window.location.search,\n\t hash: window.location.hash,\n\t state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n\t }, undefined, key);\n\t};\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t var historyState = void 0;\n\t try {\n\t historyState = window.history.state || {};\n\t } catch (error) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/mjackson/history/pull/289\n\t historyState = {};\n\t }\n\t\n\t return _createLocation(historyState);\n\t};\n\t\n\tvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t};\n\t\n\tvar startListener = exports.startListener = function startListener(listener) {\n\t var handlePopState = function handlePopState(event) {\n\t if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n\t listener(_createLocation(event.state));\n\t };\n\t\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t return function () {\n\t return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t };\n\t};\n\t\n\tvar updateLocation = function updateLocation(location, updateState) {\n\t var state = location.state;\n\t var key = location.key;\n\t\n\t\n\t if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\t\n\t updateState({ key: key }, (0, _PathUtils.createPath)(location));\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.pushState(state, null, path);\n\t });\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t return updateLocation(location, function (state, path) {\n\t return window.history.replaceState(state, null, path);\n\t });\n\t};\n\t\n\tvar go = exports.go = function go(n) {\n\t if (n) window.history.go(n);\n\t};\n\n/***/ },\n/* 6 */\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.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createQuery = exports.createQuery = function createQuery(props) {\n\t return _extends(Object.create(null), props);\n\t};\n\t\n\tvar createLocation = exports.createLocation = function createLocation() {\n\t var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n\t var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\t\n\t var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\t\n\t var pathname = object.pathname || '/';\n\t var search = object.search || '';\n\t var hash = object.hash || '';\n\t var state = object.state;\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash,\n\t state: state,\n\t action: action,\n\t key: key\n\t };\n\t};\n\t\n\tvar isDate = function isDate(object) {\n\t return Object.prototype.toString.call(object) === '[object Date]';\n\t};\n\t\n\tvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (typeofA !== typeofB) return false;\n\t\n\t !(typeofA !== 'function') ? false ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t // Not the same object, but same type.\n\t if (typeofA === 'object') {\n\t !!(isDate(a) && isDate(b)) ? false ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\t\n\t if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n\t return statesAreEqual(a[key], b[key]);\n\t });\n\t\n\t return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n\t return statesAreEqual(item, b[index]);\n\t });\n\t }\n\t\n\t // All other serializable types (string, number, boolean)\n\t // should be strict equal.\n\t return false;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.key === b.key &&\n\t // a.action === b.action && // Different action !== location change.\n\t a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n\t};\n\n/***/ },\n/* 7 */\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.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n\t return typeof path === 'string' && path.charAt(0) === '/';\n\t};\n\t\n\tvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n\t var _parsePath = parsePath(path);\n\t\n\t var pathname = _parsePath.pathname;\n\t var search = _parsePath.search;\n\t var hash = _parsePath.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n\t hash: hash\n\t });\n\t};\n\t\n\tvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n\t var _parsePath2 = parsePath(path);\n\t\n\t var pathname = _parsePath2.pathname;\n\t var search = _parsePath2.search;\n\t var hash = _parsePath2.hash;\n\t\n\t\n\t return createPath({\n\t pathname: pathname,\n\t search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n\t return prefix === '?' ? prefix : suffix;\n\t }),\n\t hash: hash\n\t });\n\t};\n\t\n\tvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n\t var _parsePath3 = parsePath(path);\n\t\n\t var search = _parsePath3.search;\n\t\n\t var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n\t return match && match[1];\n\t};\n\t\n\tvar extractPath = function extractPath(string) {\n\t var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n\t return match == null ? string : string.substring(match[0].length);\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = extractPath(path);\n\t var search = '';\n\t var hash = '';\n\t\n\t false ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substring(hashIndex);\n\t pathname = pathname.substring(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substring(searchIndex);\n\t pathname = pathname.substring(0, searchIndex);\n\t }\n\t\n\t if (pathname === '') pathname = '/';\n\t\n\t return {\n\t pathname: pathname,\n\t search: search,\n\t hash: hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t if (location == null || typeof location === 'string') return location;\n\t\n\t var basename = location.basename;\n\t var pathname = location.pathname;\n\t var search = location.search;\n\t var hash = location.hash;\n\t\n\t var path = (basename || '') + pathname;\n\t\n\t if (search && search !== '?') path += search;\n\t\n\t if (hash) path += hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, 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'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t/**\n\t * Indicates that navigation was caused by a call to history.push.\n\t */\n\tvar PUSH = exports.PUSH = 'PUSH';\n\t\n\t/**\n\t * Indicates that navigation was caused by a call to history.replace.\n\t */\n\tvar REPLACE = exports.REPLACE = 'REPLACE';\n\t\n\t/**\n\t * Indicates that navigation was caused by some other action such\n\t * as using a browser's back/forward buttons and/or manually manipulating\n\t * the URL in a browser's location bar. This is the default.\n\t *\n\t * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n\t * for more information.\n\t */\n\tvar POP = exports.POP = 'POP';\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\n/***/ },\n/* 11 */\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.readState = exports.saveState = undefined;\n\t\n\tvar _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\t\n\t\n\tvar SecurityError = 'SecurityError';\n\tvar KeyPrefix = '@@History/';\n\t\n\tvar createKey = function createKey(key) {\n\t return KeyPrefix + key;\n\t};\n\t\n\tvar saveState = exports.saveState = function saveState(key, state) {\n\t if (!window.sessionStorage) {\n\t // Session storage is not available or hidden.\n\t // sessionStorage is undefined in Internet Explorer when served via file protocol.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n\t return;\n\t }\n\t\n\t try {\n\t if (state == null) {\n\t window.sessionStorage.removeItem(createKey(key));\n\t } else {\n\t window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n\t }\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return;\n\t }\n\t\n\t if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n\t // Safari \"private mode\" throws QuotaExceededError.\n\t false ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\t\n\t return;\n\t }\n\t\n\t throw error;\n\t }\n\t};\n\t\n\tvar readState = exports.readState = function readState(key) {\n\t var json = void 0;\n\t try {\n\t json = window.sessionStorage.getItem(createKey(key));\n\t } catch (error) {\n\t if (error.name === SecurityError) {\n\t // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n\t // attempt to access window.sessionStorage.\n\t false ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\t\n\t return undefined;\n\t }\n\t }\n\t\n\t if (json) {\n\t try {\n\t return JSON.parse(json);\n\t } catch (error) {\n\t // Ignore invalid JSON.\n\t }\n\t }\n\t\n\t return undefined;\n\t};\n\n/***/ },\n/* 12 */\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.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\t\n\tvar _BrowserProtocol = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'getUserConfirmation', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.getUserConfirmation;\n\t }\n\t});\n\tObject.defineProperty(exports, 'go', {\n\t enumerable: true,\n\t get: function get() {\n\t return _BrowserProtocol.go;\n\t }\n\t});\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n\t return (0, _LocationUtils.createLocation)(window.location);\n\t};\n\t\n\tvar pushLocation = exports.pushLocation = function pushLocation(location) {\n\t window.location.href = (0, _PathUtils.createPath)(location);\n\t return false; // Don't update location\n\t};\n\t\n\tvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n\t window.location.replace((0, _PathUtils.createPath)(location));\n\t return false; // Don't update location\n\t};\n\n/***/ },\n/* 13 */\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 _AsyncUtils = __webpack_require__(14);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\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\n\tvar createHistory = function createHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var getCurrentLocation = options.getCurrentLocation;\n\t var getUserConfirmation = options.getUserConfirmation;\n\t var pushLocation = options.pushLocation;\n\t var replaceLocation = options.replaceLocation;\n\t var go = options.go;\n\t var keyLength = options.keyLength;\n\t\n\t\n\t var currentLocation = void 0;\n\t var pendingLocation = void 0;\n\t var beforeListeners = [];\n\t var listeners = [];\n\t var allKeys = [];\n\t\n\t var getCurrentIndex = function getCurrentIndex() {\n\t if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\t\n\t if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\t\n\t return -1;\n\t };\n\t\n\t var updateLocation = function updateLocation(nextLocation) {\n\t currentLocation = nextLocation;\n\t\n\t var currentIndex = getCurrentIndex();\n\t\n\t if (currentLocation.action === _Actions.PUSH) {\n\t allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n\t } else if (currentLocation.action === _Actions.REPLACE) {\n\t allKeys[currentIndex] = currentLocation.key;\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener(currentLocation);\n\t });\n\t };\n\t\n\t var listenBefore = function listenBefore(listener) {\n\t beforeListeners.push(listener);\n\t\n\t return function () {\n\t return beforeListeners = beforeListeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t listeners.push(listener);\n\t\n\t return function () {\n\t return listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n\t (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n\t (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n\t return result != null ? done(result) : next();\n\t });\n\t }, function (message) {\n\t if (getUserConfirmation && typeof message === 'string') {\n\t getUserConfirmation(message, function (ok) {\n\t return callback(ok !== false);\n\t });\n\t } else {\n\t callback(message !== false);\n\t }\n\t });\n\t };\n\t\n\t var transitionTo = function transitionTo(nextLocation) {\n\t if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\t\n\t pendingLocation = nextLocation;\n\t\n\t confirmTransitionTo(nextLocation, function (ok) {\n\t if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\t\n\t pendingLocation = null;\n\t\n\t if (ok) {\n\t // Treat PUSH to same path like REPLACE to be consistent with browsers\n\t if (nextLocation.action === _Actions.PUSH) {\n\t var prevPath = (0, _PathUtils.createPath)(currentLocation);\n\t var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\t\n\t if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n\t }\n\t\n\t if (nextLocation.action === _Actions.POP) {\n\t updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.PUSH) {\n\t if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t } else if (nextLocation.action === _Actions.REPLACE) {\n\t if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n\t }\n\t } else if (currentLocation && nextLocation.action === _Actions.POP) {\n\t var prevIndex = allKeys.indexOf(currentLocation.key);\n\t var nextIndex = allKeys.indexOf(nextLocation.key);\n\t\n\t if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n\t }\n\t });\n\t };\n\t\n\t var push = function push(input) {\n\t return transitionTo(createLocation(input, _Actions.PUSH));\n\t };\n\t\n\t var replace = function replace(input) {\n\t return transitionTo(createLocation(input, _Actions.REPLACE));\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength || 6);\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var createLocation = function createLocation(location, action) {\n\t var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\t return (0, _LocationUtils.createLocation)(location, action, key);\n\t };\n\t\n\t return {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t transitionTo: transitionTo,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t createKey: createKey,\n\t createPath: _PathUtils.createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t };\n\t};\n\t\n\texports.default = createHistory;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\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\n\tvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n\t var currentTurn = 0,\n\t isDone = false;\n\t var isSync = false,\n\t hasNext = false,\n\t doneArgs = void 0;\n\t\n\t var done = function done() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t isDone = true;\n\t\n\t if (isSync) {\n\t // Iterate instead of recursing if possible.\n\t doneArgs = args;\n\t return;\n\t }\n\t\n\t callback.apply(undefined, args);\n\t };\n\t\n\t var next = function next() {\n\t if (isDone) return;\n\t\n\t hasNext = true;\n\t\n\t if (isSync) return; // Iterate instead of recursing if possible.\n\t\n\t isSync = true;\n\t\n\t while (!isDone && currentTurn < turns && hasNext) {\n\t hasNext = false;\n\t work(currentTurn++, next, done);\n\t }\n\t\n\t isSync = false;\n\t\n\t if (isDone) {\n\t // This means the loop finished synchronously.\n\t callback.apply(undefined, _toConsumableArray(doneArgs));\n\t return;\n\t }\n\t\n\t if (currentTurn >= turns && hasNext) {\n\t isDone = true;\n\t callback();\n\t }\n\t };\n\t\n\t next();\n\t};\n\n/***/ },\n/* 15 */\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 _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n\t var result = hook(location, callback);\n\t\n\t if (hook.length < 2) {\n\t // Assume the hook runs synchronously and automatically\n\t // call the callback with the return value.\n\t callback(result);\n\t } else {\n\t false ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n\t }\n\t};\n\t\n\texports.default = runTransitionHook;\n\n/***/ },\n/* 16 */\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 _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 _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar useBasename = function useBasename(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var basename = options.basename;\n\t\n\t\n\t var addBasename = function addBasename(location) {\n\t if (!location) return location;\n\t\n\t if (basename && location.basename == null) {\n\t if (location.pathname.indexOf(basename) === 0) {\n\t location.pathname = location.pathname.substring(basename.length);\n\t location.basename = basename;\n\t\n\t if (location.pathname === '') location.pathname = '/';\n\t } else {\n\t location.basename = '';\n\t }\n\t }\n\t\n\t return location;\n\t };\n\t\n\t var prependBasename = function prependBasename(location) {\n\t if (!basename) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var pname = object.pathname;\n\t var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n\t var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n\t var pathname = normalizedBasename + normalizedPathname;\n\t\n\t return _extends({}, location, {\n\t pathname: pathname\n\t });\n\t };\n\t\n\t // Override all read methods with basename-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return addBasename(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(addBasename(location));\n\t });\n\t };\n\t\n\t // Override all write methods with basename-aware versions.\n\t var push = function push(location) {\n\t return history.push(prependBasename(location));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(prependBasename(location));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(prependBasename(location));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(prependBasename(location));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useBasename;\n\n/***/ },\n/* 17 */\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 _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 _queryString = __webpack_require__(18);\n\t\n\tvar _runTransitionHook = __webpack_require__(15);\n\t\n\tvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n\t return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n\t};\n\t\n\tvar defaultParseQueryString = _queryString.parse;\n\t\n\t/**\n\t * Returns a new createHistory function that may be used to create\n\t * history objects that know how to handle URL queries.\n\t */\n\tvar useQueries = function useQueries(createHistory) {\n\t return function () {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t var history = createHistory(options);\n\t var stringifyQuery = options.stringifyQuery;\n\t var parseQueryString = options.parseQueryString;\n\t\n\t\n\t if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\t\n\t if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\t\n\t var decodeQuery = function decodeQuery(location) {\n\t if (!location) return location;\n\t\n\t if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\t\n\t return location;\n\t };\n\t\n\t var encodeQuery = function encodeQuery(location, query) {\n\t if (query == null) return location;\n\t\n\t var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n\t var queryString = stringifyQuery(query);\n\t var search = queryString ? '?' + queryString : '';\n\t\n\t return _extends({}, object, {\n\t search: search\n\t });\n\t };\n\t\n\t // Override all read methods with query-aware versions.\n\t var getCurrentLocation = function getCurrentLocation() {\n\t return decodeQuery(history.getCurrentLocation());\n\t };\n\t\n\t var listenBefore = function listenBefore(hook) {\n\t return history.listenBefore(function (location, callback) {\n\t return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n\t });\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return history.listen(function (location) {\n\t return listener(decodeQuery(location));\n\t });\n\t };\n\t\n\t // Override all write methods with query-aware versions.\n\t var push = function push(location) {\n\t return history.push(encodeQuery(location, location.query));\n\t };\n\t\n\t var replace = function replace(location) {\n\t return history.replace(encodeQuery(location, location.query));\n\t };\n\t\n\t var createPath = function createPath(location) {\n\t return history.createPath(encodeQuery(location, location.query));\n\t };\n\t\n\t var createHref = function createHref(location) {\n\t return history.createHref(encodeQuery(location, location.query));\n\t };\n\t\n\t var createLocation = function createLocation(location) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\t\n\t if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\t\n\t return decodeQuery(newLocation);\n\t };\n\t\n\t return _extends({}, history, {\n\t getCurrentLocation: getCurrentLocation,\n\t listenBefore: listenBefore,\n\t listen: listen,\n\t push: push,\n\t replace: replace,\n\t createPath: createPath,\n\t createHref: createHref,\n\t createLocation: createLocation\n\t });\n\t };\n\t};\n\t\n\texports.default = useQueries;\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(19);\n\tvar objectAssign = __webpack_require__(20);\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str) {\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\tkey = decodeURIComponent(key);\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tif (ret[key] === undefined) {\n\t\t\t\tret[key] = val;\n\t\t\t} else if (Array.isArray(ret[key])) {\n\t\t\t\tret[key].push(val);\n\t\t\t} else {\n\t\t\t\tret[key] = [ret[key], val];\n\t\t\t}\n\t\t});\n\t\n\t\treturn ret;\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn encode(key, opts);\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (val2 === null) {\n\t\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (Object.getOwnPropertySymbols) {\n\t\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 21 */\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 _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 _createMatcher = __webpack_require__(22);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _reducerEnhancer = __webpack_require__(25);\n\t\n\tvar _reducerEnhancer2 = _interopRequireDefault(_reducerEnhancer);\n\t\n\tvar _actionCreators = __webpack_require__(28);\n\t\n\tvar _wrapDispatch = __webpack_require__(29);\n\t\n\tvar _wrapDispatch2 = _interopRequireDefault(_wrapDispatch);\n\t\n\tvar _validateRoutes = __webpack_require__(30);\n\t\n\tvar _validateRoutes2 = _interopRequireDefault(_validateRoutes);\n\t\n\tvar _flattenRoutes = __webpack_require__(31);\n\t\n\tvar _flattenRoutes2 = _interopRequireDefault(_flattenRoutes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var nestedRoutes = _ref.routes;\n\t var history = _ref.history;\n\t var location = _ref.location;\n\t var _ref$createMatcher = _ref.createMatcher;\n\t var createMatcher = _ref$createMatcher === undefined ? _createMatcher2.default : _ref$createMatcher;\n\t\n\t (0, _validateRoutes2.default)(nestedRoutes);\n\t var routes = (0, _flattenRoutes2.default)(nestedRoutes);\n\t\n\t return function (createStore) {\n\t return function (reducer, initialState, enhancer) {\n\t var enhancedReducer = (0, _reducerEnhancer2.default)(reducer);\n\t\n\t var matchRoute = createMatcher(routes);\n\t var matchWildcardRoute = createMatcher(routes, true);\n\t\n\t var initialStateWithRouter = _extends({}, initialState, {\n\t router: _extends({}, location, matchRoute(location.pathname))\n\t });\n\t\n\t var store = createStore(enhancedReducer, initialStateWithRouter, enhancer);\n\t\n\t history.listen(function (newLocation) {\n\t /* istanbul ignore else */\n\t if (newLocation) {\n\t store.dispatch((0, _actionCreators.locationDidChange)({\n\t location: newLocation, matchRoute: matchRoute\n\t }));\n\t }\n\t });\n\t\n\t var dispatch = (0, _wrapDispatch2.default)(store, history);\n\t\n\t return _extends({}, store, {\n\t dispatch: dispatch,\n\t\n\t // We attach routes here to allow \n\t // to access unserializable properties of route results.\n\t routes: routes,\n\t\n\t history: history,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 22 */\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 _urlPattern = __webpack_require__(23);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar find = function find(list, predicate) {\n\t for (var i = 0; i < list.length; i++) {\n\t var item = list[i];\n\t if (predicate(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t};\n\t\n\t\n\tvar wildcardMatcher = function wildcardMatcher(routeList) {\n\t return function (incomingUrl) {\n\t var routeToMatch = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\t\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t var storedRoute = find(routeList, function (route) {\n\t return route.route === routeToMatch;\n\t });\n\t\n\t if (!storedRoute) {\n\t return null;\n\t }\n\t\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\tvar eagerMatcher = function eagerMatcher(routeList) {\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\texports.default = function (routes) {\n\t var wildcard = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\t\n\t var routeList = Object.keys(routes).sort().reverse().map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(\n\t // Prepend with wildcards if requested\n\t '' + route + (wildcard && '*' || '')),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return wildcard ? wildcardMatcher(routeList) : eagerMatcher(routeList);\n\t};\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(24) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 25 */\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 _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 _reducer = __webpack_require__(26);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (vanillaReducer) {\n\t return function (state, action) {\n\t var vanillaState = _extends({}, state);\n\t delete vanillaState.router;\n\t\n\t var newState = vanillaReducer(vanillaState, action);\n\t\n\t // Support redux-loop\n\t if (Array.isArray(newState)) {\n\t var nextState = newState[0]; // eslint-disable-line no-magic-numbers\n\t var nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n\t return [_extends({}, nextState, {\n\t router: (0, _reducer2.default)(state && state.router, action)\n\t }), nextEffects];\n\t }\n\t\n\t return _extends({}, newState, {\n\t router: (0, _reducer2.default)(state && state.router, action)\n\t });\n\t };\n\t};\n\n/***/ },\n/* 26 */\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 _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 _actionTypes = __webpack_require__(27);\n\t\n\tfunction _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\t\n\texports.default = function () {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (action.type === _actionTypes.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state && state.pathname === action.payload.pathname && state.search === action.payload.search) {\n\t return state;\n\t }\n\t\n\t // Extract the previous state, but dump the\n\t // previous state's previous state so that the\n\t // state tree doesn't keep growing indefinitely\n\t if (state) {\n\t // eslint-disable-next-line no-unused-vars\n\t var previous = state.previous;\n\t\n\t var oldState = _objectWithoutProperties(state, ['previous']);\n\t\n\t return _extends({}, action.payload, {\n\t previous: oldState\n\t });\n\t }\n\t }\n\t return state;\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 28 */\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.initializeCurrentLocation = exports.locationDidChange = 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 _actionTypes = __webpack_require__(27);\n\t\n\tvar locationDidChange = exports.locationDidChange = function locationDidChange(_ref) {\n\t var location = _ref.location;\n\t var matchRoute = _ref.matchRoute;\n\t\n\t // Extract the pathname so that we don't match against the basename.\n\t // This avoids requiring basename-hardcoded routes.\n\t var pathname = location.pathname;\n\t\n\t\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: _extends({}, location, matchRoute(pathname))\n\t };\n\t};\n\t\n\tvar initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) {\n\t return {\n\t type: _actionTypes.LOCATION_CHANGED,\n\t payload: location\n\t };\n\t};\n\n/***/ },\n/* 29 */\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 _actionTypes = __webpack_require__(27);\n\t\n\texports.default = function (store, history) {\n\t return function (action) {\n\t switch (action.type) {\n\t case _actionTypes.PUSH:\n\t history.push(action.payload);\n\t return null;\n\t case _actionTypes.REPLACE:\n\t history.replace(action.payload);\n\t return null;\n\t case _actionTypes.GO:\n\t history.go(action.payload);\n\t return null;\n\t case _actionTypes.GO_BACK:\n\t history.goBack();\n\t return null;\n\t case _actionTypes.GO_FORWARD:\n\t history.goForward();\n\t return null;\n\t default:\n\t // We return the result of dispatch here\n\t // to retain compatibility with enhancers\n\t // that return a promise from dispatch.\n\t return store.dispatch(action);\n\t }\n\t };\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar README_MESSAGE = '\\n See the README for more information:\\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\\n';\n\t\n\texports.default = function (routes) {\n\t if (!routes) {\n\t throw Error('\\n Missing route configuration. You must define your routes as\\n an object where the keys are routes and the values are any\\n route-specific data.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t\n\t // eslint-disable-next-line no-magic-numbers\n\t if (!Object.keys(routes).every(function (route) {\n\t return route.indexOf('/') === 0;\n\t })) {\n\t throw Error('\\n The route configuration you provided is malformed. Make sure\\n that all of your routes start with a slash.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t};\n\n/***/ },\n/* 31 */\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 _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 _lodash = __webpack_require__(32);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\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\tvar filterObject = function filterObject(target, predicate) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t return predicate(key) ? _extends({}, acc, _defineProperty({}, key, target[key])) : acc;\n\t }, {});\n\t};\n\t\n\tvar mapObject = function mapObject(target, transformKey, transformValue) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t var newKey = transformKey ? transformKey(key) : key;\n\t var newValue = transformValue ? transformValue(target[key]) : target[key];\n\t return _extends({}, acc, _defineProperty({}, newKey, newValue));\n\t }, {});\n\t};\n\t\n\tvar onlyRoutes = function onlyRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') === 0;\n\t });\n\t};\n\t\n\tvar withoutRoutes = function withoutRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') !== 0;\n\t });\n\t};\n\t\n\tvar flattenRoutes = function flattenRoutes(routes) {\n\t var acc = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\t\n\t Object.keys(routes).forEach(function (key) {\n\t var baseRoute = key === '/' ? '' : key;\n\t flattenRoutes(mapObject(onlyRoutes(routes[key]), function (routeKey) {\n\t return '' + baseRoute + routeKey;\n\t }, function (routeValue) {\n\t return _extends({}, routeValue, {\n\t parent: _extends({}, withoutRoutes(routes[key]), {\n\t route: key\n\t })\n\t });\n\t }), acc);\n\t });\n\t\n\t (0, _lodash2.default)(acc, mapObject(routes, null, withoutRoutes));\n\t\n\t return acc;\n\t};\n\t\n\texports.default = flattenRoutes;\n\n/***/ },\n/* 32 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]';\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeKeys = overArg(Object.keys, Object),\n\t nativeMax = Math.max;\n\t\n\t/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\n\tvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\t\n\t var length = result.length,\n\t skipIndexes = !!length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseRest(func, start) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = array;\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\t\n\t/**\n\t * Creates a function like `_.assign`.\n\t *\n\t * @private\n\t * @param {Function} assigner The function to assign values.\n\t * @returns {Function} Returns the new assigner function.\n\t */\n\tfunction createAssigner(assigner) {\n\t return baseRest(function(object, sources) {\n\t var index = -1,\n\t length = sources.length,\n\t customizer = length > 1 ? sources[length - 1] : undefined,\n\t guard = length > 2 ? sources[2] : undefined;\n\t\n\t customizer = (assigner.length > 3 && typeof customizer == 'function')\n\t ? (length--, customizer)\n\t : undefined;\n\t\n\t if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n\t customizer = length < 3 ? undefined : customizer;\n\t length = 1;\n\t }\n\t object = Object(object);\n\t while (++index < length) {\n\t var source = sources[index];\n\t if (source) {\n\t assigner(object, source, index, customizer);\n\t }\n\t }\n\t return object;\n\t });\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/**\n\t * Checks if the given arguments are from an iteratee call.\n\t *\n\t * @private\n\t * @param {*} value The potential iteratee value argument.\n\t * @param {*} index The potential iteratee index or key argument.\n\t * @param {*} object The potential iteratee object argument.\n\t * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n\t * else `false`.\n\t */\n\tfunction isIterateeCall(value, index, object) {\n\t if (!isObject(object)) {\n\t return false;\n\t }\n\t var type = typeof index;\n\t if (type == 'number'\n\t ? (isArrayLike(object) && isIndex(index, object.length))\n\t : (type == 'string' && index in object)\n\t ) {\n\t return eq(object[index], value);\n\t }\n\t return false;\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\t/**\n\t * Assigns own enumerable string keyed properties of source objects to the\n\t * destination object. Source objects are applied from left to right.\n\t * Subsequent sources overwrite property assignments of previous sources.\n\t *\n\t * **Note:** This method mutates `object` and is loosely based on\n\t * [`Object.assign`](https://mdn.io/Object/assign).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.10.0\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [sources] The source objects.\n\t * @returns {Object} Returns `object`.\n\t * @see _.assignIn\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * function Bar() {\n\t * this.c = 3;\n\t * }\n\t *\n\t * Foo.prototype.b = 2;\n\t * Bar.prototype.d = 4;\n\t *\n\t * _.assign({ 'a': 0 }, new Foo, new Bar);\n\t * // => { 'a': 1, 'c': 3 }\n\t */\n\tvar assign = createAssigner(function(object, source) {\n\t if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n\t copyObject(source, keys(source), object);\n\t return;\n\t }\n\t for (var key in source) {\n\t if (hasOwnProperty.call(source, key)) {\n\t assignValue(object, key, source[key]);\n\t }\n\t }\n\t});\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 33 */\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 _createMemoryHistory = __webpack_require__(34);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _useBasename = __webpack_require__(16);\n\t\n\tvar _useBasename2 = _interopRequireDefault(_useBasename);\n\t\n\tvar _useQueries = __webpack_require__(17);\n\t\n\tvar _useQueries2 = _interopRequireDefault(_useQueries);\n\t\n\tvar _storeEnhancer = __webpack_require__(21);\n\t\n\tvar _storeEnhancer2 = _interopRequireDefault(_storeEnhancer);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes;\n\t var request = _ref.request;\n\t\n\t var history = (0, _useBasename2.default)((0, _useQueries2.default)(_createMemoryHistory2.default))({\n\t basename: request.baseUrl\n\t });\n\t\n\t var location = history.createLocation({\n\t pathname: request.path,\n\t query: request.query\n\t });\n\t\n\t return (0, _storeEnhancer2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 34 */\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 _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 _warning = __webpack_require__(8);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(6);\n\t\n\tvar _PathUtils = __webpack_require__(7);\n\t\n\tvar _createHistory = __webpack_require__(13);\n\t\n\tvar _createHistory2 = _interopRequireDefault(_createHistory);\n\t\n\tvar _Actions = __webpack_require__(9);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createStateStorage = function createStateStorage(entries) {\n\t return entries.filter(function (entry) {\n\t return entry.state;\n\t }).reduce(function (memo, entry) {\n\t memo[entry.key] = entry.state;\n\t return memo;\n\t }, {});\n\t};\n\t\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t\n\t if (Array.isArray(options)) {\n\t options = { entries: options };\n\t } else if (typeof options === 'string') {\n\t options = { entries: [options] };\n\t }\n\t\n\t var getCurrentLocation = function getCurrentLocation() {\n\t var entry = entries[current];\n\t var path = (0, _PathUtils.createPath)(entry);\n\t\n\t var key = void 0,\n\t state = void 0;\n\t if (entry.key) {\n\t key = entry.key;\n\t state = readState(key);\n\t }\n\t\n\t var init = (0, _PathUtils.parsePath)(path);\n\t\n\t return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var index = current + n;\n\t return index >= 0 && index < entries.length;\n\t };\n\t\n\t var go = function go(n) {\n\t if (!n) return;\n\t\n\t if (!canGo(n)) {\n\t false ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\t\n\t return;\n\t }\n\t\n\t current += n;\n\t var currentLocation = getCurrentLocation();\n\t\n\t // Change action to POP\n\t history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n\t };\n\t\n\t var pushLocation = function pushLocation(location) {\n\t current += 1;\n\t\n\t if (current < entries.length) entries.splice(current);\n\t\n\t entries.push(location);\n\t\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var replaceLocation = function replaceLocation(location) {\n\t entries[current] = location;\n\t saveState(location.key, location.state);\n\t };\n\t\n\t var history = (0, _createHistory2.default)(_extends({}, options, {\n\t getCurrentLocation: getCurrentLocation,\n\t pushLocation: pushLocation,\n\t replaceLocation: replaceLocation,\n\t go: go\n\t }));\n\t\n\t var _options = options;\n\t var entries = _options.entries;\n\t var current = _options.current;\n\t\n\t\n\t if (typeof entries === 'string') {\n\t entries = [entries];\n\t } else if (!Array.isArray(entries)) {\n\t entries = ['/'];\n\t }\n\t\n\t entries = entries.map(function (entry) {\n\t return (0, _LocationUtils.createLocation)(entry);\n\t });\n\t\n\t if (current == null) {\n\t current = entries.length - 1;\n\t } else {\n\t !(current >= 0 && current < entries.length) ? false ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n\t }\n\t\n\t var storage = createStateStorage(entries);\n\t\n\t var saveState = function saveState(key, state) {\n\t return storage[key] = state;\n\t };\n\t\n\t var readState = function readState(key) {\n\t return storage[key];\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 35 */\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.RouterProvider = 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__(36);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(37);\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\tvar RouterProviderImpl = function (_Component) {\n\t _inherits(RouterProviderImpl, _Component);\n\t\n\t function RouterProviderImpl(props) {\n\t _classCallCheck(this, RouterProviderImpl);\n\t\n\t var _this = _possibleConstructorReturn(this, (RouterProviderImpl.__proto__ || Object.getPrototypeOf(RouterProviderImpl)).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProviderImpl, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var store = this.router.store;\n\t\n\t var routerState = store.getState().router;\n\t\n\t // Ensure that the router props from connect()\n\t // actually get to the child component(s)\n\t return (0, _react.cloneElement)(this.props.children, {\n\t router: _extends({}, routerState, {\n\t\n\t // This is a hack to allow routes to define\n\t // unserializable things like components\n\t result: store.routes[routerState.route]\n\t })\n\t });\n\t }\n\t }]);\n\t\n\t return RouterProviderImpl;\n\t}(_react.Component);\n\t\n\tRouterProviderImpl.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) {\n\t return {\n\t router: state.router\n\t };\n\t})(RouterProviderImpl);\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 36 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_36__;\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.connect = exports.Provider = undefined;\n\t\n\tvar _Provider = __webpack_require__(38);\n\t\n\tvar _Provider2 = _interopRequireDefault(_Provider);\n\t\n\tvar _connect = __webpack_require__(41);\n\t\n\tvar _connect2 = _interopRequireDefault(_connect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\texports.Provider = _Provider2[\"default\"];\n\texports.connect = _connect2[\"default\"];\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = undefined;\n\t\n\tvar _react = __webpack_require__(36);\n\t\n\tvar _storeShape = __webpack_require__(39);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _warning = __webpack_require__(40);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\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\tvar didWarnAboutReceivingStore = false;\n\tfunction warnAboutReceivingStore() {\n\t if (didWarnAboutReceivingStore) {\n\t return;\n\t }\n\t didWarnAboutReceivingStore = true;\n\t\n\t (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n\t}\n\t\n\tvar Provider = function (_Component) {\n\t _inherits(Provider, _Component);\n\t\n\t Provider.prototype.getChildContext = function getChildContext() {\n\t return { store: this.store };\n\t };\n\t\n\t function Provider(props, context) {\n\t _classCallCheck(this, Provider);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.store = props.store;\n\t return _this;\n\t }\n\t\n\t Provider.prototype.render = function render() {\n\t var children = this.props.children;\n\t\n\t return _react.Children.only(children);\n\t };\n\t\n\t return Provider;\n\t}(_react.Component);\n\t\n\texports[\"default\"] = Provider;\n\t\n\tif (false) {\n\t Provider.prototype.componentWillReceiveProps = function (nextProps) {\n\t var store = this.store;\n\t var nextStore = nextProps.store;\n\t\n\t if (store !== nextStore) {\n\t warnAboutReceivingStore();\n\t }\n\t };\n\t}\n\t\n\tProvider.propTypes = {\n\t store: _storeShape2[\"default\"].isRequired,\n\t children: _react.PropTypes.element.isRequired\n\t};\n\tProvider.childContextTypes = {\n\t store: _storeShape2[\"default\"].isRequired\n\t};\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(36);\n\t\n\texports[\"default\"] = _react.PropTypes.shape({\n\t subscribe: _react.PropTypes.func.isRequired,\n\t dispatch: _react.PropTypes.func.isRequired,\n\t getState: _react.PropTypes.func.isRequired\n\t});\n\n/***/ },\n/* 40 */\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 you can use this stack\n\t // to find the callsite that caused this warning to fire.\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/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\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\texports.__esModule = true;\n\texports[\"default\"] = connect;\n\t\n\tvar _react = __webpack_require__(36);\n\t\n\tvar _storeShape = __webpack_require__(39);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _shallowEqual = __webpack_require__(42);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _wrapActionCreators = __webpack_require__(43);\n\t\n\tvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\t\n\tvar _warning = __webpack_require__(40);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _isPlainObject = __webpack_require__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _hoistNonReactStatics = __webpack_require__(59);\n\t\n\tvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\t\n\tvar _invariant = __webpack_require__(3);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\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\tvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n\t return {};\n\t}; // eslint-disable-line no-unused-vars\n\tvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n\t return { dispatch: dispatch };\n\t};\n\tvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n\t return _extends({}, parentProps, stateProps, dispatchProps);\n\t};\n\t\n\tfunction getDisplayName(WrappedComponent) {\n\t return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t}\n\t\n\tvar errorObject = { value: null };\n\tfunction tryCatch(fn, ctx) {\n\t try {\n\t return fn.apply(ctx);\n\t } catch (e) {\n\t errorObject.value = e;\n\t return errorObject;\n\t }\n\t}\n\t\n\t// Helps track hot reloading.\n\tvar nextVersion = 0;\n\t\n\tfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n\t var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\t\n\t var shouldSubscribe = Boolean(mapStateToProps);\n\t var mapState = mapStateToProps || defaultMapStateToProps;\n\t\n\t var mapDispatch = undefined;\n\t if (typeof mapDispatchToProps === 'function') {\n\t mapDispatch = mapDispatchToProps;\n\t } else if (!mapDispatchToProps) {\n\t mapDispatch = defaultMapDispatchToProps;\n\t } else {\n\t mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n\t }\n\t\n\t var finalMergeProps = mergeProps || defaultMergeProps;\n\t var _options$pure = options.pure;\n\t var pure = _options$pure === undefined ? true : _options$pure;\n\t var _options$withRef = options.withRef;\n\t var withRef = _options$withRef === undefined ? false : _options$withRef;\n\t\n\t var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\t\n\t // Helps track hot reloading.\n\t var version = nextVersion++;\n\t\n\t return function wrapWithConnect(WrappedComponent) {\n\t var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\t\n\t function checkStateShape(props, methodName) {\n\t if (!(0, _isPlainObject2[\"default\"])(props)) {\n\t (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n\t }\n\t }\n\t\n\t function computeMergedProps(stateProps, dispatchProps, parentProps) {\n\t var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n\t if (false) {\n\t checkStateShape(mergedProps, 'mergeProps');\n\t }\n\t return mergedProps;\n\t }\n\t\n\t var Connect = function (_Component) {\n\t _inherits(Connect, _Component);\n\t\n\t Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n\t return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n\t };\n\t\n\t function Connect(props, context) {\n\t _classCallCheck(this, Connect);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.version = version;\n\t _this.store = props.store || context.store;\n\t\n\t (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\t\n\t var storeState = _this.store.getState();\n\t _this.state = { storeState: storeState };\n\t _this.clearCache();\n\t return _this;\n\t }\n\t\n\t Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n\t if (!this.finalMapStateToProps) {\n\t return this.configureFinalMapState(store, props);\n\t }\n\t\n\t var state = store.getState();\n\t var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\t\n\t if (false) {\n\t checkStateShape(stateProps, 'mapStateToProps');\n\t }\n\t return stateProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n\t var mappedState = mapState(store.getState(), props);\n\t var isFactory = typeof mappedState === 'function';\n\t\n\t this.finalMapStateToProps = isFactory ? mappedState : mapState;\n\t this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeStateProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedState, 'mapStateToProps');\n\t }\n\t return mappedState;\n\t };\n\t\n\t Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n\t if (!this.finalMapDispatchToProps) {\n\t return this.configureFinalMapDispatch(store, props);\n\t }\n\t\n\t var dispatch = store.dispatch;\n\t\n\t var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\t\n\t if (false) {\n\t checkStateShape(dispatchProps, 'mapDispatchToProps');\n\t }\n\t return dispatchProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n\t var mappedDispatch = mapDispatch(store.dispatch, props);\n\t var isFactory = typeof mappedDispatch === 'function';\n\t\n\t this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n\t this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeDispatchProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedDispatch, 'mapDispatchToProps');\n\t }\n\t return mappedDispatch;\n\t };\n\t\n\t Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n\t var nextStateProps = this.computeStateProps(this.store, this.props);\n\t if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n\t return false;\n\t }\n\t\n\t this.stateProps = nextStateProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n\t var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n\t if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n\t return false;\n\t }\n\t\n\t this.dispatchProps = nextDispatchProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n\t var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n\t if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n\t return false;\n\t }\n\t\n\t this.mergedProps = nextMergedProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.isSubscribed = function isSubscribed() {\n\t return typeof this.unsubscribe === 'function';\n\t };\n\t\n\t Connect.prototype.trySubscribe = function trySubscribe() {\n\t if (shouldSubscribe && !this.unsubscribe) {\n\t this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n\t this.handleChange();\n\t }\n\t };\n\t\n\t Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n\t if (this.unsubscribe) {\n\t this.unsubscribe();\n\t this.unsubscribe = null;\n\t }\n\t };\n\t\n\t Connect.prototype.componentDidMount = function componentDidMount() {\n\t this.trySubscribe();\n\t };\n\t\n\t Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n\t this.haveOwnPropsChanged = true;\n\t }\n\t };\n\t\n\t Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.tryUnsubscribe();\n\t this.clearCache();\n\t };\n\t\n\t Connect.prototype.clearCache = function clearCache() {\n\t this.dispatchProps = null;\n\t this.stateProps = null;\n\t this.mergedProps = null;\n\t this.haveOwnPropsChanged = true;\n\t this.hasStoreStateChanged = true;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t this.renderedElement = null;\n\t this.finalMapDispatchToProps = null;\n\t this.finalMapStateToProps = null;\n\t };\n\t\n\t Connect.prototype.handleChange = function handleChange() {\n\t if (!this.unsubscribe) {\n\t return;\n\t }\n\t\n\t var storeState = this.store.getState();\n\t var prevStoreState = this.state.storeState;\n\t if (pure && prevStoreState === storeState) {\n\t return;\n\t }\n\t\n\t if (pure && !this.doStatePropsDependOnOwnProps) {\n\t var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n\t if (!haveStatePropsChanged) {\n\t return;\n\t }\n\t if (haveStatePropsChanged === errorObject) {\n\t this.statePropsPrecalculationError = errorObject.value;\n\t }\n\t this.haveStatePropsBeenPrecalculated = true;\n\t }\n\t\n\t this.hasStoreStateChanged = true;\n\t this.setState({ storeState: storeState });\n\t };\n\t\n\t Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n\t (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\t\n\t return this.refs.wrappedInstance;\n\t };\n\t\n\t Connect.prototype.render = function render() {\n\t var haveOwnPropsChanged = this.haveOwnPropsChanged;\n\t var hasStoreStateChanged = this.hasStoreStateChanged;\n\t var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n\t var statePropsPrecalculationError = this.statePropsPrecalculationError;\n\t var renderedElement = this.renderedElement;\n\t\n\t this.haveOwnPropsChanged = false;\n\t this.hasStoreStateChanged = false;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t\n\t if (statePropsPrecalculationError) {\n\t throw statePropsPrecalculationError;\n\t }\n\t\n\t var shouldUpdateStateProps = true;\n\t var shouldUpdateDispatchProps = true;\n\t if (pure && renderedElement) {\n\t shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n\t shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n\t }\n\t\n\t var haveStatePropsChanged = false;\n\t var haveDispatchPropsChanged = false;\n\t if (haveStatePropsBeenPrecalculated) {\n\t haveStatePropsChanged = true;\n\t } else if (shouldUpdateStateProps) {\n\t haveStatePropsChanged = this.updateStatePropsIfNeeded();\n\t }\n\t if (shouldUpdateDispatchProps) {\n\t haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n\t }\n\t\n\t var haveMergedPropsChanged = true;\n\t if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n\t haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n\t } else {\n\t haveMergedPropsChanged = false;\n\t }\n\t\n\t if (!haveMergedPropsChanged && renderedElement) {\n\t return renderedElement;\n\t }\n\t\n\t if (withRef) {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n\t ref: 'wrappedInstance'\n\t }));\n\t } else {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n\t }\n\t\n\t return this.renderedElement;\n\t };\n\t\n\t return Connect;\n\t }(_react.Component);\n\t\n\t Connect.displayName = connectDisplayName;\n\t Connect.WrappedComponent = WrappedComponent;\n\t Connect.contextTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t Connect.propTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t\n\t if (false) {\n\t Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n\t if (this.version === version) {\n\t return;\n\t }\n\t\n\t // We are hot reloading!\n\t this.version = version;\n\t this.trySubscribe();\n\t this.clearCache();\n\t };\n\t }\n\t\n\t return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n\t };\n\t}\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = wrapActionCreators;\n\t\n\tvar _redux = __webpack_require__(44);\n\t\n\tfunction wrapActionCreators(actionCreators) {\n\t return function (dispatch) {\n\t return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n\t };\n\t}\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\t\n\tvar _createStore = __webpack_require__(45);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _combineReducers = __webpack_require__(54);\n\t\n\tvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\t\n\tvar _bindActionCreators = __webpack_require__(56);\n\t\n\tvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\t\n\tvar _applyMiddleware = __webpack_require__(57);\n\t\n\tvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\t\n\tvar _compose = __webpack_require__(58);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tvar _warning = __webpack_require__(55);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t* This is a dummy function to check if the function name has been altered by minification.\n\t* If the function has been minified and NODE_ENV !== 'production', warn the user.\n\t*/\n\tfunction isCrushed() {}\n\t\n\tif (false) {\n\t (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n\t}\n\t\n\texports.createStore = _createStore2['default'];\n\texports.combineReducers = _combineReducers2['default'];\n\texports.bindActionCreators = _bindActionCreators2['default'];\n\texports.applyMiddleware = _applyMiddleware2['default'];\n\texports.compose = _compose2['default'];\n\n/***/ },\n/* 45 */\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__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(51);\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} [preloadedState] 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, preloadedState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = preloadedState;\n\t preloadedState = 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, preloadedState);\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 = preloadedState;\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 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/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar getPrototype = __webpack_require__(47),\n\t isHostObject = __webpack_require__(49),\n\t isObjectLike = __webpack_require__(50);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) ||\n\t objectToString.call(value) != objectTag || isHostObject(value)) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return (typeof Ctor == 'function' &&\n\t Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(48);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ },\n/* 49 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = isHostObject;\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(52);\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\t\n\tvar _ponyfill = __webpack_require__(53);\n\t\n\tvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar root = undefined; /* global window */\n\t\n\tif (typeof global !== 'undefined') {\n\t\troot = global;\n\t} else if (typeof window !== 'undefined') {\n\t\troot = window;\n\t}\n\t\n\tvar result = (0, _ponyfill2['default'])(root);\n\texports['default'] = result;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 53 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\texports['default'] = symbolObservablePonyfill;\n\tfunction symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar _Symbol = root.Symbol;\n\t\n\t\tif (typeof _Symbol === 'function') {\n\t\t\tif (_Symbol.observable) {\n\t\t\t\tresult = _Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = _Symbol('observable');\n\t\t\t\t_Symbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = combineReducers;\n\t\n\tvar _createStore = __webpack_require__(45);\n\t\n\tvar _isPlainObject = __webpack_require__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(55);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction getUndefinedStateErrorMessage(key, action) {\n\t var actionType = action && action.type;\n\t var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\t\n\t return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n\t}\n\t\n\tfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n\t var reducerKeys = Object.keys(reducers);\n\t var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\t\n\t if (reducerKeys.length === 0) {\n\t return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n\t }\n\t\n\t if (!(0, _isPlainObject2['default'])(inputState)) {\n\t return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n\t }\n\t\n\t var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n\t return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n\t });\n\t\n\t unexpectedKeys.forEach(function (key) {\n\t unexpectedKeyCache[key] = true;\n\t });\n\t\n\t if (unexpectedKeys.length > 0) {\n\t return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n\t }\n\t}\n\t\n\tfunction assertReducerSanity(reducers) {\n\t Object.keys(reducers).forEach(function (key) {\n\t var reducer = reducers[key];\n\t var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\t\n\t if (typeof initialState === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n\t }\n\t\n\t var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\t if (typeof reducer(undefined, { type: type }) === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Turns an object whose values are different reducer functions, into a single\n\t * reducer function. It will call every child reducer, and gather their results\n\t * into a single state object, whose keys correspond to the keys of the passed\n\t * reducer functions.\n\t *\n\t * @param {Object} reducers An object whose values correspond to different\n\t * reducer functions that need to be combined into one. One handy way to obtain\n\t * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n\t * undefined for any action. Instead, they should return their initial state\n\t * if the state passed to them was undefined, and the current state for any\n\t * unrecognized action.\n\t *\n\t * @returns {Function} A reducer function that invokes every reducer inside the\n\t * passed object, and builds a state object with the same shape.\n\t */\n\tfunction combineReducers(reducers) {\n\t var reducerKeys = Object.keys(reducers);\n\t var finalReducers = {};\n\t for (var i = 0; i < reducerKeys.length; i++) {\n\t var key = reducerKeys[i];\n\t\n\t if (false) {\n\t if (typeof reducers[key] === 'undefined') {\n\t (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n\t }\n\t }\n\t\n\t if (typeof reducers[key] === 'function') {\n\t finalReducers[key] = reducers[key];\n\t }\n\t }\n\t var finalReducerKeys = Object.keys(finalReducers);\n\t\n\t if (false) {\n\t var unexpectedKeyCache = {};\n\t }\n\t\n\t var sanityError;\n\t try {\n\t assertReducerSanity(finalReducers);\n\t } catch (e) {\n\t sanityError = e;\n\t }\n\t\n\t return function combination() {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (sanityError) {\n\t throw sanityError;\n\t }\n\t\n\t if (false) {\n\t var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\t if (warningMessage) {\n\t (0, _warning2['default'])(warningMessage);\n\t }\n\t }\n\t\n\t var hasChanged = false;\n\t var nextState = {};\n\t for (var i = 0; i < finalReducerKeys.length; i++) {\n\t var key = finalReducerKeys[i];\n\t var reducer = finalReducers[key];\n\t var previousStateForKey = state[key];\n\t var nextStateForKey = reducer(previousStateForKey, action);\n\t if (typeof nextStateForKey === 'undefined') {\n\t var errorMessage = getUndefinedStateErrorMessage(key, action);\n\t throw new Error(errorMessage);\n\t }\n\t nextState[key] = nextStateForKey;\n\t hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n\t }\n\t return hasChanged ? nextState : state;\n\t };\n\t}\n\n/***/ },\n/* 55 */\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/* 56 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = bindActionCreators;\n\tfunction bindActionCreator(actionCreator, dispatch) {\n\t return function () {\n\t return dispatch(actionCreator.apply(undefined, arguments));\n\t };\n\t}\n\t\n\t/**\n\t * Turns an object whose values are action creators, into an object with the\n\t * same keys, but with every function wrapped into a `dispatch` call so they\n\t * may be invoked directly. This is just a convenience method, as you can call\n\t * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n\t *\n\t * For convenience, you can also pass a single function as the first argument,\n\t * and get a function in return.\n\t *\n\t * @param {Function|Object} actionCreators An object whose values are action\n\t * creator functions. One handy way to obtain it is to use ES6 `import * as`\n\t * syntax. You may also pass a single function.\n\t *\n\t * @param {Function} dispatch The `dispatch` function available on your Redux\n\t * store.\n\t *\n\t * @returns {Function|Object} The object mimicking the original object, but with\n\t * every action creator wrapped into the `dispatch` call. If you passed a\n\t * function as `actionCreators`, the return value will also be a single\n\t * function.\n\t */\n\tfunction bindActionCreators(actionCreators, dispatch) {\n\t if (typeof actionCreators === 'function') {\n\t return bindActionCreator(actionCreators, dispatch);\n\t }\n\t\n\t if (typeof actionCreators !== 'object' || actionCreators === null) {\n\t throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n\t }\n\t\n\t var keys = Object.keys(actionCreators);\n\t var boundActionCreators = {};\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var actionCreator = actionCreators[key];\n\t if (typeof actionCreator === 'function') {\n\t boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n\t }\n\t }\n\t return boundActionCreators;\n\t}\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\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\texports['default'] = applyMiddleware;\n\t\n\tvar _compose = __webpack_require__(58);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * Creates a store enhancer that applies middleware to the dispatch method\n\t * of the Redux store. This is handy for a variety of tasks, such as expressing\n\t * asynchronous actions in a concise manner, or logging every action payload.\n\t *\n\t * See `redux-thunk` package as an example of the Redux middleware.\n\t *\n\t * Because middleware is potentially asynchronous, this should be the first\n\t * store enhancer in the composition chain.\n\t *\n\t * Note that each middleware will be given the `dispatch` and `getState` functions\n\t * as named arguments.\n\t *\n\t * @param {...Function} middlewares The middleware chain to be applied.\n\t * @returns {Function} A store enhancer applying the middleware.\n\t */\n\tfunction applyMiddleware() {\n\t for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n\t middlewares[_key] = arguments[_key];\n\t }\n\t\n\t return function (createStore) {\n\t return function (reducer, preloadedState, enhancer) {\n\t var store = createStore(reducer, preloadedState, enhancer);\n\t var _dispatch = store.dispatch;\n\t var chain = [];\n\t\n\t var middlewareAPI = {\n\t getState: store.getState,\n\t dispatch: function dispatch(action) {\n\t return _dispatch(action);\n\t }\n\t };\n\t chain = middlewares.map(function (middleware) {\n\t return middleware(middlewareAPI);\n\t });\n\t _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\t\n\t return _extends({}, store, {\n\t dispatch: _dispatch\n\t });\n\t };\n\t };\n\t}\n\n/***/ },\n/* 58 */\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 }\n\t\n\t if (funcs.length === 1) {\n\t return funcs[0];\n\t }\n\t\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return function () {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t };\n\t}\n\n/***/ },\n/* 59 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2015, Yahoo! Inc.\n\t * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n\t */\n\t'use strict';\n\t\n\tvar REACT_STATICS = {\n\t childContextTypes: true,\n\t contextTypes: true,\n\t defaultProps: true,\n\t displayName: true,\n\t getDefaultProps: true,\n\t mixins: true,\n\t propTypes: true,\n\t type: true\n\t};\n\t\n\tvar KNOWN_STATICS = {\n\t name: true,\n\t length: true,\n\t prototype: true,\n\t caller: true,\n\t arguments: true,\n\t arity: true\n\t};\n\t\n\tvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\t\n\tmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n\t if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\t var keys = Object.getOwnPropertyNames(sourceComponent);\n\t\n\t /* istanbul ignore else */\n\t if (isGetOwnPropertySymbolsAvailable) {\n\t keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n\t }\n\t\n\t for (var i = 0; i < keys.length; ++i) {\n\t if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n\t try {\n\t targetComponent[keys[i]] = sourceComponent[keys[i]];\n\t } catch (error) {\n\t\n\t }\n\t }\n\t }\n\t }\n\t\n\t return targetComponent;\n\t};\n\n\n/***/ },\n/* 60 */\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.PersistentQueryLink = exports.Link = 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 _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 _react = __webpack_require__(36);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actionTypes = __webpack_require__(27);\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\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar normalizeHref = function normalizeHref(location) {\n\t return '' + (location.basename || '') + location.pathname;\n\t};\n\t\n\tvar normalizeLocation = function normalizeLocation(href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndQuery = href.split('?');\n\t var pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n\t var query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n\t return query ? { pathname: pathname, search: '?' + query } : { pathname: pathname };\n\t }\n\t return href;\n\t};\n\t\n\tvar resolveQueryForLocation = function resolveQueryForLocation(_ref) {\n\t var linkLocation = _ref.linkLocation;\n\t var persistQuery = _ref.persistQuery;\n\t var currentLocation = _ref.currentLocation;\n\t\n\t var currentQuery = currentLocation && currentLocation.query;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t if (persistQuery && currentQuery && !linkLocation.search && !linkLocation.query) {\n\t return {\n\t pathname: linkLocation.pathname,\n\t query: currentQuery\n\t };\n\t }\n\t\n\t return linkLocation;\n\t};\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar handleClick = function handleClick(_ref2) {\n\t var e = _ref2.e;\n\t var target = _ref2.target;\n\t var location = _ref2.location;\n\t var replaceState = _ref2.replaceState;\n\t var router = _ref2.router;\n\t var onClick = _ref2.onClick;\n\t\n\t if (onClick) {\n\t onClick(e);\n\t }\n\t\n\t if (hasModifier(e) || isNotLeftClick(e)) {\n\t return;\n\t }\n\t\n\t if (e.defaultPrevented) {\n\t return;\n\t }\n\t\n\t // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n\t if (target) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t if (router) {\n\t router.store.dispatch({\n\t type: replaceState ? _actionTypes.REPLACE : _actionTypes.PUSH,\n\t payload: location\n\t });\n\t }\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var children = props.children;\n\t var href = props.href;\n\t var onClick = props.onClick;\n\t var persistQuery = props.persistQuery;\n\t var replaceState = props.replaceState;\n\t var target = props.target;\n\t\n\t var rest = _objectWithoutProperties(props, ['children', 'href', 'onClick', 'persistQuery', 'replaceState', 'target']);\n\t\n\t var router = context.router;\n\t\n\t\n\t var locationDescriptor = resolveQueryForLocation({\n\t linkLocation: normalizeLocation(href),\n\t currentLocation: router.store.getState().router,\n\t persistQuery: persistQuery\n\t });\n\t\n\t var location = router.store.history.createLocation(locationDescriptor);\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: normalizeHref(location),\n\t onClick: function (_onClick) {\n\t function onClick(_x) {\n\t return _onClick.apply(this, arguments);\n\t }\n\t\n\t onClick.toString = function () {\n\t return _onClick.toString();\n\t };\n\t\n\t return onClick;\n\t }(function (e) {\n\t return handleClick({\n\t e: e,\n\t location: location,\n\t onClick: onClick,\n\t replaceState: replaceState,\n\t router: router,\n\t target: target\n\t });\n\t })\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, (PersistentQueryLink.__proto__ || Object.getPrototypeOf(PersistentQueryLink)).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 61 */\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.RelativeFragment = exports.AbsoluteFragment = 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__(36);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\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\tvar absolute = function absolute(ComposedComponent) {\n\t var AbsoluteFragment = function (_Component) {\n\t _inherits(AbsoluteFragment, _Component);\n\t\n\t function AbsoluteFragment() {\n\t _classCallCheck(this, AbsoluteFragment);\n\t\n\t return _possibleConstructorReturn(this, (AbsoluteFragment.__proto__ || Object.getPrototypeOf(AbsoluteFragment)).apply(this, arguments));\n\t }\n\t\n\t _createClass(AbsoluteFragment, [{\n\t key: 'render',\n\t value: function render() {\n\t var store = this.context.router.store;\n\t\n\t var location = store.getState().router;\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t location: location,\n\t matchRoute: store.matchRoute\n\t }, this.props));\n\t }\n\t }]);\n\t\n\t return AbsoluteFragment;\n\t }(_react.Component);\n\t\n\t AbsoluteFragment.contextTypes = {\n\t router: _react.PropTypes.object\n\t };\n\t\n\t return AbsoluteFragment;\n\t};\n\t\n\tvar relative = function relative(ComposedComponent) {\n\t var RelativeFragment = function (_Component2) {\n\t _inherits(RelativeFragment, _Component2);\n\t\n\t function RelativeFragment() {\n\t _classCallCheck(this, RelativeFragment);\n\t\n\t return _possibleConstructorReturn(this, (RelativeFragment.__proto__ || Object.getPrototypeOf(RelativeFragment)).apply(this, arguments));\n\t }\n\t\n\t _createClass(RelativeFragment, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t // Append the parent route if this isn't the first\n\t // RelativeFragment in the hierarchy.\n\t parentRoute: this.context.parentRoute && this.context.parentRoute !== '/' && this.context.parentRoute !== this.props.forRoute ? '' + this.context.parentRoute + this.props.forRoute : this.props.forRoute\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t var forRoute = _props.forRoute;\n\t\n\t var rest = _objectWithoutProperties(_props, ['children', 'forRoute']);\n\t\n\t var _context = this.context;\n\t var router = _context.router;\n\t var parentRoute = _context.parentRoute;\n\t var store = router.store;\n\t\n\t\n\t var location = store.getState().router;\n\t\n\t var routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t location: location,\n\t matchRoute: store.matchWildcardRoute,\n\t forRoute: forRoute && '' + routePrefix + forRoute,\n\t children: children\n\t }, rest));\n\t }\n\t }]);\n\t\n\t return RelativeFragment;\n\t }(_react.Component);\n\t\n\t // Consumes this context...\n\t\n\t\n\t RelativeFragment.contextTypes = {\n\t router: _react.PropTypes.object,\n\t parentRoute: _react.PropTypes.string\n\t };\n\t\n\t // ...and provides this context.\n\t RelativeFragment.childContextTypes = {\n\t parentRoute: _react.PropTypes.string\n\t };\n\t\n\t return RelativeFragment;\n\t};\n\t\n\tvar Fragment = function Fragment(props) {\n\t var location = props.location;\n\t var matchRoute = props.matchRoute;\n\t var forRoute = props.forRoute;\n\t var withConditions = props.withConditions;\n\t var children = props.children;\n\t\n\t\n\t var matchResult = matchRoute(location.pathname, forRoute);\n\t\n\t if (!matchResult) {\n\t return null;\n\t }\n\t\n\t if (forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (Array.isArray(props.forRoutes)) {\n\t var anyMatch = props.forRoutes.some(function (route) {\n\t return matchResult.route === route;\n\t });\n\t\n\t if (!anyMatch) {\n\t return null;\n\t }\n\t }\n\t\n\t if (withConditions && !withConditions(location)) {\n\t return null;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\tvar AbsoluteFragment = exports.AbsoluteFragment = absolute(Fragment);\n\tvar RelativeFragment = exports.RelativeFragment = relative(Fragment);\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** redux-little-router.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 076196f0fe7b6aa6248e\n **/","// @flow\nimport routerForBrowser from './browser-router';\nimport routerForExpress from './express-router';\nimport createStoreWithRouter from './store-enhancer';\nimport { locationDidChange, initializeCurrentLocation } from './action-creators';\n\nimport provideRouter, { RouterProvider } from './provider';\nimport { Link, PersistentQueryLink } from './link';\nimport { AbsoluteFragment, RelativeFragment } from './fragment';\n\nimport routerReducer from './reducer';\nimport createMatcher from './create-matcher';\n\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n} from './action-types';\n\nconst Fragment = AbsoluteFragment;\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n AbsoluteFragment,\n RelativeFragment,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK,\n\n // Low-level Redux utilities\n routerReducer,\n createStoreWithRouter,\n locationDidChange,\n createMatcher\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","// @flow\nimport createBrowserHistory from 'history/lib/createBrowserHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport installRouter from './store-enhancer';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = useBasename(useQueries(createBrowserHistory))({\n basename\n });\n\n const { pathname, search } = getLocation();\n const location = history\n .createLocation({ pathname, search });\n\n return installRouter({ routes, history, location });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./browser-router.js\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nvar BrowserProtocol = _interopRequireWildcard(_BrowserProtocol);\n\nvar _RefreshProtocol = require('./RefreshProtocol');\n\nvar RefreshProtocol = _interopRequireWildcard(_RefreshProtocol);\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction _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\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve clean URLs. You can force this\n * behavior using { forceRefresh: true } in options.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var useRefresh = options.forceRefresh || !(0, _DOMUtils.supportsHistory)();\n var Protocol = useRefresh ? RefreshProtocol : BrowserProtocol;\n\n var getUserConfirmation = Protocol.getUserConfirmation;\n var getCurrentLocation = Protocol.getCurrentLocation;\n var pushLocation = Protocol.pushLocation;\n var replaceLocation = Protocol.replaceLocation;\n var go = Protocol.go;\n\n\n var history = (0, _createHistory2.default)(_extends({\n getUserConfirmation: getUserConfirmation }, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var listenerCount = 0,\n stopListener = void 0;\n\n var startListener = function startListener(listener, before) {\n if (++listenerCount === 1) stopListener = BrowserProtocol.startListener(history.transitionTo);\n\n var unlisten = before ? history.listenBefore(listener) : history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopListener();\n };\n };\n\n var listenBefore = function listenBefore(listener) {\n return startListener(listener, true);\n };\n\n var listen = function listen(listener) {\n return startListener(listener, false);\n };\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen\n });\n};\n\nexports.default = createBrowserHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createBrowserHistory.js\n ** module id = 2\n ** module chunks = 0\n **/","/**\n * Copyright 2013-2015, 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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/invariant/browser.js\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/ExecutionEnvironment.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.go = exports.replaceLocation = exports.pushLocation = exports.startListener = exports.getUserConfirmation = exports.getCurrentLocation = undefined;\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _PathUtils = require('./PathUtils');\n\n/* eslint-disable no-alert */\n\n\nvar PopStateEvent = 'popstate';\n\nvar _createLocation = function _createLocation(historyState) {\n var key = historyState && historyState.key;\n\n return (0, _LocationUtils.createLocation)({\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n state: key ? (0, _DOMStateStorage.readState)(key) : undefined\n }, undefined, key);\n};\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n var historyState = void 0;\n try {\n historyState = window.history.state || {};\n } catch (error) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n historyState = {};\n }\n\n return _createLocation(historyState);\n};\n\nvar getUserConfirmation = exports.getUserConfirmation = function getUserConfirmation(message, callback) {\n return callback(window.confirm(message));\n};\n\nvar startListener = exports.startListener = function startListener(listener) {\n var handlePopState = function handlePopState(event) {\n if (event.state !== undefined) // Ignore extraneous popstate events in WebKit\n listener(_createLocation(event.state));\n };\n\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n return function () {\n return (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n };\n};\n\nvar updateLocation = function updateLocation(location, updateState) {\n var state = location.state;\n var key = location.key;\n\n\n if (state !== undefined) (0, _DOMStateStorage.saveState)(key, state);\n\n updateState({ key: key }, (0, _PathUtils.createPath)(location));\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.pushState(state, null, path);\n });\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n return updateLocation(location, function (state, path) {\n return window.history.replaceState(state, null, path);\n });\n};\n\nvar go = exports.go = function go(n) {\n if (n) window.history.go(n);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/BrowserProtocol.js\n ** module id = 5\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.locationsAreEqual = exports.statesAreEqual = exports.createLocation = exports.createQuery = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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 _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createQuery = exports.createQuery = function createQuery(props) {\n return _extends(Object.create(null), props);\n};\n\nvar createLocation = exports.createLocation = function createLocation() {\n var input = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n var object = typeof input === 'string' ? (0, _PathUtils.parsePath)(input) : input;\n\n var pathname = object.pathname || '/';\n var search = object.search || '';\n var hash = object.hash || '';\n var state = object.state;\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n};\n\nvar isDate = function isDate(object) {\n return Object.prototype.toString.call(object) === '[object Date]';\n};\n\nvar statesAreEqual = exports.statesAreEqual = function statesAreEqual(a, b) {\n if (a === b) return true;\n\n var typeofA = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var typeofB = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (typeofA !== typeofB) return false;\n\n !(typeofA !== 'function') ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store functions in location state') : (0, _invariant2.default)(false) : void 0;\n\n // Not the same object, but same type.\n if (typeofA === 'object') {\n !!(isDate(a) && isDate(b)) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'You must not store Date objects in location state') : (0, _invariant2.default)(false) : void 0;\n\n if (!Array.isArray(a)) return Object.keys(a).every(function (key) {\n return statesAreEqual(a[key], b[key]);\n });\n\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return statesAreEqual(item, b[index]);\n });\n }\n\n // All other serializable types (string, number, boolean)\n // should be strict equal.\n return false;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.key === b.key &&\n // a.action === b.action && // Different action !== location change.\n a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && statesAreEqual(a.state, b.state);\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/LocationUtils.js\n ** module id = 6\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createPath = exports.parsePath = exports.getQueryStringValueFromPath = exports.stripQueryStringValueFromPath = exports.addQueryStringValueToPath = exports.isAbsolutePath = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isAbsolutePath = exports.isAbsolutePath = function isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n};\n\nvar addQueryStringValueToPath = exports.addQueryStringValueToPath = function addQueryStringValueToPath(path, key, value) {\n var _parsePath = parsePath(path);\n\n var pathname = _parsePath.pathname;\n var search = _parsePath.search;\n var hash = _parsePath.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search + (search.indexOf('?') === -1 ? '?' : '&') + key + '=' + value,\n hash: hash\n });\n};\n\nvar stripQueryStringValueFromPath = exports.stripQueryStringValueFromPath = function stripQueryStringValueFromPath(path, key) {\n var _parsePath2 = parsePath(path);\n\n var pathname = _parsePath2.pathname;\n var search = _parsePath2.search;\n var hash = _parsePath2.hash;\n\n\n return createPath({\n pathname: pathname,\n search: search.replace(new RegExp('([?&])' + key + '=[a-zA-Z0-9]+(&?)'), function (match, prefix, suffix) {\n return prefix === '?' ? prefix : suffix;\n }),\n hash: hash\n });\n};\n\nvar getQueryStringValueFromPath = exports.getQueryStringValueFromPath = function getQueryStringValueFromPath(path, key) {\n var _parsePath3 = parsePath(path);\n\n var search = _parsePath3.search;\n\n var match = search.match(new RegExp('[?&]' + key + '=([a-zA-Z0-9]+)'));\n return match && match[1];\n};\n\nvar extractPath = function extractPath(string) {\n var match = string.match(/^(https?:)?\\/\\/[^\\/]*/);\n return match == null ? string : string.substring(match[0].length);\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = extractPath(path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(path === pathname, 'A path must be pathname + search + hash only, not a full URL like \"%s\"', path) : void 0;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n if (location == null || typeof location === 'string') return location;\n\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n\n var path = (basename || '') + pathname;\n\n if (search && search !== '?') path += search;\n\n if (hash) path += hash;\n\n return path;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/PathUtils.js\n ** module id = 7\n ** module chunks = 0\n **/","/**\n * Copyright 2014-2015, 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\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/warning/browser.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\nvar PUSH = exports.PUSH = 'PUSH';\n\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = exports.REPLACE = 'REPLACE';\n\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = exports.POP = 'POP';\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/Actions.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMUtils.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readState = exports.saveState = undefined;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; /* eslint-disable no-empty */\n\n\nvar SecurityError = 'SecurityError';\nvar KeyPrefix = '@@History/';\n\nvar createKey = function createKey(key) {\n return KeyPrefix + key;\n};\n\nvar saveState = exports.saveState = function saveState(key, state) {\n if (!window.sessionStorage) {\n // Session storage is not available or hidden.\n // sessionStorage is undefined in Internet Explorer when served via file protocol.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available') : void 0;\n return;\n }\n\n try {\n if (state == null) {\n window.sessionStorage.removeItem(createKey(key));\n } else {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n }\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available due to security settings') : void 0;\n\n return;\n }\n\n if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : void 0;\n\n return;\n }\n\n throw error;\n }\n};\n\nvar readState = exports.readState = function readState(key) {\n var json = void 0;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, '[history] Unable to read state; sessionStorage is not available due to security settings') : void 0;\n\n return undefined;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return undefined;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/DOMStateStorage.js\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.replaceLocation = exports.pushLocation = exports.getCurrentLocation = exports.go = exports.getUserConfirmation = undefined;\n\nvar _BrowserProtocol = require('./BrowserProtocol');\n\nObject.defineProperty(exports, 'getUserConfirmation', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.getUserConfirmation;\n }\n});\nObject.defineProperty(exports, 'go', {\n enumerable: true,\n get: function get() {\n return _BrowserProtocol.go;\n }\n});\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar getCurrentLocation = exports.getCurrentLocation = function getCurrentLocation() {\n return (0, _LocationUtils.createLocation)(window.location);\n};\n\nvar pushLocation = exports.pushLocation = function pushLocation(location) {\n window.location.href = (0, _PathUtils.createPath)(location);\n return false; // Don't update location\n};\n\nvar replaceLocation = exports.replaceLocation = function replaceLocation(location) {\n window.location.replace((0, _PathUtils.createPath)(location));\n return false; // Don't update location\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/RefreshProtocol.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _Actions = require('./Actions');\n\nvar _LocationUtils = require('./LocationUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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\nvar createHistory = function createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var getUserConfirmation = options.getUserConfirmation;\n var pushLocation = options.pushLocation;\n var replaceLocation = options.replaceLocation;\n var go = options.go;\n var keyLength = options.keyLength;\n\n\n var currentLocation = void 0;\n var pendingLocation = void 0;\n var beforeListeners = [];\n var listeners = [];\n var allKeys = [];\n\n var getCurrentIndex = function getCurrentIndex() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) return allKeys.indexOf(pendingLocation.key);\n\n if (currentLocation) return allKeys.indexOf(currentLocation.key);\n\n return -1;\n };\n\n var updateLocation = function updateLocation(nextLocation) {\n currentLocation = nextLocation;\n\n var currentIndex = getCurrentIndex();\n\n if (currentLocation.action === _Actions.PUSH) {\n allKeys = [].concat(_toConsumableArray(allKeys.slice(0, currentIndex + 1)), [currentLocation.key]);\n } else if (currentLocation.action === _Actions.REPLACE) {\n allKeys[currentIndex] = currentLocation.key;\n }\n\n listeners.forEach(function (listener) {\n return listener(currentLocation);\n });\n };\n\n var listenBefore = function listenBefore(listener) {\n beforeListeners.push(listener);\n\n return function () {\n return beforeListeners = beforeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var listen = function listen(listener) {\n listeners.push(listener);\n\n return function () {\n return listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, callback) {\n (0, _AsyncUtils.loopAsync)(beforeListeners.length, function (index, next, done) {\n (0, _runTransitionHook2.default)(beforeListeners[index], location, function (result) {\n return result != null ? done(result) : next();\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n return callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n };\n\n var transitionTo = function transitionTo(nextLocation) {\n if (currentLocation && (0, _LocationUtils.locationsAreEqual)(currentLocation, nextLocation) || pendingLocation && (0, _LocationUtils.locationsAreEqual)(pendingLocation, nextLocation)) return; // Nothing to do\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted during confirmation\n\n pendingLocation = null;\n\n if (ok) {\n // Treat PUSH to same path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var prevPath = (0, _PathUtils.createPath)(currentLocation);\n var nextPath = (0, _PathUtils.createPath)(nextLocation);\n\n if (nextPath === prevPath && (0, _LocationUtils.statesAreEqual)(currentLocation.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n }\n\n if (nextLocation.action === _Actions.POP) {\n updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.PUSH) {\n if (pushLocation(nextLocation) !== false) updateLocation(nextLocation);\n } else if (nextLocation.action === _Actions.REPLACE) {\n if (replaceLocation(nextLocation) !== false) updateLocation(nextLocation);\n }\n } else if (currentLocation && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(currentLocation.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL\n }\n });\n };\n\n var push = function push(input) {\n return transitionTo(createLocation(input, _Actions.PUSH));\n };\n\n var replace = function replace(input) {\n return transitionTo(createLocation(input, _Actions.REPLACE));\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength || 6);\n };\n\n var createHref = function createHref(location) {\n return (0, _PathUtils.createPath)(location);\n };\n\n var createLocation = function createLocation(location, action) {\n var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n return (0, _LocationUtils.createLocation)(location, action, key);\n };\n\n return {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: _PathUtils.createPath,\n createHref: createHref,\n createLocation: createLocation\n };\n};\n\nexports.default = createHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createHistory.js\n ** module id = 13\n ** module chunks = 0\n **/","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _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\nvar loopAsync = exports.loopAsync = function loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n var isSync = false,\n hasNext = false,\n doneArgs = void 0;\n\n var done = function done() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n isDone = true;\n\n if (isSync) {\n // Iterate instead of recursing if possible.\n doneArgs = args;\n return;\n }\n\n callback.apply(undefined, args);\n };\n\n var next = function next() {\n if (isDone) return;\n\n hasNext = true;\n\n if (isSync) return; // Iterate instead of recursing if possible.\n\n isSync = true;\n\n while (!isDone && currentTurn < turns && hasNext) {\n hasNext = false;\n work(currentTurn++, next, done);\n }\n\n isSync = false;\n\n if (isDone) {\n // This means the loop finished synchronously.\n callback.apply(undefined, _toConsumableArray(doneArgs));\n return;\n }\n\n if (currentTurn >= turns && hasNext) {\n isDone = true;\n callback();\n }\n };\n\n next();\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/AsyncUtils.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar runTransitionHook = function runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(result === undefined, 'You should not \"return\" in a transition hook with a callback argument; ' + 'call the callback instead') : void 0;\n }\n};\n\nexports.default = runTransitionHook;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/runTransitionHook.js\n ** module id = 15\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 _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar useBasename = function useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var basename = options.basename;\n\n\n var addBasename = function addBasename(location) {\n if (!location) return location;\n\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n };\n\n var prependBasename = function prependBasename(location) {\n if (!basename) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var pname = object.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, location, {\n pathname: pathname\n });\n };\n\n // Override all read methods with basename-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return addBasename(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, addBasename(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(addBasename(location));\n });\n };\n\n // Override all write methods with basename-aware versions.\n var push = function push(location) {\n return history.push(prependBasename(location));\n };\n\n var replace = function replace(location) {\n return history.replace(prependBasename(location));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(prependBasename(location));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(prependBasename(location));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useBasename;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useBasename.js\n ** module id = 16\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 _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultStringifyQuery = function defaultStringifyQuery(query) {\n return (0, _queryString.stringify)(query).replace(/%20/g, '+');\n};\n\nvar defaultParseQueryString = _queryString.parse;\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nvar useQueries = function useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var history = createHistory(options);\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n var decodeQuery = function decodeQuery(location) {\n if (!location) return location;\n\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n };\n\n var encodeQuery = function encodeQuery(location, query) {\n if (query == null) return location;\n\n var object = typeof location === 'string' ? (0, _PathUtils.parsePath)(location) : location;\n var queryString = stringifyQuery(query);\n var search = queryString ? '?' + queryString : '';\n\n return _extends({}, object, {\n search: search\n });\n };\n\n // Override all read methods with query-aware versions.\n var getCurrentLocation = function getCurrentLocation() {\n return decodeQuery(history.getCurrentLocation());\n };\n\n var listenBefore = function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n return (0, _runTransitionHook2.default)(hook, decodeQuery(location), callback);\n });\n };\n\n var listen = function listen(listener) {\n return history.listen(function (location) {\n return listener(decodeQuery(location));\n });\n };\n\n // Override all write methods with query-aware versions.\n var push = function push(location) {\n return history.push(encodeQuery(location, location.query));\n };\n\n var replace = function replace(location) {\n return history.replace(encodeQuery(location, location.query));\n };\n\n var createPath = function createPath(location) {\n return history.createPath(encodeQuery(location, location.query));\n };\n\n var createHref = function createHref(location) {\n return history.createHref(encodeQuery(location, location.query));\n };\n\n var createLocation = function createLocation(location) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var newLocation = history.createLocation.apply(history, [encodeQuery(location, location.query)].concat(args));\n\n if (location.query) newLocation.query = (0, _LocationUtils.createQuery)(location.query);\n\n return decodeQuery(newLocation);\n };\n\n return _extends({}, history, {\n getCurrentLocation: getCurrentLocation,\n listenBefore: listenBefore,\n listen: listen,\n push: push,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n};\n\nexports.default = useQueries;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/useQueries.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (ret[key] === undefined) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\t});\n\n\treturn ret;\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (val2 === null) {\n\t\t\t\t\tresult.push(encode(key, opts));\n\t\t\t\t} else {\n\t\t\t\t\tresult.push(encode(key, opts) + '=' + encode(val2, opts));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/query-string/index.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/strict-uri-encode/index.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\n/* eslint-disable no-unused-vars */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (e) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (Object.getOwnPropertySymbols) {\n\t\t\tsymbols = Object.getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/object-assign/index.js\n ** module id = 20\n ** module chunks = 0\n **/","// @flow\nimport type {\n StoreCreator,\n StoreEnhancer,\n Reducer,\n State\n} from 'redux';\n\nimport type { History } from 'history';\n\nimport { default as matcherFactory } from './create-matcher';\nimport attachRouterToReducer from './reducer-enhancer';\nimport { locationDidChange } from './action-creators';\nimport wrapDispatch from './wrap-dispatch';\n\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype StoreEnhancerArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: StoreEnhancerArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n return (createStore: StoreCreator) => (\n reducer: Reducer,\n initialState: State,\n enhancer: StoreEnhancer\n ) => {\n const enhancedReducer = attachRouterToReducer(reducer);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n const initialStateWithRouter = {\n ...initialState,\n router: {\n ...location,\n ...matchRoute(location.pathname)\n }\n };\n\n const store = createStore(\n enhancedReducer,\n initialStateWithRouter,\n enhancer\n );\n\n history.listen(newLocation => {\n /* istanbul ignore else */\n if (newLocation) {\n store.dispatch(locationDidChange({\n location: newLocation, matchRoute\n }));\n }\n });\n\n const dispatch = wrapDispatch(store, history);\n\n return {\n ...store,\n dispatch,\n\n // We attach routes here to allow \n // to access unserializable properties of route results.\n routes,\n\n history,\n matchRoute,\n matchWildcardRoute\n };\n };\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./store-enhancer.js\n **/","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./create-matcher.js\n **/","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/url-pattern/lib/url-pattern.js\n ** module id = 23\n ** module chunks = 0\n **/","module.exports = __webpack_amd_options__;\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/webpack/buildin/amd-options.js\n ** module id = 24\n ** module chunks = 0\n **/","// @flow\nimport type { Reducer, State, Action } from 'redux';\nimport routerReducer from './reducer';\n\nexport default (vanillaReducer: Reducer) =>\n (state: State, action: Action) => {\n const vanillaState = { ...state };\n delete vanillaState.router;\n\n const newState = vanillaReducer(vanillaState, action);\n\n // Support redux-loop\n if (Array.isArray(newState)) {\n const nextState = newState[0]; // eslint-disable-line no-magic-numbers\n const nextEffects = newState[1]; // eslint-disable-line no-magic-numbers\n return [\n {\n ...nextState,\n router: routerReducer(state && state.router, action)\n },\n nextEffects\n ];\n }\n\n return {\n ...newState,\n router: routerReducer(state && state.router, action)\n };\n };\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer-enhancer.js\n **/","// @flow\nimport type { Action } from 'redux';\nimport type { Location } from 'history';\nimport { LOCATION_CHANGED } from './action-types';\n\nexport default (state: ?Location | Object = {}, action: Action) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state &&\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n if (state) {\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldState } = state;\n return {\n ...action.payload,\n previous: oldState\n };\n }\n }\n return state;\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./reducer.js\n **/","// @flow\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-types.js\n **/","// @flow\nimport { LOCATION_CHANGED } from './action-types';\nimport type { Location } from 'history';\n\ntype LocationDidChangeArgs = {\n location: Location,\n matchRoute: Function\n};\nexport const locationDidChange = ({\n location,\n matchRoute\n}: LocationDidChangeArgs) => {\n // Extract the pathname so that we don't match against the basename.\n // This avoids requiring basename-hardcoded routes.\n const { pathname } = location;\n\n return {\n type: LOCATION_CHANGED,\n payload: {\n ...location,\n ...matchRoute(pathname)\n }\n };\n};\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n/** WEBPACK FOOTER **\n ** ./action-creators.js\n **/","import {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './action-types';\n\nexport default (store, history) => action => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n return null;\n case REPLACE:\n history.replace(action.payload);\n return null;\n case GO:\n history.go(action.payload);\n return null;\n case GO_BACK:\n history.goBack();\n return null;\n case GO_FORWARD:\n history.goForward();\n return null;\n default:\n // We return the result of dispatch here\n // to retain compatibility with enhancers\n // that return a promise from dispatch.\n return store.dispatch(action);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./wrap-dispatch.js\n **/","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/validate-routes.js\n **/","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n/** WEBPACK FOOTER **\n ** ./util/flatten-routes.js\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash.assign/index.js\n ** module id = 32\n ** module chunks = 0\n **/","// @flow\nimport createMemoryHistory from 'history/lib/createMemoryHistory';\nimport useBasename from 'history/lib/useBasename';\nimport useQueries from 'history/lib/useQueries';\n\nimport installRouter from './store-enhancer';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n }\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = useBasename(useQueries(createMemoryHistory))({\n basename: request.baseUrl\n });\n\n const location = history.createLocation({\n pathname: request.path,\n query: request.query\n });\n\n return installRouter({ routes, history, location });\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./express-router.js\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nvar _Actions = require('./Actions');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createStateStorage = function createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n};\n\nvar createMemoryHistory = function createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var getCurrentLocation = function getCurrentLocation() {\n var entry = entries[current];\n var path = (0, _PathUtils.createPath)(entry);\n\n var key = void 0,\n state = void 0;\n if (entry.key) {\n key = entry.key;\n state = readState(key);\n }\n\n var init = (0, _PathUtils.parsePath)(path);\n\n return (0, _LocationUtils.createLocation)(_extends({}, init, { state: state }), undefined, key);\n };\n\n var canGo = function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n };\n\n var go = function go(n) {\n if (!n) return;\n\n if (!canGo(n)) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'Cannot go(%s) there is not enough history', n) : void 0;\n\n return;\n }\n\n current += n;\n var currentLocation = getCurrentLocation();\n\n // Change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n };\n\n var pushLocation = function pushLocation(location) {\n current += 1;\n\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n\n saveState(location.key, location.state);\n };\n\n var replaceLocation = function replaceLocation(location) {\n entries[current] = location;\n saveState(location.key, location.state);\n };\n\n var history = (0, _createHistory2.default)(_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n pushLocation: pushLocation,\n replaceLocation: replaceLocation,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n return (0, _LocationUtils.createLocation)(entry);\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : (0, _invariant2.default)(false) : void 0;\n }\n\n var storage = createStateStorage(entries);\n\n var saveState = function saveState(key, state) {\n return storage[key] = state;\n };\n\n var readState = function readState(key) {\n return storage[key];\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/history/lib/createMemoryHistory.js\n ** module id = 34\n ** module chunks = 0\n **/","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type RouterContext = { store: Store };\n\ntype Props = {\n store: Object,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: Store };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: Object\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n/** WEBPACK FOOTER **\n ** ./provider.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_36__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n ** module id = 36\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/index.js\n ** module id = 37\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n var children = this.props.children;\n\n return _react.Children.only(children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/Provider.js\n ** module id = 38\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/storeShape.js\n ** module id = 39\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/warning.js\n ** module id = 40\n ** module chunks = 0\n **/","'use strict';\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\nexports.__esModule = true;\nexports[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _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\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = undefined;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure;\n var pure = _options$pure === undefined ? true : _options$pure;\n var _options$withRef = options.withRef;\n var withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged;\n var hasStoreStateChanged = this.hasStoreStateChanged;\n var haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated;\n var statePropsPrecalculationError = this.statePropsPrecalculationError;\n var renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/components/connect.js\n ** module id = 41\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/shallowEqual.js\n ** module id = 42\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/react-redux/lib/utils/wrapActionCreators.js\n ** module id = 43\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/index.js\n ** module id = 44\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/createStore.js\n ** module id = 45\n ** module chunks = 0\n **/","var getPrototype = require('./_getPrototype'),\n isHostObject = require('./_isHostObject'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\nmodule.exports = isPlainObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/isPlainObject.js\n ** module id = 46\n ** module chunks = 0\n **/","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_getPrototype.js\n ** module id = 47\n ** module chunks = 0\n **/","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_overArg.js\n ** module id = 48\n ** module chunks = 0\n **/","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\nmodule.exports = isHostObject;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/lodash/_isHostObject.js\n ** module id = 49\n ** module chunks = 0\n **/","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => 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 = 50\n ** module chunks = 0\n **/","module.exports = require('./lib/index');\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/index.js\n ** module id = 51\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root = undefined; /* global window */\n\nif (typeof global !== 'undefined') {\n\troot = global;\n} else if (typeof window !== 'undefined') {\n\troot = window;\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/index.js\n ** module id = 52\n ** module chunks = 0\n **/","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/symbol-observable/lib/ponyfill.js\n ** module id = 53\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/combineReducers.js\n ** module id = 54\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/utils/warning.js\n ** module id = 55\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/bindActionCreators.js\n ** module id = 56\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\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\nexports['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/applyMiddleware.js\n ** module id = 57\n ** module chunks = 0\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/redux/lib/compose.js\n ** module id = 58\n ** module chunks = 0\n **/","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/hoist-non-react-statics/index.js\n ** module id = 59\n ** module chunks = 0\n **/","// @flow\nimport type { LocationDescriptor } from 'history';\nimport type { RouterContext } from './provider';\nimport React, { Component, PropTypes } from 'react';\n\nimport { PUSH, REPLACE } from './action-types';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: string | LocationDescriptor,\n onClick: EventHandler,\n persistQuery: bool,\n replaceState: bool,\n style: Object,\n target: string\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst normalizeHref = location =>\n `${location.basename || ''}${location.pathname}`;\n\nconst normalizeLocation = href => {\n if (typeof href === 'string') {\n const pathnameAndQuery = href.split('?');\n const pathname = pathnameAndQuery[0]; // eslint-disable-line no-magic-numbers\n const query = pathnameAndQuery[1]; // eslint-disable-line no-magic-numbers\n return query ? { pathname, search: `?${query}` } : { pathname };\n }\n return href;\n};\n\nconst resolveQueryForLocation = ({\n linkLocation,\n persistQuery,\n currentLocation\n}) => {\n const currentQuery = currentLocation &&\n currentLocation.query;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n persistQuery &&\n currentQuery &&\n !linkLocation.search &&\n !linkLocation.query\n ) {\n return {\n pathname: linkLocation.pathname,\n query: currentQuery\n };\n }\n\n return linkLocation;\n};\n\nconst isNotLeftClick = e => e.button && e.button !== LEFT_MOUSE_BUTTON;\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst handleClick = ({\n e,\n target,\n location,\n replaceState,\n router,\n onClick\n}) => {\n if (onClick) { onClick(e); }\n\n if (hasModifier(e) || isNotLeftClick(e)) { return; }\n\n if (e.defaultPrevented) { return; }\n\n // If target prop is set (e.g. to \"_blank\"), let browser handle link.\n if (target) { return; }\n\n e.preventDefault();\n\n if (router) {\n router.store.dispatch({\n type: replaceState ? REPLACE : PUSH,\n payload: location\n });\n }\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n children,\n href,\n onClick,\n persistQuery,\n replaceState,\n target,\n ...rest\n } = props;\n\n const { router } = context;\n\n const locationDescriptor =\n resolveQueryForLocation({\n linkLocation: normalizeLocation(href),\n currentLocation: router.store.getState().router,\n persistQuery\n });\n\n const location = router.store.history\n .createLocation(locationDescriptor);\n\n return (\n handleClick({\n e,\n location,\n onClick,\n replaceState,\n router,\n target\n })}\n {...rest}\n >\n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n/** WEBPACK FOOTER **\n ** ./link.js\n **/","// @flow\nimport type { Location } from 'history';\n\nimport React, { Component, PropTypes } from 'react';\n\ntype RelativeProps = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n children: React.Element<*>\n};\n\ntype AbsoluteProps = RelativeProps & {\n forRoutes?: [string]\n};\n\nconst absolute = (ComposedComponent: ReactClass<*>) => {\n class AbsoluteFragment extends Component {\n props: AbsoluteProps;\n\n render() {\n const { store } = this.context.router;\n const location = store.getState().router;\n\n return (\n \n );\n }\n }\n\n AbsoluteFragment.contextTypes = {\n router: PropTypes.object\n };\n\n return AbsoluteFragment;\n};\n\nconst relative = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n getChildContext() {\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: this.context.parentRoute &&\n this.context.parentRoute !== '/' &&\n this.context.parentRoute !== this.props.forRoute\n ? `${this.context.parentRoute}${this.props.forRoute}`\n : this.props.forRoute\n };\n }\n\n props: RelativeProps;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\ntype Props = AbsoluteProps | RelativeProps;\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (!matchResult) { return null; }\n\n if (\n forRoute &&\n matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (Array.isArray(props.forRoutes)) {\n const anyMatch = props.forRoutes.some(route =>\n matchResult.route === route\n );\n\n if (!anyMatch) {\n return null;\n }\n }\n\n if (withConditions && !withConditions(location)) {\n return null;\n }\n\n return
{children}
;\n};\n\nexport const AbsoluteFragment = absolute(Fragment);\nexport const RelativeFragment = relative(Fragment);\n\n\n\n/** WEBPACK FOOTER **\n ** ./fragment.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index af41a49a..157335f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redux-little-router", - "version": "9.0.3", + "version": "10.0.0", "description": "A barebones routing solution for Redux applications.", "main": "lib/index.js", "scripts": {