text: webpackHotUpdate(0,{
  
  /***/ "./node_modules/can-use-dom/index.js":
  /*!*******************************************!*\
    !*** ./node_modules/can-use-dom/index.js ***!
    \*******************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports) {
  
  var canUseDOM = !!(
    typeof window !== 'undefined' &&
    window.document &&
    window.document.createElement
  );
  
  module.exports = canUseDOM;
  
  /***/ }),
  
  /***/ "./node_modules/classnames/index.js":
  /*!******************************************!*\
    !*** ./node_modules/classnames/index.js ***!
    \******************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
    Copyright (c) 2016 Jed Watson.
    Licensed under the MIT License (MIT), see
    http://jedwatson.github.io/classnames
  */
  /* global define */
  
  (function () {
  	'use strict';
  
  	var hasOwn = {}.hasOwnProperty;
  
  	function classNames () {
  		var classes = [];
  
  		for (var i = 0; i < arguments.length; i++) {
  			var arg = arguments[i];
  			if (!arg) continue;
  
  			var argType = typeof arg;
  
  			if (argType === 'string' || argType === 'number') {
  				classes.push(arg);
  			} else if (Array.isArray(arg)) {
  				classes.push(classNames.apply(null, arg));
  			} else if (argType === 'object') {
  				for (var key in arg) {
  					if (hasOwn.call(arg, key) && arg[key]) {
  						classes.push(key);
  					}
  				}
  			}
  		}
  
  		return classes.join(' ');
  	}
  
  	if (typeof module !== 'undefined' && module.exports) {
  		module.exports = classNames;
  	} else if (true) {
  		// register as 'classnames', consistent with npm package name
  		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
  			return classNames;
  		}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
  				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  	} else {
  		window.classNames = classNames;
  	}
  }());
  
  
  /***/ }),
  
  /***/ "./node_modules/create-react-class/factory.js":
  /*!****************************************************!*\
    !*** ./node_modules/create-react-class/factory.js ***!
    \****************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   */
  
  
  
  var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ "./node_modules/fbjs/lib/emptyObject.js");
  var _invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
  
  if (true) {
    var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
  }
  
  var MIXINS_KEY = 'mixins';
  
  // Helper function to allow the creation of anonymous functions which do not
  // have .name set to the name of the variable being assigned to.
  function identity(fn) {
    return fn;
  }
  
  var ReactPropTypeLocationNames;
  if (true) {
    ReactPropTypeLocationNames = {
      prop: 'prop',
      context: 'context',
      childContext: 'child context'
    };
  } else {
    ReactPropTypeLocationNames = {};
  }
  
  function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
    /**
     * Policies that describe methods in `ReactClassInterface`.
     */
  
    var injectedMixins = [];
  
    /**
     * Composite components are higher-level components that compose other composite
     * or host components.
     *
     * To create a new type of `ReactClass`, pass a specification of
     * your new class to `React.createClass`. The only requirement of your class
     * specification is that you implement a `render` method.
     *
     *   var MyComponent = React.createClass({
     *     render: function() {
     *       return <div>Hello World</div>;
     *     }
     *   });
     *
     * The class specification supports a specific protocol of methods that have
     * special meaning (e.g. `render`). See `ReactClassInterface` for
     * more the comprehensive protocol. Any other properties and methods in the
     * class specification will be available on the prototype.
     *
     * @interface ReactClassInterface
     * @internal
     */
    var ReactClassInterface = {
      /**
       * An array of Mixin objects to include when defining your component.
       *
       * @type {array}
       * @optional
       */
      mixins: 'DEFINE_MANY',
  
      /**
       * An object containing properties and methods that should be defined on
       * the component's constructor instead of its prototype (static methods).
       *
       * @type {object}
       * @optional
       */
      statics: 'DEFINE_MANY',
  
      /**
       * Definition of prop types for this component.
       *
       * @type {object}
       * @optional
       */
      propTypes: 'DEFINE_MANY',
  
      /**
       * Definition of context types for this component.
       *
       * @type {object}
       * @optional
       */
      contextTypes: 'DEFINE_MANY',
  
      /**
       * Definition of context types this component sets for its children.
       *
       * @type {object}
       * @optional
       */
      childContextTypes: 'DEFINE_MANY',
  
      // ==== Definition methods ====
  
      /**
       * Invoked when the component is mounted. Values in the mapping will be set on
       * `this.props` if that prop is not specified (i.e. using an `in` check).
       *
       * This method is invoked before `getInitialState` and therefore cannot rely
       * on `this.state` or use `this.setState`.
       *
       * @return {object}
       * @optional
       */
      getDefaultProps: 'DEFINE_MANY_MERGED',
  
      /**
       * Invoked once before the component is mounted. The return value will be used
       * as the initial value of `this.state`.
       *
       *   getInitialState: function() {
       *     return {
       *       isOn: false,
       *       fooBaz: new BazFoo()
       *     }
       *   }
       *
       * @return {object}
       * @optional
       */
      getInitialState: 'DEFINE_MANY_MERGED',
  
      /**
       * @return {object}
       * @optional
       */
      getChildContext: 'DEFINE_MANY_MERGED',
  
      /**
       * Uses props from `this.props` and state from `this.state` to render the
       * structure of the component.
       *
       * No guarantees are made about when or how often this method is invoked, so
       * it must not have side effects.
       *
       *   render: function() {
       *     var name = this.props.name;
       *     return <div>Hello, {name}!</div>;
       *   }
       *
       * @return {ReactComponent}
       * @required
       */
      render: 'DEFINE_ONCE',
  
      // ==== Delegate methods ====
  
      /**
       * Invoked when the component is initially created and about to be mounted.
       * This may have side effects, but any external subscriptions or data created
       * by this method must be cleaned up in `componentWillUnmount`.
       *
       * @optional
       */
      componentWillMount: 'DEFINE_MANY',
  
      /**
       * Invoked when the component has been mounted and has a DOM representation.
       * However, there is no guarantee that the DOM node is in the document.
       *
       * Use this as an opportunity to operate on the DOM when the component has
       * been mounted (initialized and rendered) for the first time.
       *
       * @param {DOMElement} rootNode DOM element representing the component.
       * @optional
       */
      componentDidMount: 'DEFINE_MANY',
  
      /**
       * Invoked before the component receives new props.
       *
       * Use this as an opportunity to react to a prop transition by updating the
       * state using `this.setState`. Current props are accessed via `this.props`.
       *
       *   componentWillReceiveProps: function(nextProps, nextContext) {
       *     this.setState({
       *       likesIncreasing: nextProps.likeCount > this.props.likeCount
       *     });
       *   }
       *
       * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
       * transition may cause a state change, but the opposite is not true. If you
       * need it, you are probably looking for `componentWillUpdate`.
       *
       * @param {object} nextProps
       * @optional
       */
      componentWillReceiveProps: 'DEFINE_MANY',
  
      /**
       * Invoked while deciding if the component should be updated as a result of
       * receiving new props, state and/or context.
       *
       * Use this as an opportunity to `return false` when you're certain that the
       * transition to the new props/state/context will not require a component
       * update.
       *
       *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {
       *     return !equal(nextProps, this.props) ||
       *       !equal(nextState, this.state) ||
       *       !equal(nextContext, this.context);
       *   }
       *
       * @param {object} nextProps
       * @param {?object} nextState
       * @param {?object} nextContext
       * @return {boolean} True if the component should update.
       * @optional
       */
      shouldComponentUpdate: 'DEFINE_ONCE',
  
      /**
       * Invoked when the component is about to update due to a transition from
       * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
       * and `nextContext`.
       *
       * Use this as an opportunity to perform preparation before an update occurs.
       *
       * NOTE: You **cannot** use `this.setState()` in this method.
       *
       * @param {object} nextProps
       * @param {?object} nextState
       * @param {?object} nextContext
       * @param {ReactReconcileTransaction} transaction
       * @optional
       */
      componentWillUpdate: 'DEFINE_MANY',
  
      /**
       * Invoked when the component's DOM representation has been updated.
       *
       * Use this as an opportunity to operate on the DOM when the component has
       * been updated.
       *
       * @param {object} prevProps
       * @param {?object} prevState
       * @param {?object} prevContext
       * @param {DOMElement} rootNode DOM element representing the component.
       * @optional
       */
      componentDidUpdate: 'DEFINE_MANY',
  
      /**
       * Invoked when the component is about to be removed from its parent and have
       * its DOM representation destroyed.
       *
       * Use this as an opportunity to deallocate any external resources.
       *
       * NOTE: There is no `componentDidUnmount` since your component will have been
       * destroyed by that point.
       *
       * @optional
       */
      componentWillUnmount: 'DEFINE_MANY',
  
      /**
       * Replacement for (deprecated) `componentWillMount`.
       *
       * @optional
       */
      UNSAFE_componentWillMount: 'DEFINE_MANY',
  
      /**
       * Replacement for (deprecated) `componentWillReceiveProps`.
       *
       * @optional
       */
      UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',
  
      /**
       * Replacement for (deprecated) `componentWillUpdate`.
       *
       * @optional
       */
      UNSAFE_componentWillUpdate: 'DEFINE_MANY',
  
      // ==== Advanced methods ====
  
      /**
       * Updates the component's currently mounted DOM representation.
       *
       * By default, this implements React's rendering and reconciliation algorithm.
       * Sophisticated clients may wish to override this.
       *
       * @param {ReactReconcileTransaction} transaction
       * @internal
       * @overridable
       */
      updateComponent: 'OVERRIDE_BASE'
    };
  
    /**
     * Similar to ReactClassInterface but for static methods.
     */
    var ReactClassStaticInterface = {
      /**
       * This method is invoked after a component is instantiated and when it
       * receives new props. Return an object to update state in response to
       * prop changes. Return null to indicate no change to state.
       *
       * If an object is returned, its keys will be merged into the existing state.
       *
       * @return {object || null}
       * @optional
       */
      getDerivedStateFromProps: 'DEFINE_MANY_MERGED'
    };
  
    /**
     * Mapping from class specification keys to special processing functions.
     *
     * Although these are declared like instance properties in the specification
     * when defining classes using `React.createClass`, they are actually static
     * and are accessible on the constructor instead of the prototype. Despite
     * being static, they must be defined outside of the "statics" key under
     * which all other static methods are defined.
     */
    var RESERVED_SPEC_KEYS = {
      displayName: function(Constructor, displayName) {
        Constructor.displayName = displayName;
      },
      mixins: function(Constructor, mixins) {
        if (mixins) {
          for (var i = 0; i < mixins.length; i++) {
            mixSpecIntoComponent(Constructor, mixins[i]);
          }
        }
      },
      childContextTypes: function(Constructor, childContextTypes) {
        if (true) {
          validateTypeDef(Constructor, childContextTypes, 'childContext');
        }
        Constructor.childContextTypes = _assign(
          {},
          Constructor.childContextTypes,
          childContextTypes
        );
      },
      contextTypes: function(Constructor, contextTypes) {
        if (true) {
          validateTypeDef(Constructor, contextTypes, 'context');
        }
        Constructor.contextTypes = _assign(
          {},
          Constructor.contextTypes,
          contextTypes
        );
      },
      /**
       * Special case getDefaultProps which should move into statics but requires
       * automatic merging.
       */
      getDefaultProps: function(Constructor, getDefaultProps) {
        if (Constructor.getDefaultProps) {
          Constructor.getDefaultProps = createMergedResultFunction(
            Constructor.getDefaultProps,
            getDefaultProps
          );
        } else {
          Constructor.getDefaultProps = getDefaultProps;
        }
      },
      propTypes: function(Constructor, propTypes) {
        if (true) {
          validateTypeDef(Constructor, propTypes, 'prop');
        }
        Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
      },
      statics: function(Constructor, statics) {
        mixStaticSpecIntoComponent(Constructor, statics);
      },
      autobind: function() {}
    };
  
    function validateTypeDef(Constructor, typeDef, location) {
      for (var propName in typeDef) {
        if (typeDef.hasOwnProperty(propName)) {
          // use a warning instead of an _invariant so components
          // don't show up in prod but only in __DEV__
          if (true) {
            warning(
              typeof typeDef[propName] === 'function',
              '%s: %s type `%s` is invalid; it must be a function, usually from ' +
                'React.PropTypes.',
              Constructor.displayName || 'ReactClass',
              ReactPropTypeLocationNames[location],
              propName
            );
          }
        }
      }
    }
  
    function validateMethodOverride(isAlreadyDefined, name) {
      var specPolicy = ReactClassInterface.hasOwnProperty(name)
        ? ReactClassInterface[name]
        : null;
  
      // Disallow overriding of base class methods unless explicitly allowed.
      if (ReactClassMixin.hasOwnProperty(name)) {
        _invariant(
          specPolicy === 'OVERRIDE_BASE',
          'ReactClassInterface: You are attempting to override ' +
            '`%s` from your class specification. Ensure that your method names ' +
            'do not overlap with React methods.',
          name
        );
      }
  
      // Disallow defining methods more than once unless explicitly allowed.
      if (isAlreadyDefined) {
        _invariant(
          specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
          'ReactClassInterface: You are attempting to define ' +
            '`%s` on your component more than once. This conflict may be due ' +
            'to a mixin.',
          name
        );
      }
    }
  
    /**
     * Mixin helper which handles policy validation and reserved
     * specification keys when building React classes.
     */
    function mixSpecIntoComponent(Constructor, spec) {
      if (!spec) {
        if (true) {
          var typeofSpec = typeof spec;
          var isMixinValid = typeofSpec === 'object' && spec !== null;
  
          if (true) {
            warning(
              isMixinValid,
              "%s: You're attempting to include a mixin that is either null " +
                'or not an object. Check the mixins included by the component, ' +
                'as well as any mixins they include themselves. ' +
                'Expected object but got %s.',
              Constructor.displayName || 'ReactClass',
              spec === null ? null : typeofSpec
            );
          }
        }
  
        return;
      }
  
      _invariant(
        typeof spec !== 'function',
        "ReactClass: You're attempting to " +
          'use a component class or function as a mixin. Instead, just use a ' +
          'regular object.'
      );
      _invariant(
        !isValidElement(spec),
        "ReactClass: You're attempting to " +
          'use a component as a mixin. Instead, just use a regular object.'
      );
  
      var proto = Constructor.prototype;
      var autoBindPairs = proto.__reactAutoBindPairs;
  
      // By handling mixins before any other properties, we ensure the same
      // chaining order is applied to methods with DEFINE_MANY policy, whether
      // mixins are listed before or after these methods in the spec.
      if (spec.hasOwnProperty(MIXINS_KEY)) {
        RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
      }
  
      for (var name in spec) {
        if (!spec.hasOwnProperty(name)) {
          continue;
        }
  
        if (name === MIXINS_KEY) {
          // We have already handled mixins in a special case above.
          continue;
        }
  
        var property = spec[name];
        var isAlreadyDefined = proto.hasOwnProperty(name);
        validateMethodOverride(isAlreadyDefined, name);
  
        if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
          RESERVED_SPEC_KEYS[name](Constructor, property);
        } else {
          // Setup methods on prototype:
          // The following member methods should not be automatically bound:
          // 1. Expected ReactClass methods (in the "interface").
          // 2. Overridden methods (that were mixed in).
          var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
          var isFunction = typeof property === 'function';
          var shouldAutoBind =
            isFunction &&
            !isReactClassMethod &&
            !isAlreadyDefined &&
            spec.autobind !== false;
  
          if (shouldAutoBind) {
            autoBindPairs.push(name, property);
            proto[name] = property;
          } else {
            if (isAlreadyDefined) {
              var specPolicy = ReactClassInterface[name];
  
              // These cases should already be caught by validateMethodOverride.
              _invariant(
                isReactClassMethod &&
                  (specPolicy === 'DEFINE_MANY_MERGED' ||
                    specPolicy === 'DEFINE_MANY'),
                'ReactClass: Unexpected spec policy %s for key %s ' +
                  'when mixing in component specs.',
                specPolicy,
                name
              );
  
              // For methods which are defined more than once, call the existing
              // methods before calling the new property, merging if appropriate.
              if (specPolicy === 'DEFINE_MANY_MERGED') {
                proto[name] = createMergedResultFunction(proto[name], property);
              } else if (specPolicy === 'DEFINE_MANY') {
                proto[name] = createChainedFunction(proto[name], property);
              }
            } else {
              proto[name] = property;
              if (true) {
                // Add verbose displayName to the function, which helps when looking
                // at profiling tools.
                if (typeof property === 'function' && spec.displayName) {
                  proto[name].displayName = spec.displayName + '_' + name;
                }
              }
            }
          }
        }
      }
    }
  
    function mixStaticSpecIntoComponent(Constructor, statics) {
      if (!statics) {
        return;
      }
  
      for (var name in statics) {
        var property = statics[name];
        if (!statics.hasOwnProperty(name)) {
          continue;
        }
  
        var isReserved = name in RESERVED_SPEC_KEYS;
        _invariant(
          !isReserved,
          'ReactClass: You are attempting to define a reserved ' +
            'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
            'as an instance property instead; it will still be accessible on the ' +
            'constructor.',
          name
        );
  
        var isAlreadyDefined = name in Constructor;
        if (isAlreadyDefined) {
          var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)
            ? ReactClassStaticInterface[name]
            : null;
  
          _invariant(
            specPolicy === 'DEFINE_MANY_MERGED',
            'ReactClass: You are attempting to define ' +
              '`%s` on your component more than once. This conflict may be ' +
              'due to a mixin.',
            name
          );
  
          Constructor[name] = createMergedResultFunction(Constructor[name], property);
  
          return;
        }
  
        Constructor[name] = property;
      }
    }
  
    /**
     * Merge two objects, but throw if both contain the same key.
     *
     * @param {object} one The first object, which is mutated.
     * @param {object} two The second object
     * @return {object} one after it has been mutated to contain everything in two.
     */
    function mergeIntoWithNoDuplicateKeys(one, two) {
      _invariant(
        one && two && typeof one === 'object' && typeof two === 'object',
        'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
      );
  
      for (var key in two) {
        if (two.hasOwnProperty(key)) {
          _invariant(
            one[key] === undefined,
            'mergeIntoWithNoDuplicateKeys(): ' +
              'Tried to merge two objects with the same key: `%s`. This conflict ' +
              'may be due to a mixin; in particular, this may be caused by two ' +
              'getInitialState() or getDefaultProps() methods returning objects ' +
              'with clashing keys.',
            key
          );
          one[key] = two[key];
        }
      }
      return one;
    }
  
    /**
     * Creates a function that invokes two functions and merges their return values.
     *
     * @param {function} one Function to invoke first.
     * @param {function} two Function to invoke second.
     * @return {function} Function that invokes the two argument functions.
     * @private
     */
    function createMergedResultFunction(one, two) {
      return function mergedResult() {
        var a = one.apply(this, arguments);
        var b = two.apply(this, arguments);
        if (a == null) {
          return b;
        } else if (b == null) {
          return a;
        }
        var c = {};
        mergeIntoWithNoDuplicateKeys(c, a);
        mergeIntoWithNoDuplicateKeys(c, b);
        return c;
      };
    }
  
    /**
     * Creates a function that invokes two functions and ignores their return vales.
     *
     * @param {function} one Function to invoke first.
     * @param {function} two Function to invoke second.
     * @return {function} Function that invokes the two argument functions.
     * @private
     */
    function createChainedFunction(one, two) {
      return function chainedFunction() {
        one.apply(this, arguments);
        two.apply(this, arguments);
      };
    }
  
    /**
     * Binds a method to the component.
     *
     * @param {object} component Component whose method is going to be bound.
     * @param {function} method Method to be bound.
     * @return {function} The bound method.
     */
    function bindAutoBindMethod(component, method) {
      var boundMethod = method.bind(component);
      if (true) {
        boundMethod.__reactBoundContext = component;
        boundMethod.__reactBoundMethod = method;
        boundMethod.__reactBoundArguments = null;
        var componentName = component.constructor.displayName;
        var _bind = boundMethod.bind;
        boundMethod.bind = function(newThis) {
          for (
            var _len = arguments.length,
              args = Array(_len > 1 ? _len - 1 : 0),
              _key = 1;
            _key < _len;
            _key++
          ) {
            args[_key - 1] = arguments[_key];
          }
  
          // User is trying to bind() an autobound method; we effectively will
          // ignore the value of "this" that the user is trying to use, so
          // let's warn.
          if (newThis !== component && newThis !== null) {
            if (true) {
              warning(
                false,
                'bind(): React component methods may only be bound to the ' +
                  'component instance. See %s',
                componentName
              );
            }
          } else if (!args.length) {
            if (true) {
              warning(
                false,
                'bind(): You are binding a component method to the component. ' +
                  'React does this for you automatically in a high-performance ' +
                  'way, so you can safely remove this call. See %s',
                componentName
              );
            }
            return boundMethod;
          }
          var reboundMethod = _bind.apply(boundMethod, arguments);
          reboundMethod.__reactBoundContext = component;
          reboundMethod.__reactBoundMethod = method;
          reboundMethod.__reactBoundArguments = args;
          return reboundMethod;
        };
      }
      return boundMethod;
    }
  
    /**
     * Binds all auto-bound methods in a component.
     *
     * @param {object} component Component whose method is going to be bound.
     */
    function bindAutoBindMethods(component) {
      var pairs = component.__reactAutoBindPairs;
      for (var i = 0; i < pairs.length; i += 2) {
        var autoBindKey = pairs[i];
        var method = pairs[i + 1];
        component[autoBindKey] = bindAutoBindMethod(component, method);
      }
    }
  
    var IsMountedPreMixin = {
      componentDidMount: function() {
        this.__isMounted = true;
      }
    };
  
    var IsMountedPostMixin = {
      componentWillUnmount: function() {
        this.__isMounted = false;
      }
    };
  
    /**
     * Add more to the ReactClass base class. These are all legacy features and
     * therefore not already part of the modern ReactComponent.
     */
    var ReactClassMixin = {
      /**
       * TODO: This will be deprecated because state should always keep a consistent
       * type signature and the only use case for this, is to avoid that.
       */
      replaceState: function(newState, callback) {
        this.updater.enqueueReplaceState(this, newState, callback);
      },
  
      /**
       * Checks whether or not this composite component is mounted.
       * @return {boolean} True if mounted, false otherwise.
       * @protected
       * @final
       */
      isMounted: function() {
        if (true) {
          warning(
            this.__didWarnIsMounted,
            '%s: isMounted is deprecated. Instead, make sure to clean up ' +
              'subscriptions and pending requests in componentWillUnmount to ' +
              'prevent memory leaks.',
            (this.constructor && this.constructor.displayName) ||
              this.name ||
              'Component'
          );
          this.__didWarnIsMounted = true;
        }
        return !!this.__isMounted;
      }
    };
  
    var ReactClassComponent = function() {};
    _assign(
      ReactClassComponent.prototype,
      ReactComponent.prototype,
      ReactClassMixin
    );
  
    /**
     * Creates a composite component class given a class specification.
     * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
     *
     * @param {object} spec Class specification (which must define `render`).
     * @return {function} Component constructor function.
     * @public
     */
    function createClass(spec) {
      // To keep our warnings more understandable, we'll use a little hack here to
      // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
      // unnecessarily identify a class without displayName as 'Constructor'.
      var Constructor = identity(function(props, context, updater) {
        // This constructor gets overridden by mocks. The argument is used
        // by mocks to assert on what gets mounted.
  
        if (true) {
          warning(
            this instanceof Constructor,
            'Something is calling a React component directly. Use a factory or ' +
              'JSX instead. See: https://fb.me/react-legacyfactory'
          );
        }
  
        // Wire up auto-binding
        if (this.__reactAutoBindPairs.length) {
          bindAutoBindMethods(this);
        }
  
        this.props = props;
        this.context = context;
        this.refs = emptyObject;
        this.updater = updater || ReactNoopUpdateQueue;
  
        this.state = null;
  
        // ReactClasses doesn't have constructors. Instead, they use the
        // getInitialState and componentWillMount methods for initialization.
  
        var initialState = this.getInitialState ? this.getInitialState() : null;
        if (true) {
          // We allow auto-mocks to proceed as if they're returning null.
          if (
            initialState === undefined &&
            this.getInitialState._isMockFunction
          ) {
            // This is probably bad practice. Consider warning here and
            // deprecating this convenience.
            initialState = null;
          }
        }
        _invariant(
          typeof initialState === 'object' && !Array.isArray(initialState),
          '%s.getInitialState(): must return an object or null',
          Constructor.displayName || 'ReactCompositeComponent'
        );
  
        this.state = initialState;
      });
      Constructor.prototype = new ReactClassComponent();
      Constructor.prototype.constructor = Constructor;
      Constructor.prototype.__reactAutoBindPairs = [];
  
      injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
  
      mixSpecIntoComponent(Constructor, IsMountedPreMixin);
      mixSpecIntoComponent(Constructor, spec);
      mixSpecIntoComponent(Constructor, IsMountedPostMixin);
  
      // Initialize the defaultProps property after all mixins have been merged.
      if (Constructor.getDefaultProps) {
        Constructor.defaultProps = Constructor.getDefaultProps();
      }
  
      if (true) {
        // This is a tag to indicate that the use of these method names is ok,
        // since it's used with createClass. If it's not, then it's likely a
        // mistake so we'll warn you to use the static property, property
        // initializer or constructor respectively.
        if (Constructor.getDefaultProps) {
          Constructor.getDefaultProps.isReactClassApproved = {};
        }
        if (Constructor.prototype.getInitialState) {
          Constructor.prototype.getInitialState.isReactClassApproved = {};
        }
      }
  
      _invariant(
        Constructor.prototype.render,
        'createClass(...): Class specification must implement a `render` method.'
      );
  
      if (true) {
        warning(
          !Constructor.prototype.componentShouldUpdate,
          '%s has a method called ' +
            'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
            'The name is phrased as a question because the function is ' +
            'expected to return a value.',
          spec.displayName || 'A component'
        );
        warning(
          !Constructor.prototype.componentWillRecieveProps,
          '%s has a method called ' +
            'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
          spec.displayName || 'A component'
        );
        warning(
          !Constructor.prototype.UNSAFE_componentWillRecieveProps,
          '%s has a method called UNSAFE_componentWillRecieveProps(). ' +
            'Did you mean UNSAFE_componentWillReceiveProps()?',
          spec.displayName || 'A component'
        );
      }
  
      // Reduce time spent doing lookups by setting these on the prototype.
      for (var methodName in ReactClassInterface) {
        if (!Constructor.prototype[methodName]) {
          Constructor.prototype[methodName] = null;
        }
      }
  
      return Constructor;
    }
  
    return createClass;
  }
  
  module.exports = factory;
  
  
  /***/ }),
  
  /***/ "./node_modules/create-react-class/index.js":
  /*!**************************************************!*\
    !*** ./node_modules/create-react-class/index.js ***!
    \**************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   */
  
  
  
  var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  var factory = __webpack_require__(/*! ./factory */ "./node_modules/create-react-class/factory.js");
  
  if (typeof React === 'undefined') {
    throw Error(
      'create-react-class could not find the React object. If you are using script tags, ' +
        'make sure that React is being loaded before create-react-class.'
    );
  }
  
  // Hack to grab NoopUpdateQueue from isomorphic React
  var ReactNoopUpdateQueue = new React.Component().updater;
  
  module.exports = factory(
    React.Component,
    React.isValidElement,
    ReactNoopUpdateQueue
  );
  
  
  /***/ }),
  
  /***/ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\",\"plugins\":[null,null]}!./src/App.css":
  /*!***********************************************************************************************************************************************!*\
    !*** ./node_modules/css-loader?{"importLoaders":1}!./node_modules/postcss-loader/lib?{"ident":"postcss","plugins":[null,null]}!./src/App.css ***!
    \***********************************************************************************************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(undefined);
  // imports
  
  
  // module
  exports.push([module.i, ".App {\n  text-align: center;\n}\n\n.App-logo {\n  -webkit-animation: App-logo-spin infinite 20s linear;\n          animation: App-logo-spin infinite 20s linear;\n  height: 80px;\n}\n\n.App-header {\n  background-color: #222;\n  height: 150px;\n  padding: 20px;\n  color: white;\n}\n\n.App-title {\n  font-size: 1.5em;\n}\n\n.App-intro {\n  font-size: large;\n}\n\n@-webkit-keyframes App-logo-spin {\n  from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n\n@keyframes App-logo-spin {\n  from { -webkit-transform: rotate(0deg); transform: rotate(0deg); }\n  to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n}\n", ""]);
  
  // exports
  
  
  /***/ }),
  
  /***/ "./node_modules/enquire.js/src/MediaQuery.js":
  /*!***************************************************!*\
    !*** ./node_modules/enquire.js/src/MediaQuery.js ***!
    \***************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  var QueryHandler = __webpack_require__(/*! ./QueryHandler */ "./node_modules/enquire.js/src/QueryHandler.js");
  var each = __webpack_require__(/*! ./Util */ "./node_modules/enquire.js/src/Util.js").each;
  
  /**
   * Represents a single media query, manages it's state and registered handlers for this query
   *
   * @constructor
   * @param {string} query the media query string
   * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design
   */
  function MediaQuery(query, isUnconditional) {
      this.query = query;
      this.isUnconditional = isUnconditional;
      this.handlers = [];
      this.mql = window.matchMedia(query);
  
      var self = this;
      this.listener = function(mql) {
          // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly
          self.mql = mql.currentTarget || mql;
          self.assess();
      };
      this.mql.addListener(this.listener);
  }
  
  MediaQuery.prototype = {
  
      constuctor : MediaQuery,
  
      /**
       * add a handler for this query, triggering if already active
       *
       * @param {object} handler
       * @param {function} handler.match callback for when query is activated
       * @param {function} [handler.unmatch] callback for when query is deactivated
       * @param {function} [handler.setup] callback for immediate execution when a query handler is registered
       * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?
       */
      addHandler : function(handler) {
          var qh = new QueryHandler(handler);
          this.handlers.push(qh);
  
          this.matches() && qh.on();
      },
  
      /**
       * removes the given handler from the collection, and calls it's destroy methods
       *
       * @param {object || function} handler the handler to remove
       */
      removeHandler : function(handler) {
          var handlers = this.handlers;
          each(handlers, function(h, i) {
              if(h.equals(handler)) {
                  h.destroy();
                  return !handlers.splice(i,1); //remove from array and exit each early
              }
          });
      },
  
      /**
       * Determine whether the media query should be considered a match
       *
       * @return {Boolean} true if media query can be considered a match, false otherwise
       */
      matches : function() {
          return this.mql.matches || this.isUnconditional;
      },
  
      /**
       * Clears all handlers and unbinds events
       */
      clear : function() {
          each(this.handlers, function(handler) {
              handler.destroy();
          });
          this.mql.removeListener(this.listener);
          this.handlers.length = 0; //clear array
      },
  
      /*
          * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match
          */
      assess : function() {
          var action = this.matches() ? 'on' : 'off';
  
          each(this.handlers, function(handler) {
              handler[action]();
          });
      }
  };
  
  module.exports = MediaQuery;
  
  
  /***/ }),
  
  /***/ "./node_modules/enquire.js/src/MediaQueryDispatch.js":
  /*!***********************************************************!*\
    !*** ./node_modules/enquire.js/src/MediaQueryDispatch.js ***!
    \***********************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  var MediaQuery = __webpack_require__(/*! ./MediaQuery */ "./node_modules/enquire.js/src/MediaQuery.js");
  var Util = __webpack_require__(/*! ./Util */ "./node_modules/enquire.js/src/Util.js");
  var each = Util.each;
  var isFunction = Util.isFunction;
  var isArray = Util.isArray;
  
  /**
   * Allows for registration of query handlers.
   * Manages the query handler's state and is responsible for wiring up browser events
   *
   * @constructor
   */
  function MediaQueryDispatch () {
      if(!window.matchMedia) {
          throw new Error('matchMedia not present, legacy browsers require a polyfill');
      }
  
      this.queries = {};
      this.browserIsIncapable = !window.matchMedia('only all').matches;
  }
  
  MediaQueryDispatch.prototype = {
  
      constructor : MediaQueryDispatch,
  
      /**
       * Registers a handler for the given media query
       *
       * @param {string} q the media query
       * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers
       * @param {function} options.match fired when query matched
       * @param {function} [options.unmatch] fired when a query is no longer matched
       * @param {function} [options.setup] fired when handler first triggered
       * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched
       * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers
       */
      register : function(q, options, shouldDegrade) {
          var queries         = this.queries,
              isUnconditional = shouldDegrade && this.browserIsIncapable;
  
          if(!queries[q]) {
              queries[q] = new MediaQuery(q, isUnconditional);
          }
  
          //normalise to object in an array
          if(isFunction(options)) {
              options = { match : options };
          }
          if(!isArray(options)) {
              options = [options];
          }
          each(options, function(handler) {
              if (isFunction(handler)) {
                  handler = { match : handler };
              }
              queries[q].addHandler(handler);
          });
  
          return this;
      },
  
      /**
       * unregisters a query and all it's handlers, or a specific handler for a query
       *
       * @param {string} q the media query to target
       * @param {object || function} [handler] specific handler to unregister
       */
      unregister : function(q, handler) {
          var query = this.queries[q];
  
          if(query) {
              if(handler) {
                  query.removeHandler(handler);
              }
              else {
                  query.clear();
                  delete this.queries[q];
              }
          }
  
          return this;
      }
  };
  
  module.exports = MediaQueryDispatch;
  
  
  /***/ }),
  
  /***/ "./node_modules/enquire.js/src/QueryHandler.js":
  /*!*****************************************************!*\
    !*** ./node_modules/enquire.js/src/QueryHandler.js ***!
    \*****************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports) {
  
  /**
   * Delegate to handle a media query being matched and unmatched.
   *
   * @param {object} options
   * @param {function} options.match callback for when the media query is matched
   * @param {function} [options.unmatch] callback for when the media query is unmatched
   * @param {function} [options.setup] one-time callback triggered the first time a query is matched
   * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?
   * @constructor
   */
  function QueryHandler(options) {
      this.options = options;
      !options.deferSetup && this.setup();
  }
  
  QueryHandler.prototype = {
  
      constructor : QueryHandler,
  
      /**
       * coordinates setup of the handler
       *
       * @function
       */
      setup : function() {
          if(this.options.setup) {
              this.options.setup();
          }
          this.initialised = true;
      },
  
      /**
       * coordinates setup and triggering of the handler
       *
       * @function
       */
      on : function() {
          !this.initialised && this.setup();
          this.options.match && this.options.match();
      },
  
      /**
       * coordinates the unmatch event for the handler
       *
       * @function
       */
      off : function() {
          this.options.unmatch && this.options.unmatch();
      },
  
      /**
       * called when a handler is to be destroyed.
       * delegates to the destroy or unmatch callbacks, depending on availability.
       *
       * @function
       */
      destroy : function() {
          this.options.destroy ? this.options.destroy() : this.off();
      },
  
      /**
       * determines equality by reference.
       * if object is supplied compare options, if function, compare match callback
       *
       * @function
       * @param {object || function} [target] the target for comparison
       */
      equals : function(target) {
          return this.options === target || this.options.match === target;
      }
  
  };
  
  module.exports = QueryHandler;
  
  
  /***/ }),
  
  /***/ "./node_modules/enquire.js/src/Util.js":
  /*!*********************************************!*\
    !*** ./node_modules/enquire.js/src/Util.js ***!
    \*********************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports) {
  
  /**
   * Helper function for iterating over a collection
   *
   * @param collection
   * @param fn
   */
  function each(collection, fn) {
      var i      = 0,
          length = collection.length,
          cont;
  
      for(i; i < length; i++) {
          cont = fn(collection[i], i);
          if(cont === false) {
              break; //allow early exit
          }
      }
  }
  
  /**
   * Helper function for determining whether target object is an array
   *
   * @param target the object under test
   * @return {Boolean} true if array, false otherwise
   */
  function isArray(target) {
      return Object.prototype.toString.apply(target) === '[object Array]';
  }
  
  /**
   * Helper function for determining whether target object is a function
   *
   * @param target the object under test
   * @return {Boolean} true if function, false otherwise
   */
  function isFunction(target) {
      return typeof target === 'function';
  }
  
  module.exports = {
      isFunction : isFunction,
      isArray : isArray,
      each : each
  };
  
  
  /***/ }),
  
  /***/ "./node_modules/enquire.js/src/index.js":
  /*!**********************************************!*\
    !*** ./node_modules/enquire.js/src/index.js ***!
    \**********************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  var MediaQueryDispatch = __webpack_require__(/*! ./MediaQueryDispatch */ "./node_modules/enquire.js/src/MediaQueryDispatch.js");
  module.exports = new MediaQueryDispatch();
  
  
  /***/ }),
  
  /***/ "./node_modules/history/DOMUtils.js":
  /*!******************************************!*\
    !*** ./node_modules/history/DOMUtils.js ***!
    \******************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  var canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
  
  var addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {
    return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);
  };
  
  var removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {
    return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);
  };
  
  var getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {
    return callback(window.confirm(message));
  }; // eslint-disable-line no-alert
  
  /**
   * Returns true if the HTML5 history API is supported. Taken from Modernizr.
   *
   * https://github.com/Modernizr/Modernizr/blob/master/LICENSE
   * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js
   * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586
   */
  var supportsHistory = exports.supportsHistory = function supportsHistory() {
    var ua = window.navigator.userAgent;
  
    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;
  
    return window.history && 'pushState' in window.history;
  };
  
  /**
   * Returns true if browser fires popstate on hash change.
   * IE10 and IE11 do not.
   */
  var supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {
    return window.navigator.userAgent.indexOf('Trident') === -1;
  };
  
  /**
   * Returns false if using go(n) with hash history causes a full page reload.
   */
  var supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {
    return window.navigator.userAgent.indexOf('Firefox') === -1;
  };
  
  /**
   * Returns true if a given popstate event is an extraneous WebKit event.
   * Accounts for the fact that Chrome on iOS fires real popstate events
   * containing undefined state when pressing the back button.
   */
  var isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {
    return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/LocationUtils.js":
  /*!***********************************************!*\
    !*** ./node_modules/history/LocationUtils.js ***!
    \***********************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.locationsAreEqual = exports.createLocation = 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 _resolvePathname = __webpack_require__(/*! resolve-pathname */ "./node_modules/resolve-pathname/index.js");
  
  var _resolvePathname2 = _interopRequireDefault(_resolvePathname);
  
  var _valueEqual = __webpack_require__(/*! value-equal */ "./node_modules/value-equal/index.js");
  
  var _valueEqual2 = _interopRequireDefault(_valueEqual);
  
  var _PathUtils = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/PathUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {
    var location = void 0;
    if (typeof path === 'string') {
      // Two-arg form: push(path, state)
      location = (0, _PathUtils.parsePath)(path);
      location.state = state;
    } else {
      // One-arg form: push(location)
      location = _extends({}, path);
  
      if (location.pathname === undefined) location.pathname = '';
  
      if (location.search) {
        if (location.search.charAt(0) !== '?') location.search = '?' + location.search;
      } else {
        location.search = '';
      }
  
      if (location.hash) {
        if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;
      } else {
        location.hash = '';
      }
  
      if (state !== undefined && location.state === undefined) location.state = state;
    }
  
    try {
      location.pathname = decodeURI(location.pathname);
    } catch (e) {
      if (e instanceof URIError) {
        throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
      } else {
        throw e;
      }
    }
  
    if (key) location.key = key;
  
    if (currentLocation) {
      // Resolve incomplete/relative pathname relative to current location.
      if (!location.pathname) {
        location.pathname = currentLocation.pathname;
      } else if (location.pathname.charAt(0) !== '/') {
        location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);
      }
    } else {
      // When there is no prior location and pathname is empty, set it to /
      if (!location.pathname) {
        location.pathname = '/';
      }
    }
  
    return location;
  };
  
  var locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {
    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/PathUtils.js":
  /*!*******************************************!*\
    !*** ./node_modules/history/PathUtils.js ***!
    \*******************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  var addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {
    return path.charAt(0) === '/' ? path : '/' + path;
  };
  
  var stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {
    return path.charAt(0) === '/' ? path.substr(1) : path;
  };
  
  var hasBasename = exports.hasBasename = function hasBasename(path, prefix) {
    return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path);
  };
  
  var stripBasename = exports.stripBasename = function stripBasename(path, prefix) {
    return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
  };
  
  var stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {
    return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;
  };
  
  var parsePath = exports.parsePath = function parsePath(path) {
    var pathname = path || '/';
    var search = '';
    var hash = '';
  
    var hashIndex = pathname.indexOf('#');
    if (hashIndex !== -1) {
      hash = pathname.substr(hashIndex);
      pathname = pathname.substr(0, hashIndex);
    }
  
    var searchIndex = pathname.indexOf('?');
    if (searchIndex !== -1) {
      search = pathname.substr(searchIndex);
      pathname = pathname.substr(0, searchIndex);
    }
  
    return {
      pathname: pathname,
      search: search === '?' ? '' : search,
      hash: hash === '#' ? '' : hash
    };
  };
  
  var createPath = exports.createPath = function createPath(location) {
    var pathname = location.pathname,
        search = location.search,
        hash = location.hash;
  
  
    var path = pathname || '/';
  
    if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;
  
    if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;
  
    return path;
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/createBrowserHistory.js":
  /*!******************************************************!*\
    !*** ./node_modules/history/createBrowserHistory.js ***!
    \******************************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  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__(/*! warning */ "./node_modules/warning/browser.js");
  
  var _warning2 = _interopRequireDefault(_warning);
  
  var _invariant = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  
  var _invariant2 = _interopRequireDefault(_invariant);
  
  var _LocationUtils = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/LocationUtils.js");
  
  var _PathUtils = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/PathUtils.js");
  
  var _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/createTransitionManager.js");
  
  var _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);
  
  var _DOMUtils = __webpack_require__(/*! ./DOMUtils */ "./node_modules/history/DOMUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var PopStateEvent = 'popstate';
  var HashChangeEvent = 'hashchange';
  
  var getHistoryState = function getHistoryState() {
    try {
      return window.history.state || {};
    } catch (e) {
      // IE 11 sometimes throws when accessing window.history.state
      // See https://github.com/ReactTraining/history/pull/289
      return {};
    }
  };
  
  /**
   * Creates a history object that uses the HTML5 history API including
   * pushState, replaceState, and the popstate event.
   */
  var createBrowserHistory = function createBrowserHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');
  
    var globalHistory = window.history;
    var canUseHistory = (0, _DOMUtils.supportsHistory)();
    var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();
  
    var _props$forceRefresh = props.forceRefresh,
        forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,
        _props$getUserConfirm = props.getUserConfirmation,
        getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,
        _props$keyLength = props.keyLength,
        keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;
  
    var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';
  
    var getDOMLocation = function getDOMLocation(historyState) {
      var _ref = historyState || {},
          key = _ref.key,
          state = _ref.state;
  
      var _window$location = window.location,
          pathname = _window$location.pathname,
          search = _window$location.search,
          hash = _window$location.hash;
  
  
      var path = pathname + search + hash;
  
      (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".');
  
      if (basename) path = (0, _PathUtils.stripBasename)(path, basename);
  
      return (0, _LocationUtils.createLocation)(path, state, key);
    };
  
    var createKey = function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    };
  
    var transitionManager = (0, _createTransitionManager2.default)();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = globalHistory.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var handlePopState = function handlePopState(event) {
      // Ignore extraneous popstate events in WebKit.
      if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;
  
      handlePop(getDOMLocation(event.state));
    };
  
    var handleHashChange = function handleHashChange() {
      handlePop(getDOMLocation(getHistoryState()));
    };
  
    var forceNextPop = false;
  
    var handlePop = function handlePop(location) {
      if (forceNextPop) {
        forceNextPop = false;
        setState();
      } else {
        var action = 'POP';
  
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
          if (ok) {
            setState({ action: action, location: location });
          } else {
            revertPop(location);
          }
        });
      }
    };
  
    var revertPop = function revertPop(fromLocation) {
      var toLocation = history.location;
  
      // TODO: We could probably make this more reliable by
      // keeping a list of keys we've seen in sessionStorage.
      // Instead, we just default to 0 for keys we don't know.
  
      var toIndex = allKeys.indexOf(toLocation.key);
  
      if (toIndex === -1) toIndex = 0;
  
      var fromIndex = allKeys.indexOf(fromLocation.key);
  
      if (fromIndex === -1) fromIndex = 0;
  
      var delta = toIndex - fromIndex;
  
      if (delta) {
        forceNextPop = true;
        go(delta);
      }
    };
  
    var initialLocation = getDOMLocation(getHistoryState());
    var allKeys = [initialLocation.key];
  
    // Public interface
  
    var createHref = function createHref(location) {
      return basename + (0, _PathUtils.createPath)(location);
    };
  
    var push = function push(path, state) {
      (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'PUSH';
      var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var href = createHref(location);
        var key = location.key,
            state = location.state;
  
  
        if (canUseHistory) {
          globalHistory.pushState({ key: key, state: state }, null, href);
  
          if (forceRefresh) {
            window.location.href = href;
          } else {
            var prevIndex = allKeys.indexOf(history.location.key);
            var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);
  
            nextKeys.push(location.key);
            allKeys = nextKeys;
  
            setState({ action: action, location: location });
          }
        } else {
          (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');
  
          window.location.href = href;
        }
      });
    };
  
    var replace = function replace(path, state) {
      (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'REPLACE';
      var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var href = createHref(location);
        var key = location.key,
            state = location.state;
  
  
        if (canUseHistory) {
          globalHistory.replaceState({ key: key, state: state }, null, href);
  
          if (forceRefresh) {
            window.location.replace(href);
          } else {
            var prevIndex = allKeys.indexOf(history.location.key);
  
            if (prevIndex !== -1) allKeys[prevIndex] = location.key;
  
            setState({ action: action, location: location });
          }
        } else {
          (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');
  
          window.location.replace(href);
        }
      });
    };
  
    var go = function go(n) {
      globalHistory.go(n);
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var listenerCount = 0;
  
    var checkDOMListeners = function checkDOMListeners(delta) {
      listenerCount += delta;
  
      if (listenerCount === 1) {
        (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);
  
        if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);
      } else if (listenerCount === 0) {
        (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);
  
        if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);
      }
    };
  
    var isBlocked = false;
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  
      var unblock = transitionManager.setPrompt(prompt);
  
      if (!isBlocked) {
        checkDOMListeners(1);
        isBlocked = true;
      }
  
      return function () {
        if (isBlocked) {
          isBlocked = false;
          checkDOMListeners(-1);
        }
  
        return unblock();
      };
    };
  
    var listen = function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      checkDOMListeners(1);
  
      return function () {
        checkDOMListeners(-1);
        unlisten();
      };
    };
  
    var history = {
      length: globalHistory.length,
      action: 'POP',
      location: initialLocation,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  exports.default = createBrowserHistory;
  
  /***/ }),
  
  /***/ "./node_modules/history/createHashHistory.js":
  /*!***************************************************!*\
    !*** ./node_modules/history/createHashHistory.js ***!
    \***************************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = 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__(/*! warning */ "./node_modules/warning/browser.js");
  
  var _warning2 = _interopRequireDefault(_warning);
  
  var _invariant = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  
  var _invariant2 = _interopRequireDefault(_invariant);
  
  var _LocationUtils = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/LocationUtils.js");
  
  var _PathUtils = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/PathUtils.js");
  
  var _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/createTransitionManager.js");
  
  var _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);
  
  var _DOMUtils = __webpack_require__(/*! ./DOMUtils */ "./node_modules/history/DOMUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var HashChangeEvent = 'hashchange';
  
  var HashPathCoders = {
    hashbang: {
      encodePath: function encodePath(path) {
        return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);
      },
      decodePath: function decodePath(path) {
        return path.charAt(0) === '!' ? path.substr(1) : path;
      }
    },
    noslash: {
      encodePath: _PathUtils.stripLeadingSlash,
      decodePath: _PathUtils.addLeadingSlash
    },
    slash: {
      encodePath: _PathUtils.addLeadingSlash,
      decodePath: _PathUtils.addLeadingSlash
    }
  };
  
  var getHashPath = function getHashPath() {
    // We can't use window.location.hash here because it's not
    // consistent across browsers - Firefox will pre-decode it!
    var href = window.location.href;
    var hashIndex = href.indexOf('#');
    return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
  };
  
  var pushHashPath = function pushHashPath(path) {
    return window.location.hash = path;
  };
  
  var replaceHashPath = function replaceHashPath(path) {
    var hashIndex = window.location.href.indexOf('#');
  
    window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);
  };
  
  var createHashHistory = function createHashHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');
  
    var globalHistory = window.history;
    var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();
  
    var _props$getUserConfirm = props.getUserConfirmation,
        getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,
        _props$hashType = props.hashType,
        hashType = _props$hashType === undefined ? 'slash' : _props$hashType;
  
    var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';
  
    var _HashPathCoders$hashT = HashPathCoders[hashType],
        encodePath = _HashPathCoders$hashT.encodePath,
        decodePath = _HashPathCoders$hashT.decodePath;
  
  
    var getDOMLocation = function getDOMLocation() {
      var path = decodePath(getHashPath());
  
      (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".');
  
      if (basename) path = (0, _PathUtils.stripBasename)(path, basename);
  
      return (0, _LocationUtils.createLocation)(path);
    };
  
    var transitionManager = (0, _createTransitionManager2.default)();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = globalHistory.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var forceNextPop = false;
    var ignorePath = null;
  
    var handleHashChange = function handleHashChange() {
      var path = getHashPath();
      var encodedPath = encodePath(path);
  
      if (path !== encodedPath) {
        // Ensure we always have a properly-encoded hash.
        replaceHashPath(encodedPath);
      } else {
        var location = getDOMLocation();
        var prevLocation = history.location;
  
        if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.
  
        if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.
  
        ignorePath = null;
  
        handlePop(location);
      }
    };
  
    var handlePop = function handlePop(location) {
      if (forceNextPop) {
        forceNextPop = false;
        setState();
      } else {
        var action = 'POP';
  
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
          if (ok) {
            setState({ action: action, location: location });
          } else {
            revertPop(location);
          }
        });
      }
    };
  
    var revertPop = function revertPop(fromLocation) {
      var toLocation = history.location;
  
      // TODO: We could probably make this more reliable by
      // keeping a list of paths we've seen in sessionStorage.
      // Instead, we just default to 0 for paths we don't know.
  
      var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));
  
      if (toIndex === -1) toIndex = 0;
  
      var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));
  
      if (fromIndex === -1) fromIndex = 0;
  
      var delta = toIndex - fromIndex;
  
      if (delta) {
        forceNextPop = true;
        go(delta);
      }
    };
  
    // Ensure the hash is encoded properly before doing anything else.
    var path = getHashPath();
    var encodedPath = encodePath(path);
  
    if (path !== encodedPath) replaceHashPath(encodedPath);
  
    var initialLocation = getDOMLocation();
    var allPaths = [(0, _PathUtils.createPath)(initialLocation)];
  
    // Public interface
  
    var createHref = function createHref(location) {
      return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));
    };
  
    var push = function push(path, state) {
      (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');
  
      var action = 'PUSH';
      var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var path = (0, _PathUtils.createPath)(location);
        var encodedPath = encodePath(basename + path);
        var hashChanged = getHashPath() !== encodedPath;
  
        if (hashChanged) {
          // We cannot tell if a hashchange was caused by a PUSH, so we'd
          // rather setState here and ignore the hashchange. The caveat here
          // is that other hash histories in the page will consider it a POP.
          ignorePath = path;
          pushHashPath(encodedPath);
  
          var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));
          var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);
  
          nextPaths.push(path);
          allPaths = nextPaths;
  
          setState({ action: action, location: location });
        } else {
          (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');
  
          setState();
        }
      });
    };
  
    var replace = function replace(path, state) {
      (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');
  
      var action = 'REPLACE';
      var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var path = (0, _PathUtils.createPath)(location);
        var encodedPath = encodePath(basename + path);
        var hashChanged = getHashPath() !== encodedPath;
  
        if (hashChanged) {
          // We cannot tell if a hashchange was caused by a REPLACE, so we'd
          // rather setState here and ignore the hashchange. The caveat here
          // is that other hash histories in the page will consider it a POP.
          ignorePath = path;
          replaceHashPath(encodedPath);
        }
  
        var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));
  
        if (prevIndex !== -1) allPaths[prevIndex] = path;
  
        setState({ action: action, location: location });
      });
    };
  
    var go = function go(n) {
      (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');
  
      globalHistory.go(n);
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var listenerCount = 0;
  
    var checkDOMListeners = function checkDOMListeners(delta) {
      listenerCount += delta;
  
      if (listenerCount === 1) {
        (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);
      } else if (listenerCount === 0) {
        (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);
      }
    };
  
    var isBlocked = false;
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  
      var unblock = transitionManager.setPrompt(prompt);
  
      if (!isBlocked) {
        checkDOMListeners(1);
        isBlocked = true;
      }
  
      return function () {
        if (isBlocked) {
          isBlocked = false;
          checkDOMListeners(-1);
        }
  
        return unblock();
      };
    };
  
    var listen = function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      checkDOMListeners(1);
  
      return function () {
        checkDOMListeners(-1);
        unlisten();
      };
    };
  
    var history = {
      length: globalHistory.length,
      action: 'POP',
      location: initialLocation,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  exports.default = createHashHistory;
  
  /***/ }),
  
  /***/ "./node_modules/history/createMemoryHistory.js":
  /*!*****************************************************!*\
    !*** ./node_modules/history/createMemoryHistory.js ***!
    \*****************************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  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__(/*! warning */ "./node_modules/warning/browser.js");
  
  var _warning2 = _interopRequireDefault(_warning);
  
  var _PathUtils = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/PathUtils.js");
  
  var _LocationUtils = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/LocationUtils.js");
  
  var _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/createTransitionManager.js");
  
  var _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var clamp = function clamp(n, lowerBound, upperBound) {
    return Math.min(Math.max(n, lowerBound), upperBound);
  };
  
  /**
   * Creates a history object that stores locations in memory.
   */
  var createMemoryHistory = function createMemoryHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var getUserConfirmation = props.getUserConfirmation,
        _props$initialEntries = props.initialEntries,
        initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,
        _props$initialIndex = props.initialIndex,
        initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,
        _props$keyLength = props.keyLength,
        keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;
  
  
    var transitionManager = (0, _createTransitionManager2.default)();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = history.entries.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var createKey = function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    };
  
    var index = clamp(initialIndex, 0, initialEntries.length - 1);
    var entries = initialEntries.map(function (entry) {
      return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());
    });
  
    // Public interface
  
    var createHref = _PathUtils.createPath;
  
    var push = function push(path, state) {
      (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'PUSH';
      var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var prevIndex = history.index;
        var nextIndex = prevIndex + 1;
  
        var nextEntries = history.entries.slice(0);
        if (nextEntries.length > nextIndex) {
          nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);
        } else {
          nextEntries.push(location);
        }
  
        setState({
          action: action,
          location: location,
          index: nextIndex,
          entries: nextEntries
        });
      });
    };
  
    var replace = function replace(path, state) {
      (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'REPLACE';
      var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        history.entries[history.index] = location;
  
        setState({ action: action, location: location });
      });
    };
  
    var go = function go(n) {
      var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);
  
      var action = 'POP';
      var location = history.entries[nextIndex];
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (ok) {
          setState({
            action: action,
            location: location,
            index: nextIndex
          });
        } else {
          // Mimic the behavior of DOM histories by
          // causing a render after a cancelled POP.
          setState();
        }
      });
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var canGo = function canGo(n) {
      var nextIndex = history.index + n;
      return nextIndex >= 0 && nextIndex < history.entries.length;
    };
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      return transitionManager.setPrompt(prompt);
    };
  
    var listen = function listen(listener) {
      return transitionManager.appendListener(listener);
    };
  
    var history = {
      length: entries.length,
      action: 'POP',
      location: entries[index],
      index: index,
      entries: entries,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      canGo: canGo,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  exports.default = createMemoryHistory;
  
  /***/ }),
  
  /***/ "./node_modules/history/createTransitionManager.js":
  /*!*********************************************************!*\
    !*** ./node_modules/history/createTransitionManager.js ***!
    \*********************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _warning = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  
  var _warning2 = _interopRequireDefault(_warning);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var createTransitionManager = function createTransitionManager() {
    var prompt = null;
  
    var setPrompt = function setPrompt(nextPrompt) {
      (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');
  
      prompt = nextPrompt;
  
      return function () {
        if (prompt === nextPrompt) prompt = null;
      };
    };
  
    var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {
      // TODO: If another transition starts while we're still confirming
      // the previous one, we may end up in a weird state. Figure out the
      // best way to handle this.
      if (prompt != null) {
        var result = typeof prompt === 'function' ? prompt(location, action) : prompt;
  
        if (typeof result === 'string') {
          if (typeof getUserConfirmation === 'function') {
            getUserConfirmation(result, callback);
          } else {
            (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');
  
            callback(true);
          }
        } else {
          // Return false from a transition hook to cancel the transition.
          callback(result !== false);
        }
      } else {
        callback(true);
      }
    };
  
    var listeners = [];
  
    var appendListener = function appendListener(fn) {
      var isActive = true;
  
      var listener = function listener() {
        if (isActive) fn.apply(undefined, arguments);
      };
  
      listeners.push(listener);
  
      return function () {
        isActive = false;
        listeners = listeners.filter(function (item) {
          return item !== listener;
        });
      };
    };
  
    var notifyListeners = function notifyListeners() {
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      listeners.forEach(function (listener) {
        return listener.apply(undefined, args);
      });
    };
  
    return {
      setPrompt: setPrompt,
      confirmTransitionTo: confirmTransitionTo,
      appendListener: appendListener,
      notifyListeners: notifyListeners
    };
  };
  
  exports.default = createTransitionManager;
  
  /***/ }),
  
  /***/ "./node_modules/history/es/DOMUtils.js":
  /*!*********************************************!*\
    !*** ./node_modules/history/es/DOMUtils.js ***!
    \*********************************************/
  /*! exports provided: canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, supportsGoWithoutReloadUsingHash, isExtraneousPopstateEvent */
  /*! exports used: addEventListener, canUseDOM, getConfirmation, isExtraneousPopstateEvent, removeEventListener, supportsGoWithoutReloadUsingHash, supportsHistory, supportsPopStateOnHashChange */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return canUseDOM; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addEventListener; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return removeEventListener; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getConfirmation; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return supportsHistory; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return supportsPopStateOnHashChange; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return supportsGoWithoutReloadUsingHash; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isExtraneousPopstateEvent; });
  var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
  
  var addEventListener = function addEventListener(node, event, listener) {
    return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);
  };
  
  var removeEventListener = function removeEventListener(node, event, listener) {
    return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);
  };
  
  var getConfirmation = function getConfirmation(message, callback) {
    return callback(window.confirm(message));
  }; // eslint-disable-line no-alert
  
  /**
   * Returns true if the HTML5 history API is supported. Taken from Modernizr.
   *
   * https://github.com/Modernizr/Modernizr/blob/master/LICENSE
   * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js
   * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586
   */
  var supportsHistory = function supportsHistory() {
    var ua = window.navigator.userAgent;
  
    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;
  
    return window.history && 'pushState' in window.history;
  };
  
  /**
   * Returns true if browser fires popstate on hash change.
   * IE10 and IE11 do not.
   */
  var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {
    return window.navigator.userAgent.indexOf('Trident') === -1;
  };
  
  /**
   * Returns false if using go(n) with hash history causes a full page reload.
   */
  var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {
    return window.navigator.userAgent.indexOf('Firefox') === -1;
  };
  
  /**
   * Returns true if a given popstate event is an extraneous WebKit event.
   * Accounts for the fact that Chrome on iOS fires real popstate events
   * containing undefined state when pressing the back button.
   */
  var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {
    return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/es/LocationUtils.js":
  /*!**************************************************!*\
    !*** ./node_modules/history/es/LocationUtils.js ***!
    \**************************************************/
  /*! exports provided: createLocation, locationsAreEqual */
  /*! exports used: createLocation, locationsAreEqual */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createLocation; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return locationsAreEqual; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_resolve_pathname__ = __webpack_require__(/*! resolve-pathname */ "./node_modules/resolve-pathname/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_value_equal__ = __webpack_require__(/*! value-equal */ "./node_modules/value-equal/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__PathUtils__ = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/es/PathUtils.js");
  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 createLocation = function createLocation(path, state, key, currentLocation) {
    var location = void 0;
    if (typeof path === 'string') {
      // Two-arg form: push(path, state)
      location = Object(__WEBPACK_IMPORTED_MODULE_2__PathUtils__["d" /* parsePath */])(path);
      location.state = state;
    } else {
      // One-arg form: push(location)
      location = _extends({}, path);
  
      if (location.pathname === undefined) location.pathname = '';
  
      if (location.search) {
        if (location.search.charAt(0) !== '?') location.search = '?' + location.search;
      } else {
        location.search = '';
      }
  
      if (location.hash) {
        if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;
      } else {
        location.hash = '';
      }
  
      if (state !== undefined && location.state === undefined) location.state = state;
    }
  
    try {
      location.pathname = decodeURI(location.pathname);
    } catch (e) {
      if (e instanceof URIError) {
        throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
      } else {
        throw e;
      }
    }
  
    if (key) location.key = key;
  
    if (currentLocation) {
      // Resolve incomplete/relative pathname relative to current location.
      if (!location.pathname) {
        location.pathname = currentLocation.pathname;
      } else if (location.pathname.charAt(0) !== '/') {
        location.pathname = Object(__WEBPACK_IMPORTED_MODULE_0_resolve_pathname__["default"])(location.pathname, currentLocation.pathname);
      }
    } else {
      // When there is no prior location and pathname is empty, set it to /
      if (!location.pathname) {
        location.pathname = '/';
      }
    }
  
    return location;
  };
  
  var locationsAreEqual = function locationsAreEqual(a, b) {
    return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(__WEBPACK_IMPORTED_MODULE_1_value_equal__["default"])(a.state, b.state);
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/es/PathUtils.js":
  /*!**********************************************!*\
    !*** ./node_modules/history/es/PathUtils.js ***!
    \**********************************************/
  /*! exports provided: addLeadingSlash, stripLeadingSlash, hasBasename, stripBasename, stripTrailingSlash, parsePath, createPath */
  /*! exports used: addLeadingSlash, createPath, hasBasename, parsePath, stripBasename, stripLeadingSlash, stripTrailingSlash */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addLeadingSlash; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return stripLeadingSlash; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasBasename; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return stripBasename; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return stripTrailingSlash; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return parsePath; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return createPath; });
  var addLeadingSlash = function addLeadingSlash(path) {
    return path.charAt(0) === '/' ? path : '/' + path;
  };
  
  var stripLeadingSlash = function stripLeadingSlash(path) {
    return path.charAt(0) === '/' ? path.substr(1) : path;
  };
  
  var hasBasename = function hasBasename(path, prefix) {
    return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path);
  };
  
  var stripBasename = function stripBasename(path, prefix) {
    return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
  };
  
  var stripTrailingSlash = function stripTrailingSlash(path) {
    return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;
  };
  
  var parsePath = function parsePath(path) {
    var pathname = path || '/';
    var search = '';
    var hash = '';
  
    var hashIndex = pathname.indexOf('#');
    if (hashIndex !== -1) {
      hash = pathname.substr(hashIndex);
      pathname = pathname.substr(0, hashIndex);
    }
  
    var searchIndex = pathname.indexOf('?');
    if (searchIndex !== -1) {
      search = pathname.substr(searchIndex);
      pathname = pathname.substr(0, searchIndex);
    }
  
    return {
      pathname: pathname,
      search: search === '?' ? '' : search,
      hash: hash === '#' ? '' : hash
    };
  };
  
  var createPath = function createPath(location) {
    var pathname = location.pathname,
        search = location.search,
        hash = location.hash;
  
  
    var path = pathname || '/';
  
    if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;
  
    if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;
  
    return path;
  };
  
  /***/ }),
  
  /***/ "./node_modules/history/es/createBrowserHistory.js":
  /*!*********************************************************!*\
    !*** ./node_modules/history/es/createBrowserHistory.js ***!
    \*********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/es/LocationUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/es/PathUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/es/createTransitionManager.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(/*! ./DOMUtils */ "./node_modules/history/es/DOMUtils.js");
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  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 PopStateEvent = 'popstate';
  var HashChangeEvent = 'hashchange';
  
  var getHistoryState = function getHistoryState() {
    try {
      return window.history.state || {};
    } catch (e) {
      // IE 11 sometimes throws when accessing window.history.state
      // See https://github.com/ReactTraining/history/pull/289
      return {};
    }
  };
  
  /**
   * Creates a history object that uses the HTML5 history API including
   * pushState, replaceState, and the popstate event.
   */
  var createBrowserHistory = function createBrowserHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["b" /* canUseDOM */], 'Browser history needs a DOM');
  
    var globalHistory = window.history;
    var canUseHistory = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["g" /* supportsHistory */])();
    var needsHashChangeListener = !Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["h" /* supportsPopStateOnHashChange */])();
  
    var _props$forceRefresh = props.forceRefresh,
        forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,
        _props$getUserConfirm = props.getUserConfirmation,
        getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__["c" /* getConfirmation */] : _props$getUserConfirm,
        _props$keyLength = props.keyLength,
        keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;
  
    var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["g" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["a" /* addLeadingSlash */])(props.basename)) : '';
  
    var getDOMLocation = function getDOMLocation(historyState) {
      var _ref = historyState || {},
          key = _ref.key,
          state = _ref.state;
  
      var _window$location = window.location,
          pathname = _window$location.pathname,
          search = _window$location.search,
          hash = _window$location.hash;
  
  
      var path = pathname + search + hash;
  
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["c" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".');
  
      if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["e" /* stripBasename */])(path, basename);
  
      return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, state, key);
    };
  
    var createKey = function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    };
  
    var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__["a" /* default */])();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = globalHistory.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var handlePopState = function handlePopState(event) {
      // Ignore extraneous popstate events in WebKit.
      if (Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["d" /* isExtraneousPopstateEvent */])(event)) return;
  
      handlePop(getDOMLocation(event.state));
    };
  
    var handleHashChange = function handleHashChange() {
      handlePop(getDOMLocation(getHistoryState()));
    };
  
    var forceNextPop = false;
  
    var handlePop = function handlePop(location) {
      if (forceNextPop) {
        forceNextPop = false;
        setState();
      } else {
        var action = 'POP';
  
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
          if (ok) {
            setState({ action: action, location: location });
          } else {
            revertPop(location);
          }
        });
      }
    };
  
    var revertPop = function revertPop(fromLocation) {
      var toLocation = history.location;
  
      // TODO: We could probably make this more reliable by
      // keeping a list of keys we've seen in sessionStorage.
      // Instead, we just default to 0 for keys we don't know.
  
      var toIndex = allKeys.indexOf(toLocation.key);
  
      if (toIndex === -1) toIndex = 0;
  
      var fromIndex = allKeys.indexOf(fromLocation.key);
  
      if (fromIndex === -1) fromIndex = 0;
  
      var delta = toIndex - fromIndex;
  
      if (delta) {
        forceNextPop = true;
        go(delta);
      }
    };
  
    var initialLocation = getDOMLocation(getHistoryState());
    var allKeys = [initialLocation.key];
  
    // Public interface
  
    var createHref = function createHref(location) {
      return basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(location);
    };
  
    var push = function push(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'PUSH';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var href = createHref(location);
        var key = location.key,
            state = location.state;
  
  
        if (canUseHistory) {
          globalHistory.pushState({ key: key, state: state }, null, href);
  
          if (forceRefresh) {
            window.location.href = href;
          } else {
            var prevIndex = allKeys.indexOf(history.location.key);
            var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);
  
            nextKeys.push(location.key);
            allKeys = nextKeys;
  
            setState({ action: action, location: location });
          }
        } else {
          __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');
  
          window.location.href = href;
        }
      });
    };
  
    var replace = function replace(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'REPLACE';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var href = createHref(location);
        var key = location.key,
            state = location.state;
  
  
        if (canUseHistory) {
          globalHistory.replaceState({ key: key, state: state }, null, href);
  
          if (forceRefresh) {
            window.location.replace(href);
          } else {
            var prevIndex = allKeys.indexOf(history.location.key);
  
            if (prevIndex !== -1) allKeys[prevIndex] = location.key;
  
            setState({ action: action, location: location });
          }
        } else {
          __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');
  
          window.location.replace(href);
        }
      });
    };
  
    var go = function go(n) {
      globalHistory.go(n);
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var listenerCount = 0;
  
    var checkDOMListeners = function checkDOMListeners(delta) {
      listenerCount += delta;
  
      if (listenerCount === 1) {
        Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["a" /* addEventListener */])(window, PopStateEvent, handlePopState);
  
        if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["a" /* addEventListener */])(window, HashChangeEvent, handleHashChange);
      } else if (listenerCount === 0) {
        Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["e" /* removeEventListener */])(window, PopStateEvent, handlePopState);
  
        if (needsHashChangeListener) Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["e" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);
      }
    };
  
    var isBlocked = false;
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  
      var unblock = transitionManager.setPrompt(prompt);
  
      if (!isBlocked) {
        checkDOMListeners(1);
        isBlocked = true;
      }
  
      return function () {
        if (isBlocked) {
          isBlocked = false;
          checkDOMListeners(-1);
        }
  
        return unblock();
      };
    };
  
    var listen = function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      checkDOMListeners(1);
  
      return function () {
        checkDOMListeners(-1);
        unlisten();
      };
    };
  
    var history = {
      length: globalHistory.length,
      action: 'POP',
      location: initialLocation,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  /* unused harmony default export */ var _unused_webpack_default_export = (createBrowserHistory);
  
  /***/ }),
  
  /***/ "./node_modules/history/es/createHashHistory.js":
  /*!******************************************************!*\
    !*** ./node_modules/history/es/createHashHistory.js ***!
    \******************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/es/LocationUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__PathUtils__ = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/es/PathUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createTransitionManager__ = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/es/createTransitionManager.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__DOMUtils__ = __webpack_require__(/*! ./DOMUtils */ "./node_modules/history/es/DOMUtils.js");
  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 HashChangeEvent = 'hashchange';
  
  var HashPathCoders = {
    hashbang: {
      encodePath: function encodePath(path) {
        return path.charAt(0) === '!' ? path : '!/' + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["f" /* stripLeadingSlash */])(path);
      },
      decodePath: function decodePath(path) {
        return path.charAt(0) === '!' ? path.substr(1) : path;
      }
    },
    noslash: {
      encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__["f" /* stripLeadingSlash */],
      decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__["a" /* addLeadingSlash */]
    },
    slash: {
      encodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__["a" /* addLeadingSlash */],
      decodePath: __WEBPACK_IMPORTED_MODULE_3__PathUtils__["a" /* addLeadingSlash */]
    }
  };
  
  var getHashPath = function getHashPath() {
    // We can't use window.location.hash here because it's not
    // consistent across browsers - Firefox will pre-decode it!
    var href = window.location.href;
    var hashIndex = href.indexOf('#');
    return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
  };
  
  var pushHashPath = function pushHashPath(path) {
    return window.location.hash = path;
  };
  
  var replaceHashPath = function replaceHashPath(path) {
    var hashIndex = window.location.href.indexOf('#');
  
    window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);
  };
  
  var createHashHistory = function createHashHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  
    __WEBPACK_IMPORTED_MODULE_1_invariant___default()(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["b" /* canUseDOM */], 'Hash history needs a DOM');
  
    var globalHistory = window.history;
    var canGoWithoutReload = Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["f" /* supportsGoWithoutReloadUsingHash */])();
  
    var _props$getUserConfirm = props.getUserConfirmation,
        getUserConfirmation = _props$getUserConfirm === undefined ? __WEBPACK_IMPORTED_MODULE_5__DOMUtils__["c" /* getConfirmation */] : _props$getUserConfirm,
        _props$hashType = props.hashType,
        hashType = _props$hashType === undefined ? 'slash' : _props$hashType;
  
    var basename = props.basename ? Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["g" /* stripTrailingSlash */])(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["a" /* addLeadingSlash */])(props.basename)) : '';
  
    var _HashPathCoders$hashT = HashPathCoders[hashType],
        encodePath = _HashPathCoders$hashT.encodePath,
        decodePath = _HashPathCoders$hashT.decodePath;
  
  
    var getDOMLocation = function getDOMLocation() {
      var path = decodePath(getHashPath());
  
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!basename || Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["c" /* hasBasename */])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".');
  
      if (basename) path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["e" /* stripBasename */])(path, basename);
  
      return Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path);
    };
  
    var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_4__createTransitionManager__["a" /* default */])();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = globalHistory.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var forceNextPop = false;
    var ignorePath = null;
  
    var handleHashChange = function handleHashChange() {
      var path = getHashPath();
      var encodedPath = encodePath(path);
  
      if (path !== encodedPath) {
        // Ensure we always have a properly-encoded hash.
        replaceHashPath(encodedPath);
      } else {
        var location = getDOMLocation();
        var prevLocation = history.location;
  
        if (!forceNextPop && Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["b" /* locationsAreEqual */])(prevLocation, location)) return; // A hashchange doesn't always == location change.
  
        if (ignorePath === Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(location)) return; // Ignore this change; we already setState in push/replace.
  
        ignorePath = null;
  
        handlePop(location);
      }
    };
  
    var handlePop = function handlePop(location) {
      if (forceNextPop) {
        forceNextPop = false;
        setState();
      } else {
        var action = 'POP';
  
        transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
          if (ok) {
            setState({ action: action, location: location });
          } else {
            revertPop(location);
          }
        });
      }
    };
  
    var revertPop = function revertPop(fromLocation) {
      var toLocation = history.location;
  
      // TODO: We could probably make this more reliable by
      // keeping a list of paths we've seen in sessionStorage.
      // Instead, we just default to 0 for paths we don't know.
  
      var toIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(toLocation));
  
      if (toIndex === -1) toIndex = 0;
  
      var fromIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(fromLocation));
  
      if (fromIndex === -1) fromIndex = 0;
  
      var delta = toIndex - fromIndex;
  
      if (delta) {
        forceNextPop = true;
        go(delta);
      }
    };
  
    // Ensure the hash is encoded properly before doing anything else.
    var path = getHashPath();
    var encodedPath = encodePath(path);
  
    if (path !== encodedPath) replaceHashPath(encodedPath);
  
    var initialLocation = getDOMLocation();
    var allPaths = [Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(initialLocation)];
  
    // Public interface
  
    var createHref = function createHref(location) {
      return '#' + encodePath(basename + Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(location));
    };
  
    var push = function push(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot push state; it is ignored');
  
      var action = 'PUSH';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, undefined, undefined, history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(location);
        var encodedPath = encodePath(basename + path);
        var hashChanged = getHashPath() !== encodedPath;
  
        if (hashChanged) {
          // We cannot tell if a hashchange was caused by a PUSH, so we'd
          // rather setState here and ignore the hashchange. The caveat here
          // is that other hash histories in the page will consider it a POP.
          ignorePath = path;
          pushHashPath(encodedPath);
  
          var prevIndex = allPaths.lastIndexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(history.location));
          var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);
  
          nextPaths.push(path);
          allPaths = nextPaths;
  
          setState({ action: action, location: location });
        } else {
          __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');
  
          setState();
        }
      });
    };
  
    var replace = function replace(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(state === undefined, 'Hash history cannot replace state; it is ignored');
  
      var action = 'REPLACE';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, undefined, undefined, history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var path = Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(location);
        var encodedPath = encodePath(basename + path);
        var hashChanged = getHashPath() !== encodedPath;
  
        if (hashChanged) {
          // We cannot tell if a hashchange was caused by a REPLACE, so we'd
          // rather setState here and ignore the hashchange. The caveat here
          // is that other hash histories in the page will consider it a POP.
          ignorePath = path;
          replaceHashPath(encodedPath);
        }
  
        var prevIndex = allPaths.indexOf(Object(__WEBPACK_IMPORTED_MODULE_3__PathUtils__["b" /* createPath */])(history.location));
  
        if (prevIndex !== -1) allPaths[prevIndex] = path;
  
        setState({ action: action, location: location });
      });
    };
  
    var go = function go(n) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');
  
      globalHistory.go(n);
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var listenerCount = 0;
  
    var checkDOMListeners = function checkDOMListeners(delta) {
      listenerCount += delta;
  
      if (listenerCount === 1) {
        Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["a" /* addEventListener */])(window, HashChangeEvent, handleHashChange);
      } else if (listenerCount === 0) {
        Object(__WEBPACK_IMPORTED_MODULE_5__DOMUtils__["e" /* removeEventListener */])(window, HashChangeEvent, handleHashChange);
      }
    };
  
    var isBlocked = false;
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  
      var unblock = transitionManager.setPrompt(prompt);
  
      if (!isBlocked) {
        checkDOMListeners(1);
        isBlocked = true;
      }
  
      return function () {
        if (isBlocked) {
          isBlocked = false;
          checkDOMListeners(-1);
        }
  
        return unblock();
      };
    };
  
    var listen = function listen(listener) {
      var unlisten = transitionManager.appendListener(listener);
      checkDOMListeners(1);
  
      return function () {
        checkDOMListeners(-1);
        unlisten();
      };
    };
  
    var history = {
      length: globalHistory.length,
      action: 'POP',
      location: initialLocation,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  /* unused harmony default export */ var _unused_webpack_default_export = (createHashHistory);
  
  /***/ }),
  
  /***/ "./node_modules/history/es/createMemoryHistory.js":
  /*!********************************************************!*\
    !*** ./node_modules/history/es/createMemoryHistory.js ***!
    \********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__PathUtils__ = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/es/PathUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__LocationUtils__ = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/es/LocationUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__createTransitionManager__ = __webpack_require__(/*! ./createTransitionManager */ "./node_modules/history/es/createTransitionManager.js");
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  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 clamp = function clamp(n, lowerBound, upperBound) {
    return Math.min(Math.max(n, lowerBound), upperBound);
  };
  
  /**
   * Creates a history object that stores locations in memory.
   */
  var createMemoryHistory = function createMemoryHistory() {
    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var getUserConfirmation = props.getUserConfirmation,
        _props$initialEntries = props.initialEntries,
        initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,
        _props$initialIndex = props.initialIndex,
        initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,
        _props$keyLength = props.keyLength,
        keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;
  
  
    var transitionManager = Object(__WEBPACK_IMPORTED_MODULE_3__createTransitionManager__["a" /* default */])();
  
    var setState = function setState(nextState) {
      _extends(history, nextState);
  
      history.length = history.entries.length;
  
      transitionManager.notifyListeners(history.location, history.action);
    };
  
    var createKey = function createKey() {
      return Math.random().toString(36).substr(2, keyLength);
    };
  
    var index = clamp(initialIndex, 0, initialEntries.length - 1);
    var entries = initialEntries.map(function (entry) {
      return typeof entry === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(entry, undefined, createKey()) : Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(entry, undefined, entry.key || createKey());
    });
  
    // Public interface
  
    var createHref = __WEBPACK_IMPORTED_MODULE_1__PathUtils__["b" /* createPath */];
  
    var push = function push(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'PUSH';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        var prevIndex = history.index;
        var nextIndex = prevIndex + 1;
  
        var nextEntries = history.entries.slice(0);
        if (nextEntries.length > nextIndex) {
          nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);
        } else {
          nextEntries.push(location);
        }
  
        setState({
          action: action,
          location: location,
          index: nextIndex,
          entries: nextEntries
        });
      });
    };
  
    var replace = function replace(path, state) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');
  
      var action = 'REPLACE';
      var location = Object(__WEBPACK_IMPORTED_MODULE_2__LocationUtils__["a" /* createLocation */])(path, state, createKey(), history.location);
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (!ok) return;
  
        history.entries[history.index] = location;
  
        setState({ action: action, location: location });
      });
    };
  
    var go = function go(n) {
      var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);
  
      var action = 'POP';
      var location = history.entries[nextIndex];
  
      transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
        if (ok) {
          setState({
            action: action,
            location: location,
            index: nextIndex
          });
        } else {
          // Mimic the behavior of DOM histories by
          // causing a render after a cancelled POP.
          setState();
        }
      });
    };
  
    var goBack = function goBack() {
      return go(-1);
    };
  
    var goForward = function goForward() {
      return go(1);
    };
  
    var canGo = function canGo(n) {
      var nextIndex = history.index + n;
      return nextIndex >= 0 && nextIndex < history.entries.length;
    };
  
    var block = function block() {
      var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
      return transitionManager.setPrompt(prompt);
    };
  
    var listen = function listen(listener) {
      return transitionManager.appendListener(listener);
    };
  
    var history = {
      length: entries.length,
      action: 'POP',
      location: entries[index],
      index: index,
      entries: entries,
      createHref: createHref,
      push: push,
      replace: replace,
      go: go,
      goBack: goBack,
      goForward: goForward,
      canGo: canGo,
      block: block,
      listen: listen
    };
  
    return history;
  };
  
  /* unused harmony default export */ var _unused_webpack_default_export = (createMemoryHistory);
  
  /***/ }),
  
  /***/ "./node_modules/history/es/createTransitionManager.js":
  /*!************************************************************!*\
    !*** ./node_modules/history/es/createTransitionManager.js ***!
    \************************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  
  
  var createTransitionManager = function createTransitionManager() {
    var prompt = null;
  
    var setPrompt = function setPrompt(nextPrompt) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(prompt == null, 'A history supports only one prompt at a time');
  
      prompt = nextPrompt;
  
      return function () {
        if (prompt === nextPrompt) prompt = null;
      };
    };
  
    var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {
      // TODO: If another transition starts while we're still confirming
      // the previous one, we may end up in a weird state. Figure out the
      // best way to handle this.
      if (prompt != null) {
        var result = typeof prompt === 'function' ? prompt(location, action) : prompt;
  
        if (typeof result === 'string') {
          if (typeof getUserConfirmation === 'function') {
            getUserConfirmation(result, callback);
          } else {
            __WEBPACK_IMPORTED_MODULE_0_warning___default()(false, 'A history needs a getUserConfirmation function in order to use a prompt message');
  
            callback(true);
          }
        } else {
          // Return false from a transition hook to cancel the transition.
          callback(result !== false);
        }
      } else {
        callback(true);
      }
    };
  
    var listeners = [];
  
    var appendListener = function appendListener(fn) {
      var isActive = true;
  
      var listener = function listener() {
        if (isActive) fn.apply(undefined, arguments);
      };
  
      listeners.push(listener);
  
      return function () {
        isActive = false;
        listeners = listeners.filter(function (item) {
          return item !== listener;
        });
      };
    };
  
    var notifyListeners = function notifyListeners() {
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      listeners.forEach(function (listener) {
        return listener.apply(undefined, args);
      });
    };
  
    return {
      setPrompt: setPrompt,
      confirmTransitionTo: confirmTransitionTo,
      appendListener: appendListener,
      notifyListeners: notifyListeners
    };
  };
  
  /* harmony default export */ __webpack_exports__["a"] = (createTransitionManager);
  
  /***/ }),
  
  /***/ "./node_modules/history/es/index.js":
  /*!******************************************!*\
    !*** ./node_modules/history/es/index.js ***!
    \******************************************/
  /*! exports provided: createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath */
  /*! exports used: createLocation, locationsAreEqual */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createBrowserHistory__ = __webpack_require__(/*! ./createBrowserHistory */ "./node_modules/history/es/createBrowserHistory.js");
  /* unused harmony reexport createBrowserHistory */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__createHashHistory__ = __webpack_require__(/*! ./createHashHistory */ "./node_modules/history/es/createHashHistory.js");
  /* unused harmony reexport createHashHistory */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__createMemoryHistory__ = __webpack_require__(/*! ./createMemoryHistory */ "./node_modules/history/es/createMemoryHistory.js");
  /* unused harmony reexport createMemoryHistory */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__LocationUtils__ = __webpack_require__(/*! ./LocationUtils */ "./node_modules/history/es/LocationUtils.js");
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__LocationUtils__["b"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__PathUtils__ = __webpack_require__(/*! ./PathUtils */ "./node_modules/history/es/PathUtils.js");
  /* unused harmony reexport parsePath */
  /* unused harmony reexport createPath */
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  
  /***/ "./node_modules/hoist-non-react-statics/index.js":
  /*!*******************************************************!*\
    !*** ./node_modules/hoist-non-react-statics/index.js ***!
    \*******************************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  /**
   * Copyright 2015, Yahoo! Inc.
   * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
   */
  (function (global, factory) {
       true ? module.exports = factory() :
      typeof define === 'function' && define.amd ? define(factory) :
      (global.hoistNonReactStatics = factory());
  }(this, (function () {
      'use strict';
      
      var REACT_STATICS = {
          childContextTypes: true,
          contextTypes: true,
          defaultProps: true,
          displayName: true,
          getDefaultProps: true,
          getDerivedStateFromProps: true,
          mixins: true,
          propTypes: true,
          type: true
      };
      
      var KNOWN_STATICS = {
          name: true,
          length: true,
          prototype: true,
          caller: true,
          callee: true,
          arguments: true,
          arity: true
      };
      
      var defineProperty = Object.defineProperty;
      var getOwnPropertyNames = Object.getOwnPropertyNames;
      var getOwnPropertySymbols = Object.getOwnPropertySymbols;
      var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
      var getPrototypeOf = Object.getPrototypeOf;
      var objectPrototype = getPrototypeOf && getPrototypeOf(Object);
      
      return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
          if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components
              
              if (objectPrototype) {
                  var inheritedComponent = getPrototypeOf(sourceComponent);
                  if (inheritedComponent && inheritedComponent !== objectPrototype) {
                      hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
                  }
              }
              
              var keys = getOwnPropertyNames(sourceComponent);
              
              if (getOwnPropertySymbols) {
                  keys = keys.concat(getOwnPropertySymbols(sourceComponent));
              }
              
              for (var i = 0; i < keys.length; ++i) {
                  var key = keys[i];
                  if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {
                      var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
                      try { // Avoid failures from read-only properties
                          defineProperty(targetComponent, key, descriptor);
                      } catch (e) {}
                  }
              }
              
              return targetComponent;
          }
          
          return targetComponent;
      };
  })));
  
  
  /***/ }),
  
  /***/ "./node_modules/invariant/browser.js":
  /*!*******************************************!*\
    !*** ./node_modules/invariant/browser.js ***!
    \*******************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  
  
  /**
   * Use invariant() to assert state which your program assumes to be true.
   *
   * Provide sprintf-style format (only %s is supported) and arguments
   * to provide information about what broke and what you were
   * expecting.
   *
   * The invariant message will be stripped in production, but the invariant
   * will remain to ensure logic does not differ in production.
   */
  
  var invariant = function(condition, format, a, b, c, d, e, f) {
    if (true) {
      if (format === undefined) {
        throw new Error('invariant requires an error message argument');
      }
    }
  
    if (!condition) {
      var error;
      if (format === undefined) {
        error = new Error(
          'Minified exception occurred; use the non-minified dev environment ' +
          'for the full error message and additional helpful warnings.'
        );
      } else {
        var args = [a, b, c, d, e, f];
        var argIndex = 0;
        error = new Error(
          format.replace(/%s/g, function() { return args[argIndex++]; })
        );
        error.name = 'Invariant Violation';
      }
  
      error.framesToPop = 1; // we don't care about invariant's own frame
      throw error;
    }
  };
  
  module.exports = invariant;
  
  
  /***/ }),
  
  /***/ "./node_modules/json2mq/index.js":
  /*!***************************************!*\
    !*** ./node_modules/json2mq/index.js ***!
    \***************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  var camel2hyphen = __webpack_require__(/*! string-convert/camel2hyphen */ "./node_modules/string-convert/camel2hyphen.js");
  
  var isDimension = function (feature) {
    var re = /[height|width]$/;
    return re.test(feature);
  };
  
  var obj2mq = function (obj) {
    var mq = '';
    var features = Object.keys(obj);
    features.forEach(function (feature, index) {
      var value = obj[feature];
      feature = camel2hyphen(feature);
      // Add px to dimension features
      if (isDimension(feature) && typeof value === 'number') {
        value = value + 'px';
      }
      if (value === true) {
        mq += feature;
      } else if (value === false) {
        mq += 'not ' + feature;
      } else {
        mq += '(' + feature + ': ' + value + ')';
      }
      if (index < features.length-1) {
        mq += ' and '
      }
    });
    return mq;
  };
  
  var json2mq = function (query) {
    var mq = '';
    if (typeof query === 'string') {
      return query;
    }
    // Handling array of media queries
    if (query instanceof Array) {
      query.forEach(function (q, index) {
        mq += obj2mq(q);
        if (index < query.length-1) {
          mq += ', '
        }
      });
      return mq;
    }
    // Handling single media query
    return obj2mq(query);
  };
  
  module.exports = json2mq;
  
  /***/ }),
  
  /***/ "./node_modules/path-to-regexp/index.js":
  /*!**********************************************!*\
    !*** ./node_modules/path-to-regexp/index.js ***!
    \**********************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  var isarray = __webpack_require__(/*! isarray */ "./node_modules/path-to-regexp/node_modules/isarray/index.js")
  
  /**
   * Expose `pathToRegexp`.
   */
  module.exports = pathToRegexp
  module.exports.parse = parse
  module.exports.compile = compile
  module.exports.tokensToFunction = tokensToFunction
  module.exports.tokensToRegExp = tokensToRegExp
  
  /**
   * The main path matching regexp utility.
   *
   * @type {RegExp}
   */
  var PATH_REGEXP = new RegExp([
    // Match escaped characters that would otherwise appear in future matches.
    // This allows the user to escape special characters that won't transform.
    '(\\\\.)',
    // Match Express-style parameters and un-named parameters with a prefix
    // and optional suffixes. Matches appear as:
    //
    // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined]
    // "/route(\\d+)"  => [undefined, undefined, undefined, "\d+", undefined, undefined]
    // "/*"            => ["/", undefined, undefined, undefined, undefined, "*"]
    '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))'
  ].join('|'), 'g')
  
  /**
   * Parse a string for the raw tokens.
   *
   * @param  {string}  str
   * @param  {Object=} options
   * @return {!Array}
   */
  function parse (str, options) {
    var tokens = []
    var key = 0
    var index = 0
    var path = ''
    var defaultDelimiter = options && options.delimiter || '/'
    var res
  
    while ((res = PATH_REGEXP.exec(str)) != null) {
      var m = res[0]
      var escaped = res[1]
      var offset = res.index
      path += str.slice(index, offset)
      index = offset + m.length
  
      // Ignore already escaped sequences.
      if (escaped) {
        path += escaped[1]
        continue
      }
  
      var next = str[index]
      var prefix = res[2]
      var name = res[3]
      var capture = res[4]
      var group = res[5]
      var modifier = res[6]
      var asterisk = res[7]
  
      // Push the current path onto the tokens.
      if (path) {
        tokens.push(path)
        path = ''
      }
  
      var partial = prefix != null && next != null && next !== prefix
      var repeat = modifier === '+' || modifier === '*'
      var optional = modifier === '?' || modifier === '*'
      var delimiter = res[2] || defaultDelimiter
      var pattern = capture || group
  
      tokens.push({
        name: name || key++,
        prefix: prefix || '',
        delimiter: delimiter,
        optional: optional,
        repeat: repeat,
        partial: partial,
        asterisk: !!asterisk,
        pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')
      })
    }
  
    // Match any characters still remaining.
    if (index < str.length) {
      path += str.substr(index)
    }
  
    // If the path exists, push it onto the end.
    if (path) {
      tokens.push(path)
    }
  
    return tokens
  }
  
  /**
   * Compile a string to a template function for the path.
   *
   * @param  {string}             str
   * @param  {Object=}            options
   * @return {!function(Object=, Object=)}
   */
  function compile (str, options) {
    return tokensToFunction(parse(str, options))
  }
  
  /**
   * Prettier encoding of URI path segments.
   *
   * @param  {string}
   * @return {string}
   */
  function encodeURIComponentPretty (str) {
    return encodeURI(str).replace(/[\/?#]/g, function (c) {
      return '%' + c.charCodeAt(0).toString(16).toUpperCase()
    })
  }
  
  /**
   * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.
   *
   * @param  {string}
   * @return {string}
   */
  function encodeAsterisk (str) {
    return encodeURI(str).replace(/[?#]/g, function (c) {
      return '%' + c.charCodeAt(0).toString(16).toUpperCase()
    })
  }
  
  /**
   * Expose a method for transforming tokens into the path function.
   */
  function tokensToFunction (tokens) {
    // Compile all the tokens into regexps.
    var matches = new Array(tokens.length)
  
    // Compile all the patterns before compilation.
    for (var i = 0; i < tokens.length; i++) {
      if (typeof tokens[i] === 'object') {
        matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')
      }
    }
  
    return function (obj, opts) {
      var path = ''
      var data = obj || {}
      var options = opts || {}
      var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent
  
      for (var i = 0; i < tokens.length; i++) {
        var token = tokens[i]
  
        if (typeof token === 'string') {
          path += token
  
          continue
        }
  
        var value = data[token.name]
        var segment
  
        if (value == null) {
          if (token.optional) {
            // Prepend partial segment prefixes.
            if (token.partial) {
              path += token.prefix
            }
  
            continue
          } else {
            throw new TypeError('Expected "' + token.name + '" to be defined')
          }
        }
  
        if (isarray(value)) {
          if (!token.repeat) {
            throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`')
          }
  
          if (value.length === 0) {
            if (token.optional) {
              continue
            } else {
              throw new TypeError('Expected "' + token.name + '" to not be empty')
            }
          }
  
          for (var j = 0; j < value.length; j++) {
            segment = encode(value[j])
  
            if (!matches[i].test(segment)) {
              throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`')
            }
  
            path += (j === 0 ? token.prefix : token.delimiter) + segment
          }
  
          continue
        }
  
        segment = token.asterisk ? encodeAsterisk(value) : encode(value)
  
        if (!matches[i].test(segment)) {
          throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"')
        }
  
        path += token.prefix + segment
      }
  
      return path
    }
  }
  
  /**
   * Escape a regular expression string.
   *
   * @param  {string} str
   * @return {string}
   */
  function escapeString (str) {
    return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1')
  }
  
  /**
   * Escape the capturing group by escaping special characters and meaning.
   *
   * @param  {string} group
   * @return {string}
   */
  function escapeGroup (group) {
    return group.replace(/([=!:$\/()])/g, '\\$1')
  }
  
  /**
   * Attach the keys as a property of the regexp.
   *
   * @param  {!RegExp} re
   * @param  {Array}   keys
   * @return {!RegExp}
   */
  function attachKeys (re, keys) {
    re.keys = keys
    return re
  }
  
  /**
   * Get the flags for a regexp from the options.
   *
   * @param  {Object} options
   * @return {string}
   */
  function flags (options) {
    return options.sensitive ? '' : 'i'
  }
  
  /**
   * Pull out keys from a regexp.
   *
   * @param  {!RegExp} path
   * @param  {!Array}  keys
   * @return {!RegExp}
   */
  function regexpToRegexp (path, keys) {
    // Use a negative lookahead to match only capturing groups.
    var groups = path.source.match(/\((?!\?)/g)
  
    if (groups) {
      for (var i = 0; i < groups.length; i++) {
        keys.push({
          name: i,
          prefix: null,
          delimiter: null,
          optional: false,
          repeat: false,
          partial: false,
          asterisk: false,
          pattern: null
        })
      }
    }
  
    return attachKeys(path, keys)
  }
  
  /**
   * Transform an array into a regexp.
   *
   * @param  {!Array}  path
   * @param  {Array}   keys
   * @param  {!Object} options
   * @return {!RegExp}
   */
  function arrayToRegexp (path, keys, options) {
    var parts = []
  
    for (var i = 0; i < path.length; i++) {
      parts.push(pathToRegexp(path[i], keys, options).source)
    }
  
    var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))
  
    return attachKeys(regexp, keys)
  }
  
  /**
   * Create a path regexp from string input.
   *
   * @param  {string}  path
   * @param  {!Array}  keys
   * @param  {!Object} options
   * @return {!RegExp}
   */
  function stringToRegexp (path, keys, options) {
    return tokensToRegExp(parse(path, options), keys, options)
  }
  
  /**
   * Expose a function for taking tokens and returning a RegExp.
   *
   * @param  {!Array}          tokens
   * @param  {(Array|Object)=} keys
   * @param  {Object=}         options
   * @return {!RegExp}
   */
  function tokensToRegExp (tokens, keys, options) {
    if (!isarray(keys)) {
      options = /** @type {!Object} */ (keys || options)
      keys = []
    }
  
    options = options || {}
  
    var strict = options.strict
    var end = options.end !== false
    var route = ''
  
    // Iterate over the tokens and create our regexp string.
    for (var i = 0; i < tokens.length; i++) {
      var token = tokens[i]
  
      if (typeof token === 'string') {
        route += escapeString(token)
      } else {
        var prefix = escapeString(token.prefix)
        var capture = '(?:' + token.pattern + ')'
  
        keys.push(token)
  
        if (token.repeat) {
          capture += '(?:' + prefix + capture + ')*'
        }
  
        if (token.optional) {
          if (!token.partial) {
            capture = '(?:' + prefix + '(' + capture + '))?'
          } else {
            capture = prefix + '(' + capture + ')?'
          }
        } else {
          capture = prefix + '(' + capture + ')'
        }
  
        route += capture
      }
    }
  
    var delimiter = escapeString(options.delimiter || '/')
    var endsWithDelimiter = route.slice(-delimiter.length) === delimiter
  
    // In non-strict mode we allow a slash at the end of match. If the path to
    // match already ends with a slash, we remove it for consistency. The slash
    // is valid at the end of a path match, not in the middle. This is important
    // in non-ending mode, where "/test/" shouldn't match "/test//route".
    if (!strict) {
      route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'
    }
  
    if (end) {
      route += '$'
    } else {
      // In non-ending mode, we need the capturing groups to match as much as
      // possible by using a positive lookahead to the end or next path segment.
      route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'
    }
  
    return attachKeys(new RegExp('^' + route, flags(options)), keys)
  }
  
  /**
   * Normalize the given path string, returning a regular expression.
   *
   * An empty array can be passed in for the keys, which will hold the
   * placeholder key descriptions. For example, using `/user/:id`, `keys` will
   * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
   *
   * @param  {(string|RegExp|Array)} path
   * @param  {(Array|Object)=}       keys
   * @param  {Object=}               options
   * @return {!RegExp}
   */
  function pathToRegexp (path, keys, options) {
    if (!isarray(keys)) {
      options = /** @type {!Object} */ (keys || options)
      keys = []
    }
  
    options = options || {}
  
    if (path instanceof RegExp) {
      return regexpToRegexp(path, /** @type {!Array} */ (keys))
    }
  
    if (isarray(path)) {
      return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)
    }
  
    return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)
  }
  
  
  /***/ }),
  
  /***/ "./node_modules/path-to-regexp/node_modules/isarray/index.js":
  /*!*******************************************************************!*\
    !*** ./node_modules/path-to-regexp/node_modules/isarray/index.js ***!
    \*******************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports) {
  
  module.exports = Array.isArray || function (arr) {
    return Object.prototype.toString.call(arr) == '[object Array]';
  };
  
  
  /***/ }),
  
  /***/ "./node_modules/prop-types/factoryWithTypeCheckers.js":
  /*!************************************************************!*\
    !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!
    \************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  
  
  var emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js");
  var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
  var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
  var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
  var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js");
  
  module.exports = function(isValidElement, throwOnDirectAccess) {
    /* global Symbol */
    var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
    var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
  
    /**
     * Returns the iterator method function contained on the iterable object.
     *
     * Be sure to invoke the function with the iterable as context:
     *
     *     var iteratorFn = getIteratorFn(myIterable);
     *     if (iteratorFn) {
     *       var iterator = iteratorFn.call(myIterable);
     *       ...
     *     }
     *
     * @param {?object} maybeIterable
     * @return {?function}
     */
    function getIteratorFn(maybeIterable) {
      var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
      if (typeof iteratorFn === 'function') {
        return iteratorFn;
      }
    }
  
    /**
     * Collection of methods that allow declaration and validation of props that are
     * supplied to React components. Example usage:
     *
     *   var Props = require('ReactPropTypes');
     *   var MyArticle = React.createClass({
     *     propTypes: {
     *       // An optional string prop named "description".
     *       description: Props.string,
     *
     *       // A required enum prop named "category".
     *       category: Props.oneOf(['News','Photos']).isRequired,
     *
     *       // A prop named "dialog" that requires an instance of Dialog.
     *       dialog: Props.instanceOf(Dialog).isRequired
     *     },
     *     render: function() { ... }
     *   });
     *
     * A more formal specification of how these methods are used:
     *
     *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
     *   decl := ReactPropTypes.{type}(.isRequired)?
     *
     * Each and every declaration produces a function with the same signature. This
     * allows the creation of custom validation functions. For example:
     *
     *  var MyLink = React.createClass({
     *    propTypes: {
     *      // An optional string or URI prop named "href".
     *      href: function(props, propName, componentName) {
     *        var propValue = props[propName];
     *        if (propValue != null && typeof propValue !== 'string' &&
     *            !(propValue instanceof URI)) {
     *          return new Error(
     *            'Expected a string or an URI for ' + propName + ' in ' +
     *            componentName
     *          );
     *        }
     *      }
     *    },
     *    render: function() {...}
     *  });
     *
     * @internal
     */
  
    var ANONYMOUS = '<<anonymous>>';
  
    // Important!
    // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
    var ReactPropTypes = {
      array: createPrimitiveTypeChecker('array'),
      bool: createPrimitiveTypeChecker('boolean'),
      func: createPrimitiveTypeChecker('function'),
      number: createPrimitiveTypeChecker('number'),
      object: createPrimitiveTypeChecker('object'),
      string: createPrimitiveTypeChecker('string'),
      symbol: createPrimitiveTypeChecker('symbol'),
  
      any: createAnyTypeChecker(),
      arrayOf: createArrayOfTypeChecker,
      element: createElementTypeChecker(),
      instanceOf: createInstanceTypeChecker,
      node: createNodeChecker(),
      objectOf: createObjectOfTypeChecker,
      oneOf: createEnumTypeChecker,
      oneOfType: createUnionTypeChecker,
      shape: createShapeTypeChecker,
      exact: createStrictShapeTypeChecker,
    };
  
    /**
     * inlined Object.is polyfill to avoid requiring consumers ship their own
     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
     */
    /*eslint-disable no-self-compare*/
    function is(x, y) {
      // SameValue algorithm
      if (x === y) {
        // Steps 1-5, 7-10
        // Steps 6.b-6.e: +0 != -0
        return x !== 0 || 1 / x === 1 / y;
      } else {
        // Step 6.a: NaN == NaN
        return x !== x && y !== y;
      }
    }
    /*eslint-enable no-self-compare*/
  
    /**
     * We use an Error-like object for backward compatibility as people may call
     * PropTypes directly and inspect their output. However, we don't use real
     * Errors anymore. We don't inspect their stack anyway, and creating them
     * is prohibitively expensive if they are created too often, such as what
     * happens in oneOfType() for any type before the one that matched.
     */
    function PropTypeError(message) {
      this.message = message;
      this.stack = '';
    }
    // Make `instanceof Error` still work for returned errors.
    PropTypeError.prototype = Error.prototype;
  
    function createChainableTypeChecker(validate) {
      if (true) {
        var manualPropTypeCallCache = {};
        var manualPropTypeWarningCount = 0;
      }
      function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
        componentName = componentName || ANONYMOUS;
        propFullName = propFullName || propName;
  
        if (secret !== ReactPropTypesSecret) {
          if (throwOnDirectAccess) {
            // New behavior only for users of `prop-types` package
            invariant(
              false,
              'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
              'Use `PropTypes.checkPropTypes()` to call them. ' +
              'Read more at http://fb.me/use-check-prop-types'
            );
          } else if ("development" !== 'production' && typeof console !== 'undefined') {
            // Old behavior for people using React.PropTypes
            var cacheKey = componentName + ':' + propName;
            if (
              !manualPropTypeCallCache[cacheKey] &&
              // Avoid spamming the console because they are often not actionable except for lib authors
              manualPropTypeWarningCount < 3
            ) {
              warning(
                false,
                'You are manually calling a React.PropTypes validation ' +
                'function for the `%s` prop on `%s`. This is deprecated ' +
                'and will throw in the standalone `prop-types` package. ' +
                'You may be seeing this warning due to a third-party PropTypes ' +
                'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
                propFullName,
                componentName
              );
              manualPropTypeCallCache[cacheKey] = true;
              manualPropTypeWarningCount++;
            }
          }
        }
        if (props[propName] == null) {
          if (isRequired) {
            if (props[propName] === null) {
              return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
            }
            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
          }
          return null;
        } else {
          return validate(props, propName, componentName, location, propFullName);
        }
      }
  
      var chainedCheckType = checkType.bind(null, false);
      chainedCheckType.isRequired = checkType.bind(null, true);
  
      return chainedCheckType;
    }
  
    function createPrimitiveTypeChecker(expectedType) {
      function validate(props, propName, componentName, location, propFullName, secret) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== expectedType) {
          // `propValue` being instance of, say, date/regexp, pass the 'object'
          // check, but we can offer a more precise error message here rather than
          // 'of type `object`'.
          var preciseType = getPreciseType(propValue);
  
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createAnyTypeChecker() {
      return createChainableTypeChecker(emptyFunction.thatReturnsNull);
    }
  
    function createArrayOfTypeChecker(typeChecker) {
      function validate(props, propName, componentName, location, propFullName) {
        if (typeof typeChecker !== 'function') {
          return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
        }
        var propValue = props[propName];
        if (!Array.isArray(propValue)) {
          var propType = getPropType(propValue);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
        }
        for (var i = 0; i < propValue.length; i++) {
          var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
          if (error instanceof Error) {
            return error;
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createElementTypeChecker() {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        if (!isValidElement(propValue)) {
          var propType = getPropType(propValue);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createInstanceTypeChecker(expectedClass) {
      function validate(props, propName, componentName, location, propFullName) {
        if (!(props[propName] instanceof expectedClass)) {
          var expectedClassName = expectedClass.name || ANONYMOUS;
          var actualClassName = getClassName(props[propName]);
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createEnumTypeChecker(expectedValues) {
      if (!Array.isArray(expectedValues)) {
         true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
        return emptyFunction.thatReturnsNull;
      }
  
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        for (var i = 0; i < expectedValues.length; i++) {
          if (is(propValue, expectedValues[i])) {
            return null;
          }
        }
  
        var valuesString = JSON.stringify(expectedValues);
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
      }
      return createChainableTypeChecker(validate);
    }
  
    function createObjectOfTypeChecker(typeChecker) {
      function validate(props, propName, componentName, location, propFullName) {
        if (typeof typeChecker !== 'function') {
          return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
        }
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
        }
        for (var key in propValue) {
          if (propValue.hasOwnProperty(key)) {
            var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
            if (error instanceof Error) {
              return error;
            }
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createUnionTypeChecker(arrayOfTypeCheckers) {
      if (!Array.isArray(arrayOfTypeCheckers)) {
         true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
        return emptyFunction.thatReturnsNull;
      }
  
      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
        var checker = arrayOfTypeCheckers[i];
        if (typeof checker !== 'function') {
          warning(
            false,
            'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
            'received %s at index %s.',
            getPostfixForTypeWarning(checker),
            i
          );
          return emptyFunction.thatReturnsNull;
        }
      }
  
      function validate(props, propName, componentName, location, propFullName) {
        for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
          var checker = arrayOfTypeCheckers[i];
          if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
            return null;
          }
        }
  
        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
      }
      return createChainableTypeChecker(validate);
    }
  
    function createNodeChecker() {
      function validate(props, propName, componentName, location, propFullName) {
        if (!isNode(props[propName])) {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createShapeTypeChecker(shapeTypes) {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
        }
        for (var key in shapeTypes) {
          var checker = shapeTypes[key];
          if (!checker) {
            continue;
          }
          var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error) {
            return error;
          }
        }
        return null;
      }
      return createChainableTypeChecker(validate);
    }
  
    function createStrictShapeTypeChecker(shapeTypes) {
      function validate(props, propName, componentName, location, propFullName) {
        var propValue = props[propName];
        var propType = getPropType(propValue);
        if (propType !== 'object') {
          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
        }
        // We need to check all keys in case some are required but missing from
        // props.
        var allKeys = assign({}, props[propName], shapeTypes);
        for (var key in allKeys) {
          var checker = shapeTypes[key];
          if (!checker) {
            return new PropTypeError(
              'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
              '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
              '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
            );
          }
          var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
          if (error) {
            return error;
          }
        }
        return null;
      }
  
      return createChainableTypeChecker(validate);
    }
  
    function isNode(propValue) {
      switch (typeof propValue) {
        case 'number':
        case 'string':
        case 'undefined':
          return true;
        case 'boolean':
          return !propValue;
        case 'object':
          if (Array.isArray(propValue)) {
            return propValue.every(isNode);
          }
          if (propValue === null || isValidElement(propValue)) {
            return true;
          }
  
          var iteratorFn = getIteratorFn(propValue);
          if (iteratorFn) {
            var iterator = iteratorFn.call(propValue);
            var step;
            if (iteratorFn !== propValue.entries) {
              while (!(step = iterator.next()).done) {
                if (!isNode(step.value)) {
                  return false;
                }
              }
            } else {
              // Iterator will provide entry [k,v] tuples rather than values.
              while (!(step = iterator.next()).done) {
                var entry = step.value;
                if (entry) {
                  if (!isNode(entry[1])) {
                    return false;
                  }
                }
              }
            }
          } else {
            return false;
          }
  
          return true;
        default:
          return false;
      }
    }
  
    function isSymbol(propType, propValue) {
      // Native Symbol.
      if (propType === 'symbol') {
        return true;
      }
  
      // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
      if (propValue['@@toStringTag'] === 'Symbol') {
        return true;
      }
  
      // Fallback for non-spec compliant Symbols which are polyfilled.
      if (typeof Symbol === 'function' && propValue instanceof Symbol) {
        return true;
      }
  
      return false;
    }
  
    // Equivalent of `typeof` but with special handling for array and regexp.
    function getPropType(propValue) {
      var propType = typeof propValue;
      if (Array.isArray(propValue)) {
        return 'array';
      }
      if (propValue instanceof RegExp) {
        // Old webkits (at least until Android 4.0) return 'function' rather than
        // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
        // passes PropTypes.object.
        return 'object';
      }
      if (isSymbol(propType, propValue)) {
        return 'symbol';
      }
      return propType;
    }
  
    // This handles more types than `getPropType`. Only used for error messages.
    // See `createPrimitiveTypeChecker`.
    function getPreciseType(propValue) {
      if (typeof propValue === 'undefined' || propValue === null) {
        return '' + propValue;
      }
      var propType = getPropType(propValue);
      if (propType === 'object') {
        if (propValue instanceof Date) {
          return 'date';
        } else if (propValue instanceof RegExp) {
          return 'regexp';
        }
      }
      return propType;
    }
  
    // Returns a string that is postfixed to a warning about an invalid type.
    // For example, "undefined" or "of type array"
    function getPostfixForTypeWarning(value) {
      var type = getPreciseType(value);
      switch (type) {
        case 'array':
        case 'object':
          return 'an ' + type;
        case 'boolean':
        case 'date':
        case 'regexp':
          return 'a ' + type;
        default:
          return type;
      }
    }
  
    // Returns class name of the object, if any.
    function getClassName(propValue) {
      if (!propValue.constructor || !propValue.constructor.name) {
        return ANONYMOUS;
      }
      return propValue.constructor.name;
    }
  
    ReactPropTypes.checkPropTypes = checkPropTypes;
    ReactPropTypes.PropTypes = ReactPropTypes;
  
    return ReactPropTypes;
  };
  
  
  /***/ }),
  
  /***/ "./node_modules/prop-types/index.js":
  /*!******************************************!*\
    !*** ./node_modules/prop-types/index.js ***!
    \******************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  /**
   * Copyright (c) 2013-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  if (true) {
    var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
      Symbol.for &&
      Symbol.for('react.element')) ||
      0xeac7;
  
    var isValidElement = function(object) {
      return typeof object === 'object' &&
        object !== null &&
        object.$$typeof === REACT_ELEMENT_TYPE;
    };
  
    // By explicitly using `prop-types` you are opting into new development behavior.
    // http://fb.me/prop-types-in-prod
    var throwOnDirectAccess = true;
    module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js")(isValidElement, throwOnDirectAccess);
  } else {
    // By explicitly using `prop-types` you are opting into new production behavior.
    // http://fb.me/prop-types-in-prod
    module.exports = require('./factoryWithThrowingShims')();
  }
  
  
  /***/ }),
  
  /***/ "./node_modules/react-dom/index.js":
  /*!*****************************************!*\
    !*** ./node_modules/react-dom/index.js ***!
    \*****************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  function checkDCE() {
    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
    if (
      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||
      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'
    ) {
      return;
    }
    if (true) {
      // This branch is unreachable because this function is only called
      // in production, but the condition is true only in development.
      // Therefore if the branch is still here, dead code elimination wasn't
      // properly applied.
      // Don't change the message. React DevTools relies on it. Also make sure
      // this message doesn't occur elsewhere in this function, or it will cause
      // a false positive.
      throw new Error('^_^');
    }
    try {
      // Verify that the code above has been dead code eliminated (DCE'd).
      __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
    } catch (err) {
      // DevTools shouldn't crash React, no matter what.
      // We should still report in case we break this code.
      console.error(err);
    }
  }
  
  if (false) {
    // DCE check should happen before ReactDOM bundle executes so that
    // DevTools can report bad minification during injection.
    checkDCE();
    module.exports = require('./cjs/react-dom.production.min.js');
  } else {
    module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ "./node_modules/react-dom/cjs/react-dom.development.js");
  }
  
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/BrowserRouter.js":
  /*!***********************************************************!*\
    !*** ./node_modules/react-router-dom/es/BrowserRouter.js ***!
    \***********************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__ = __webpack_require__(/*! history/createBrowserHistory */ "./node_modules/history/createBrowserHistory.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js");
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  /**
   * The public API for a <Router> that uses HTML5 history.
   */
  
  var BrowserRouter = function (_React$Component) {
    _inherits(BrowserRouter, _React$Component);
  
    function BrowserRouter() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, BrowserRouter);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createBrowserHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    BrowserRouter.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<BrowserRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { BrowserRouter as Router }`.');
    };
  
    BrowserRouter.prototype.render = function render() {
      return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__["a" /* default */], { history: this.history, children: this.props.children });
    };
  
    return BrowserRouter;
  }(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
  
  BrowserRouter.propTypes = {
    basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,
    forceRefresh: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.bool,
    getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,
    keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,
    children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (BrowserRouter);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/HashRouter.js":
  /*!********************************************************!*\
    !*** ./node_modules/react-router-dom/es/HashRouter.js ***!
    \********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__ = __webpack_require__(/*! history/createHashHistory */ "./node_modules/history/createHashHistory.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createHashHistory__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js");
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  /**
   * The public API for a <Router> that uses window.location.hash.
   */
  
  var HashRouter = function (_React$Component) {
    _inherits(HashRouter, _React$Component);
  
    function HashRouter() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, HashRouter);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createHashHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    HashRouter.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<HashRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { HashRouter as Router }`.');
    };
  
    HashRouter.prototype.render = function render() {
      return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__["a" /* default */], { history: this.history, children: this.props.children });
    };
  
    return HashRouter;
  }(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
  
  HashRouter.propTypes = {
    basename: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.string,
    getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,
    hashType: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.oneOf(['hashbang', 'noslash', 'slash']),
    children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node
  };
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (HashRouter);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Link.js":
  /*!**************************************************!*\
    !*** ./node_modules/react-router-dom/es/Link.js ***!
    \**************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);
  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; };
  
  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; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  var isModifiedEvent = function isModifiedEvent(event) {
    return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
  };
  
  /**
   * The public API for rendering a history-aware <a>.
   */
  
  var Link = function (_React$Component) {
    _inherits(Link, _React$Component);
  
    function Link() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, Link);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function (event) {
        if (_this.props.onClick) _this.props.onClick(event);
  
        if (!event.defaultPrevented && // onClick prevented default
        event.button === 0 && // ignore right clicks
        !_this.props.target && // let browser handle "target=_blank" etc.
        !isModifiedEvent(event) // ignore clicks with modifier keys
        ) {
            event.preventDefault();
  
            var history = _this.context.router.history;
            var _this$props = _this.props,
                replace = _this$props.replace,
                to = _this$props.to;
  
  
            if (replace) {
              history.replace(to);
            } else {
              history.push(to);
            }
          }
      }, _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    Link.prototype.render = function render() {
      var _props = this.props,
          replace = _props.replace,
          to = _props.to,
          innerRef = _props.innerRef,
          props = _objectWithoutProperties(_props, ['replace', 'to', 'innerRef']); // eslint-disable-line no-unused-vars
  
      __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Link> outside a <Router>');
  
      var href = this.context.router.history.createHref(typeof to === 'string' ? { pathname: to } : to);
  
      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('a', _extends({}, props, { onClick: this.handleClick, href: href, ref: innerRef }));
    };
  
    return Link;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Link.propTypes = {
    onClick: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,
    target: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
    replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
    to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired,
    innerRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func])
  };
  Link.defaultProps = {
    replace: false
  };
  Link.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
      history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
        push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
        replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
        createHref: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired
      }).isRequired
    }).isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Link);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/MemoryRouter.js":
  /*!**********************************************************!*\
    !*** ./node_modules/react-router-dom/es/MemoryRouter.js ***!
    \**********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__ = __webpack_require__(/*! react-router/es/MemoryRouter */ "./node_modules/react-router/es/MemoryRouter.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_MemoryRouter__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/NavLink.js":
  /*!*****************************************************!*\
    !*** ./node_modules/react-router-dom/es/NavLink.js ***!
    \*****************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Route__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router-dom/es/Route.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Link__ = __webpack_require__(/*! ./Link */ "./node_modules/react-router-dom/es/Link.js");
  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 _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  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; }
  
  
  
  
  
  
  /**
   * A <Link> wrapper that knows if it's "active" or not.
   */
  var NavLink = function NavLink(_ref) {
    var to = _ref.to,
        exact = _ref.exact,
        strict = _ref.strict,
        location = _ref.location,
        activeClassName = _ref.activeClassName,
        className = _ref.className,
        activeStyle = _ref.activeStyle,
        style = _ref.style,
        getIsActive = _ref.isActive,
        ariaCurrent = _ref.ariaCurrent,
        rest = _objectWithoutProperties(_ref, ['to', 'exact', 'strict', 'location', 'activeClassName', 'className', 'activeStyle', 'style', 'isActive', 'ariaCurrent']);
  
    return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__Route__["a" /* default */], {
      path: (typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' ? to.pathname : to,
      exact: exact,
      strict: strict,
      location: location,
      children: function children(_ref2) {
        var location = _ref2.location,
            match = _ref2.match;
  
        var isActive = !!(getIsActive ? getIsActive(match, location) : match);
  
        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Link__["a" /* default */], _extends({
          to: to,
          className: isActive ? [className, activeClassName].filter(function (i) {
            return i;
          }).join(' ') : className,
          style: isActive ? _extends({}, style, activeStyle) : style,
          'aria-current': isActive && ariaCurrent
        }, rest));
      }
    });
  };
  
  NavLink.propTypes = {
    to: __WEBPACK_IMPORTED_MODULE_3__Link__["a" /* default */].propTypes.to,
    exact: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
    strict: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
    location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,
    activeClassName: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
    className: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
    activeStyle: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,
    style: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object,
    isActive: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func,
    ariaCurrent: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOf(['page', 'step', 'location', 'true'])
  };
  
  NavLink.defaultProps = {
    activeClassName: 'active',
    ariaCurrent: 'true'
  };
  
  /* unused harmony default export */ var _unused_webpack_default_export = (NavLink);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Prompt.js":
  /*!****************************************************!*\
    !*** ./node_modules/react-router-dom/es/Prompt.js ***!
    \****************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__ = __webpack_require__(/*! react-router/es/Prompt */ "./node_modules/react-router/es/Prompt.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Prompt__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Redirect.js":
  /*!******************************************************!*\
    !*** ./node_modules/react-router-dom/es/Redirect.js ***!
    \******************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__ = __webpack_require__(/*! react-router/es/Redirect */ "./node_modules/react-router/es/Redirect.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Redirect__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Route.js":
  /*!***************************************************!*\
    !*** ./node_modules/react-router-dom/es/Route.js ***!
    \***************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__ = __webpack_require__(/*! react-router/es/Route */ "./node_modules/react-router/es/Route.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Route__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Router.js":
  /*!****************************************************!*\
    !*** ./node_modules/react-router-dom/es/Router.js ***!
    \****************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__ = __webpack_require__(/*! react-router/es/Router */ "./node_modules/react-router/es/Router.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Router__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/StaticRouter.js":
  /*!**********************************************************!*\
    !*** ./node_modules/react-router-dom/es/StaticRouter.js ***!
    \**********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__ = __webpack_require__(/*! react-router/es/StaticRouter */ "./node_modules/react-router/es/StaticRouter.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_StaticRouter__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/Switch.js":
  /*!****************************************************!*\
    !*** ./node_modules/react-router-dom/es/Switch.js ***!
    \****************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__ = __webpack_require__(/*! react-router/es/Switch */ "./node_modules/react-router/es/Switch.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_Switch__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/index.js":
  /*!***************************************************!*\
    !*** ./node_modules/react-router-dom/es/index.js ***!
    \***************************************************/
  /*! exports provided: BrowserRouter, HashRouter, Link, MemoryRouter, NavLink, Prompt, Redirect, Route, Router, StaticRouter, Switch, matchPath, withRouter */
  /*! exports used: BrowserRouter, Route */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__ = __webpack_require__(/*! ./BrowserRouter */ "./node_modules/react-router-dom/es/BrowserRouter.js");
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__BrowserRouter__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__HashRouter__ = __webpack_require__(/*! ./HashRouter */ "./node_modules/react-router-dom/es/HashRouter.js");
  /* unused harmony reexport HashRouter */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Link__ = __webpack_require__(/*! ./Link */ "./node_modules/react-router-dom/es/Link.js");
  /* unused harmony reexport Link */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MemoryRouter__ = __webpack_require__(/*! ./MemoryRouter */ "./node_modules/react-router-dom/es/MemoryRouter.js");
  /* unused harmony reexport MemoryRouter */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__NavLink__ = __webpack_require__(/*! ./NavLink */ "./node_modules/react-router-dom/es/NavLink.js");
  /* unused harmony reexport NavLink */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Prompt__ = __webpack_require__(/*! ./Prompt */ "./node_modules/react-router-dom/es/Prompt.js");
  /* unused harmony reexport Prompt */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Redirect__ = __webpack_require__(/*! ./Redirect */ "./node_modules/react-router-dom/es/Redirect.js");
  /* unused harmony reexport Redirect */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Route__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router-dom/es/Route.js");
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_7__Route__["a"]; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Router__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router-dom/es/Router.js");
  /* unused harmony reexport Router */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__StaticRouter__ = __webpack_require__(/*! ./StaticRouter */ "./node_modules/react-router-dom/es/StaticRouter.js");
  /* unused harmony reexport StaticRouter */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Switch__ = __webpack_require__(/*! ./Switch */ "./node_modules/react-router-dom/es/Switch.js");
  /* unused harmony reexport Switch */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__matchPath__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router-dom/es/matchPath.js");
  /* unused harmony reexport matchPath */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__withRouter__ = __webpack_require__(/*! ./withRouter */ "./node_modules/react-router-dom/es/withRouter.js");
  /* unused harmony reexport withRouter */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/matchPath.js":
  /*!*******************************************************!*\
    !*** ./node_modules/react-router-dom/es/matchPath.js ***!
    \*******************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__ = __webpack_require__(/*! react-router/es/matchPath */ "./node_modules/react-router/es/matchPath.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_matchPath__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router-dom/es/withRouter.js":
  /*!********************************************************!*\
    !*** ./node_modules/react-router-dom/es/withRouter.js ***!
    \********************************************************/
  /*! exports provided: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__ = __webpack_require__(/*! react-router/es/withRouter */ "./node_modules/react-router/es/withRouter.js");
  // Written in this round about way for babel-transform-imports
  
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_0_react_router_es_withRouter__["a" /* default */]);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/MemoryRouter.js":
  /*!******************************************************!*\
    !*** ./node_modules/react-router/es/MemoryRouter.js ***!
    \******************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__ = __webpack_require__(/*! history/createMemoryHistory */ "./node_modules/history/createMemoryHistory.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Router__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router/es/Router.js");
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  /**
   * The public API for a <Router> that stores location in memory.
   */
  
  var MemoryRouter = function (_React$Component) {
    _inherits(MemoryRouter, _React$Component);
  
    function MemoryRouter() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, MemoryRouter);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = __WEBPACK_IMPORTED_MODULE_3_history_createMemoryHistory___default()(_this.props), _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    MemoryRouter.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<MemoryRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { MemoryRouter as Router }`.');
    };
  
    MemoryRouter.prototype.render = function render() {
      return __WEBPACK_IMPORTED_MODULE_1_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Router__["a" /* default */], { history: this.history, children: this.props.children });
    };
  
    return MemoryRouter;
  }(__WEBPACK_IMPORTED_MODULE_1_react___default.a.Component);
  
  MemoryRouter.propTypes = {
    initialEntries: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.array,
    initialIndex: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,
    getUserConfirmation: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.func,
    keyLength: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.number,
    children: __WEBPACK_IMPORTED_MODULE_2_prop_types___default.a.node
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (MemoryRouter);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/Prompt.js":
  /*!************************************************!*\
    !*** ./node_modules/react-router/es/Prompt.js ***!
    \************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_invariant__);
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  /**
   * The public API for prompting the user before navigating away
   * from a screen with a component.
   */
  
  var Prompt = function (_React$Component) {
    _inherits(Prompt, _React$Component);
  
    function Prompt() {
      _classCallCheck(this, Prompt);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    Prompt.prototype.enable = function enable(message) {
      if (this.unblock) this.unblock();
  
      this.unblock = this.context.router.history.block(message);
    };
  
    Prompt.prototype.disable = function disable() {
      if (this.unblock) {
        this.unblock();
        this.unblock = null;
      }
    };
  
    Prompt.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_2_invariant___default()(this.context.router, 'You should not use <Prompt> outside a <Router>');
  
      if (this.props.when) this.enable(this.props.message);
    };
  
    Prompt.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      if (nextProps.when) {
        if (!this.props.when || this.props.message !== nextProps.message) this.enable(nextProps.message);
      } else {
        this.disable();
      }
    };
  
    Prompt.prototype.componentWillUnmount = function componentWillUnmount() {
      this.disable();
    };
  
    Prompt.prototype.render = function render() {
      return null;
    };
  
    return Prompt;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Prompt.propTypes = {
    when: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
    message: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string]).isRequired
  };
  Prompt.defaultProps = {
    when: true
  };
  Prompt.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
      history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
        block: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired
      }).isRequired
    }).isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Prompt);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/Redirect.js":
  /*!**************************************************!*\
    !*** ./node_modules/react-router/es/Redirect.js ***!
    \**************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history__ = __webpack_require__(/*! history */ "./node_modules/history/es/index.js");
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  /**
   * The public API for updating the location programmatically
   * with a component.
   */
  
  var Redirect = function (_React$Component) {
    _inherits(Redirect, _React$Component);
  
    function Redirect() {
      _classCallCheck(this, Redirect);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    Redirect.prototype.isStatic = function isStatic() {
      return this.context.router && this.context.router.staticContext;
    };
  
    Redirect.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Redirect> outside a <Router>');
  
      if (this.isStatic()) this.perform();
    };
  
    Redirect.prototype.componentDidMount = function componentDidMount() {
      if (!this.isStatic()) this.perform();
    };
  
    Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
      var prevTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__["a" /* createLocation */])(prevProps.to);
      var nextTo = Object(__WEBPACK_IMPORTED_MODULE_4_history__["a" /* createLocation */])(this.props.to);
  
      if (Object(__WEBPACK_IMPORTED_MODULE_4_history__["b" /* locationsAreEqual */])(prevTo, nextTo)) {
        __WEBPACK_IMPORTED_MODULE_2_warning___default()(false, 'You tried to redirect to the same route you\'re currently on: ' + ('"' + nextTo.pathname + nextTo.search + '"'));
        return;
      }
  
      this.perform();
    };
  
    Redirect.prototype.perform = function perform() {
      var history = this.context.router.history;
      var _props = this.props,
          push = _props.push,
          to = _props.to;
  
  
      if (push) {
        history.push(to);
      } else {
        history.replace(to);
      }
    };
  
    Redirect.prototype.render = function render() {
      return null;
    };
  
    return Redirect;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Redirect.propTypes = {
    push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.bool,
    from: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string,
    to: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object]).isRequired
  };
  Redirect.defaultProps = {
    push: false
  };
  Redirect.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
      history: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
        push: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
        replace: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired
      }).isRequired,
      staticContext: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object
    }).isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Redirect);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/Route.js":
  /*!***********************************************!*\
    !*** ./node_modules/react-router/es/Route.js ***!
    \***********************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router/es/matchPath.js");
  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; };
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  var isEmptyChildren = function isEmptyChildren(children) {
    return __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 0;
  };
  
  /**
   * The public API for matching a single path and rendering.
   */
  
  var Route = function (_React$Component) {
    _inherits(Route, _React$Component);
  
    function Route() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, Route);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
        match: _this.computeMatch(_this.props, _this.context.router)
      }, _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    Route.prototype.getChildContext = function getChildContext() {
      return {
        router: _extends({}, this.context.router, {
          route: {
            location: this.props.location || this.context.router.route.location,
            match: this.state.match
          }
        })
      };
    };
  
    Route.prototype.computeMatch = function computeMatch(_ref, router) {
      var computedMatch = _ref.computedMatch,
          location = _ref.location,
          path = _ref.path,
          strict = _ref.strict,
          exact = _ref.exact,
          sensitive = _ref.sensitive;
  
      if (computedMatch) return computedMatch; // <Switch> already computed the match for us
  
      __WEBPACK_IMPORTED_MODULE_1_invariant___default()(router, 'You should not use <Route> or withRouter() outside a <Router>');
  
      var route = router.route;
  
      var pathname = (location || route.location).pathname;
  
      return path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__["a" /* default */])(pathname, { path: path, strict: strict, exact: exact, sensitive: sensitive }) : route.match;
    };
  
    Route.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.render), 'You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored');
  
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.component && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route component> and <Route children> in the same route; <Route children> will be ignored');
  
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(this.props.render && this.props.children && !isEmptyChildren(this.props.children)), 'You should not use <Route render> and <Route children> in the same route; <Route children> will be ignored');
    };
  
    Route.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps, nextContext) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(nextProps.location && !this.props.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.');
  
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!(!nextProps.location && this.props.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.');
  
      this.setState({
        match: this.computeMatch(nextProps, nextContext.router)
      });
    };
  
    Route.prototype.render = function render() {
      var match = this.state.match;
      var _props = this.props,
          children = _props.children,
          component = _props.component,
          render = _props.render;
      var _context$router = this.context.router,
          history = _context$router.history,
          route = _context$router.route,
          staticContext = _context$router.staticContext;
  
      var location = this.props.location || route.location;
      var props = { match: match, location: location, history: history, staticContext: staticContext };
  
      return component ? // component prop gets first priority, only called if there's a match
      match ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(component, props) : null : render ? // render prop is next, only called if there's a match
      match ? render(props) : null : children ? // children come last, always called
      typeof children === 'function' ? children(props) : !isEmptyChildren(children) ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null : null;
    };
  
    return Route;
  }(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);
  
  Route.propTypes = {
    computedMatch: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object, // private, from <Switch>
    path: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,
    exact: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,
    strict: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,
    sensitive: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool,
    component: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,
    render: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func,
    children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node]),
    location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object
  };
  Route.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape({
      history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,
      route: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,
      staticContext: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object
    })
  };
  Route.childContextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Route);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/Router.js":
  /*!************************************************!*\
    !*** ./node_modules/react-router/es/Router.js ***!
    \************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
  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; };
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  /**
   * The public API for putting history on context.
   */
  
  var Router = function (_React$Component) {
    _inherits(Router, _React$Component);
  
    function Router() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, Router);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
        match: _this.computeMatch(_this.props.history.location.pathname)
      }, _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    Router.prototype.getChildContext = function getChildContext() {
      return {
        router: _extends({}, this.context.router, {
          history: this.props.history,
          route: {
            location: this.props.history.location,
            match: this.state.match
          }
        })
      };
    };
  
    Router.prototype.computeMatch = function computeMatch(pathname) {
      return {
        path: '/',
        url: '/',
        params: {},
        isExact: pathname === '/'
      };
    };
  
    Router.prototype.componentWillMount = function componentWillMount() {
      var _this2 = this;
  
      var _props = this.props,
          children = _props.children,
          history = _props.history;
  
  
      __WEBPACK_IMPORTED_MODULE_1_invariant___default()(children == null || __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.count(children) === 1, 'A <Router> may have only one child element');
  
      // Do this here so we can setState when a <Redirect> changes the
      // location in componentWillMount. This happens e.g. when doing
      // server rendering using a <StaticRouter>.
      this.unlisten = history.listen(function () {
        _this2.setState({
          match: _this2.computeMatch(history.location.pathname)
        });
      });
    };
  
    Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(this.props.history === nextProps.history, 'You cannot change <Router history>');
    };
  
    Router.prototype.componentWillUnmount = function componentWillUnmount() {
      this.unlisten();
    };
  
    Router.prototype.render = function render() {
      var children = this.props.children;
  
      return children ? __WEBPACK_IMPORTED_MODULE_2_react___default.a.Children.only(children) : null;
    };
  
    return Router;
  }(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);
  
  Router.propTypes = {
    history: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,
    children: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.node
  };
  Router.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object
  };
  Router.childContextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Router);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/StaticRouter.js":
  /*!******************************************************!*\
    !*** ./node_modules/react-router/es/StaticRouter.js ***!
    \******************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils__ = __webpack_require__(/*! history/PathUtils */ "./node_modules/history/PathUtils.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_history_PathUtils___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Router__ = __webpack_require__(/*! ./Router */ "./node_modules/react-router/es/Router.js");
  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; };
  
  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; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  
  var normalizeLocation = function normalizeLocation(object) {
    var _object$pathname = object.pathname,
        pathname = _object$pathname === undefined ? '/' : _object$pathname,
        _object$search = object.search,
        search = _object$search === undefined ? '' : _object$search,
        _object$hash = object.hash,
        hash = _object$hash === undefined ? '' : _object$hash;
  
  
    return {
      pathname: pathname,
      search: search === '?' ? '' : search,
      hash: hash === '#' ? '' : hash
    };
  };
  
  var addBasename = function addBasename(basename, location) {
    if (!basename) return location;
  
    return _extends({}, location, {
      pathname: Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__["addLeadingSlash"])(basename) + location.pathname
    });
  };
  
  var stripBasename = function stripBasename(basename, location) {
    if (!basename) return location;
  
    var base = Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__["addLeadingSlash"])(basename);
  
    if (location.pathname.indexOf(base) !== 0) return location;
  
    return _extends({}, location, {
      pathname: location.pathname.substr(base.length)
    });
  };
  
  var createLocation = function createLocation(location) {
    return typeof location === 'string' ? Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__["parsePath"])(location) : normalizeLocation(location);
  };
  
  var createURL = function createURL(location) {
    return typeof location === 'string' ? location : Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__["createPath"])(location);
  };
  
  var staticHandler = function staticHandler(methodName) {
    return function () {
      __WEBPACK_IMPORTED_MODULE_1_invariant___default()(false, 'You cannot %s with <StaticRouter>', methodName);
    };
  };
  
  var noop = function noop() {};
  
  /**
   * The public top-level API for a "static" <Router>, so-called because it
   * can't actually change the current location. Instead, it just records
   * location changes in a context object. Useful mainly in testing and
   * server-rendering scenarios.
   */
  
  var StaticRouter = function (_React$Component) {
    _inherits(StaticRouter, _React$Component);
  
    function StaticRouter() {
      var _temp, _this, _ret;
  
      _classCallCheck(this, StaticRouter);
  
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
  
      return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.createHref = function (path) {
        return Object(__WEBPACK_IMPORTED_MODULE_4_history_PathUtils__["addLeadingSlash"])(_this.props.basename + createURL(path));
      }, _this.handlePush = function (location) {
        var _this$props = _this.props,
            basename = _this$props.basename,
            context = _this$props.context;
  
        context.action = 'PUSH';
        context.location = addBasename(basename, createLocation(location));
        context.url = createURL(context.location);
      }, _this.handleReplace = function (location) {
        var _this$props2 = _this.props,
            basename = _this$props2.basename,
            context = _this$props2.context;
  
        context.action = 'REPLACE';
        context.location = addBasename(basename, createLocation(location));
        context.url = createURL(context.location);
      }, _this.handleListen = function () {
        return noop;
      }, _this.handleBlock = function () {
        return noop;
      }, _temp), _possibleConstructorReturn(_this, _ret);
    }
  
    StaticRouter.prototype.getChildContext = function getChildContext() {
      return {
        router: {
          staticContext: this.props.context
        }
      };
    };
  
    StaticRouter.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_0_warning___default()(!this.props.history, '<StaticRouter> ignores the history prop. To use a custom history, ' + 'use `import { Router }` instead of `import { StaticRouter as Router }`.');
    };
  
    StaticRouter.prototype.render = function render() {
      var _props = this.props,
          basename = _props.basename,
          context = _props.context,
          location = _props.location,
          props = _objectWithoutProperties(_props, ['basename', 'context', 'location']);
  
      var history = {
        createHref: this.createHref,
        action: 'POP',
        location: stripBasename(basename, createLocation(location)),
        push: this.handlePush,
        replace: this.handleReplace,
        go: staticHandler('go'),
        goBack: staticHandler('goBack'),
        goForward: staticHandler('goForward'),
        listen: this.handleListen,
        block: this.handleBlock
      };
  
      return __WEBPACK_IMPORTED_MODULE_2_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Router__["a" /* default */], _extends({}, props, { history: history }));
    };
  
    return StaticRouter;
  }(__WEBPACK_IMPORTED_MODULE_2_react___default.a.Component);
  
  StaticRouter.propTypes = {
    basename: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string,
    context: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired,
    location: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType([__WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string, __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object])
  };
  StaticRouter.defaultProps = {
    basename: '',
    location: '/'
  };
  StaticRouter.childContextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object.isRequired
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (StaticRouter);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/Switch.js":
  /*!************************************************!*\
    !*** ./node_modules/react-router/es/Switch.js ***!
    \************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(/*! warning */ "./node_modules/warning/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant__ = __webpack_require__(/*! invariant */ "./node_modules/invariant/browser.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_invariant__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__matchPath__ = __webpack_require__(/*! ./matchPath */ "./node_modules/react-router/es/matchPath.js");
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  /**
   * The public API for rendering the first <Route> that matches.
   */
  
  var Switch = function (_React$Component) {
    _inherits(Switch, _React$Component);
  
    function Switch() {
      _classCallCheck(this, Switch);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    Switch.prototype.componentWillMount = function componentWillMount() {
      __WEBPACK_IMPORTED_MODULE_3_invariant___default()(this.context.router, 'You should not use <Switch> outside a <Router>');
    };
  
    Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
      __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.');
  
      __WEBPACK_IMPORTED_MODULE_2_warning___default()(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.');
    };
  
    Switch.prototype.render = function render() {
      var route = this.context.router.route;
      var children = this.props.children;
  
      var location = this.props.location || route.location;
  
      var match = void 0,
          child = void 0;
      __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.forEach(children, function (element) {
        if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.isValidElement(element)) return;
  
        var _element$props = element.props,
            pathProp = _element$props.path,
            exact = _element$props.exact,
            strict = _element$props.strict,
            sensitive = _element$props.sensitive,
            from = _element$props.from;
  
        var path = pathProp || from;
  
        if (match == null) {
          child = element;
          match = path ? Object(__WEBPACK_IMPORTED_MODULE_4__matchPath__["a" /* default */])(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }) : route.match;
        }
      });
  
      return match ? __WEBPACK_IMPORTED_MODULE_0_react___default.a.cloneElement(child, { location: location, computedMatch: match }) : null;
    };
  
    return Switch;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Switch.contextTypes = {
    router: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.shape({
      route: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object.isRequired
    }).isRequired
  };
  Switch.propTypes = {
    children: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.node,
    location: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.object
  };
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Switch);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/matchPath.js":
  /*!***************************************************!*\
    !*** ./node_modules/react-router/es/matchPath.js ***!
    \***************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp__ = __webpack_require__(/*! path-to-regexp */ "./node_modules/path-to-regexp/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path_to_regexp__);
  
  
  var patternCache = {};
  var cacheLimit = 10000;
  var cacheCount = 0;
  
  var compilePath = function compilePath(pattern, options) {
    var cacheKey = '' + options.end + options.strict + options.sensitive;
    var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});
  
    if (cache[pattern]) return cache[pattern];
  
    var keys = [];
    var re = __WEBPACK_IMPORTED_MODULE_0_path_to_regexp___default()(pattern, keys, options);
    var compiledPattern = { re: re, keys: keys };
  
    if (cacheCount < cacheLimit) {
      cache[pattern] = compiledPattern;
      cacheCount++;
    }
  
    return compiledPattern;
  };
  
  /**
   * Public API for matching a URL pathname to a path pattern.
   */
  var matchPath = function matchPath(pathname) {
    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  
    if (typeof options === 'string') options = { path: options };
  
    var _options = options,
        _options$path = _options.path,
        path = _options$path === undefined ? '/' : _options$path,
        _options$exact = _options.exact,
        exact = _options$exact === undefined ? false : _options$exact,
        _options$strict = _options.strict,
        strict = _options$strict === undefined ? false : _options$strict,
        _options$sensitive = _options.sensitive,
        sensitive = _options$sensitive === undefined ? false : _options$sensitive;
  
    var _compilePath = compilePath(path, { end: exact, strict: strict, sensitive: sensitive }),
        re = _compilePath.re,
        keys = _compilePath.keys;
  
    var match = re.exec(pathname);
  
    if (!match) return null;
  
    var url = match[0],
        values = match.slice(1);
  
    var isExact = pathname === url;
  
    if (exact && !isExact) return null;
  
    return {
      path: path, // the path pattern used to match
      url: path === '/' && url === '' ? '/' : url, // the matched portion of the URL
      isExact: isExact, // whether or not we matched exactly
      params: keys.reduce(function (memo, key, index) {
        memo[key.name] = values[index];
        return memo;
      }, {})
    };
  };
  
  /* harmony default export */ __webpack_exports__["a"] = (matchPath);
  
  /***/ }),
  
  /***/ "./node_modules/react-router/es/withRouter.js":
  /*!****************************************************!*\
    !*** ./node_modules/react-router/es/withRouter.js ***!
    \****************************************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Route__ = __webpack_require__(/*! ./Route */ "./node_modules/react-router/es/Route.js");
  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; };
  
  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; }
  
  
  
  
  
  
  /**
   * A public higher-order component to access the imperative API
   */
  var withRouter = function withRouter(Component) {
    var C = function C(props) {
      var wrappedComponentRef = props.wrappedComponentRef,
          remainingProps = _objectWithoutProperties(props, ['wrappedComponentRef']);
  
      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Route__["a" /* default */], { render: function render(routeComponentProps) {
          return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(Component, _extends({}, remainingProps, routeComponentProps, { ref: wrappedComponentRef }));
        } });
    };
  
    C.displayName = 'withRouter(' + (Component.displayName || Component.name) + ')';
    C.WrappedComponent = Component;
    C.propTypes = {
      wrappedComponentRef: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func
    };
  
    return __WEBPACK_IMPORTED_MODULE_2_hoist_non_react_statics___default()(C, Component);
  };
  
  /* harmony default export */ __webpack_exports__["a"] = (withRouter);
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/arrows.js":
  /*!************************************************!*\
    !*** ./node_modules/react-slick/lib/arrows.js ***!
    \************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.NextArrow = exports.PrevArrow = 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 _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
  
  var _classnames2 = _interopRequireDefault(_classnames);
  
  var _helpers = __webpack_require__(/*! ./mixins/helpers */ "./node_modules/react-slick/lib/mixins/helpers.js");
  
  var _helpers2 = _interopRequireDefault(_helpers);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  var PrevArrow = exports.PrevArrow = function (_React$Component) {
    _inherits(PrevArrow, _React$Component);
  
    function PrevArrow() {
      _classCallCheck(this, PrevArrow);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    PrevArrow.prototype.clickHandler = function clickHandler(options, e) {
      if (e) {
        e.preventDefault();
      }
      this.props.clickHandler(options, e);
    };
  
    PrevArrow.prototype.render = function render() {
      var prevClasses = { 'slick-arrow': true, 'slick-prev': true };
      var prevHandler = this.clickHandler.bind(this, { message: 'previous' });
  
      if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {
        prevClasses['slick-disabled'] = true;
        prevHandler = null;
      }
  
      var prevArrowProps = {
        key: '0',
        'data-role': 'none',
        className: (0, _classnames2.default)(prevClasses),
        style: { display: 'block' },
        onClick: prevHandler
      };
      var customProps = {
        currentSlide: this.props.currentSlide,
        slideCount: this.props.slideCount
      };
      var prevArrow = void 0;
  
      if (this.props.prevArrow) {
        prevArrow = _react2.default.cloneElement(this.props.prevArrow, _extends({}, prevArrowProps, customProps));
      } else {
        prevArrow = _react2.default.createElement(
          'button',
          _extends({ key: '0', type: 'button' }, prevArrowProps),
          ' Previous'
        );
      }
  
      return prevArrow;
    };
  
    return PrevArrow;
  }(_react2.default.Component);
  
  var NextArrow = exports.NextArrow = function (_React$Component2) {
    _inherits(NextArrow, _React$Component2);
  
    function NextArrow() {
      _classCallCheck(this, NextArrow);
  
      return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));
    }
  
    NextArrow.prototype.clickHandler = function clickHandler(options, e) {
      if (e) {
        e.preventDefault();
      }
      this.props.clickHandler(options, e);
    };
  
    NextArrow.prototype.render = function render() {
      var nextClasses = { 'slick-arrow': true, 'slick-next': true };
      var nextHandler = this.clickHandler.bind(this, { message: 'next' });
  
      if (!_helpers2.default.canGoNext(this.props)) {
        nextClasses['slick-disabled'] = true;
        nextHandler = null;
      }
  
      var nextArrowProps = {
        key: '1',
        'data-role': 'none',
        className: (0, _classnames2.default)(nextClasses),
        style: { display: 'block' },
        onClick: nextHandler
      };
      var customProps = {
        currentSlide: this.props.currentSlide,
        slideCount: this.props.slideCount
      };
      var nextArrow = void 0;
  
      if (this.props.nextArrow) {
        nextArrow = _react2.default.cloneElement(this.props.nextArrow, _extends({}, nextArrowProps, customProps));
      } else {
        nextArrow = _react2.default.createElement(
          'button',
          _extends({ key: '1', type: 'button' }, nextArrowProps),
          ' Next'
        );
      }
  
      return nextArrow;
    };
  
    return NextArrow;
  }(_react2.default.Component);
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/default-props.js":
  /*!*******************************************************!*\
    !*** ./node_modules/react-slick/lib/default-props.js ***!
    \*******************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var defaultProps = {
      className: '',
      accessibility: true,
      adaptiveHeight: false,
      arrows: true,
      autoplay: false,
      autoplaySpeed: 3000,
      centerMode: false,
      centerPadding: '50px',
      cssEase: 'ease',
      customPaging: function customPaging(i) {
          return _react2.default.createElement(
              'button',
              null,
              i + 1
          );
      },
      dots: false,
      dotsClass: 'slick-dots',
      draggable: true,
      easing: 'linear',
      edgeFriction: 0.35,
      fade: false,
      focusOnSelect: false,
      infinite: true,
      initialSlide: 0,
      lazyLoad: false,
      pauseOnHover: true,
      responsive: null,
      rtl: false,
      slide: 'div',
      slidesToShow: 1,
      slidesToScroll: 1,
      speed: 500,
      swipe: true,
      swipeToSlide: false,
      touchMove: true,
      touchThreshold: 5,
      useCSS: true,
      variableWidth: false,
      vertical: false,
      waitForAnimate: true,
      afterChange: null,
      beforeChange: null,
      edgeEvent: null,
      // init: function hook that gets called right before InnerSlider mounts
      init: null,
      swipeEvent: null,
      // nextArrow, prevArrow should react componets
      nextArrow: null,
      prevArrow: null,
      appendDots: function appendDots(dots) {
          return _react2.default.createElement(
              'ul',
              { style: { display: 'block' } },
              dots
          );
      }
  };
  
  exports.default = defaultProps;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/dots.js":
  /*!**********************************************!*\
    !*** ./node_modules/react-slick/lib/dots.js ***!
    \**********************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.Dots = undefined;
  
  var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
  
  var _classnames2 = _interopRequireDefault(_classnames);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  var getDotCount = function getDotCount(spec) {
    var dots;
  
    if (spec.infinite) {
      dots = Math.ceil(spec.slideCount / spec.slidesToScroll);
    } else {
      dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;
    }
  
    return dots;
  };
  
  var Dots = exports.Dots = function (_React$Component) {
    _inherits(Dots, _React$Component);
  
    function Dots() {
      _classCallCheck(this, Dots);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    Dots.prototype.clickHandler = function clickHandler(options, e) {
      // In Autoplay the focus stays on clicked button even after transition
      // to next slide. That only goes away by click somewhere outside
      e.preventDefault();
      this.props.clickHandler(options);
    };
  
    Dots.prototype.render = function render() {
      var _this2 = this;
  
      var dotCount = getDotCount({
        slideCount: this.props.slideCount,
        slidesToScroll: this.props.slidesToScroll,
        slidesToShow: this.props.slidesToShow,
        infinite: this.props.infinite
      });
  
      // Apply join & split to Array to pre-fill it for IE8
      //
      // Credit: http://stackoverflow.com/a/13735425/1849458
      var dots = Array.apply(null, Array(dotCount + 1).join('0').split('')).map(function (x, i) {
  
        var leftBound = i * _this2.props.slidesToScroll;
        var rightBound = i * _this2.props.slidesToScroll + (_this2.props.slidesToScroll - 1);
        var className = (0, _classnames2.default)({
          'slick-active': _this2.props.currentSlide >= leftBound && _this2.props.currentSlide <= rightBound
        });
  
        var dotOptions = {
          message: 'dots',
          index: i,
          slidesToScroll: _this2.props.slidesToScroll,
          currentSlide: _this2.props.currentSlide
        };
  
        var onClick = _this2.clickHandler.bind(_this2, dotOptions);
  
        return _react2.default.createElement(
          'li',
          { key: i, className: className },
          _react2.default.cloneElement(_this2.props.customPaging(i), { onClick: onClick })
        );
      });
  
      return _react2.default.cloneElement(this.props.appendDots(dots), { className: this.props.dotsClass });
    };
  
    return Dots;
  }(_react2.default.Component);
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/index.js":
  /*!***********************************************!*\
    !*** ./node_modules/react-slick/lib/index.js ***!
    \***********************************************/
  /*! dynamic exports provided */
  /*! exports used: default */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _slider = __webpack_require__(/*! ./slider */ "./node_modules/react-slick/lib/slider.js");
  
  var _slider2 = _interopRequireDefault(_slider);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  exports.default = _slider2.default;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/initial-state.js":
  /*!*******************************************************!*\
    !*** ./node_modules/react-slick/lib/initial-state.js ***!
    \*******************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var initialState = {
      animating: false,
      dragging: false,
      autoPlayTimer: null,
      currentDirection: 0,
      currentLeft: null,
      currentSlide: 0,
      direction: 1,
      listWidth: null,
      listHeight: null,
      scrolling: false,
      // loadIndex: 0,
      slideCount: null,
      slideWidth: null,
      slideHeight: null,
      swiping: false,
      // sliding: false,
      // slideOffset: 0,
      swipeLeft: null,
      touchObject: {
          startX: 0,
          startY: 0,
          curX: 0,
          curY: 0
      },
  
      lazyLoadedList: [],
  
      // added for react
      initialized: false,
      edgeDragged: false,
      swiped: false, // used by swipeEvent. differentites between touch and swipe.
      trackStyle: {},
      trackWidth: 0
  
      // Removed
      // transformsEnabled: false,
      // $nextArrow: null,
      // $prevArrow: null,
      // $dots: null,
      // $list: null,
      // $slideTrack: null,
      // $slides: null,
  };
  
  module.exports = initialState;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/inner-slider.js":
  /*!******************************************************!*\
    !*** ./node_modules/react-slick/lib/inner-slider.js ***!
    \******************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.InnerSlider = 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 _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _eventHandlers = __webpack_require__(/*! ./mixins/event-handlers */ "./node_modules/react-slick/lib/mixins/event-handlers.js");
  
  var _eventHandlers2 = _interopRequireDefault(_eventHandlers);
  
  var _helpers = __webpack_require__(/*! ./mixins/helpers */ "./node_modules/react-slick/lib/mixins/helpers.js");
  
  var _helpers2 = _interopRequireDefault(_helpers);
  
  var _initialState = __webpack_require__(/*! ./initial-state */ "./node_modules/react-slick/lib/initial-state.js");
  
  var _initialState2 = _interopRequireDefault(_initialState);
  
  var _defaultProps = __webpack_require__(/*! ./default-props */ "./node_modules/react-slick/lib/default-props.js");
  
  var _defaultProps2 = _interopRequireDefault(_defaultProps);
  
  var _createReactClass = __webpack_require__(/*! create-react-class */ "./node_modules/create-react-class/index.js");
  
  var _createReactClass2 = _interopRequireDefault(_createReactClass);
  
  var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
  
  var _classnames2 = _interopRequireDefault(_classnames);
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ "./node_modules/react-slick/lib/utils/innerSliderUtils.js");
  
  var _track = __webpack_require__(/*! ./track */ "./node_modules/react-slick/lib/track.js");
  
  var _dots = __webpack_require__(/*! ./dots */ "./node_modules/react-slick/lib/dots.js");
  
  var _arrows = __webpack_require__(/*! ./arrows */ "./node_modules/react-slick/lib/arrows.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var InnerSlider = exports.InnerSlider = (0, _createReactClass2.default)({
    displayName: 'InnerSlider',
  
    mixins: [_helpers2.default, _eventHandlers2.default],
    list: null, // wraps the track
    track: null, // component that rolls out like a film
    listRefHandler: function listRefHandler(ref) {
      this.list = ref;
    },
    trackRefHandler: function trackRefHandler(ref) {
      this.track = ref;
    },
    getInitialState: function getInitialState() {
      return _extends({}, _initialState2.default, {
        currentSlide: this.props.initialSlide
      });
    },
    componentWillMount: function componentWillMount() {
      if (this.props.init) {
        this.props.init();
      }
      if (this.props.lazyLoad) {
        var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)((0, _objectAssign2.default)({}, this.props, this.state));
        if (slidesToLoad.length > 0) {
          this.setState(function (prevState, props) {
            return { lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad) };
          });
          if (this.props.onLazyLoad) {
            this.props.onLazyLoad(slidesToLoad);
          }
        }
      }
    },
    componentDidMount: function componentDidMount() {
      // Hack for autoplay -- Inspect Later
      this.initialize(this.props);
      this.adaptHeight();
  
      // To support server-side rendering
      if (!window) {
        return;
      }
      if (window.addEventListener) {
        window.addEventListener('resize', this.onWindowResized);
      } else {
        window.attachEvent('onresize', this.onWindowResized);
      }
    },
    componentWillUnmount: function componentWillUnmount() {
      if (this.animationEndCallback) {
        clearTimeout(this.animationEndCallback);
      }
      if (window.addEventListener) {
        window.removeEventListener('resize', this.onWindowResized);
      } else {
        window.detachEvent('onresize', this.onWindowResized);
      }
      if (this.state.autoPlayTimer) {
        clearInterval(this.state.autoPlayTimer);
      }
    },
    componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
      if (this.props.slickGoTo != nextProps.slickGoTo) {
        if (true) {
          console.warn('react-slick deprecation warning: slickGoTo prop is deprecated and it will be removed in next release. Use slickGoTo method instead');
        }
        this.changeSlide({
          message: 'index',
          index: nextProps.slickGoTo,
          currentSlide: this.state.currentSlide
        });
      } else if (this.state.currentSlide >= nextProps.children.length) {
        this.update(nextProps);
        this.changeSlide({
          message: 'index',
          index: nextProps.children.length - nextProps.slidesToShow,
          currentSlide: this.state.currentSlide
        });
      } else {
        this.update(nextProps);
      }
    },
    componentDidUpdate: function componentDidUpdate() {
      if (this.props.reInit) {
        this.props.reInit();
      }
      if (this.props.lazyLoad) {
        var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)((0, _objectAssign2.default)({}, this.props, this.state));
        if (slidesToLoad.length > 0) {
          this.setState(function (prevState, props) {
            return { lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad) };
          });
          if (this.props.onLazyLoad) {
            this.props.onLazyLoad(slidesToLoad);
          }
        }
      }
      // if (this.props.onLazyLoad) {
      //   this.props.onLazyLoad([leftMostSlide])
      // }
      this.adaptHeight();
    },
    onWindowResized: function onWindowResized() {
      this.update(this.props);
      // animating state should be cleared while resizing, otherwise autoplay stops working
      this.setState({
        animating: false
      });
      clearTimeout(this.animationEndCallback);
      delete this.animationEndCallback;
    },
    slickPrev: function slickPrev() {
      var _this = this;
  
      // this and fellow methods are wrapped in setTimeout
      // to make sure initialize setState has happened before
      // any of such methods are called
      setTimeout(function () {
        return _this.changeSlide({ message: 'previous' });
      }, 0);
    },
    slickNext: function slickNext() {
      var _this2 = this;
  
      setTimeout(function () {
        return _this2.changeSlide({ message: 'next' });
      }, 0);
    },
    slickGoTo: function slickGoTo(slide) {
      var _this3 = this;
  
      slide = Number(slide);
      !isNaN(slide) && setTimeout(function () {
        return _this3.changeSlide({
          message: 'index',
          index: slide,
          currentSlide: _this3.state.currentSlide
        });
      }, 0);
    },
    render: function render() {
      var className = (0, _classnames2.default)('slick-initialized', 'slick-slider', this.props.className, {
        'slick-vertical': this.props.vertical
      });
  
      var trackProps = {
        fade: this.props.fade,
        cssEase: this.props.cssEase,
        speed: this.props.speed,
        infinite: this.props.infinite,
        centerMode: this.props.centerMode,
        focusOnSelect: this.props.focusOnSelect ? this.selectHandler : null,
        currentSlide: this.state.currentSlide,
        lazyLoad: this.props.lazyLoad,
        lazyLoadedList: this.state.lazyLoadedList,
        rtl: this.props.rtl,
        slideWidth: this.state.slideWidth,
        slideHeight: this.state.slideHeight,
        listHeight: this.state.listHeight,
        vertical: this.props.vertical,
        slidesToShow: this.props.slidesToShow,
        slidesToScroll: this.props.slidesToScroll,
        slideCount: this.state.slideCount,
        trackStyle: this.state.trackStyle,
        variableWidth: this.props.variableWidth,
        unslick: this.props.unslick,
        centerPadding: this.props.centerPadding
      };
  
      var dots;
  
      if (this.props.dots === true && this.state.slideCount >= this.props.slidesToShow) {
        var dotProps = {
          dotsClass: this.props.dotsClass,
          slideCount: this.state.slideCount,
          slidesToShow: this.props.slidesToShow,
          currentSlide: this.state.currentSlide,
          slidesToScroll: this.props.slidesToScroll,
          clickHandler: this.changeSlide,
          children: this.props.children,
          customPaging: this.props.customPaging,
          infinite: this.props.infinite,
          appendDots: this.props.appendDots
        };
  
        dots = _react2.default.createElement(_dots.Dots, dotProps);
      }
  
      var prevArrow, nextArrow;
  
      var arrowProps = {
        infinite: this.props.infinite,
        centerMode: this.props.centerMode,
        currentSlide: this.state.currentSlide,
        slideCount: this.state.slideCount,
        slidesToShow: this.props.slidesToShow,
        prevArrow: this.props.prevArrow,
        nextArrow: this.props.nextArrow,
        clickHandler: this.changeSlide
      };
  
      if (this.props.arrows) {
        prevArrow = _react2.default.createElement(_arrows.PrevArrow, arrowProps);
        nextArrow = _react2.default.createElement(_arrows.NextArrow, arrowProps);
      }
  
      var verticalHeightStyle = null;
  
      if (this.props.vertical) {
        verticalHeightStyle = {
          height: this.state.listHeight
        };
      }
  
      var centerPaddingStyle = null;
  
      if (this.props.vertical === false) {
        if (this.props.centerMode === true) {
          centerPaddingStyle = {
            padding: '0px ' + this.props.centerPadding
          };
        }
      } else {
        if (this.props.centerMode === true) {
          centerPaddingStyle = {
            padding: this.props.centerPadding + ' 0px'
          };
        }
      }
  
      var listStyle = (0, _objectAssign2.default)({}, verticalHeightStyle, centerPaddingStyle);
      var listProps = {
        className: 'slick-list',
        style: listStyle,
        onMouseDown: this.swipeStart,
        onMouseMove: this.state.dragging ? this.swipeMove : null,
        onMouseUp: this.swipeEnd,
        onMouseLeave: this.state.dragging ? this.swipeEnd : null,
        onTouchStart: this.swipeStart,
        onTouchMove: this.state.dragging ? this.swipeMove : null,
        onTouchEnd: this.swipeEnd,
        onTouchCancel: this.state.dragging ? this.swipeEnd : null,
        onKeyDown: this.props.accessibility ? this.keyHandler : null
      };
  
      var innerSliderProps = {
        className: className,
        onMouseEnter: this.onInnerSliderEnter,
        onMouseLeave: this.onInnerSliderLeave,
        onMouseOver: this.onInnerSliderOver
      };
  
      if (this.props.unslick) {
        listProps = { className: 'slick-list' };
        innerSliderProps = { className: className };
      }
  
      return _react2.default.createElement(
        'div',
        innerSliderProps,
        !this.props.unslick ? prevArrow : '',
        _react2.default.createElement(
          'div',
          _extends({ ref: this.listRefHandler }, listProps),
          _react2.default.createElement(
            _track.Track,
            _extends({ ref: this.trackRefHandler }, trackProps),
            this.props.children
          )
        ),
        !this.props.unslick ? nextArrow : '',
        !this.props.unslick ? dots : ''
      );
    }
  });
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/mixins/event-handlers.js":
  /*!***************************************************************!*\
    !*** ./node_modules/react-slick/lib/mixins/event-handlers.js ***!
    \***************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  var _trackHelper = __webpack_require__(/*! ./trackHelper */ "./node_modules/react-slick/lib/mixins/trackHelper.js");
  
  var _helpers = __webpack_require__(/*! ./helpers */ "./node_modules/react-slick/lib/mixins/helpers.js");
  
  var _helpers2 = _interopRequireDefault(_helpers);
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _reactDom = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
  
  var _reactDom2 = _interopRequireDefault(_reactDom);
  
  var _trackUtils = __webpack_require__(/*! ../utils/trackUtils */ "./node_modules/react-slick/lib/utils/trackUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var EventHandlers = {
    // Event handler for previous and next
    // gets called if slide is changed via arrows or dots but not swiping/dragging
    changeSlide: function changeSlide(options) {
      var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;
      var _props = this.props,
          slidesToScroll = _props.slidesToScroll,
          slidesToShow = _props.slidesToShow,
          centerMode = _props.centerMode,
          rtl = _props.rtl;
      var _state = this.state,
          slideCount = _state.slideCount,
          currentSlide = _state.currentSlide;
  
      unevenOffset = slideCount % slidesToScroll !== 0;
      indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;
  
      if (options.message === 'previous') {
        slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;
        targetSlide = currentSlide - slideOffset;
        if (this.props.lazyLoad && !this.props.infinite) {
          previousInt = currentSlide - slideOffset;
          targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;
        }
      } else if (options.message === 'next') {
        slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;
        targetSlide = currentSlide + slideOffset;
        if (this.props.lazyLoad && !this.props.infinite) {
          targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;
        }
      } else if (options.message === 'dots') {
        // Click on dots
        targetSlide = options.index * options.slidesToScroll;
        if (targetSlide === options.currentSlide) {
          return;
        }
      } else if (options.message === 'children') {
        // Click on the slides
        targetSlide = options.index;
        if (targetSlide === options.currentSlide) {
          return;
        }
        if (this.props.infinite) {
          var direction = (0, _trackUtils.siblingDirection)({ currentSlide: currentSlide, targetSlide: targetSlide, slidesToShow: slidesToShow, centerMode: centerMode, slideCount: slideCount, rtl: rtl });
          if (targetSlide > options.currentSlide && direction === 'left') {
            targetSlide = targetSlide - slideCount;
          } else if (targetSlide < options.currentSlide && direction === 'right') {
            targetSlide = targetSlide + slideCount;
          }
        }
      } else if (options.message === 'index') {
        targetSlide = Number(options.index);
        if (targetSlide === options.currentSlide) {
          return;
        }
      }
      this.slideHandler(targetSlide);
    },
  
    // Accessiblity handler for previous and next
    keyHandler: function keyHandler(e) {
      //Dont slide if the cursor is inside the form fields and arrow keys are pressed
      if (!e.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
        if (e.keyCode === 37 && this.props.accessibility === true) {
          this.changeSlide({
            message: this.props.rtl === true ? 'next' : 'previous'
          });
        } else if (e.keyCode === 39 && this.props.accessibility === true) {
          this.changeSlide({
            message: this.props.rtl === true ? 'previous' : 'next'
          });
        }
      }
    },
    // Focus on selecting a slide (click handler on track)
    selectHandler: function selectHandler(options) {
      this.changeSlide(options);
    },
    // invoked when swiping/dragging starts (just once)
    swipeStart: function swipeStart(e) {
      var touches, posX, posY;
  
      // the condition after or looked redundant
      if (this.props.swipe === false) {
        // || ('ontouchend' in document && this.props.swipe === false)) {
        return;
      } else if (this.props.draggable === false && e.type.indexOf('mouse') !== -1) {
        return;
      }
      posX = e.touches !== undefined ? e.touches[0].pageX : e.clientX;
      posY = e.touches !== undefined ? e.touches[0].pageY : e.clientY;
      this.setState({
        dragging: true,
        touchObject: {
          startX: posX,
          startY: posY,
          curX: posX,
          curY: posY
        }
      });
    },
    // continuous invokation while swiping/dragging is going on
    swipeMove: function swipeMove(e) {
      if (!this.state.dragging) {
        e.preventDefault();
        return;
      }
      if (this.state.scrolling) {
        return;
      }
      if (this.state.animating) {
        e.preventDefault();
        return;
      }
      if (this.props.vertical && this.props.swipeToSlide && this.props.verticalSwiping) {
        e.preventDefault();
      }
      var swipeLeft;
      var curLeft, positionOffset;
      var touchObject = this.state.touchObject;
  
      curLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
        slideIndex: this.state.currentSlide,
        trackRef: this.track
      }, this.props, this.state));
      touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;
      touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;
      touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));
      var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));
  
      if (!this.props.verticalSwiping && !this.state.swiping && verticalSwipeLength > 10) {
        this.setState({
          scrolling: true
        });
        return;
      }
  
      if (this.props.verticalSwiping) {
        touchObject.swipeLength = verticalSwipeLength;
      }
  
      positionOffset = (this.props.rtl === false ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);
  
      if (this.props.verticalSwiping) {
        positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;
      }
  
      var currentSlide = this.state.currentSlide;
      var dotCount = Math.ceil(this.state.slideCount / this.props.slidesToScroll); // this might not be correct, using getDotCount may be more accurate
      var swipeDirection = this.swipeDirection(this.state.touchObject);
      var touchSwipeLength = touchObject.swipeLength;
  
      if (this.props.infinite === false) {
        if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left') {
          touchSwipeLength = touchObject.swipeLength * this.props.edgeFriction;
  
          if (this.state.edgeDragged === false && this.props.edgeEvent) {
            this.props.edgeEvent(swipeDirection);
            this.setState({ edgeDragged: true });
          }
        }
      }
      if (this.state.swiped === false && this.props.swipeEvent) {
        this.props.swipeEvent(swipeDirection);
        this.setState({ swiped: true });
      }
  
      if (!this.props.vertical) {
        if (!this.props.rtl) {
          swipeLeft = curLeft + touchSwipeLength * positionOffset;
        } else {
          swipeLeft = curLeft - touchSwipeLength * positionOffset;
        }
      } else {
        swipeLeft = curLeft + touchSwipeLength * (this.state.listHeight / this.state.listWidth) * positionOffset;
      }
  
      if (this.props.verticalSwiping) {
        swipeLeft = curLeft + touchSwipeLength * positionOffset;
      }
  
      this.setState({
        touchObject: touchObject,
        swipeLeft: swipeLeft,
        trackStyle: (0, _trackHelper.getTrackCSS)((0, _objectAssign2.default)({ left: swipeLeft }, this.props, this.state))
      });
  
      if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {
        return;
      }
      if (touchObject.swipeLength > 10) {
        this.setState({
          swiping: true
        });
        e.preventDefault();
      }
    },
    getNavigableIndexes: function getNavigableIndexes() {
      var max = void 0;
      var breakPoint = 0;
      var counter = 0;
      var indexes = [];
  
      if (!this.props.infinite) {
        max = this.state.slideCount;
      } else {
        breakPoint = this.props.slidesToShow * -1;
        counter = this.props.slidesToShow * -1;
        max = this.state.slideCount * 2;
      }
  
      while (breakPoint < max) {
        indexes.push(breakPoint);
        breakPoint = counter + this.props.slidesToScroll;
  
        counter += this.props.slidesToScroll <= this.props.slidesToShow ? this.props.slidesToScroll : this.props.slidesToShow;
      }
  
      return indexes;
    },
    checkNavigable: function checkNavigable(index) {
      var navigables = this.getNavigableIndexes();
      var prevNavigable = 0;
  
      if (index > navigables[navigables.length - 1]) {
        index = navigables[navigables.length - 1];
      } else {
        for (var n in navigables) {
          if (index < navigables[n]) {
            index = prevNavigable;
            break;
          }
  
          prevNavigable = navigables[n];
        }
      }
  
      return index;
    },
    getSlideCount: function getSlideCount() {
      var _this = this;
  
      var centerOffset = this.props.centerMode ? this.state.slideWidth * Math.floor(this.props.slidesToShow / 2) : 0;
  
      if (this.props.swipeToSlide) {
        var swipedSlide = void 0;
  
        var slickList = _reactDom2.default.findDOMNode(this.list);
  
        var slides = slickList.querySelectorAll('.slick-slide');
  
        Array.from(slides).every(function (slide) {
          if (!_this.props.vertical) {
            if (slide.offsetLeft - centerOffset + _this.getWidth(slide) / 2 > _this.state.swipeLeft * -1) {
              swipedSlide = slide;
              return false;
            }
          } else {
            if (slide.offsetTop + _this.getHeight(slide) / 2 > _this.state.swipeLeft * -1) {
              swipedSlide = slide;
              return false;
            }
          }
  
          return true;
        });
  
        var currentIndex = this.props.rtl === true ? this.state.slideCount - this.state.currentSlide : this.state.currentSlide;
        var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;
  
        return slidesTraversed;
      } else {
        return this.props.slidesToScroll;
      }
    },
  
    swipeEnd: function swipeEnd(e) {
      if (!this.state.dragging) {
        if (this.props.swipe) {
          e.preventDefault();
        }
        return;
      }
      var touchObject = this.state.touchObject;
      var minSwipe = this.state.listWidth / this.props.touchThreshold;
      var swipeDirection = this.swipeDirection(touchObject);
  
      if (this.props.verticalSwiping) {
        minSwipe = this.state.listHeight / this.props.touchThreshold;
      }
  
      var wasScrolling = this.state.scrolling;
      // reset the state of touch related state variables.
      this.setState({
        dragging: false,
        edgeDragged: false,
        scrolling: false,
        swiping: false,
        swiped: false,
        swipeLeft: null,
        touchObject: {}
      });
      if (wasScrolling) {
        return;
      }
  
      // Fix for #13
      if (!touchObject.swipeLength) {
        return;
      }
      if (touchObject.swipeLength > minSwipe) {
        e.preventDefault();
  
        if (this.props.onSwipe) {
          this.props.onSwipe(swipeDirection);
        }
  
        var slideCount = void 0,
            newSlide = void 0;
  
        switch (swipeDirection) {
  
          case 'left':
          case 'down':
            newSlide = this.state.currentSlide + this.getSlideCount();
            slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
            // this.state.currentDirection = 0; // critical: change this line with setState statement
            this.setState({ currentDirection: 0 }); // unverified fix of above line
            break;
  
          case 'right':
          case 'up':
            newSlide = this.state.currentSlide - this.getSlideCount();
            slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
            // this.state.currentDirection = 1; // critical: change this line with setState statement
            this.setState({ currentDirection: 1 }); // unverified fix of above line
            break;
  
          default:
            slideCount = this.state.currentSlide;
  
        }
        this.slideHandler(slideCount);
      } else {
        // Adjust the track back to it's original position.
        var currentLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
          slideIndex: this.state.currentSlide,
          trackRef: this.track
        }, this.props, this.state));
  
        this.setState({
          trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _objectAssign2.default)({ left: currentLeft }, this.props, this.state))
        });
      }
    },
    onInnerSliderEnter: function onInnerSliderEnter(e) {
      if (this.props.autoplay && this.props.pauseOnHover) {
        this.pause();
      }
    },
    onInnerSliderOver: function onInnerSliderOver(e) {
      if (this.props.autoplay && this.props.pauseOnHover) {
        this.pause();
      }
    },
    onInnerSliderLeave: function onInnerSliderLeave(e) {
      if (this.props.autoplay && this.props.pauseOnHover) {
        this.autoPlay();
      }
    }
  };
  
  exports.default = EventHandlers;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/mixins/helpers.js":
  /*!********************************************************!*\
    !*** ./node_modules/react-slick/lib/mixins/helpers.js ***!
    \********************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = 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 _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _reactDom = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
  
  var _reactDom2 = _interopRequireDefault(_reactDom);
  
  var _trackHelper = __webpack_require__(/*! ./trackHelper */ "./node_modules/react-slick/lib/mixins/trackHelper.js");
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _innerSliderUtils = __webpack_require__(/*! ../utils/innerSliderUtils */ "./node_modules/react-slick/lib/utils/innerSliderUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  var helpers = {
    // supposed to start autoplay of slides
    initialize: function initialize(props) {
      var slickList = _reactDom2.default.findDOMNode(this.list);
  
      var slideCount = _react2.default.Children.count(props.children);
      var listWidth = this.getWidth(slickList);
      var trackWidth = this.getWidth(_reactDom2.default.findDOMNode(this.track));
      var slideWidth;
  
      if (!props.vertical) {
        var centerPaddingAdj = props.centerMode && parseInt(props.centerPadding) * 2;
        if (props.centerPadding.slice(-1) === '%') {
          centerPaddingAdj *= listWidth / 100;
        }
        slideWidth = Math.ceil((this.getWidth(_reactDom2.default.findDOMNode(this)) - centerPaddingAdj) / props.slidesToShow);
      } else {
        slideWidth = Math.ceil(this.getWidth(_reactDom2.default.findDOMNode(this)));
      }
  
      var slideHeight = this.getHeight(slickList.querySelector('[data-index="0"]'));
      var listHeight = slideHeight * props.slidesToShow;
  
      var currentSlide = props.rtl ? slideCount - 1 - props.initialSlide : props.initialSlide;
  
      this.setState({
        slideCount: slideCount,
        slideWidth: slideWidth,
        listWidth: listWidth,
        trackWidth: trackWidth,
        currentSlide: currentSlide,
        slideHeight: slideHeight,
        listHeight: listHeight
      }, function () {
        // this reference isn't lost due to mixin
        var targetLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
          slideIndex: this.state.currentSlide,
          trackRef: this.track
        }, props, this.state));
        // getCSS function needs previously set state
        var trackStyle = (0, _trackHelper.getTrackCSS)((0, _objectAssign2.default)({ left: targetLeft }, props, this.state));
  
        this.setState({ trackStyle: trackStyle });
  
        this.autoPlay(); // once we're set up, trigger the initial autoplay.
      });
    },
    update: function update(props) {
      var slickList = _reactDom2.default.findDOMNode(this.list);
      // This method has mostly same code as initialize method.
      // Refactor it
      var slideCount = _react2.default.Children.count(props.children);
      var listWidth = this.getWidth(slickList);
      var trackWidth = this.getWidth(_reactDom2.default.findDOMNode(this.track));
      var slideWidth;
  
      if (!props.vertical) {
        var centerPaddingAdj = props.centerMode && parseInt(props.centerPadding) * 2;
        if (props.centerPadding.slice(-1) === '%') {
          centerPaddingAdj *= listWidth / 100;
        }
        slideWidth = Math.ceil((this.getWidth(_reactDom2.default.findDOMNode(this)) - centerPaddingAdj) / props.slidesToShow);
      } else {
        slideWidth = Math.ceil(this.getWidth(_reactDom2.default.findDOMNode(this)));
      }
  
      var slideHeight = this.getHeight(slickList.querySelector('[data-index="0"]'));
      var listHeight = slideHeight * props.slidesToShow;
  
      // pause slider if autoplay is set to false
      if (!props.autoplay) {
        this.pause();
      } else {
        this.autoPlay(props.autoplay);
      }
  
      var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)({}, this.props, this.state);
      if (slidesToLoad.length > 0 && this.props.onLazyLoad) {
        this.props.onLazyLoad(slidesToLoad);
      }
      var prevLazyLoadedList = this.state.lazyLoadedList;
      this.setState({
        slideCount: slideCount,
        slideWidth: slideWidth,
        listWidth: listWidth,
        trackWidth: trackWidth,
        slideHeight: slideHeight,
        listHeight: listHeight,
        lazyLoadedList: prevLazyLoadedList.concat(slidesToLoad)
      }, function () {
  
        var targetLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
          slideIndex: this.state.currentSlide,
          trackRef: this.track
        }, props, this.state));
        // getCSS function needs previously set state
        var trackStyle = (0, _trackHelper.getTrackCSS)((0, _objectAssign2.default)({ left: targetLeft }, props, this.state));
  
        this.setState({ trackStyle: trackStyle });
      });
    },
    getWidth: function getWidth(elem) {
      return elem && (elem.getBoundingClientRect().width || elem.offsetWidth) || 0;
    },
    getHeight: function getHeight(elem) {
      return elem && (elem.getBoundingClientRect().height || elem.offsetHeight) || 0;
    },
  
    adaptHeight: function adaptHeight() {
      if (this.props.adaptiveHeight) {
        var selector = '[data-index="' + this.state.currentSlide + '"]';
        if (this.list) {
          var slickList = _reactDom2.default.findDOMNode(this.list);
          var elem = slickList.querySelector(selector) || {};
          slickList.style.height = (elem.offsetHeight || 0) + 'px';
        }
      }
    },
    canGoNext: function canGoNext(opts) {
      var canGo = true;
      if (!opts.infinite) {
        if (opts.centerMode) {
          // check if current slide is last slide
          if (opts.currentSlide >= opts.slideCount - 1) {
            canGo = false;
          }
        } else {
          // check if all slides are shown in slider
          if (opts.slideCount <= opts.slidesToShow || opts.currentSlide >= opts.slideCount - opts.slidesToShow) {
            canGo = false;
          }
        }
      }
      return canGo;
    },
    slideHandler: function slideHandler(index) {
      var _this = this;
  
      // index is target slide index
      // Functionality of animateSlide and postSlide is merged into this function
      var animationTargetSlide, finalTargetSlide;
      var animationTargetLeft, finalTargetLeft;
      var callback;
  
      if (this.props.waitForAnimate && this.state.animating) {
        return;
      }
  
      if (this.props.fade) {
        finalTargetSlide = this.state.currentSlide;
  
        // Don't change slide if infinite=false and target slide is out of range
        if (this.props.infinite === false && (index < 0 || index >= this.state.slideCount)) {
          return;
        }
  
        //  Shifting animationTargetSlide back into the range
        if (index < 0) {
          animationTargetSlide = index + this.state.slideCount;
        } else if (index >= this.state.slideCount) {
          animationTargetSlide = index - this.state.slideCount;
        } else {
          animationTargetSlide = index;
        }
  
        if (this.props.lazyLoad && this.state.lazyLoadedList.indexOf(animationTargetSlide) < 0) {
          this.setState(function (prevState, props) {
            return { lazyLoadedList: prevState.lazyLoadedList.concat(animationTargetSlide) };
          });
          if (this.props.onLazyLoad) {
            this.props.onLazyLoad([animationTargetSlide]);
          }
        }
  
        callback = function callback() {
          _this.setState({
            animating: false
          });
          if (_this.props.afterChange) {
            _this.props.afterChange(animationTargetSlide);
          }
          delete _this.animationEndCallback;
        };
  
        this.setState({
          animating: true,
          currentSlide: animationTargetSlide
        }, function () {
          if (this.props.asNavFor && this.props.asNavFor.innerSlider.state.currentSlide !== this.state.currentSlide) {
            this.props.asNavFor.innerSlider.slideHandler(index);
          }
          this.animationEndCallback = setTimeout(callback, this.props.speed);
        });
  
        if (this.props.beforeChange) {
          this.props.beforeChange(this.state.currentSlide, animationTargetSlide);
        }
  
        this.autoPlay();
        return;
      }
  
      animationTargetSlide = index;
  
      /*
        @TODO: Make sure to leave no bug in the code below
        start: critical checkpoint
      */
      if (animationTargetSlide < 0) {
        if (this.props.infinite === false) {
          finalTargetSlide = 0;
        } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
          finalTargetSlide = this.state.slideCount - this.state.slideCount % this.props.slidesToScroll;
        } else {
          finalTargetSlide = this.state.slideCount + animationTargetSlide;
        }
      } else if (this.props.centerMode && animationTargetSlide >= this.state.slideCount) {
        if (this.props.infinite === false) {
          animationTargetSlide = this.state.slideCount - 1;
          finalTargetSlide = this.state.slideCount - 1;
        } else {
          animationTargetSlide = this.state.slideCount;
          finalTargetSlide = 0;
        }
      } else if (animationTargetSlide >= this.state.slideCount) {
        if (this.props.infinite === false) {
          finalTargetSlide = this.state.slideCount - this.props.slidesToShow;
        } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
          finalTargetSlide = 0;
        } else {
          finalTargetSlide = animationTargetSlide - this.state.slideCount;
        }
      } else if (this.state.currentSlide + this.slidesToShow < this.state.slideCount && animationTargetSlide + this.props.slidesToShow >= this.state.slideCount) {
        if (this.props.infinite === false) {
          finalTargetSlide = this.state.slideCount - this.props.slidesToShow;
        } else {
          if ((this.state.slideCount - animationTargetSlide) % this.props.slidesToScroll !== 0) {
            finalTargetSlide = this.state.slideCount - this.props.slidesToShow;
          } else {
            finalTargetSlide = animationTargetSlide;
          }
        }
      } else {
        finalTargetSlide = animationTargetSlide;
      }
  
      /* 
        stop: critical checkpoint
      */
  
      animationTargetLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
        slideIndex: animationTargetSlide,
        trackRef: this.track
      }, this.props, this.state));
  
      finalTargetLeft = (0, _trackHelper.getTrackLeft)((0, _objectAssign2.default)({
        slideIndex: finalTargetSlide,
        trackRef: this.track
      }, this.props, this.state));
  
      if (this.props.infinite === false) {
        if (animationTargetLeft === finalTargetLeft) {
          animationTargetSlide = finalTargetSlide;
        }
        animationTargetLeft = finalTargetLeft;
      }
  
      if (this.props.beforeChange) {
        this.props.beforeChange(this.state.currentSlide, finalTargetSlide);
      }
      if (this.props.lazyLoad) {
        var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)((0, _objectAssign2.default)({}, this.props, this.state, { currentSlide: animationTargetSlide }));
        if (slidesToLoad.length > 0) {
          this.setState(function (prevState, props) {
            return { lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad) };
          });
          if (this.props.onLazyLoad) {
            this.props.onLazyLoad(slidesToLoad);
          }
        }
      }
      // Slide Transition happens here.
      // animated transition happens to target Slide and
      // non - animated transition happens to current Slide
      // If CSS transitions are false, directly go the current slide.
  
      if (this.props.useCSS === false) {
        this.setState({
          currentSlide: finalTargetSlide,
          trackStyle: (0, _trackHelper.getTrackCSS)((0, _objectAssign2.default)({ left: finalTargetLeft }, this.props, this.state))
        }, function () {
          if (this.props.afterChange) {
            this.props.afterChange(finalTargetSlide);
          }
        });
      } else {
  
        var nextStateChanges = {
          animating: false,
          currentSlide: finalTargetSlide,
          trackStyle: (0, _trackHelper.getTrackCSS)((0, _objectAssign2.default)({ left: finalTargetLeft }, this.props, this.state)),
          swipeLeft: null
        };
        callback = function callback() {
          _this.setState(nextStateChanges, function () {
            if (_this.props.afterChange) {
              _this.props.afterChange(finalTargetSlide);
            }
            delete _this.animationEndCallback;
          });
        };
  
        this.setState({
          animating: true,
          currentSlide: finalTargetSlide,
          trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _objectAssign2.default)({ left: animationTargetLeft }, this.props, this.state))
        }, function () {
          if (this.props.asNavFor && this.props.asNavFor.innerSlider.state.currentSlide !== this.state.currentSlide) {
            this.props.asNavFor.innerSlider.slideHandler(index);
          }
          this.animationEndCallback = setTimeout(callback, this.props.speed);
        });
      }
  
      this.autoPlay();
    },
    swipeDirection: function swipeDirection(touchObject) {
      var xDist, yDist, r, swipeAngle;
  
      xDist = touchObject.startX - touchObject.curX;
      yDist = touchObject.startY - touchObject.curY;
      r = Math.atan2(yDist, xDist);
  
      swipeAngle = Math.round(r * 180 / Math.PI);
      if (swipeAngle < 0) {
        swipeAngle = 360 - Math.abs(swipeAngle);
      }
      if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {
        return 'left';
      }
      if (swipeAngle >= 135 && swipeAngle <= 225) {
        return 'right';
      }
      if (this.props.verticalSwiping === true) {
        if (swipeAngle >= 35 && swipeAngle <= 135) {
          return 'down';
        } else {
          return 'up';
        }
      }
  
      return 'vertical';
    },
    play: function play() {
      var nextIndex;
  
      // if (!this.state.mounted) {
      //   return false
      // }
  
      if (this.props.rtl) {
        nextIndex = this.state.currentSlide - this.props.slidesToScroll;
      } else {
        if (this.canGoNext(_extends({}, this.props, this.state))) {
          nextIndex = this.state.currentSlide + this.props.slidesToScroll;
        } else {
          return false;
        }
      }
  
      this.slideHandler(nextIndex);
    },
    autoPlay: function autoPlay() {
      var autoplay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  
      if (this.autoplayTimer) {
        clearTimeout(this.autoplayTimer);
      }
      if (autoplay || this.props.autoplay) {
        this.autoplayTimer = setTimeout(this.play, this.props.autoplaySpeed);
      }
    },
    pause: function pause() {
      if (this.autoplayTimer) {
        clearTimeout(this.autoplayTimer);
        this.autoplayTimer = null;
      }
    }
  };
  
  exports.default = helpers;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/mixins/trackHelper.js":
  /*!************************************************************!*\
    !*** ./node_modules/react-slick/lib/mixins/trackHelper.js ***!
    \************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = undefined;
  
  var _reactDom = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
  
  var _reactDom2 = _interopRequireDefault(_reactDom);
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _trackUtils = __webpack_require__(/*! ../utils/trackUtils */ "./node_modules/react-slick/lib/utils/trackUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  // checks if spec is the superset of keys in keysArray, i.e., spec contains all the keys from keysArray
  var checkSpecKeys = function checkSpecKeys(spec, keysArray) {
    return keysArray.reduce(function (value, key) {
      return value && spec.hasOwnProperty(key);
    }, true) ? null : console.error('Keys Missing', spec);
  };
  
  var getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {
    checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']);
  
    var trackWidth, trackHeight;
    var trackChildren = spec.slideCount + 2 * spec.slidesToShow; // this should probably be getTotalSlides
    if (!spec.vertical) {
      trackWidth = (0, _trackUtils.getTotalSlides)(spec) * spec.slideWidth;
    } else {
      trackHeight = trackChildren * spec.slideHeight;
    }
  
    var style = {
      opacity: 1,
      WebkitTransform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
      transform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
      transition: '',
      WebkitTransition: '',
      msTransform: !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)'
    };
    if (spec.fade) {
      style = {
        opacity: 1
      };
    }
  
    if (trackWidth) {
      (0, _objectAssign2.default)(style, { width: trackWidth });
    }
  
    if (trackHeight) {
      (0, _objectAssign2.default)(style, { height: trackHeight });
    }
  
    // Fallback for IE8
    if (window && !window.addEventListener && window.attachEvent) {
      if (!spec.vertical) {
        style.marginLeft = spec.left + 'px';
      } else {
        style.marginTop = spec.left + 'px';
      }
    }
  
    return style;
  };
  
  var getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {
    checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']);
  
    var style = getTrackCSS(spec);
    // useCSS is true by default so it can be undefined
    style.WebkitTransition = '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase;
    style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase;
    return style;
  };
  
  // gets total length of track that's on the left side of current slide
  var getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {
  
    if (spec.unslick) {
      return 0;
    }
  
    checkSpecKeys(spec, ['slideIndex', 'trackRef', 'infinite', 'centerMode', 'slideCount', 'slidesToShow', 'slidesToScroll', 'slideWidth', 'listWidth', 'variableWidth', 'slideHeight']);
  
    var slideIndex = spec.slideIndex,
        trackRef = spec.trackRef,
        infinite = spec.infinite,
        centerMode = spec.centerMode,
        slideCount = spec.slideCount,
        slidesToShow = spec.slidesToShow,
        slidesToScroll = spec.slidesToScroll,
        slideWidth = spec.slideWidth,
        listWidth = spec.listWidth,
        variableWidth = spec.variableWidth,
        slideHeight = spec.slideHeight,
        fade = spec.fade,
        vertical = spec.vertical;
  
  
    var slideOffset = 0;
    var targetLeft;
    var targetSlide;
    var verticalOffset = 0;
  
    if (fade || spec.slideCount === 1) {
      return 0;
    }
  
    var slidesToOffset = 0;
    if (infinite) {
      slidesToOffset = -(0, _trackUtils.getPreClones)(spec); // bring active slide to the beginning of visual area
      // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children
      if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {
        slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);
      }
      // shift current slide to center of the frame
      if (centerMode) {
        slidesToOffset += parseInt(slidesToShow / 2);
      }
    } else {
      if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {
        slidesToOffset = slidesToShow - slideCount % slidesToScroll;
      }
      if (centerMode) {
        slidesToOffset = parseInt(slidesToShow / 2);
      }
    }
    slideOffset = slidesToOffset * slideWidth;
    verticalOffset = slidesToOffset * slideHeight;
  
    if (!vertical) {
      targetLeft = slideIndex * slideWidth * -1 + slideOffset;
    } else {
      targetLeft = slideIndex * slideHeight * -1 + verticalOffset;
    }
  
    if (variableWidth === true) {
      var targetSlideIndex;
      var lastSlide = _reactDom2.default.findDOMNode(trackRef).children[slideCount - 1];
      var max = -lastSlide.offsetLeft + listWidth - lastSlide.offsetWidth;
      targetSlideIndex = slideIndex + (0, _trackUtils.getPreClones)(spec);
      targetSlide = _reactDom2.default.findDOMNode(trackRef).childNodes[targetSlideIndex];
      targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;
      if (centerMode === true) {
        targetSlideIndex = infinite ? slideIndex + (0, _trackUtils.getPreClones)(spec) : slideIndex;
        targetSlide = _reactDom2.default.findDOMNode(trackRef).children[targetSlideIndex];
        targetLeft = 0;
        for (var slide = 0; slide < targetSlideIndex; slide++) {
          targetLeft -= _reactDom2.default.findDOMNode(trackRef).children[slide].offsetWidth;
        }
        targetLeft += (listWidth - targetSlide.offsetWidth) / 2;
      }
      if (spec.infinite === false && targetLeft < max) {
        targetLeft = max;
      }
    }
  
    return targetLeft;
  };
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/slider.js":
  /*!************************************************!*\
    !*** ./node_modules/react-slick/lib/slider.js ***!
    \************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = 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 _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _innerSlider = __webpack_require__(/*! ./inner-slider */ "./node_modules/react-slick/lib/inner-slider.js");
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _json2mq = __webpack_require__(/*! json2mq */ "./node_modules/json2mq/index.js");
  
  var _json2mq2 = _interopRequireDefault(_json2mq);
  
  var _defaultProps = __webpack_require__(/*! ./default-props */ "./node_modules/react-slick/lib/default-props.js");
  
  var _defaultProps2 = _interopRequireDefault(_defaultProps);
  
  var _canUseDom = __webpack_require__(/*! can-use-dom */ "./node_modules/can-use-dom/index.js");
  
  var _canUseDom2 = _interopRequireDefault(_canUseDom);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  var enquire = _canUseDom2.default && __webpack_require__(/*! enquire.js */ "./node_modules/enquire.js/src/index.js");
  
  var Slider = function (_React$Component) {
    _inherits(Slider, _React$Component);
  
    function Slider(props) {
      _classCallCheck(this, Slider);
  
      var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
  
      _this.innerSliderRefHandler = function (ref) {
        return _this.innerSlider = ref;
      };
  
      _this.slickPrev = function () {
        return _this.innerSlider.slickPrev();
      };
  
      _this.slickNext = function () {
        return _this.innerSlider.slickNext();
      };
  
      _this.slickGoTo = function (slide) {
        return _this.innerSlider.slickGoTo(slide);
      };
  
      _this.slickPause = function () {
        return _this.innerSlider.pause();
      };
  
      _this.slickPlay = function () {
        return _this.innerSlider.autoPlay();
      };
  
      _this.state = {
        breakpoint: null
      };
      _this._responsiveMediaHandlers = [];
      return _this;
    }
  
    Slider.prototype.media = function media(query, handler) {
      // javascript handler for  css media query
      enquire.register(query, handler);
      this._responsiveMediaHandlers.push({ query: query, handler: handler });
    };
  
    // handles responsive breakpoints
  
  
    Slider.prototype.componentWillMount = function componentWillMount() {
      var _this2 = this;
  
      if (this.props.responsive) {
        var breakpoints = this.props.responsive.map(function (breakpt) {
          return breakpt.breakpoint;
        });
        // sort them in increasing order of their numerical value
        breakpoints.sort(function (x, y) {
          return x - y;
        });
  
        breakpoints.forEach(function (breakpoint, index) {
          // media query for each breakpoint
          var bQuery = void 0;
          if (index === 0) {
            bQuery = (0, _json2mq2.default)({ minWidth: 0, maxWidth: breakpoint });
          } else {
            bQuery = (0, _json2mq2.default)({ minWidth: breakpoints[index - 1] + 1, maxWidth: breakpoint });
          }
          // when not using server side rendering
          _canUseDom2.default && _this2.media(bQuery, function () {
            _this2.setState({ breakpoint: breakpoint });
          });
        });
  
        // Register media query for full screen. Need to support resize from small to large
        // convert javascript object to media query string
        var query = (0, _json2mq2.default)({ minWidth: breakpoints.slice(-1)[0] });
  
        _canUseDom2.default && this.media(query, function () {
          _this2.setState({ breakpoint: null });
        });
      }
    };
  
    Slider.prototype.componentWillUnmount = function componentWillUnmount() {
      this._responsiveMediaHandlers.forEach(function (obj) {
        enquire.unregister(obj.query, obj.handler);
      });
    };
  
    Slider.prototype.render = function render() {
      var _this3 = this;
  
      var settings;
      var newProps;
      if (this.state.breakpoint) {
        // never executes in the first render
        // so defaultProps should be already there in this.props
        newProps = this.props.responsive.filter(function (resp) {
          return resp.breakpoint === _this3.state.breakpoint;
        });
        settings = newProps[0].settings === 'unslick' ? 'unslick' : (0, _objectAssign2.default)({}, _defaultProps2.default, this.props, newProps[0].settings);
      } else {
        settings = (0, _objectAssign2.default)({}, _defaultProps2.default, this.props);
      }
  
      // force scrolling by one if centerMode is on
      if (settings.centerMode) {
        if (settings.slidesToScroll > 1 && "development" !== 'production') {
          console.warn('slidesToScroll should be equal to 1 in centerMode, you are using ' + settings.slidesToScroll);
        }
        settings.slidesToScroll = 1;
      }
      // force showing one slide and scrolling by one if the fade mode is on
      if (settings.fade) {
        if (settings.slidesToShow > 1 && "development" !== 'production') {
          console.warn('slidesToShow should be equal to 1 when fade is true, you\'re using ' + settings.slidesToShow);
        }
        if (settings.slidesToScroll > 1 && "development" !== 'production') {
          console.warn('slidesToScroll should be equal to 1 when fade is true, you\'re using ' + settings.slidesToScroll);
        }
        settings.slidesToShow = 1;
        settings.slidesToScroll = 1;
      }
  
      // makes sure that children is an array, even when there is only 1 child
      var children = _react2.default.Children.toArray(this.props.children);
  
      // Children may contain false or null, so we should filter them
      // children may also contain string filled with spaces (in certain cases where we use jsx strings)
      children = children.filter(function (child) {
        if (typeof child === 'string') {
          return !!child.trim();
        }
        return !!child;
      });
  
      if (settings === 'unslick') {
        settings = (0, _objectAssign2.default)({ unslick: true }, _defaultProps2.default, this.props);
        settings.slidesToShow = children.length;
      } else if (children.length <= settings.slidesToShow) {
        settings.unslick = true;
        settings.slidesToShow = children.length;
      }
      return _react2.default.createElement(
        _innerSlider.InnerSlider,
        _extends({ ref: this.innerSliderRefHandler }, settings),
        children
      );
    };
  
    return Slider;
  }(_react2.default.Component);
  
  exports.default = Slider;
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/track.js":
  /*!***********************************************!*\
    !*** ./node_modules/react-slick/lib/track.js ***!
    \***********************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.Track = undefined;
  
  var _react = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  
  var _react2 = _interopRequireDefault(_react);
  
  var _objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
  
  var _objectAssign2 = _interopRequireDefault(_objectAssign);
  
  var _classnames = __webpack_require__(/*! classnames */ "./node_modules/classnames/index.js");
  
  var _classnames2 = _interopRequireDefault(_classnames);
  
  var _trackUtils = __webpack_require__(/*! ./utils/trackUtils */ "./node_modules/react-slick/lib/utils/trackUtils.js");
  
  var _innerSliderUtils = __webpack_require__(/*! ./utils/innerSliderUtils */ "./node_modules/react-slick/lib/utils/innerSliderUtils.js");
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  // given specifications/props for a slide, fetch all the classes that need to be applied to the slide
  var getSlideClasses = function getSlideClasses(spec) {
    // if spec has currentSlideIndex, we can also apply slickCurrent class according to that (https://github.com/kenwheeler/slick/blob/master/slick/slick.js#L2300-L2302)
    var slickActive, slickCenter, slickCloned;
    var centerOffset, index;
  
    if (spec.rtl) {
      // if we're going right to left, index is reversed
      index = spec.slideCount - 1 - spec.index;
    } else {
      // index of the slide
      index = spec.index;
    }
    slickCloned = index < 0 || index >= spec.slideCount;
    if (spec.centerMode) {
      centerOffset = Math.floor(spec.slidesToShow / 2);
      slickCenter = (index - spec.currentSlide) % spec.slideCount === 0; // concern: not sure if this should be correct (https://github.com/kenwheeler/slick/blob/master/slick/slick.js#L2328-L2346)
      if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {
        slickActive = true;
      }
    } else {
      // concern: following can be incorrect in case where currentSlide is lastSlide in frame and rest of the slides to show have index smaller than currentSlideIndex
      slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;
    }
    var slickCurrent = index === spec.currentSlide;
    return (0, _classnames2.default)({
      'slick-slide': true,
      'slick-active': slickActive,
      'slick-center': slickCenter,
      'slick-cloned': slickCloned,
      'slick-current': slickCurrent // dubious in case of RTL
    });
  };
  
  var getSlideStyle = function getSlideStyle(spec) {
    var style = {};
  
    if (spec.variableWidth === undefined || spec.variableWidth === false) {
      style.width = spec.slideWidth;
    }
  
    if (spec.fade) {
      style.position = 'relative';
      if (spec.vertical) {
        style.top = -spec.index * spec.slideHeight;
      } else {
        style.left = -spec.index * spec.slideWidth;
      }
      style.opacity = spec.currentSlide === spec.index ? 1 : 0;
      style.transition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;
      style.WebkitTransition = 'opacity ' + spec.speed + 'ms ' + spec.cssEase + ', ' + 'visibility ' + spec.speed + 'ms ' + spec.cssEase;
    }
  
    return style;
  };
  
  var getKey = function getKey(child, fallbackKey) {
    return child.key || fallbackKey;
  };
  
  var renderSlides = function renderSlides(spec) {
    var key;
    var slides = [];
    var preCloneSlides = [];
    var postCloneSlides = [];
    var childrenCount = _react2.default.Children.count(spec.children);
    var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);
    var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);
  
    _react2.default.Children.forEach(spec.children, function (elem, index) {
      var child = void 0;
      var childOnClickOptions = {
        message: 'children',
        index: index,
        slidesToScroll: spec.slidesToScroll,
        currentSlide: spec.currentSlide
      };
  
      // in case of lazyLoad, whether or not we want to fetch the slide
      if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {
        child = elem;
      } else {
        child = _react2.default.createElement('div', null);
      }
      var childStyle = getSlideStyle((0, _objectAssign2.default)({}, spec, { index: index }));
      var slideClass = child.props.className || '';
  
      // push a cloned element of the desired slide
      slides.push(_react2.default.cloneElement(child, {
        key: 'original' + getKey(child, index),
        'data-index': index,
        className: (0, _classnames2.default)(getSlideClasses((0, _objectAssign2.default)({ index: index }, spec)), slideClass),
        tabIndex: '-1',
        style: (0, _objectAssign2.default)({ outline: 'none' }, child.props.style || {}, childStyle),
        onClick: function onClick(e) {
          child.props && child.props.onClick && child.props.onClick(e);
          if (spec.focusOnSelect) {
            spec.focusOnSelect(childOnClickOptions);
          }
        }
      }));
  
      // if slide needs to be precloned or postcloned
      if (spec.infinite && spec.fade === false) {
        var preCloneNo = childrenCount - index;
        if (preCloneNo <= (0, _trackUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {
          key = -preCloneNo;
          if (key >= startIndex) {
            child = elem;
          }
          preCloneSlides.push(_react2.default.cloneElement(child, {
            key: 'precloned' + getKey(child, key),
            'data-index': key,
            tabIndex: '-1',
            className: (0, _classnames2.default)(getSlideClasses((0, _objectAssign2.default)({ index: key }, spec)), slideClass),
            style: (0, _objectAssign2.default)({}, child.props.style || {}, childStyle),
            onClick: function onClick(e) {
              child.props && child.props.onClick && child.props.onClick(e);
              if (spec.focusOnSelect) {
                spec.focusOnSelect(childOnClickOptions);
              }
            }
          }));
        }
  
        if (childrenCount !== spec.slidesToShow) {
          key = childrenCount + index;
          if (key < endIndex) {
            child = elem;
          }
          postCloneSlides.push(_react2.default.cloneElement(child, {
            key: 'postcloned' + getKey(child, key),
            'data-index': key,
            tabIndex: '-1',
            className: (0, _classnames2.default)(getSlideClasses((0, _objectAssign2.default)({ index: key }, spec)), slideClass),
            style: (0, _objectAssign2.default)({}, child.props.style || {}, childStyle),
            onClick: function onClick(e) {
              child.props && child.props.onClick && child.props.onClick(e);
              if (spec.focusOnSelect) {
                spec.focusOnSelect(childOnClickOptions);
              }
            }
          }));
        }
      }
    });
  
    if (spec.rtl) {
      return preCloneSlides.concat(slides, postCloneSlides).reverse();
    } else {
      return preCloneSlides.concat(slides, postCloneSlides);
    }
  };
  
  var Track = exports.Track = function (_React$Component) {
    _inherits(Track, _React$Component);
  
    function Track() {
      _classCallCheck(this, Track);
  
      return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
    }
  
    Track.prototype.render = function render() {
      // var slides = renderSlides.call(this, this.props);
      var slides = renderSlides(this.props);
      return _react2.default.createElement(
        'div',
        { className: 'slick-track', style: this.props.trackStyle },
        slides
      );
    };
  
    return Track;
  }(_react2.default.Component);
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/utils/innerSliderUtils.js":
  /*!****************************************************************!*\
    !*** ./node_modules/react-slick/lib/utils/innerSliderUtils.js ***!
    \****************************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  
  // Following function expects props and states from InnerSlider component
  // and returns a list of slides that need to be loaded in order to complete the list frame
  var getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {
    /*
    @TODO: call onLazyLoad event here
    */
    var onDemandSlides = [];
    // you might wanna use trackUtils functions for this
    var startIndex = lazyStartIndex(spec);
    var endIndex = lazyEndIndex(spec);
  
    for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {
      if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {
        onDemandSlides.push(slideIndex);
      }
    }
    return onDemandSlides;
  };
  
  var getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {
    var requiredSlides = [];
    var startIndex = lazyStartIndex(spec);
    var endIndex = lazyEndIndex(spec);
    for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {
      requiredSlides.push(slideIndex);
    }
    return requiredSlides;
  };
  
  var lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {
    return spec.currentSlide - slidesOnLeft(spec);
  };
  var lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {
    return spec.currentSlide + slidesOnRight(spec);
  }; // endIndex is exclusive
  
  // may be compared with trackutils equivalents for betterment
  var slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(spec) {
    return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;
  };
  
  // may be compared with trackutils equivalents for betterment
  var slidesOnRight = exports.slidesOnRight = function slidesOnRight(spec) {
    return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;
  };
  
  /***/ }),
  
  /***/ "./node_modules/react-slick/lib/utils/trackUtils.js":
  /*!**********************************************************!*\
    !*** ./node_modules/react-slick/lib/utils/trackUtils.js ***!
    \**********************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.__esModule = true;
  exports.getPreClones = getPreClones;
  exports.getPostClones = getPostClones;
  exports.getTotalSlides = getTotalSlides;
  exports.siblingDirection = siblingDirection;
  exports.slidesOnRight = slidesOnRight;
  exports.slidesOnLeft = slidesOnLeft;
  function getPreClones(_ref) {
    var slideCount = _ref.slideCount,
        variableWidth = _ref.variableWidth,
        slidesToShow = _ref.slidesToShow,
        centerMode = _ref.centerMode,
        unslick = _ref.unslick;
  
    if (unslick) return 0;
    if (variableWidth) {
      return slideCount;
    }
    return slidesToShow + (centerMode ? 1 : 0);
  }
  
  function getPostClones(_ref2) {
    var slideCount = _ref2.slideCount,
        unslick = _ref2.unslick;
  
    if (unslick) return 0;
    return slideCount;
  }
  
  function getTotalSlides(_ref3) {
    var variableWidth = _ref3.variableWidth,
        slideCount = _ref3.slideCount,
        slidesToShow = _ref3.slidesToShow,
        centerMode = _ref3.centerMode,
        unslick = _ref3.unslick;
  
    if (slideCount === 1) {
      return 1;
    }
    return getPreClones({ slideCount: slideCount, variableWidth: variableWidth, slidesToShow: slidesToShow, centerMode: centerMode, unslick: unslick }) + slideCount + getPostClones({ slideCount: slideCount, unslick: unslick });
  }
  
  function siblingDirection(_ref4) {
    var currentSlide = _ref4.currentSlide,
        targetSlide = _ref4.targetSlide,
        slidesToShow = _ref4.slidesToShow,
        centerMode = _ref4.centerMode,
        rtl = _ref4.rtl;
  
    if (targetSlide > currentSlide) {
      if (targetSlide > currentSlide + slidesOnRight(slidesToShow, centerMode, rtl)) {
        return 'left';
      }
      return 'right';
    } else {
      if (targetSlide < currentSlide - slidesOnLeft(slidesToShow, centerMode, rtl)) {
        return 'right';
      }
      return 'left';
    }
  }
  
  function slidesOnRight(slidesToShow, centerMode, rtl) {
    // returns no of slides on the right of active slide
    if (centerMode) {
      var right = (slidesToShow - 1) / 2 + 1;
      if (rtl && slidesToShow % 2 === 0) right += 1;
      return right;
    }
    if (rtl) {
      return 0;
    }
    return slidesToShow - 1;
  }
  
  function slidesOnLeft(slidesToShow, centerMode, rtl) {
    // returns no of slides on the left of active slide
    if (centerMode) {
      var left = (slidesToShow - 1) / 2 + 1;
      if (!rtl && slidesToShow % 2 === 0) left += 1;
      return left;
    }
    if (rtl) {
      return slidesToShow - 1;
    }
    return 0;
  }
  
  /***/ }),
  
  /***/ "./node_modules/resolve-pathname/index.js":
  /*!************************************************!*\
    !*** ./node_modules/resolve-pathname/index.js ***!
    \************************************************/
  /*! exports provided: default */
  /*! all exports used */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  function isAbsolute(pathname) {
    return pathname.charAt(0) === '/';
  }
  
  // About 1.5x faster than the two-arg version of Array#splice()
  function spliceOne(list, index) {
    for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {
      list[i] = list[k];
    }
  
    list.pop();
  }
  
  // This implementation is based heavily on node's url.parse
  function resolvePathname(to) {
    var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  
    var toParts = to && to.split('/') || [];
    var fromParts = from && from.split('/') || [];
  
    var isToAbs = to && isAbsolute(to);
    var isFromAbs = from && isAbsolute(from);
    var mustEndAbs = isToAbs || isFromAbs;
  
    if (to && isAbsolute(to)) {
      // to is absolute
      fromParts = toParts;
    } else if (toParts.length) {
      // to is relative, drop the filename
      fromParts.pop();
      fromParts = fromParts.concat(toParts);
    }
  
    if (!fromParts.length) return '/';
  
    var hasTrailingSlash = void 0;
    if (fromParts.length) {
      var last = fromParts[fromParts.length - 1];
      hasTrailingSlash = last === '.' || last === '..' || last === '';
    } else {
      hasTrailingSlash = false;
    }
  
    var up = 0;
    for (var i = fromParts.length; i >= 0; i--) {
      var part = fromParts[i];
  
      if (part === '.') {
        spliceOne(fromParts, i);
      } else if (part === '..') {
        spliceOne(fromParts, i);
        up++;
      } else if (up) {
        spliceOne(fromParts, i);
        up--;
      }
    }
  
    if (!mustEndAbs) for (; up--; up) {
      fromParts.unshift('..');
    }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');
  
    var result = fromParts.join('/');
  
    if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';
  
    return result;
  }
  
  /* harmony default export */ __webpack_exports__["default"] = (resolvePathname);
  
  /***/ }),
  
  /***/ "./node_modules/string-convert/camel2hyphen.js":
  /*!*****************************************************!*\
    !*** ./node_modules/string-convert/camel2hyphen.js ***!
    \*****************************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports) {
  
  var camel2hyphen = function (str) {
    return str
            .replace(/[A-Z]/g, function (match) {
              return '-' + match.toLowerCase();
            })
            .toLowerCase();
  };
  
  module.exports = camel2hyphen;
  
  /***/ }),
  
  /***/ "./node_modules/value-equal/index.js":
  /*!*******************************************!*\
    !*** ./node_modules/value-equal/index.js ***!
    \*******************************************/
  /*! exports provided: default */
  /*! all exports used */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  function valueEqual(a, b) {
    if (a === b) return true;
  
    if (a == null || b == null) return false;
  
    if (Array.isArray(a)) {
      return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {
        return valueEqual(item, b[index]);
      });
    }
  
    var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);
    var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);
  
    if (aType !== bType) return false;
  
    if (aType === 'object') {
      var aValue = a.valueOf();
      var bValue = b.valueOf();
  
      if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);
  
      var aKeys = Object.keys(a);
      var bKeys = Object.keys(b);
  
      if (aKeys.length !== bKeys.length) return false;
  
      return aKeys.every(function (key) {
        return valueEqual(a[key], b[key]);
      });
    }
  
    return false;
  }
  
  /* harmony default export */ __webpack_exports__["default"] = (valueEqual);
  
  /***/ }),
  
  /***/ "./node_modules/warning/browser.js":
  /*!*****************************************!*\
    !*** ./node_modules/warning/browser.js ***!
    \*****************************************/
  /*! dynamic exports provided */
  /*! all exports used */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /**
   * Copyright 2014-2015, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   */
  
  
  
  /**
   * Similar to invariant but only logs a warning if the condition is not met.
   * This can be used to log issues in development environments in critical
   * paths. Removing the logging code for production environments will keep the
   * same logic and follow the same code paths.
   */
  
  var warning = function() {};
  
  if (true) {
    warning = function(condition, format, args) {
      var len = arguments.length;
      args = new Array(len > 2 ? len - 2 : 0);
      for (var key = 2; key < len; key++) {
        args[key - 2] = arguments[key];
      }
      if (format === undefined) {
        throw new Error(
          '`warning(condition, format, ...args)` requires a warning ' +
          'message argument'
        );
      }
  
      if (format.length < 10 || (/^[s\W]*$/).test(format)) {
        throw new Error(
          'The warning format should be able to uniquely identify this ' +
          'warning. Please, use a more descriptive format than: ' + format
        );
      }
  
      if (!condition) {
        var argIndex = 0;
        var message = 'Warning: ' +
          format.replace(/%s/g, function() {
            return args[argIndex++];
          });
        if (typeof console !== 'undefined') {
          console.error(message);
        }
        try {
          // This error was thrown as a convenience so that you can use this stack
          // to find the callsite that caused this warning to fire.
          throw new Error(message);
        } catch(x) {}
      }
    };
  }
  
  module.exports = warning;
  
  
  /***/ }),
  
  /***/ "./src/App.css":
  /*!*********************!*\
    !*** ./src/App.css ***!
    \*********************/
  /*! dynamic exports provided */
  /***/ (function(module, exports, __webpack_require__) {
  
  // style-loader: Adds some css to the DOM by adding a <style> tag
  
  // load the styles
  var content = __webpack_require__(/*! !../node_modules/css-loader??ref--1-oneOf-2-1!../node_modules/postcss-loader/lib??postcss!./App.css */ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\",\"plugins\":[null,null]}!./src/App.css");
  if(typeof content === 'string') content = [[module.i, content, '']];
  // Prepare cssTransformation
  var transform;
  
  var options = {"hmr":true}
  options.transform = transform
  // add the styles to the DOM
  var update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
  if(content.locals) module.exports = content.locals;
  // Hot Module Replacement
  if(true) {
  	// When the styles change, update the <style> tags
  	if(!content.locals) {
  		module.hot.accept(/*! !../node_modules/css-loader??ref--1-oneOf-2-1!../node_modules/postcss-loader/lib??postcss!./App.css */ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\",\"plugins\":[null,null]}!./src/App.css", function() {
  			var newContent = __webpack_require__(/*! !../node_modules/css-loader??ref--1-oneOf-2-1!../node_modules/postcss-loader/lib??postcss!./App.css */ "./node_modules/css-loader/index.js?{\"importLoaders\":1}!./node_modules/postcss-loader/lib/index.js?{\"ident\":\"postcss\",\"plugins\":[null,null]}!./src/App.css");
  			if(typeof newContent === 'string') newContent = [[module.i, newContent, '']];
  			update(newContent);
  		});
  	}
  	// When the module is disposed, remove the <style> tags
  	module.hot.dispose(function() { update(); });
  }
  
  /***/ }),
  
  /***/ "./src/App.js":
  /*!********************!*\
    !*** ./src/App.js ***!
    \********************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__logo_svg__ = __webpack_require__(/*! ./logo.svg */ "./src/logo.svg");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__logo_svg___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__logo_svg__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NavBar_NavBar__ = __webpack_require__(/*! ./NavBar/NavBar */ "./src/NavBar/NavBar.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Footer_Footer__ = __webpack_require__(/*! ./Footer/Footer */ "./src/Footer/Footer.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Carousel_Carousel__ = __webpack_require__(/*! ./Carousel/Carousel */ "./src/Carousel/Carousel.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__App_css__ = __webpack_require__(/*! ./App.css */ "./src/App.css");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__App_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__App_css__);
  var _jsxFileName = 'C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\App.js';
  
  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; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  
  
  
  
  var App = function (_Component) {
    _inherits(App, _Component);
  
    function App(props) {
      _classCallCheck(this, App);
  
      var _this = _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).call(this, props));
  
      _this.state = {
        posters: {}
      };
      return _this;
    }
  
    _createClass(App, [{
      key: 'render',
      value: function render() {
        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
          'div',
          { className: 'container-fluid night', __source: {
              fileName: _jsxFileName,
              lineNumber: 19
            },
            __self: this
          },
          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
            'div',
            { className: 'App', __source: {
                fileName: _jsxFileName,
                lineNumber: 20
              },
              __self: this
            },
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('p', { className: 'App-intro', __source: {
                fileName: _jsxFileName,
                lineNumber: 25
              },
              __self: this
            }),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_4__Carousel_Carousel__["a" /* default */], {
              __source: {
                fileName: _jsxFileName,
                lineNumber: 28
              },
              __self: this
            }),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__Footer_Footer__["a" /* default */], {
              __source: {
                fileName: _jsxFileName,
                lineNumber: 29
              },
              __self: this
            })
          )
        );
      }
    }]);
  
    return App;
  }(__WEBPACK_IMPORTED_MODULE_0_react__["Component"]);
  
  /* harmony default export */ __webpack_exports__["a"] = (App);
  
  /***/ }),
  
  /***/ "./src/Carousel/Carousel.js":
  /*!**********************************!*\
    !*** ./src/Carousel/Carousel.js ***!
    \**********************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_slick__ = __webpack_require__(/*! react-slick */ "./node_modules/react-slick/lib/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_slick___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_slick__);
  var _jsxFileName = "C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\Carousel\\Carousel.js";
  
  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; }; }();
  
  function _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; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  var Carousel = function (_React$Component) {
    _inherits(Carousel, _React$Component);
  
    function Carousel() {
      _classCallCheck(this, Carousel);
  
      return _possibleConstructorReturn(this, (Carousel.__proto__ || Object.getPrototypeOf(Carousel)).apply(this, arguments));
    }
  
    _createClass(Carousel, [{
      key: "render",
      value: function render() {
        var _settings;
  
        var settings = (_settings = {
          dots: true,
          infinite: true,
          slidesToShow: 3,
          slidesToScroll: 1
        }, _defineProperty(_settings, "infinite", true), _defineProperty(_settings, "autoplay", true), _defineProperty(_settings, "autoplaySpeed", 5000), _defineProperty(_settings, "pauseOnHover", false), _defineProperty(_settings, "centerMode", true), _defineProperty(_settings, "centerPadding", "0"), _settings);
  
        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
          "div",
          { className: "container sizing", __source: {
              fileName: _jsxFileName,
              lineNumber: 21
            },
            __self: this
          },
          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
            __WEBPACK_IMPORTED_MODULE_1_react_slick___default.a,
            Object.assign({}, settings, {
              __source: {
                fileName: _jsxFileName,
                lineNumber: 22
              },
              __self: this
            }),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 23
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://static.vibe.com/files/2018/01/black-panther-poster-1517325222-640x933.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 24
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 26
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://i.ebayimg.com/images/g/VckAAOSwEK9UCOef/s-l1600.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 27
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 29
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://i.ebayimg.com/images/g/Tf8AAOSwnGJWS4uw/s-l1600.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 30
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 32
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "http://img.auctiva.com/imgdata/1/1/7/9/1/0/1/webimg/560106212_o.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 33
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 35
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://i.ebayimg.com/images/g/CV4AAOSwGvhUCOid/s-l1600.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 36
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 38
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://i.ebayimg.com/images/g/mnIAAOSwnipWWiwy/s-l1600.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 39
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 41
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://jbchost.com.br/akibaspace/media/2017/02/promologan.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 42
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 44
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "http://digitalspyuk.cdnds.net/17/12/480x681/john-wick-chapter-2-poster.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 45
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 47
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "https://www.dvdsreleasedates.com/posters/800/T/The-Avengers-2012-movie-poster.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 48
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 50
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "http://media.comicbook.com/2017/10/guardians-of-the-galaxy-movie-poster-marvel-cinematic-universe-1038897.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 51
                },
                __self: this
              })
            ),
            __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "div",
              {
                __source: {
                  fileName: _jsxFileName,
                  lineNumber: 53
                },
                __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement("img", { src: "http://www.fatmovieguy.com/wp-content/uploads/2015/04/Batman-V-Superman-Dawn-of-Justice-Movie-Poster.jpg", __source: {
                  fileName: _jsxFileName,
                  lineNumber: 54
                },
                __self: this
              })
            )
          )
        );
      }
    }]);
  
    return Carousel;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  /* harmony default export */ __webpack_exports__["a"] = (Carousel);
  
  /***/ }),
  
  /***/ "./src/Footer/Footer.js":
  /*!******************************!*\
    !*** ./src/Footer/Footer.js ***!
    \******************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  var _jsxFileName = "C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\Footer\\Footer.js";
  
  
  function Footer(props) {
      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
          "div",
          {
              __source: {
                  fileName: _jsxFileName,
                  lineNumber: 5
              },
              __self: this
          },
          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              "footer",
              { "class": "page-footer font-small indigo pt-0", __source: {
                      fileName: _jsxFileName,
                      lineNumber: 6
                  },
                  __self: this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                  "div",
                  { "class": "container", __source: {
                          fileName: _jsxFileName,
                          lineNumber: 7
                      },
                      __self: this
                  },
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      "div",
                      { "class": "row", __source: {
                              fileName: _jsxFileName,
                              lineNumber: 8
                          },
                          __self: this
                      },
                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                          "div",
                          { "class": "col-md-12 py-5", __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 9
                              },
                              __self: this
                          },
                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                              "div",
                              { "class": "mb-5 flex-center thirdparty", __source: {
                                      fileName: _jsxFileName,
                                      lineNumber: 10
                                  },
                                  __self: this
                              },
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "fb-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 11
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-facebook fa-lg white-text mr-md-5 mr-3 fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 12
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "tw-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 14
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-twitter fa-lg white-text mr-md-5 mr-3 fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 15
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "gplus-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 17
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-google-plus fa-lg white-text mr-md-5 mr-3 fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 18
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "li-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 20
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-linkedin fa-lg white-text mr-md-5 mr-3 fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 21
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "ins-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 23
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-instagram fa-lg white-text mr-md-5 mr-3 fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 24
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  "a",
                                  { "class": "pin-ic", __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 26
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      "i",
                                      { "class": "fa fa-pinterest fa-lg white-text fa-2x", __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 27
                                          },
                                          __self: this
                                      },
                                      " "
                                  )
                              )
                          )
                      )
                  )
              ),
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                  "div",
                  { "class": "footer-copyright py-3 text-center", __source: {
                          fileName: _jsxFileName,
                          lineNumber: 33
                      },
                      __self: this
                  },
                  "\xA9 2018 Copyright:"
              ),
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                  "div",
                  {
                      __source: {
                          fileName: _jsxFileName,
                          lineNumber: 36
                      },
                      __self: this
                  },
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      "a",
                      { href: "", __source: {
                              fileName: _jsxFileName,
                              lineNumber: 37
                          },
                          __self: this
                      },
                      " Terms "
                  ),
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      "a",
                      { href: "", __source: {
                              fileName: _jsxFileName,
                              lineNumber: 38
                          },
                          __self: this
                      },
                      " AboutUs"
                  ),
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      "a",
                      { href: "", __source: {
                              fileName: _jsxFileName,
                              lineNumber: 39
                          },
                          __self: this
                      },
                      " Help"
                  )
              )
          )
      );
  }
  
  /* harmony default export */ __webpack_exports__["a"] = (Footer);
  
  /***/ }),
  
  /***/ "./src/NavBar/NavBar.js":
  /*!******************************!*\
    !*** ./src/NavBar/NavBar.js ***!
    \******************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js");
  var _jsxFileName = 'C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\NavBar\\NavBar.js';
  
  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; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  var NavBar = function (_React$Component) {
      _inherits(NavBar, _React$Component);
  
      function NavBar() {
          _classCallCheck(this, NavBar);
  
          return _possibleConstructorReturn(this, (NavBar.__proto__ || Object.getPrototypeOf(NavBar)).apply(this, arguments));
      }
  
      _createClass(NavBar, [{
          key: 'render',
          value: function render() {
              return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                  'div',
                  { className: '', __source: {
                          fileName: _jsxFileName,
                          lineNumber: 7
                      },
                      __self: this
                  },
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      'div',
                      { className: 'bstyle', __source: {
                              fileName: _jsxFileName,
                              lineNumber: 8
                          },
                          __self: this
                      },
                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                          'div',
                          { className: 'container txtAll', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 9
                              },
                              __self: this
                          },
                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                              'span',
                              { className: 'sptext', __source: {
                                      fileName: _jsxFileName,
                                      lineNumber: 10
                                  },
                                  __self: this
                              },
                              ' Welcome to MoviePosterArena '
                          )
                      )
                  ),
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                      'nav',
                      { className: 'navbar navbar-expand-lg navbar-light bg-light', __source: {
                              fileName: _jsxFileName,
                              lineNumber: 13
                          },
                          __self: this
                      },
                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                          'a',
                          { className: 'navbar-brand brandstyle', href: '#', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 14
                              },
                              __self: this
                          },
                          'MoviePosterArena',
                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('i', { className: 'fa fa-grav dia', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 15
                              },
                              __self: this
                          })
                      ),
                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                          'button',
                          { className: 'navbar-toggler', type: 'button', 'data-toggle': 'collapse', 'data-target': '#navbarSupportedContent', 'aria-controls': 'navbarSupportedContent', 'aria-expanded': 'false', 'aria-label': 'Toggle navigation', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 18
                              },
                              __self: this
                          },
                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('span', { className: 'navbar-toggler-icon', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 19
                              },
                              __self: this
                          })
                      ),
                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                          'div',
                          { className: 'container navstyle', __source: {
                                  fileName: _jsxFileName,
                                  lineNumber: 21
                              },
                              __self: this
                          },
                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                              'div',
                              { className: 'collapse navbar-collapse', id: 'navbarSupportedContent', __source: {
                                      fileName: _jsxFileName,
                                      lineNumber: 22
                                  },
                                  __self: this
                              },
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  'ul',
                                  { className: 'navbar-nav mr-auto', __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 23
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 24
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link', href: '#', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 25
                                              },
                                              __self: this
                                          },
                                          'Home ',
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'span',
                                              { className: 'sr-only', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 25
                                                  },
                                                  __self: this
                                              },
                                              '(current)'
                                          )
                                      )
                                  ),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 27
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link', href: '#', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 28
                                              },
                                              __self: this
                                          },
                                          'MoviePosters ',
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'span',
                                              { className: 'sr-only', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 28
                                                  },
                                                  __self: this
                                              },
                                              '(current)'
                                          )
                                      )
                                  ),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 30
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link', href: '#', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 31
                                              },
                                              __self: this
                                          },
                                          'MostPopular ',
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'span',
                                              { className: 'sr-only', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 31
                                                  },
                                                  __self: this
                                              },
                                              '(current)'
                                          )
                                      )
                                  ),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 33
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link', href: '#', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 34
                                              },
                                              __self: this
                                          },
                                          'NewArrivals ',
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'span',
                                              { className: 'sr-only', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 34
                                                  },
                                                  __self: this
                                              },
                                              '(current)'
                                          )
                                      )
                                  ),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 36
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link', href: '#', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 37
                                              },
                                              __self: this
                                          },
                                          'Disney ',
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'span',
                                              { className: 'sr-only', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 37
                                                  },
                                                  __self: this
                                              },
                                              '(current)'
                                          )
                                      )
                                  ),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'li',
                                      { className: 'nav-item dropdown', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 39
                                          },
                                          __self: this
                                      },
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'a',
                                          { className: 'nav-link dropdown-toggle', href: '#', id: 'navbarDropdown', role: 'button', 'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 40
                                              },
                                              __self: this
                                          },
                                          'More'
                                      ),
                                      __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                          'div',
                                          { className: 'dropdown-menu', 'aria-labelledby': 'navbarDropdown', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 43
                                              },
                                              __self: this
                                          },
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'a',
                                              { className: 'dropdown-item', href: '#', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 44
                                                  },
                                                  __self: this
                                              },
                                              'Sports'
                                          ),
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'a',
                                              { className: 'dropdown-item', href: '#', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 45
                                                  },
                                                  __self: this
                                              },
                                              'Actors'
                                          ),
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'a',
                                              { className: 'dropdown-item', href: '#', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 46
                                                  },
                                                  __self: this
                                              },
                                              'Art'
                                          ),
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'a',
                                              { className: 'dropdown-item', href: '#', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 47
                                                  },
                                                  __self: this
                                              },
                                              'Music'
                                          ),
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div', { className: 'dropdown-divider', __source: {
                                                  fileName: _jsxFileName,
                                                  lineNumber: 48
                                              },
                                              __self: this
                                          }),
                                          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                              'a',
                                              { className: 'dropdown-item', href: '#', __source: {
                                                      fileName: _jsxFileName,
                                                      lineNumber: 49
                                                  },
                                                  __self: this
                                              },
                                              'OtherPosters'
                                          )
                                      )
                                  )
                              ),
                              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                  'form',
                                  { className: 'form-inline my-2 my-lg-0', __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 53
                                      },
                                      __self: this
                                  },
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('input', { className: 'form-control mr-sm-2', type: 'search', placeholder: 'Search', 'aria-label': 'Search', __source: {
                                          fileName: _jsxFileName,
                                          lineNumber: 54
                                      },
                                      __self: this
                                  }),
                                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                                      'button',
                                      { className: 'btn btn-outline-primary my-2 my-sm-0', type: 'submit', __source: {
                                              fileName: _jsxFileName,
                                              lineNumber: 55
                                          },
                                          __self: this
                                      },
                                      'Search'
                                  )
                              )
                          )
                      )
                  ),
                  __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('div', {
                      __source: {
                          fileName: _jsxFileName,
                          lineNumber: 60
                      },
                      __self: this
                  })
              );
          }
      }]);
  
      return NavBar;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  /* harmony default export */ __webpack_exports__["a"] = (NavBar);
  
  /***/ }),
  
  /***/ "./src/Posters/Posters.js":
  /*!********************************!*\
    !*** ./src/Posters/Posters.js ***!
    \********************************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js");
  var _jsxFileName = 'C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\Posters\\Posters.js';
  
  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; }; }();
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _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; }
  
  function _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; }
  
  
  
  
  var Posters = function (_React$Component) {
      _inherits(Posters, _React$Component);
  
      function Posters() {
          _classCallCheck(this, Posters);
  
          return _possibleConstructorReturn(this, (Posters.__proto__ || Object.getPrototypeOf(Posters)).apply(this, arguments));
      }
  
      _createClass(Posters, [{
          key: 'render',
          value: function render() {
              return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
                  'div',
                  {
                      __source: {
                          fileName: _jsxFileName,
                          lineNumber: 7
                      },
                      __self: this
                  },
                  'hello'
              );
          }
      }]);
  
      return Posters;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  /* harmony default export */ __webpack_exports__["a"] = (Posters);
  
  /***/ }),
  
  /***/ "./src/index.js":
  /*!**********************!*\
    !*** ./src/index.js ***!
    \**********************/
  /*! no exports provided */
  /*! all exports used */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__index_css__ = __webpack_require__(/*! ./index.css */ "./src/index.css");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__index_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__index_css__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__routes__ = __webpack_require__(/*! ./routes */ "./src/routes.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__registerServiceWorker__ = __webpack_require__(/*! ./registerServiceWorker */ "./src/registerServiceWorker.js");
  var _jsxFileName = 'C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\index.js';
  
  
  
  
  
  
  __WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.render(__WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_3__routes__["a" /* default */], {
    __source: {
      fileName: _jsxFileName,
      lineNumber: 8
    },
    __self: this
  }), document.getElementById('root'));
  Object(__WEBPACK_IMPORTED_MODULE_4__registerServiceWorker__["a" /* default */])();
  
  /***/ }),
  
  /***/ "./src/logo.svg":
  /*!**********************!*\
    !*** ./src/logo.svg ***!
    \**********************/
  /*! dynamic exports provided */
  /***/ (function(module, exports, __webpack_require__) {
  
  module.exports = __webpack_require__.p + "static/media/logo.8e0f8010.svg";
  
  /***/ }),
  
  /***/ "./src/routes.js":
  /*!***********************!*\
    !*** ./src/routes.js ***!
    \***********************/
  /*! exports provided: default */
  /*! exports used: default */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_router_dom__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router-dom/es/index.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__NavBar_NavBar__ = __webpack_require__(/*! ./NavBar/NavBar */ "./src/NavBar/NavBar.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Carousel_Carousel__ = __webpack_require__(/*! ./Carousel/Carousel */ "./src/Carousel/Carousel.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Footer_Footer__ = __webpack_require__(/*! ./Footer/Footer */ "./src/Footer/Footer.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Posters_Posters__ = __webpack_require__(/*! ./Posters/Posters */ "./src/Posters/Posters.js");
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__App__ = __webpack_require__(/*! ./App */ "./src/App.js");
  var _jsxFileName = 'C:\\StarterProject\\MoviePosterArena\\StarterProject\\MovieArtArena.Web\\app\\public\\src\\routes.js',
      _this = this;
  
  
  
  
  
  
  
  
  
  var Routes = function Routes() {
      return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
          __WEBPACK_IMPORTED_MODULE_1_react_router_dom__["a" /* BrowserRouter */],
          {
              __source: {
                  fileName: _jsxFileName,
                  lineNumber: 12
              },
              __self: _this
          },
          __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
              'div',
              {
                  __source: {
                      fileName: _jsxFileName,
                      lineNumber: 13
                  },
                  __self: _this
              },
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_2__NavBar_NavBar__["a" /* default */], {
                  __source: {
                      fileName: _jsxFileName,
                      lineNumber: 14
                  },
                  __self: _this
              }),
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__["b" /* Route */], { exact: true, path: '/', component: __WEBPACK_IMPORTED_MODULE_6__App__["a" /* default */], __source: {
                      fileName: _jsxFileName,
                      lineNumber: 15
                  },
                  __self: _this
              }),
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_1_react_router_dom__["b" /* Route */], { path: '/Posters', component: __WEBPACK_IMPORTED_MODULE_5__Posters_Posters__["a" /* default */], __source: {
                      fileName: _jsxFileName,
                      lineNumber: 16
                  },
                  __self: _this
              }),
              __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_5__Posters_Posters__["a" /* default */], {
                  __source: {
                      fileName: _jsxFileName,
                      lineNumber: 17
                  },
                  __self: _this
              })
          )
      );
  };
  
  /* harmony default export */ __webpack_exports__["a"] = (Routes);
  
  /***/ })
  
  })
  //# sourceMappingURL=0.f850043b22315248b54d.hot-update.js.map