{"version":3,"sources":["webpack:///webpack/bootstrap 66527a5c94ec11a76422","webpack:///./index.js","webpack:///./~/react/react.js","webpack:///./~/react/lib/React.js","webpack:///./~/react/lib/ReactDOM.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/react/lib/ReactDOMTextComponent.js","webpack:///./~/react/lib/DOMChildrenOperations.js","webpack:///./~/react/lib/Danger.js","webpack:///./~/react/~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/react/~/fbjs/lib/createNodesFromMarkup.js","webpack:///./~/react/~/fbjs/lib/createArrayFromMixed.js","webpack:///./~/react/~/fbjs/lib/toArray.js","webpack:///./~/react/~/fbjs/lib/invariant.js","webpack:///./~/react/~/fbjs/lib/getMarkupWrap.js","webpack:///./~/react/~/fbjs/lib/emptyFunction.js","webpack:///./~/react/lib/ReactMultiChildUpdateTypes.js","webpack:///./~/react/~/fbjs/lib/keyMirror.js","webpack:///./~/react/lib/ReactPerf.js","webpack:///./~/react/lib/setInnerHTML.js","webpack:///./~/react/lib/setTextContent.js","webpack:///./~/react/lib/escapeTextContentForBrowser.js","webpack:///./~/react/lib/DOMPropertyOperations.js","webpack:///./~/react/lib/DOMProperty.js","webpack:///./~/react/lib/quoteAttributeValueForBrowser.js","webpack:///./~/react/~/fbjs/lib/warning.js","webpack:///./~/react/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/react/lib/ReactDOMIDOperations.js","webpack:///./~/react/lib/ReactMount.js","webpack:///./~/react/lib/ReactBrowserEventEmitter.js","webpack:///./~/react/lib/EventConstants.js","webpack:///./~/react/lib/EventPluginHub.js","webpack:///./~/react/lib/EventPluginRegistry.js","webpack:///./~/react/lib/EventPluginUtils.js","webpack:///./~/react/lib/ReactErrorUtils.js","webpack:///./~/react/lib/accumulateInto.js","webpack:///./~/react/lib/forEachAccumulated.js","webpack:///./~/react/lib/ReactEventEmitterMixin.js","webpack:///./~/react/lib/ViewportMetrics.js","webpack:///./~/react/lib/Object.assign.js","webpack:///./~/react/lib/isEventSupported.js","webpack:///./~/react/lib/ReactDOMFeatureFlags.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/ReactEmptyComponentRegistry.js","webpack:///./~/react/lib/ReactInstanceHandles.js","webpack:///./~/react/lib/ReactRootIndex.js","webpack:///./~/react/lib/ReactInstanceMap.js","webpack:///./~/react/lib/ReactMarkupChecksum.js","webpack:///./~/react/lib/adler32.js","webpack:///./~/react/lib/ReactReconciler.js","webpack:///./~/react/lib/ReactRef.js","webpack:///./~/react/lib/ReactOwner.js","webpack:///./~/react/lib/ReactUpdateQueue.js","webpack:///./~/react/lib/ReactUpdates.js","webpack:///./~/react/lib/CallbackQueue.js","webpack:///./~/react/lib/PooledClass.js","webpack:///./~/react/lib/Transaction.js","webpack:///./~/react/~/fbjs/lib/emptyObject.js","webpack:///./~/react/~/fbjs/lib/containsNode.js","webpack:///./~/react/~/fbjs/lib/isTextNode.js","webpack:///./~/react/~/fbjs/lib/isNode.js","webpack:///./~/react/lib/instantiateReactComponent.js","webpack:///./~/react/lib/ReactCompositeComponent.js","webpack:///./~/react/lib/ReactComponentEnvironment.js","webpack:///./~/react/lib/ReactPropTypeLocations.js","webpack:///./~/react/lib/ReactPropTypeLocationNames.js","webpack:///./~/react/lib/shouldUpdateReactComponent.js","webpack:///./~/react/lib/ReactEmptyComponent.js","webpack:///./~/react/lib/ReactNativeComponent.js","webpack:///./~/react/lib/validateDOMNesting.js","webpack:///./~/react/lib/ReactDefaultInjection.js","webpack:///./~/react/lib/BeforeInputEventPlugin.js","webpack:///./~/react/lib/EventPropagators.js","webpack:///./~/react/lib/FallbackCompositionState.js","webpack:///./~/react/lib/getTextContentAccessor.js","webpack:///./~/react/lib/SyntheticCompositionEvent.js","webpack:///./~/react/lib/SyntheticEvent.js","webpack:///./~/react/lib/SyntheticInputEvent.js","webpack:///./~/react/~/fbjs/lib/keyOf.js","webpack:///./~/react/lib/ChangeEventPlugin.js","webpack:///./~/react/lib/getEventTarget.js","webpack:///./~/react/lib/isTextInputElement.js","webpack:///./~/react/lib/ClientReactRootIndex.js","webpack:///./~/react/lib/DefaultEventPluginOrder.js","webpack:///./~/react/lib/EnterLeaveEventPlugin.js","webpack:///./~/react/lib/SyntheticMouseEvent.js","webpack:///./~/react/lib/SyntheticUIEvent.js","webpack:///./~/react/lib/getEventModifierState.js","webpack:///./~/react/lib/HTMLDOMPropertyConfig.js","webpack:///./~/react/lib/ReactBrowserComponentMixin.js","webpack:///./~/react/lib/findDOMNode.js","webpack:///./~/react/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/react/lib/ReactDOMComponent.js","webpack:///./~/react/lib/AutoFocusUtils.js","webpack:///./~/react/~/fbjs/lib/focusNode.js","webpack:///./~/react/lib/CSSPropertyOperations.js","webpack:///./~/react/lib/CSSProperty.js","webpack:///./~/react/~/fbjs/lib/camelizeStyleName.js","webpack:///./~/react/~/fbjs/lib/camelize.js","webpack:///./~/react/lib/dangerousStyleValue.js","webpack:///./~/react/~/fbjs/lib/hyphenateStyleName.js","webpack:///./~/react/~/fbjs/lib/hyphenate.js","webpack:///./~/react/~/fbjs/lib/memoizeStringOnly.js","webpack:///./~/react/lib/ReactDOMButton.js","webpack:///./~/react/lib/ReactDOMInput.js","webpack:///./~/react/lib/LinkedValueUtils.js","webpack:///./~/react/lib/ReactPropTypes.js","webpack:///./~/react/lib/getIteratorFn.js","webpack:///./~/react/lib/ReactDOMOption.js","webpack:///./~/react/lib/ReactChildren.js","webpack:///./~/react/lib/traverseAllChildren.js","webpack:///./~/react/lib/ReactDOMSelect.js","webpack:///./~/react/lib/ReactDOMTextarea.js","webpack:///./~/react/lib/ReactMultiChild.js","webpack:///./~/react/lib/ReactChildReconciler.js","webpack:///./~/react/lib/flattenChildren.js","webpack:///./~/react/~/fbjs/lib/shallowEqual.js","webpack:///./~/react/lib/ReactEventListener.js","webpack:///./~/react/~/fbjs/lib/EventListener.js","webpack:///./~/react/~/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/react/lib/ReactInjection.js","webpack:///./~/react/lib/ReactClass.js","webpack:///./~/react/lib/ReactComponent.js","webpack:///./~/react/lib/ReactNoopUpdateQueue.js","webpack:///./~/react/lib/ReactReconcileTransaction.js","webpack:///./~/react/lib/ReactInputSelection.js","webpack:///./~/react/lib/ReactDOMSelection.js","webpack:///./~/react/lib/getNodeForCharacterOffset.js","webpack:///./~/react/~/fbjs/lib/getActiveElement.js","webpack:///./~/react/lib/SelectEventPlugin.js","webpack:///./~/react/lib/ServerReactRootIndex.js","webpack:///./~/react/lib/SimpleEventPlugin.js","webpack:///./~/react/lib/SyntheticClipboardEvent.js","webpack:///./~/react/lib/SyntheticFocusEvent.js","webpack:///./~/react/lib/SyntheticKeyboardEvent.js","webpack:///./~/react/lib/getEventCharCode.js","webpack:///./~/react/lib/getEventKey.js","webpack:///./~/react/lib/SyntheticDragEvent.js","webpack:///./~/react/lib/SyntheticTouchEvent.js","webpack:///./~/react/lib/SyntheticWheelEvent.js","webpack:///./~/react/lib/SVGDOMPropertyConfig.js","webpack:///./~/react/lib/ReactDefaultPerf.js","webpack:///./~/react/lib/ReactDefaultPerfAnalysis.js","webpack:///./~/react/~/fbjs/lib/performanceNow.js","webpack:///./~/react/~/fbjs/lib/performance.js","webpack:///./~/react/lib/ReactVersion.js","webpack:///./~/react/lib/renderSubtreeIntoContainer.js","webpack:///./~/react/lib/ReactDOMServer.js","webpack:///./~/react/lib/ReactServerRendering.js","webpack:///./~/react/lib/ReactServerBatchingStrategy.js","webpack:///./~/react/lib/ReactServerRenderingTransaction.js","webpack:///./~/react/lib/ReactIsomorphic.js","webpack:///./~/react/lib/ReactDOMFactories.js","webpack:///./~/react/lib/ReactElementValidator.js","webpack:///./~/react/~/fbjs/lib/mapObject.js","webpack:///./~/react/lib/onlyChild.js","webpack:///./~/react/lib/deprecated.js","webpack:///./~/react-dom/index.js","webpack:///./Ticker.js","webpack:///./~/react-motion/lib/react-motion.js","webpack:///./~/react-motion/lib/components.js","webpack:///./~/react-motion/lib/noVelocity.js","webpack:///./~/react-motion/lib/hasReachedStyle.js","webpack:///./~/react-motion/lib/mergeDiff.js","webpack:///./~/react-motion/lib/animationLoop.js","webpack:///./~/react-motion/~/performance-now/lib/performance-now.js","webpack:///./~/react-motion/~/raf/index.js","webpack:///./~/react-motion/lib/zero.js","webpack:///./~/react-motion/lib/updateTree.js","webpack:///./~/react-motion/lib/stepper.js","webpack:///./~/react-motion/lib/spring.js","webpack:///./~/react-motion/lib/presets.js","webpack:///./~/react-motion/lib/deprecatedSprings.js","webpack:///./~/react-motion/lib/stripStyle.js","webpack:///./~/react-motion/lib/reorderKeys.js"],"names":[],"mappings":"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","file":"out.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 66527a5c94ec11a76422\n **/","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Ticker from './Ticker';\n\nconst data = [\n  { id: 'a', text: 'Hello World!' },\n  { id: 'b', text: 'Sweet component!' },\n  { id: 'c', text: 'Foo bar' },\n  { id: 'd', text: 'Longer text' },\n];\n\nconst root = document.getElementById('root');\n\nlet idx = -1;\nfunction render() {\n  idx = (++idx) % data.length;\n  ReactDOM.render(<Ticker item={data[idx]} />, root);\n}\n\nrender();\nsetInterval(render, 2000);\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/react.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar ReactDOM = require('./ReactDOM');\nvar ReactDOMServer = require('./ReactDOMServer');\nvar ReactIsomorphic = require('./ReactIsomorphic');\n\nvar assign = require('./Object.assign');\nvar deprecated = require('./deprecated');\n\n// `version` will be added here by ReactIsomorphic.\nvar React = {};\n\nassign(React, ReactIsomorphic);\n\nassign(React, {\n  // ReactDOM\n  findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode),\n  render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render),\n  unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode),\n\n  // ReactDOMServer\n  renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString),\n  renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup)\n});\n\nReact.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;\n\nmodule.exports = React;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/React.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar render = ReactPerf.measure('React', 'render', ReactMount.render);\n\nvar React = {\n  findDOMNode: findDOMNode,\n  render: render,\n  unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n  version: ReactVersion,\n\n  /* eslint-disable camelcase */\n  unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n  unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n    CurrentOwner: ReactCurrentOwner,\n    InstanceHandles: ReactInstanceHandles,\n    Mount: ReactMount,\n    Reconciler: ReactReconciler,\n    TextComponent: ReactDOMTextComponent\n  });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n    // First check if devtools is not installed\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n      // If we're in Chrome or Firefox, provide a download link if not installed.\n      if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n        console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools');\n      }\n    }\n\n    // If we're in IE8, check to see if we are in compatibility mode and provide\n    // information on preventing compatibility mode\n    var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n    process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : undefined;\n\n    var expectedFeatures = [\n    // shims\n    Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim,\n\n    // shams\n    Object.create, Object.freeze];\n\n    for (var i = 0; i < expectedFeatures.length; i++) {\n      if (!expectedFeatures[i]) {\n        console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills');\n        break;\n      }\n    }\n  }\n}\n\nmodule.exports = React;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOM.js\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/** WEBPACK FOOTER **\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactCurrentOwner.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactMount = require('./ReactMount');\n\nvar assign = require('./Object.assign');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setTextContent = require('./setTextContent');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n *  - When mounting text into the DOM, adjacent text nodes are merged.\n *  - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings in elements so that they can undergo\n * the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (props) {\n  // This constructor and its argument is currently used by mocks.\n};\n\nassign(ReactDOMTextComponent.prototype, {\n\n  /**\n   * @param {ReactText} text\n   * @internal\n   */\n  construct: function (text) {\n    // TODO: This is really a ReactText (ReactNode), not a ReactElement\n    this._currentElement = text;\n    this._stringText = '' + text;\n\n    // Properties\n    this._rootNodeID = null;\n    this._mountIndex = 0;\n  },\n\n  /**\n   * Creates the markup for this text node. This node is not intended to have\n   * any features besides containing text content.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {string} Markup for this text node.\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    this._rootNodeID = rootID;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement('span');\n      DOMPropertyOperations.setAttributeForID(el, rootID);\n      // Populate node cache\n      ReactMount.getID(el);\n      setTextContent(el, this._stringText);\n      return el;\n    } else {\n      var escapedText = escapeTextContentForBrowser(this._stringText);\n\n      if (transaction.renderToStaticMarkup) {\n        // Normally we'd wrap this in a `span` for the reasons stated above, but\n        // since this is a situation where React won't take over (static pages),\n        // we can simply return the text as it is.\n        return escapedText;\n      }\n\n      return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>';\n    }\n  },\n\n  /**\n   * Updates this component by updating the text content.\n   *\n   * @param {ReactText} nextText The next text content\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  receiveComponent: function (nextText, transaction) {\n    if (nextText !== this._currentElement) {\n      this._currentElement = nextText;\n      var nextStringText = '' + nextText;\n      if (nextStringText !== this._stringText) {\n        // TODO: Save this as pending props and use performUpdateIfNecessary\n        // and/or updateComponent to do the actual update for consistency with\n        // other component types?\n        this._stringText = nextStringText;\n        var node = ReactMount.getNode(this._rootNodeID);\n        DOMChildrenOperations.updateTextContent(node, nextStringText);\n      }\n    }\n  },\n\n  unmountComponent: function () {\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n  }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMTextComponent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar Danger = require('./Danger');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\nvar ReactPerf = require('./ReactPerf');\n\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n  // By exploiting arrays returning `undefined` for an undefined index, we can\n  // rely exclusively on `insertBefore(node, null)` instead of also using\n  // `appendChild(node)`. However, using `undefined` is not allowed by all\n  // browsers so we must replace it with `null`.\n\n  // fix render order error in safari\n  // IE8 will throw error when index out of list size.\n  var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index);\n\n  parentNode.insertBefore(childNode, beforeChild);\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n  dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n  updateTextContent: setTextContent,\n\n  /**\n   * Updates a component's children by processing a series of updates. The\n   * update configurations are each expected to have a `parentNode` property.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markupList List of markup strings.\n   * @internal\n   */\n  processUpdates: function (updates, markupList) {\n    var update;\n    // Mapping from parent IDs to initial child orderings.\n    var initialChildren = null;\n    // List of children that will be moved or removed.\n    var updatedChildren = null;\n\n    for (var i = 0; i < updates.length; i++) {\n      update = updates[i];\n      if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n        var updatedIndex = update.fromIndex;\n        var updatedChild = update.parentNode.childNodes[updatedIndex];\n        var parentID = update.parentID;\n\n        !updatedChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined;\n\n        initialChildren = initialChildren || {};\n        initialChildren[parentID] = initialChildren[parentID] || [];\n        initialChildren[parentID][updatedIndex] = updatedChild;\n\n        updatedChildren = updatedChildren || [];\n        updatedChildren.push(updatedChild);\n      }\n    }\n\n    var renderedMarkup;\n    // markupList is either a list of markup or just a list of elements\n    if (markupList.length && typeof markupList[0] === 'string') {\n      renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);\n    } else {\n      renderedMarkup = markupList;\n    }\n\n    // Remove updated children first so that `toIndex` is consistent.\n    if (updatedChildren) {\n      for (var j = 0; j < updatedChildren.length; j++) {\n        updatedChildren[j].parentNode.removeChild(updatedChildren[j]);\n      }\n    }\n\n    for (var k = 0; k < updates.length; k++) {\n      update = updates[k];\n      switch (update.type) {\n        case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n          insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n          insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.SET_MARKUP:\n          setInnerHTML(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n          setTextContent(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.REMOVE_NODE:\n          // Already removed by the for-loop above.\n          break;\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {\n  updateTextContent: 'updateTextContent'\n});\n\nmodule.exports = DOMChildrenOperations;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/DOMChildrenOperations.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getMarkupWrap = require('fbjs/lib/getMarkupWrap');\nvar invariant = require('fbjs/lib/invariant');\n\nvar OPEN_TAG_NAME_EXP = /^(<[^ \\/>]+)/;\nvar RESULT_INDEX_ATTR = 'data-danger-index';\n\n/**\n * Extracts the `nodeName` from a string of markup.\n *\n * NOTE: Extracting the `nodeName` does not require a regular expression match\n * because we make assumptions about React-generated markup (i.e. there are no\n * spaces surrounding the opening tag and there is at least one attribute).\n *\n * @param {string} markup String of markup.\n * @return {string} Node name of the supplied markup.\n * @see http://jsperf.com/extract-nodename\n */\nfunction getNodeName(markup) {\n  return markup.substring(1, markup.indexOf(' '));\n}\n\nvar Danger = {\n\n  /**\n   * Renders markup into an array of nodes. The markup is expected to render\n   * into a list of root nodes. Also, the length of `resultList` and\n   * `markupList` should be the same.\n   *\n   * @param {array<string>} markupList List of markup strings to render.\n   * @return {array<DOMElement>} List of rendered nodes.\n   * @internal\n   */\n  dangerouslyRenderMarkup: function (markupList) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined;\n    var nodeName;\n    var markupByNodeName = {};\n    // Group markup by `nodeName` if a wrap is necessary, else by '*'.\n    for (var i = 0; i < markupList.length; i++) {\n      !markupList[i] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined;\n      nodeName = getNodeName(markupList[i]);\n      nodeName = getMarkupWrap(nodeName) ? nodeName : '*';\n      markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];\n      markupByNodeName[nodeName][i] = markupList[i];\n    }\n    var resultList = [];\n    var resultListAssignmentCount = 0;\n    for (nodeName in markupByNodeName) {\n      if (!markupByNodeName.hasOwnProperty(nodeName)) {\n        continue;\n      }\n      var markupListByNodeName = markupByNodeName[nodeName];\n\n      // This for-in loop skips the holes of the sparse array. The order of\n      // iteration should follow the order of assignment, which happens to match\n      // numerical index order, but we don't rely on that.\n      var resultIndex;\n      for (resultIndex in markupListByNodeName) {\n        if (markupListByNodeName.hasOwnProperty(resultIndex)) {\n          var markup = markupListByNodeName[resultIndex];\n\n          // Push the requested markup with an additional RESULT_INDEX_ATTR\n          // attribute.  If the markup does not start with a < character, it\n          // will be discarded below (with an appropriate console.error).\n          markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP,\n          // This index will be parsed back out below.\n          '$1 ' + RESULT_INDEX_ATTR + '=\"' + resultIndex + '\" ');\n        }\n      }\n\n      // Render each group of markup with similar wrapping `nodeName`.\n      var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags.\n      );\n\n      for (var j = 0; j < renderNodes.length; ++j) {\n        var renderNode = renderNodes[j];\n        if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) {\n\n          resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);\n          renderNode.removeAttribute(RESULT_INDEX_ATTR);\n\n          !!resultList.hasOwnProperty(resultIndex) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined;\n\n          resultList[resultIndex] = renderNode;\n\n          // This should match resultList.length and markupList.length when\n          // we're done.\n          resultListAssignmentCount += 1;\n        } else if (process.env.NODE_ENV !== 'production') {\n          console.error('Danger: Discarding unexpected node:', renderNode);\n        }\n      }\n    }\n\n    // Although resultList was populated out of order, it should now be a dense\n    // array.\n    !(resultListAssignmentCount === resultList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined;\n\n    !(resultList.length === markupList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined;\n\n    return resultList;\n  },\n\n  /**\n   * Replaces a node with a string of markup at its current position within its\n   * parent. The markup must render into a single root node.\n   *\n   * @param {DOMElement} oldChild Child node to replace.\n   * @param {string} markup Markup to render in place of the child node.\n   * @internal\n   */\n  dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n    !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined;\n    !(oldChild.tagName.toLowerCase() !== 'html') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined;\n\n    var newChild;\n    if (typeof markup === 'string') {\n      newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n    } else {\n      newChild = markup;\n    }\n    oldChild.parentNode.replaceChild(newChild, oldChild);\n  }\n\n};\n\nmodule.exports = Danger;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/Danger.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/ExecutionEnvironment.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createNodesFromMarkup\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n  var nodeNameMatch = markup.match(nodeNamePattern);\n  return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n  var node = dummyNode;\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined;\n  var nodeName = getNodeName(markup);\n\n  var wrap = nodeName && getMarkupWrap(nodeName);\n  if (wrap) {\n    node.innerHTML = wrap[1] + markup + wrap[2];\n\n    var wrapDepth = wrap[0];\n    while (wrapDepth--) {\n      node = node.lastChild;\n    }\n  } else {\n    node.innerHTML = markup;\n  }\n\n  var scripts = node.getElementsByTagName('script');\n  if (scripts.length) {\n    !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined;\n    createArrayFromMixed(scripts).forEach(handleScript);\n  }\n\n  var nodes = createArrayFromMixed(node.childNodes);\n  while (node.lastChild) {\n    node.removeChild(node.lastChild);\n  }\n  return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/createNodesFromMarkup.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createArrayFromMixed\n * @typechecks\n */\n\n'use strict';\n\nvar toArray = require('./toArray');\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n *   A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n *   Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n  return(\n    // not null/false\n    !!obj && (\n    // arrays are objects, NodeLists are functions in Safari\n    typeof obj == 'object' || typeof obj == 'function') &&\n    // quacks like an array\n    'length' in obj &&\n    // not window\n    !('setInterval' in obj) &&\n    // no DOM node should be considered an array-like\n    // a 'select' element has 'length' and 'item' properties on IE8\n    typeof obj.nodeType != 'number' && (\n    // a real array\n    Array.isArray(obj) ||\n    // arguments\n    'callee' in obj ||\n    // HTMLCollection/NodeList\n    'item' in obj)\n  );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n *   var createArrayFromMixed = require('createArrayFromMixed');\n *\n *   function takesOneOrMoreThings(things) {\n *     things = createArrayFromMixed(things);\n *     ...\n *   }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n  if (!hasArrayNature(obj)) {\n    return [obj];\n  } else if (Array.isArray(obj)) {\n    return obj.slice();\n  } else {\n    return toArray(obj);\n  }\n}\n\nmodule.exports = createArrayFromMixed;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/createArrayFromMixed.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule toArray\n * @typechecks\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n  var length = obj.length;\n\n  // Some browse builtin objects can report typeof 'function' (e.g. NodeList in\n  // old versions of Safari).\n  !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined;\n\n  !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined;\n\n  !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined;\n\n  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n  // without method will throw during the slice call and skip straight to the\n  // fallback.\n  if (obj.hasOwnProperty) {\n    try {\n      return Array.prototype.slice.call(obj);\n    } catch (e) {\n      // IE < 9 does not support Array#slice on collections objects\n    }\n  }\n\n  // Fall back to copying key by key. This assumes all keys have a value,\n  // so will not preserve sparsely populated inputs.\n  var ret = Array(length);\n  for (var ii = 0; ii < length; ii++) {\n    ret[ii] = obj[ii];\n  }\n  return ret;\n}\n\nmodule.exports = toArray;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/toArray.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function (condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/invariant.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getMarkupWrap\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n  '*': [1, '?<div>', '</div>'],\n\n  'area': [1, '<map>', '</map>'],\n  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n  'legend': [1, '<fieldset>', '</fieldset>'],\n  'param': [1, '<object>', '</object>'],\n  'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n  'optgroup': selectWrap,\n  'option': selectWrap,\n\n  'caption': tableWrap,\n  'colgroup': tableWrap,\n  'tbody': tableWrap,\n  'tfoot': tableWrap,\n  'thead': tableWrap,\n\n  'td': trWrap,\n  'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n  markupWrap[nodeName] = svgWrap;\n  shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined;\n  if (!markupWrap.hasOwnProperty(nodeName)) {\n    nodeName = '*';\n  }\n  if (!shouldWrap.hasOwnProperty(nodeName)) {\n    if (nodeName === '*') {\n      dummyNode.innerHTML = '<link />';\n    } else {\n      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n    }\n    shouldWrap[nodeName] = !dummyNode.firstChild;\n  }\n  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/getMarkupWrap.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\n\"use strict\";\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/emptyFunction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n  INSERT_MARKUP: null,\n  MOVE_EXISTING: null,\n  REMOVE_NODE: null,\n  SET_MARKUP: null,\n  TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactMultiChildUpdateTypes.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyMirror\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n *   var COLORS = keyMirror({blue: null, red: null});\n *   var myColor = COLORS.blue;\n *   var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n *   Input:  {key1: val1, key2: val2}\n *   Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function (obj) {\n  var ret = {};\n  var key;\n  !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined;\n  for (key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = key;\n  }\n  return ret;\n};\n\nmodule.exports = keyMirror;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/keyMirror.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPerf\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * ReactPerf is a general AOP system designed to measure performance. This\n * module only has the hooks: see ReactDefaultPerf for the analysis tool.\n */\nvar ReactPerf = {\n  /**\n   * Boolean to enable/disable measurement. Set to false by default to prevent\n   * accidental logging and perf loss.\n   */\n  enableMeasure: false,\n\n  /**\n   * Holds onto the measure function in use. By default, don't measure\n   * anything, but we'll override this if we inject a measure function.\n   */\n  storedMeasure: _noMeasure,\n\n  /**\n   * @param {object} object\n   * @param {string} objectName\n   * @param {object<string>} methodNames\n   */\n  measureMethods: function (object, objectName, methodNames) {\n    if (process.env.NODE_ENV !== 'production') {\n      for (var key in methodNames) {\n        if (!methodNames.hasOwnProperty(key)) {\n          continue;\n        }\n        object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]);\n      }\n    }\n  },\n\n  /**\n   * Use this to wrap methods you want to measure. Zero overhead in production.\n   *\n   * @param {string} objName\n   * @param {string} fnName\n   * @param {function} func\n   * @return {function}\n   */\n  measure: function (objName, fnName, func) {\n    if (process.env.NODE_ENV !== 'production') {\n      var measuredFunc = null;\n      var wrapper = function () {\n        if (ReactPerf.enableMeasure) {\n          if (!measuredFunc) {\n            measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);\n          }\n          return measuredFunc.apply(this, arguments);\n        }\n        return func.apply(this, arguments);\n      };\n      wrapper.displayName = objName + '_' + fnName;\n      return wrapper;\n    }\n    return func;\n  },\n\n  injection: {\n    /**\n     * @param {function} measure\n     */\n    injectMeasure: function (measure) {\n      ReactPerf.storedMeasure = measure;\n    }\n  }\n};\n\n/**\n * Simply passes through the measured function, without measuring it.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\nfunction _noMeasure(objName, fnName, func) {\n  return func;\n}\n\nmodule.exports = ReactPerf;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPerf.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n/* globals MSApp */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = function (node, html) {\n  node.innerHTML = html;\n};\n\n// Win8 apps: Allow all html to be inserted\nif (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n  setInnerHTML = function (node, html) {\n    MSApp.execUnsafeLocalFunction(function () {\n      node.innerHTML = html;\n    });\n  };\n}\n\nif (ExecutionEnvironment.canUseDOM) {\n  // IE8: When updating a just created node with innerHTML only leading\n  // whitespace is removed. When updating an existing node with innerHTML\n  // whitespace in root TextNodes is also collapsed.\n  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n  // Feature detection; only IE8 is known to behave improperly like this.\n  var testElement = document.createElement('div');\n  testElement.innerHTML = ' ';\n  if (testElement.innerHTML === '') {\n    setInnerHTML = function (node, html) {\n      // Magic theory: IE8 supposedly differentiates between added and updated\n      // nodes when processing innerHTML, innerHTML on updated nodes suffers\n      // from worse whitespace behavior. Re-adding a node like this triggers\n      // the initial and more favorable whitespace behavior.\n      // TODO: What to do on a detached node?\n      if (node.parentNode) {\n        node.parentNode.replaceChild(node, node);\n      }\n\n      // We also implement a workaround for non-visible tags disappearing into\n      // thin air on IE8, this only happens if there is no visible text\n      // in-front of the non-visible tags. Piggyback on the whitespace fix\n      // and simply check if any non-visible tags appear in the source.\n      if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n        // Recover leading whitespace by temporarily prepending any character.\n        // \\uFEFF has the potential advantage of being zero-width/invisible.\n        // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n        // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n        // the actual Unicode character (by Babel, for example).\n        // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n        node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n        // deleteData leaves an empty `TextNode` which offsets the index of all\n        // children. Definitely want to avoid this.\n        var textNode = node.firstChild;\n        if (textNode.data.length === 1) {\n          node.removeChild(textNode);\n        } else {\n          textNode.deleteData(0, 1);\n        }\n      } else {\n        node.innerHTML = html;\n      }\n    };\n  }\n}\n\nmodule.exports = setInnerHTML;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/setInnerHTML.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n  if (!('textContent' in document.documentElement)) {\n    setTextContent = function (node, text) {\n      setInnerHTML(node, escapeTextContentForBrowser(text));\n    };\n  }\n}\n\nmodule.exports = setTextContent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/setTextContent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\nvar ESCAPE_LOOKUP = {\n  '&': '&amp;',\n  '>': '&gt;',\n  '<': '&lt;',\n  '\"': '&quot;',\n  '\\'': '&#x27;'\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n  return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n  return ('' + text).replace(ESCAPE_REGEX, escaper);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/escapeTextContentForBrowser.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactPerf = require('./ReactPerf');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\n// Simplified subset\nvar VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\\w\\.\\-]*$/;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n    return true;\n  }\n  if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined;\n  return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n  return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var reactProps = {\n    children: true,\n    dangerouslySetInnerHTML: true,\n    key: true,\n    ref: true\n  };\n  var warnedProperties = {};\n\n  var warnUnknownProperty = function (name) {\n    if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n      return;\n    }\n\n    warnedProperties[name] = true;\n    var lowerCasedName = name.toLowerCase();\n\n    // data-* attributes should be lowercase; suggest the lowercase version\n    var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n    // For now, only warn when we have a suggested correction. This prevents\n    // logging too much when using transferPropsTo.\n    process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined;\n  };\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n  /**\n   * Creates markup for the ID property.\n   *\n   * @param {string} id Unescaped ID.\n   * @return {string} Markup string.\n   */\n  createMarkupForID: function (id) {\n    return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n  },\n\n  setAttributeForID: function (node, id) {\n    node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n  },\n\n  /**\n   * Creates markup for a property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {?string} Markup string, or null if the property was invalid.\n   */\n  createMarkupForProperty: function (name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      if (shouldIgnoreValue(propertyInfo, value)) {\n        return '';\n      }\n      var attributeName = propertyInfo.attributeName;\n      if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n        return attributeName + '=\"\"';\n      }\n      return attributeName + '=' + quoteAttributeValueForBrowser(value);\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      if (value == null) {\n        return '';\n      }\n      return name + '=' + quoteAttributeValueForBrowser(value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n    return null;\n  },\n\n  /**\n   * Creates markup for a custom property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {string} Markup string, or empty string if the property was invalid.\n   */\n  createMarkupForCustomAttribute: function (name, value) {\n    if (!isAttributeNameSafe(name) || value == null) {\n      return '';\n    }\n    return name + '=' + quoteAttributeValueForBrowser(value);\n  },\n\n  /**\n   * Sets the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   * @param {*} value\n   */\n  setValueForProperty: function (node, name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, value);\n      } else if (shouldIgnoreValue(propertyInfo, value)) {\n        this.deleteValueForProperty(node, name);\n      } else if (propertyInfo.mustUseAttribute) {\n        var attributeName = propertyInfo.attributeName;\n        var namespace = propertyInfo.attributeNamespace;\n        // `setAttribute` with objects becomes only `[object]` in IE8/9,\n        // ('' + value) makes it output the correct toString()-value.\n        if (namespace) {\n          node.setAttributeNS(namespace, attributeName, '' + value);\n        } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n          node.setAttribute(attributeName, '');\n        } else {\n          node.setAttribute(attributeName, '' + value);\n        }\n      } else {\n        var propName = propertyInfo.propertyName;\n        // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the\n        // property type before comparing; only `value` does and is string.\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) {\n          // Contrary to `setAttribute`, object properties are properly\n          // `toString`ed by IE8/9.\n          node[propName] = value;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      DOMPropertyOperations.setValueForAttribute(node, name, value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  },\n\n  setValueForAttribute: function (node, name, value) {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (value == null) {\n      node.removeAttribute(name);\n    } else {\n      node.setAttribute(name, '' + value);\n    }\n  },\n\n  /**\n   * Deletes the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   */\n  deleteValueForProperty: function (node, name) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, undefined);\n      } else if (propertyInfo.mustUseAttribute) {\n        node.removeAttribute(propertyInfo.attributeName);\n      } else {\n        var propName = propertyInfo.propertyName;\n        var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName);\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) {\n          node[propName] = defaultValue;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      node.removeAttribute(name);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {\n  setValueForProperty: 'setValueForProperty',\n  setValueForAttribute: 'setValueForAttribute',\n  deleteValueForProperty: 'deleteValueForProperty'\n});\n\nmodule.exports = DOMPropertyOperations;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/DOMPropertyOperations.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n  return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n  /**\n   * Mapping from normalized, camelcased property names to a configuration that\n   * specifies how the associated DOM property should be accessed or rendered.\n   */\n  MUST_USE_ATTRIBUTE: 0x1,\n  MUST_USE_PROPERTY: 0x2,\n  HAS_SIDE_EFFECTS: 0x4,\n  HAS_BOOLEAN_VALUE: 0x8,\n  HAS_NUMERIC_VALUE: 0x10,\n  HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,\n  HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,\n\n  /**\n   * Inject some specialized knowledge about the DOM. This takes a config object\n   * with the following properties:\n   *\n   * isCustomAttribute: function that given an attribute name will return true\n   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n   * attributes where it's impossible to enumerate all of the possible\n   * attribute names,\n   *\n   * Properties: object mapping DOM property name to one of the\n   * DOMPropertyInjection constants or null. If your attribute isn't in here,\n   * it won't get written to the DOM.\n   *\n   * DOMAttributeNames: object mapping React attribute name to the DOM\n   * attribute name. Attribute names not specified use the **lowercase**\n   * normalized name.\n   *\n   * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n   * attribute namespace URL. (Attribute names not specified use no namespace.)\n   *\n   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n   * Property names not specified use the normalized name.\n   *\n   * DOMMutationMethods: Properties that require special mutation methods. If\n   * `value` is undefined, the mutation method should unset the property.\n   *\n   * @param {object} domPropertyConfig the config as described above.\n   */\n  injectDOMPropertyConfig: function (domPropertyConfig) {\n    var Injection = DOMPropertyInjection;\n    var Properties = domPropertyConfig.Properties || {};\n    var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n    if (domPropertyConfig.isCustomAttribute) {\n      DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n    }\n\n    for (var propName in Properties) {\n      !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property ' + '\\'%s\\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined;\n\n      var lowerCased = propName.toLowerCase();\n      var propConfig = Properties[propName];\n\n      var propertyInfo = {\n        attributeName: lowerCased,\n        attributeNamespace: null,\n        propertyName: propName,\n        mutationMethod: null,\n\n        mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE),\n        mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n        hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS),\n        hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n        hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n        hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n        hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n      };\n\n      !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined;\n\n      if (process.env.NODE_ENV !== 'production') {\n        DOMProperty.getPossibleStandardName[lowerCased] = propName;\n      }\n\n      if (DOMAttributeNames.hasOwnProperty(propName)) {\n        var attributeName = DOMAttributeNames[propName];\n        propertyInfo.attributeName = attributeName;\n        if (process.env.NODE_ENV !== 'production') {\n          DOMProperty.getPossibleStandardName[attributeName] = propName;\n        }\n      }\n\n      if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n        propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n      }\n\n      if (DOMPropertyNames.hasOwnProperty(propName)) {\n        propertyInfo.propertyName = DOMPropertyNames[propName];\n      }\n\n      if (DOMMutationMethods.hasOwnProperty(propName)) {\n        propertyInfo.mutationMethod = DOMMutationMethods[propName];\n      }\n\n      DOMProperty.properties[propName] = propertyInfo;\n    }\n  }\n};\nvar defaultValueCache = {};\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n *   > DOMProperty.isValid['id']\n *   true\n *   > DOMProperty.isValid['foobar']\n *   undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n  ID_ATTRIBUTE_NAME: 'data-reactid',\n\n  /**\n   * Map from property \"standard name\" to an object with info about how to set\n   * the property in the DOM. Each object contains:\n   *\n   * attributeName:\n   *   Used when rendering markup or with `*Attribute()`.\n   * attributeNamespace\n   * propertyName:\n   *   Used on DOM node instances. (This includes properties that mutate due to\n   *   external factors.)\n   * mutationMethod:\n   *   If non-null, used instead of the property or `setAttribute()` after\n   *   initial render.\n   * mustUseAttribute:\n   *   Whether the property must be accessed and mutated using `*Attribute()`.\n   *   (This includes anything that fails `<propName> in <element>`.)\n   * mustUseProperty:\n   *   Whether the property must be accessed and mutated as an object property.\n   * hasSideEffects:\n   *   Whether or not setting a value causes side effects such as triggering\n   *   resources to be loaded or text selection changes. If true, we read from\n   *   the DOM before updating to ensure that the value is only set if it has\n   *   changed.\n   * hasBooleanValue:\n   *   Whether the property should be removed when set to a falsey value.\n   * hasNumericValue:\n   *   Whether the property must be numeric or parse as a numeric and should be\n   *   removed when set to a falsey value.\n   * hasPositiveNumericValue:\n   *   Whether the property must be positive numeric or parse as a positive\n   *   numeric and should be removed when set to a falsey value.\n   * hasOverloadedBooleanValue:\n   *   Whether the property can be used as a flag as well as with a value.\n   *   Removed when strictly equal to false; present without a value when\n   *   strictly equal to true; present with a value otherwise.\n   */\n  properties: {},\n\n  /**\n   * Mapping from lowercase property names to the properly cased version, used\n   * to warn in the case of missing properties. Available only in __DEV__.\n   * @type {Object}\n   */\n  getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n  /**\n   * All of the isCustomAttribute() functions that have been injected.\n   */\n  _isCustomAttributeFunctions: [],\n\n  /**\n   * Checks whether a property name is a custom attribute.\n   * @method\n   */\n  isCustomAttribute: function (attributeName) {\n    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n      if (isCustomAttributeFn(attributeName)) {\n        return true;\n      }\n    }\n    return false;\n  },\n\n  /**\n   * Returns the default property value for a DOM property (i.e., not an\n   * attribute). Most default values are '' or false, but not all. Worse yet,\n   * some (in particular, `type`) vary depending on the type of element.\n   *\n   * TODO: Is it better to grab all the possible properties when creating an\n   * element to avoid having to create the same element twice?\n   */\n  getDefaultValueForProperty: function (nodeName, prop) {\n    var nodeDefaults = defaultValueCache[nodeName];\n    var testElement;\n    if (!nodeDefaults) {\n      defaultValueCache[nodeName] = nodeDefaults = {};\n    }\n    if (!(prop in nodeDefaults)) {\n      testElement = document.createElement(nodeName);\n      nodeDefaults[prop] = testElement[prop];\n    }\n    return nodeDefaults[prop];\n  },\n\n  injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/DOMProperty.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n  return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/quoteAttributeValueForBrowser.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n\n    if (format.indexOf('Failed Composite propType: ') === 0) {\n      return; // Ignore CompositeComponent proptype check.\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // --- Welcome to debugging React ---\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch (x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/warning.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactMount = require('./ReactMount');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n  processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n  replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID,\n\n  /**\n   * If a particular environment requires that some resources be cleaned up,\n   * specify this in the injected Mixin. In the DOM, we would likely want to\n   * purge any cached node ID lookups.\n   *\n   * @private\n   */\n  unmountIDFromEnvironment: function (rootNodeID) {\n    ReactMount.purgeID(rootNodeID);\n  }\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactComponentBrowserEnvironment.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Errors for properties that should not be updated with `updatePropertyByID()`.\n *\n * @type {object}\n * @private\n */\nvar INVALID_PROPERTY_ERRORS = {\n  dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',\n  style: '`style` must be set using `updateStylesByID()`.'\n};\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n  /**\n   * Updates a DOM node with new property values. This should only be used to\n   * update DOM properties in `DOMProperty`.\n   *\n   * @param {string} id ID of the node to update.\n   * @param {string} name A valid property name, see `DOMProperty`.\n   * @param {*} value New value of the property.\n   * @internal\n   */\n  updatePropertyByID: function (id, name, value) {\n    var node = ReactMount.getNode(id);\n    !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined;\n\n    // If we're updating to null or undefined, we should remove the property\n    // from the DOM node instead of inadvertantly setting to a string. This\n    // brings us in line with the same behavior we have on initial render.\n    if (value != null) {\n      DOMPropertyOperations.setValueForProperty(node, name, value);\n    } else {\n      DOMPropertyOperations.deleteValueForProperty(node, name);\n    }\n  },\n\n  /**\n   * Replaces a DOM node that exists in the document with markup.\n   *\n   * @param {string} id ID of child to be replaced.\n   * @param {string} markup Dangerous markup to inject in place of child.\n   * @internal\n   * @see {Danger.dangerouslyReplaceNodeWithMarkup}\n   */\n  dangerouslyReplaceNodeWithMarkupByID: function (id, markup) {\n    var node = ReactMount.getNode(id);\n    DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);\n  },\n\n  /**\n   * Updates a component's children by processing a series of updates.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markup List of markup strings.\n   * @internal\n   */\n  dangerouslyProcessChildrenUpdates: function (updates, markup) {\n    for (var i = 0; i < updates.length; i++) {\n      updates[i].parentNode = ReactMount.getNode(updates[i].parentID);\n    }\n    DOMChildrenOperations.processUpdates(updates, markup);\n  }\n};\n\nReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {\n  dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',\n  dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'\n});\n\nmodule.exports = ReactDOMIDOperations;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMIDOperations.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar containsNode = require('fbjs/lib/containsNode');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar nodeCache = {};\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2);\n\n/** Mapping from reactRootID to React component instance. */\nvar instancesByReactRootID = {};\n\n/** Mapping from reactRootID to `container` nodes. */\nvar containersByReactRootID = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  /** __DEV__-only mapping from reactRootID to root elements. */\n  var rootElementsByReactRootID = {};\n}\n\n// Used to store breadth-first search state in findComponentRoot.\nvar findComponentRootReusableArray = [];\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n  var minLen = Math.min(string1.length, string2.length);\n  for (var i = 0; i < minLen; i++) {\n    if (string1.charAt(i) !== string2.charAt(i)) {\n      return i;\n    }\n  }\n  return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\n/**\n * @param {DOMElement} container DOM element that may contain a React component.\n * @return {?string} A \"reactRoot\" ID, if a React component is rendered.\n */\nfunction getReactRootID(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return rootElement && ReactMount.getID(rootElement);\n}\n\n/**\n * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form\n * element can return its control whose name or ID equals ATTR_NAME. All\n * DOM nodes support `getAttributeNode` but this can also get called on\n * other objects so just return '' if we're given something other than a\n * DOM node (such as window).\n *\n * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.\n * @return {string} ID of the supplied `domNode`.\n */\nfunction getID(node) {\n  var id = internalGetID(node);\n  if (id) {\n    if (nodeCache.hasOwnProperty(id)) {\n      var cached = nodeCache[id];\n      if (cached !== node) {\n        !!isValid(cached, id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined;\n\n        nodeCache[id] = node;\n      }\n    } else {\n      nodeCache[id] = node;\n    }\n  }\n\n  return id;\n}\n\nfunction internalGetID(node) {\n  // If node is something like a window, document, or text node, none of\n  // which support attributes or a .getAttribute method, gracefully return\n  // the empty string, as if the attribute were missing.\n  return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Sets the React-specific ID of the given node.\n *\n * @param {DOMElement} node The DOM node whose ID will be set.\n * @param {string} id The value of the ID attribute.\n */\nfunction setID(node, id) {\n  var oldID = internalGetID(node);\n  if (oldID !== id) {\n    delete nodeCache[oldID];\n  }\n  node.setAttribute(ATTR_NAME, id);\n  nodeCache[id] = node;\n}\n\n/**\n * Finds the node with the supplied React-generated DOM ID.\n *\n * @param {string} id A React-generated DOM ID.\n * @return {DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNode(id) {\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * Finds the node with the supplied public React instance.\n *\n * @param {*} instance A public React instance.\n * @return {?DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNodeFromInstance(instance) {\n  var id = ReactInstanceMap.get(instance)._rootNodeID;\n  if (ReactEmptyComponentRegistry.isNullComponentID(id)) {\n    return null;\n  }\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * A node is \"valid\" if it is contained by a currently mounted container.\n *\n * This means that the node does not have to be contained by a document in\n * order to be considered valid.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @param {string} id The expected ID of the node.\n * @return {boolean} Whether the node is contained by a mounted container.\n */\nfunction isValid(node, id) {\n  if (node) {\n    !(internalGetID(node) === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined;\n\n    var container = ReactMount.findReactContainerForID(id);\n    if (container && containsNode(container, node)) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Causes the cache to forget about one React-specific ID.\n *\n * @param {string} id The ID to forget.\n */\nfunction purgeID(id) {\n  delete nodeCache[id];\n}\n\nvar deepestNodeSoFar = null;\nfunction findDeepestCachedAncestorImpl(ancestorID) {\n  var ancestor = nodeCache[ancestorID];\n  if (ancestor && isValid(ancestor, ancestorID)) {\n    deepestNodeSoFar = ancestor;\n  } else {\n    // This node isn't populated in the cache, so presumably none of its\n    // descendants are. Break out of the loop.\n    return false;\n  }\n}\n\n/**\n * Return the deepest cached node whose ID is a prefix of `targetID`.\n */\nfunction findDeepestCachedAncestor(targetID) {\n  deepestNodeSoFar = null;\n  ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl);\n\n  var foundNode = deepestNodeSoFar;\n  deepestNodeSoFar = null;\n  return foundNode;\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) {\n  if (ReactDOMFeatureFlags.useCreateElement) {\n    context = assign({}, context);\n    if (container.nodeType === DOC_NODE_TYPE) {\n      context[ownerDocumentContextKey] = container;\n    } else {\n      context[ownerDocumentContextKey] = container.ownerDocument;\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (context === emptyObject) {\n      context = {};\n    }\n    var tag = container.nodeName.toLowerCase();\n    context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null);\n  }\n  var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context);\n  componentInstance._renderedComponent._topLevelWrapper = componentInstance;\n  ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) {\n  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n  /* forceHTML */shouldReuseMarkup);\n  transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context);\n  ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container) {\n  ReactReconciler.unmountComponent(instance);\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    container = container.documentElement;\n  }\n\n  // http://jsperf.com/emptying-a-node\n  while (container.lastChild) {\n    container.removeChild(container.lastChild);\n  }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(node) {\n  var reactRootID = getReactRootID(node);\n  return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false;\n}\n\n/**\n * Returns the first (deepest) ancestor of a node which is rendered by this copy\n * of React.\n */\nfunction findFirstReactDOMImpl(node) {\n  // This node might be from another React instance, so we make sure not to\n  // examine the node cache here\n  for (; node && node.parentNode !== node; node = node.parentNode) {\n    if (node.nodeType !== 1) {\n      // Not a DOMElement, therefore not a React component\n      continue;\n    }\n    var nodeID = internalGetID(node);\n    if (!nodeID) {\n      continue;\n    }\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n\n    // If containersByReactRootID contains the container we find by crawling up\n    // the tree, we know that this instance of React rendered the node.\n    // nb. isValid's strategy (with containsNode) does not work because render\n    // trees may be nested and we don't want a false positive in that case.\n    var current = node;\n    var lastID;\n    do {\n      lastID = internalGetID(current);\n      current = current.parentNode;\n      if (current == null) {\n        // The passed-in node has been detached from the container it was\n        // originally rendered into.\n        return null;\n      }\n    } while (lastID !== reactRootID);\n\n    if (current === containersByReactRootID[reactRootID]) {\n      return node;\n    }\n  }\n  return null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar TopLevelWrapper = function () {};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n  TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n  // this.props is actually a ReactElement\n  return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n *   ReactMount.render(\n *     component,\n *     document.getElementById('container')\n *   );\n *\n *   <div id=\"container\">                   <-- Supplied `container`.\n *     <div data-reactid=\".3\">              <-- Rendered reactRoot of React\n *       // ...                                 component.\n *     </div>\n *   </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n  TopLevelWrapper: TopLevelWrapper,\n\n  /** Exposed for debugging purposes **/\n  _instancesByReactRootID: instancesByReactRootID,\n\n  /**\n   * This is a hook provided to support rendering React components while\n   * ensuring that the apparent scroll position of its `container` does not\n   * change.\n   *\n   * @param {DOMElement} container The `container` being rendered into.\n   * @param {function} renderCallback This must be called once to do the render.\n   */\n  scrollMonitor: function (container, renderCallback) {\n    renderCallback();\n  },\n\n  /**\n   * Take a component that's already mounted into the DOM and replace its props\n   * @param {ReactComponent} prevComponent component instance already in the DOM\n   * @param {ReactElement} nextElement component instance to render\n   * @param {DOMElement} container container to render into\n   * @param {?function} callback function triggered on completion\n   */\n  _updateRootComponent: function (prevComponent, nextElement, container, callback) {\n    ReactMount.scrollMonitor(container, function () {\n      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);\n      if (callback) {\n        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n      }\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container);\n    }\n\n    return prevComponent;\n  },\n\n  /**\n   * Register a component into the instance map and starts scroll value\n   * monitoring\n   * @param {ReactComponent} nextComponent component instance to render\n   * @param {DOMElement} container container to render into\n   * @return {string} reactRoot ID prefix\n   */\n  _registerComponent: function (nextComponent, container) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n\n    var reactRootID = ReactMount.registerContainer(container);\n    instancesByReactRootID[reactRootID] = nextComponent;\n    return reactRootID;\n  },\n\n  /**\n   * Render a new component into the DOM.\n   * @param {ReactElement} nextElement element to render\n   * @param {DOMElement} container container to render into\n   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n   * @return {ReactComponent} nextComponent\n   */\n  _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case.\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    var componentInstance = instantiateReactComponent(nextElement, null);\n    var reactRootID = ReactMount._registerComponent(componentInstance, container);\n\n    // The initial render is synchronous but any updates that happen during\n    // rendering, in componentWillMount or componentDidMount, will be batched\n    // according to the current batching strategy.\n\n    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container);\n    }\n\n    return componentInstance;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !(parentComponent != null && parentComponent._reactInternalInstance != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined;\n    return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n  },\n\n  _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' :\n    // Check if it quacks like an element\n    nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined;\n\n    process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined;\n\n    var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n    var prevComponent = instancesByReactRootID[getReactRootID(container)];\n\n    if (prevComponent) {\n      var prevWrappedElement = prevComponent._currentElement;\n      var prevElement = prevWrappedElement.props;\n      if (shouldUpdateReactComponent(prevElement, nextElement)) {\n        return ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, callback)._renderedComponent.getPublicInstance();\n      } else {\n        ReactMount.unmountComponentAtNode(container);\n      }\n    }\n\n    var reactRootElement = getReactRootElementInContainer(container);\n    var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n    var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined;\n\n      if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n        var rootElementSibling = reactRootElement;\n        while (rootElementSibling) {\n          if (internalGetID(rootElementSibling)) {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined;\n            break;\n          }\n          rootElementSibling = rootElementSibling.nextSibling;\n        }\n      }\n    }\n\n    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n    var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance();\n    if (callback) {\n      callback.call(component);\n    }\n    return component;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  render: function (nextElement, container, callback) {\n    return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n  },\n\n  /**\n   * Registers a container node into which React components will be rendered.\n   * This also creates the \"reactRoot\" ID that will be assigned to the element\n   * rendered within.\n   *\n   * @param {DOMElement} container DOM element to register as a container.\n   * @return {string} The \"reactRoot\" ID of elements rendered within.\n   */\n  registerContainer: function (container) {\n    var reactRootID = getReactRootID(container);\n    if (reactRootID) {\n      // If one exists, make sure it is a valid \"reactRoot\" ID.\n      reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);\n    }\n    if (!reactRootID) {\n      // No valid \"reactRoot\" ID found, create one.\n      reactRootID = ReactInstanceHandles.createReactRootID();\n    }\n    containersByReactRootID[reactRootID] = container;\n    return reactRootID;\n  },\n\n  /**\n   * Unmounts and destroys the React component rendered in the `container`.\n   *\n   * @param {DOMElement} container DOM element containing a React component.\n   * @return {boolean} True if a component was found in and unmounted from\n   *                   `container`\n   */\n  unmountComponentAtNode: function (container) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case. (Strictly speaking, unmounting won't cause a\n    // render but we still don't expect to be in a render call here.)\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    var reactRootID = getReactRootID(container);\n    var component = instancesByReactRootID[reactRootID];\n    if (!component) {\n      // Check if the node being unmounted was rendered by React, but isn't a\n      // root node.\n      var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n      // Check if the container itself is a React root node.\n      var containerID = internalGetID(container);\n      var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID);\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined;\n      }\n\n      return false;\n    }\n    ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container);\n    delete instancesByReactRootID[reactRootID];\n    delete containersByReactRootID[reactRootID];\n    if (process.env.NODE_ENV !== 'production') {\n      delete rootElementsByReactRootID[reactRootID];\n    }\n    return true;\n  },\n\n  /**\n   * Finds the container DOM element that contains React component to which the\n   * supplied DOM `id` belongs.\n   *\n   * @param {string} id The ID of an element rendered by a React component.\n   * @return {?DOMElement} DOM element that contains the `id`.\n   */\n  findReactContainerForID: function (id) {\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);\n    var container = containersByReactRootID[reactRootID];\n\n    if (process.env.NODE_ENV !== 'production') {\n      var rootElement = rootElementsByReactRootID[reactRootID];\n      if (rootElement && rootElement.parentNode !== container) {\n        process.env.NODE_ENV !== 'production' ? warning(\n        // Call internalGetID here because getID calls isValid which calls\n        // findReactContainerForID (this function).\n        internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined;\n        var containerChild = container.firstChild;\n        if (containerChild && reactRootID === internalGetID(containerChild)) {\n          // If the container has a new child with the same ID as the old\n          // root element, then rootElementsByReactRootID[reactRootID] is\n          // just stale and needs to be updated. The case that deserves a\n          // warning is when the container is empty.\n          rootElementsByReactRootID[reactRootID] = containerChild;\n        } else {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined;\n        }\n      }\n    }\n\n    return container;\n  },\n\n  /**\n   * Finds an element rendered by React with the supplied ID.\n   *\n   * @param {string} id ID of a DOM node in the React component.\n   * @return {DOMElement} Root DOM node of the React component.\n   */\n  findReactNodeByID: function (id) {\n    var reactRoot = ReactMount.findReactContainerForID(id);\n    return ReactMount.findComponentRoot(reactRoot, id);\n  },\n\n  /**\n   * Traverses up the ancestors of the supplied node to find a node that is a\n   * DOM representation of a React component rendered by this copy of React.\n   *\n   * @param {*} node\n   * @return {?DOMEventTarget}\n   * @internal\n   */\n  getFirstReactDOM: function (node) {\n    return findFirstReactDOMImpl(node);\n  },\n\n  /**\n   * Finds a node with the supplied `targetID` inside of the supplied\n   * `ancestorNode`.  Exploits the ID naming scheme to perform the search\n   * quickly.\n   *\n   * @param {DOMEventTarget} ancestorNode Search from this root.\n   * @pararm {string} targetID ID of the DOM representation of the component.\n   * @return {DOMEventTarget} DOM node with the supplied `targetID`.\n   * @internal\n   */\n  findComponentRoot: function (ancestorNode, targetID) {\n    var firstChildren = findComponentRootReusableArray;\n    var childIndex = 0;\n\n    var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw on the next line; give an early warning\n      process.env.NODE_ENV !== 'production' ? warning(deepestAncestor != null, 'React can\\'t find the root component node for data-reactid value ' + '`%s`. If you\\'re seeing this message, it probably means that ' + 'you\\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined;\n    }\n\n    firstChildren[0] = deepestAncestor.firstChild;\n    firstChildren.length = 1;\n\n    while (childIndex < firstChildren.length) {\n      var child = firstChildren[childIndex++];\n      var targetChild;\n\n      while (child) {\n        var childID = ReactMount.getID(child);\n        if (childID) {\n          // Even if we find the node we're looking for, we finish looping\n          // through its siblings to ensure they're cached so that we don't have\n          // to revisit this node again. Otherwise, we make n^2 calls to getID\n          // when visiting the many children of a single node in order.\n\n          if (targetID === childID) {\n            targetChild = child;\n          } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {\n            // If we find a child whose ID is an ancestor of the given ID,\n            // then we can be sure that we only want to search the subtree\n            // rooted at this child, so we can throw out the rest of the\n            // search state.\n            firstChildren.length = childIndex = 0;\n            firstChildren.push(child.firstChild);\n          }\n        } else {\n          // If this child had no ID, then there's a chance that it was\n          // injected automatically by the browser, as when a `<table>`\n          // element sprouts an extra `<tbody>` child as a side effect of\n          // `.innerHTML` parsing. Optimistically continue down this\n          // branch, but not before examining the other siblings.\n          firstChildren.push(child.firstChild);\n        }\n\n        child = child.nextSibling;\n      }\n\n      if (targetChild) {\n        // Emptying firstChildren/findComponentRootReusableArray is\n        // not necessary for correctness, but it helps the GC reclaim\n        // any nodes that were left at the end of the search.\n        firstChildren.length = 0;\n\n        return targetChild;\n      }\n    }\n\n    firstChildren.length = 0;\n\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined;\n  },\n\n  _mountImageIntoNode: function (markup, container, shouldReuseMarkup, transaction) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined;\n\n    if (shouldReuseMarkup) {\n      var rootElement = getReactRootElementInContainer(container);\n      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n        return;\n      } else {\n        var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n        var rootMarkup = rootElement.outerHTML;\n        rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n        var normalizedMarkup = markup;\n        if (process.env.NODE_ENV !== 'production') {\n          // because rootMarkup is retrieved from the DOM, various normalizations\n          // will have occurred which will not be present in `markup`. Here,\n          // insert markup into a <div> or <iframe> depending on the container\n          // type to perform the same normalizations before comparing.\n          var normalizer;\n          if (container.nodeType === ELEMENT_NODE_TYPE) {\n            normalizer = document.createElement('div');\n            normalizer.innerHTML = markup;\n            normalizedMarkup = normalizer.innerHTML;\n          } else {\n            normalizer = document.createElement('iframe');\n            document.body.appendChild(normalizer);\n            normalizer.contentDocument.write(markup);\n            normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n            document.body.removeChild(normalizer);\n          }\n        }\n\n        var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n        var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n        !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\\n%s', difference) : invariant(false) : undefined;\n\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : undefined;\n        }\n      }\n    }\n\n    !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but ' + 'you didn\\'t use server rendering. We can\\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n\n    if (transaction.useCreateElement) {\n      while (container.lastChild) {\n        container.removeChild(container.lastChild);\n      }\n      container.appendChild(markup);\n    } else {\n      setInnerHTML(container, markup);\n    }\n  },\n\n  ownerDocumentContextKey: ownerDocumentContextKey,\n\n  /**\n   * React ID utilities.\n   */\n\n  getReactRootID: getReactRootID,\n\n  getID: getID,\n\n  setID: setID,\n\n  getNode: getNode,\n\n  getNodeFromInstance: getNodeFromInstance,\n\n  isValid: isValid,\n\n  purgeID: purgeID\n};\n\nReactPerf.measureMethods(ReactMount, 'ReactMount', {\n  _renderNewRootComponent: '_renderNewRootComponent',\n  _mountImageIntoNode: '_mountImageIntoNode'\n});\n\nmodule.exports = ReactMount;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactMount.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ReactPerf = require('./ReactPerf');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar assign = require('./Object.assign');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactEventListener, which is injected and can therefore support pluggable\n *    event sources. This is the only work that occurs in the main thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n  topAbort: 'abort',\n  topBlur: 'blur',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topChange: 'change',\n  topClick: 'click',\n  topCompositionEnd: 'compositionend',\n  topCompositionStart: 'compositionstart',\n  topCompositionUpdate: 'compositionupdate',\n  topContextMenu: 'contextmenu',\n  topCopy: 'copy',\n  topCut: 'cut',\n  topDoubleClick: 'dblclick',\n  topDrag: 'drag',\n  topDragEnd: 'dragend',\n  topDragEnter: 'dragenter',\n  topDragExit: 'dragexit',\n  topDragLeave: 'dragleave',\n  topDragOver: 'dragover',\n  topDragStart: 'dragstart',\n  topDrop: 'drop',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topFocus: 'focus',\n  topInput: 'input',\n  topKeyDown: 'keydown',\n  topKeyPress: 'keypress',\n  topKeyUp: 'keyup',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topMouseDown: 'mousedown',\n  topMouseMove: 'mousemove',\n  topMouseOut: 'mouseout',\n  topMouseOver: 'mouseover',\n  topMouseUp: 'mouseup',\n  topPaste: 'paste',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topScroll: 'scroll',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topSelectionChange: 'selectionchange',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTextInput: 'textInput',\n  topTimeUpdate: 'timeupdate',\n  topTouchCancel: 'touchcancel',\n  topTouchEnd: 'touchend',\n  topTouchMove: 'touchmove',\n  topTouchStart: 'touchstart',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting',\n  topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n  // directly.\n  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n    mountAt[topListenersIDKey] = reactTopListenersCounter++;\n    alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n  }\n  return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n *   ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {\n\n  /**\n   * Injectable event backend\n   */\n  ReactEventListener: null,\n\n  injection: {\n    /**\n     * @param {object} ReactEventListener\n     */\n    injectReactEventListener: function (ReactEventListener) {\n      ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n    }\n  },\n\n  /**\n   * Sets whether or not any created callbacks should be enabled.\n   *\n   * @param {boolean} enabled True if callbacks should be enabled.\n   */\n  setEnabled: function (enabled) {\n    if (ReactBrowserEventEmitter.ReactEventListener) {\n      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n    }\n  },\n\n  /**\n   * @return {boolean} True if callbacks are enabled.\n   */\n  isEnabled: function () {\n    return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n  },\n\n  /**\n   * We listen for bubbled touch events on the document object.\n   *\n   * Firefox v8.01 (and possibly others) exhibited strange behavior when\n   * mounting `onmousemove` events at some node that was not the document\n   * element. The symptoms were that if your mouse is not moving over something\n   * contained within that mount point (for example on the background) the\n   * top-level listeners for `onmousemove` won't be called. However, if you\n   * register the `mousemove` on the document object, then it will of course\n   * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n   * top-level listeners to the document object only, at least for these\n   * movement types of events and possibly all events.\n   *\n   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n   *\n   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n   * they bubble to document.\n   *\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {object} contentDocumentHandle Document which owns the container\n   */\n  listenTo: function (registrationName, contentDocumentHandle) {\n    var mountAt = contentDocumentHandle;\n    var isListening = getListeningForDocument(mountAt);\n    var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n    var topLevelTypes = EventConstants.topLevelTypes;\n    for (var i = 0; i < dependencies.length; i++) {\n      var dependency = dependencies[i];\n      if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n        if (dependency === topLevelTypes.topWheel) {\n          if (isEventSupported('wheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n          } else if (isEventSupported('mousewheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n          } else {\n            // Firefox needs to capture a different mouse scroll event.\n            // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n          }\n        } else if (dependency === topLevelTypes.topScroll) {\n\n          if (isEventSupported('scroll', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n          } else {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n          }\n        } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n          if (isEventSupported('focus', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n          } else if (isEventSupported('focusin')) {\n            // IE has `focusin` and `focusout` events which bubble.\n            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n          }\n\n          // to make sure blur and focus event listeners are only attached once\n          isListening[topLevelTypes.topBlur] = true;\n          isListening[topLevelTypes.topFocus] = true;\n        } else if (topEventMapping.hasOwnProperty(dependency)) {\n          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n        }\n\n        isListening[dependency] = true;\n      }\n    }\n  },\n\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  /**\n   * Listens to window scroll and resize events. We cache scroll values so that\n   * application code can access them without triggering reflows.\n   *\n   * NOTE: Scroll events do not bubble.\n   *\n   * @see http://www.quirksmode.org/dom/events/scroll.html\n   */\n  ensureScrollValueMonitoring: function () {\n    if (!isMonitoringScrollValue) {\n      var refresh = ViewportMetrics.refreshScrollValues;\n      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n      isMonitoringScrollValue = true;\n    }\n  },\n\n  eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginHub.registrationNameModules,\n\n  putListener: EventPluginHub.putListener,\n\n  getListener: EventPluginHub.getListener,\n\n  deleteListener: EventPluginHub.deleteListener,\n\n  deleteAllListeners: EventPluginHub.deleteAllListeners\n\n});\n\nReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {\n  putListener: 'putListener',\n  deleteListener: 'deleteListener'\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactBrowserEventEmitter.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n  topAbort: null,\n  topBlur: null,\n  topCanPlay: null,\n  topCanPlayThrough: null,\n  topChange: null,\n  topClick: null,\n  topCompositionEnd: null,\n  topCompositionStart: null,\n  topCompositionUpdate: null,\n  topContextMenu: null,\n  topCopy: null,\n  topCut: null,\n  topDoubleClick: null,\n  topDrag: null,\n  topDragEnd: null,\n  topDragEnter: null,\n  topDragExit: null,\n  topDragLeave: null,\n  topDragOver: null,\n  topDragStart: null,\n  topDrop: null,\n  topDurationChange: null,\n  topEmptied: null,\n  topEncrypted: null,\n  topEnded: null,\n  topError: null,\n  topFocus: null,\n  topInput: null,\n  topKeyDown: null,\n  topKeyPress: null,\n  topKeyUp: null,\n  topLoad: null,\n  topLoadedData: null,\n  topLoadedMetadata: null,\n  topLoadStart: null,\n  topMouseDown: null,\n  topMouseMove: null,\n  topMouseOut: null,\n  topMouseOver: null,\n  topMouseUp: null,\n  topPaste: null,\n  topPause: null,\n  topPlay: null,\n  topPlaying: null,\n  topProgress: null,\n  topRateChange: null,\n  topReset: null,\n  topScroll: null,\n  topSeeked: null,\n  topSeeking: null,\n  topSelectionChange: null,\n  topStalled: null,\n  topSubmit: null,\n  topSuspend: null,\n  topTextInput: null,\n  topTimeUpdate: null,\n  topTouchCancel: null,\n  topTouchEnd: null,\n  topTouchMove: null,\n  topTouchStart: null,\n  topVolumeChange: null,\n  topWaiting: null,\n  topWheel: null\n});\n\nvar EventConstants = {\n  topLevelTypes: topLevelTypes,\n  PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EventConstants.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n  if (event) {\n    EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n  return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e, false);\n};\n\n/**\n * - `InstanceHandle`: [required] Module that performs logical traversals of DOM\n *   hierarchy given ids of the logical DOM elements involved.\n */\nvar InstanceHandle = null;\n\nfunction validateInstanceHandle() {\n  var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave;\n  process.env.NODE_ENV !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined;\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n  /**\n   * Methods for injecting dependencies.\n   */\n  injection: {\n\n    /**\n     * @param {object} InjectedMount\n     * @public\n     */\n    injectMount: EventPluginUtils.injection.injectMount,\n\n    /**\n     * @param {object} InjectedInstanceHandle\n     * @public\n     */\n    injectInstanceHandle: function (InjectedInstanceHandle) {\n      InstanceHandle = InjectedInstanceHandle;\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n    },\n\n    getInstanceHandle: function () {\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n      return InstanceHandle;\n    },\n\n    /**\n     * @param {array} InjectedEventPluginOrder\n     * @public\n     */\n    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n    /**\n     * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n     */\n    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n  },\n\n  eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginRegistry.registrationNameModules,\n\n  /**\n   * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {?function} listener The callback to store.\n   */\n  putListener: function (id, registrationName, listener) {\n    !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : undefined;\n\n    var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n    bankForRegistrationName[id] = listener;\n\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.didPutListener) {\n      PluginModule.didPutListener(id, registrationName, listener);\n    }\n  },\n\n  /**\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @return {?function} The stored callback.\n   */\n  getListener: function (id, registrationName) {\n    var bankForRegistrationName = listenerBank[registrationName];\n    return bankForRegistrationName && bankForRegistrationName[id];\n  },\n\n  /**\n   * Deletes a listener from the registration bank.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   */\n  deleteListener: function (id, registrationName) {\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.willDeleteListener) {\n      PluginModule.willDeleteListener(id, registrationName);\n    }\n\n    var bankForRegistrationName = listenerBank[registrationName];\n    // TODO: This should never be null -- when is it?\n    if (bankForRegistrationName) {\n      delete bankForRegistrationName[id];\n    }\n  },\n\n  /**\n   * Deletes all listeners for the DOM element with the supplied ID.\n   *\n   * @param {string} id ID of the DOM element.\n   */\n  deleteAllListeners: function (id) {\n    for (var registrationName in listenerBank) {\n      if (!listenerBank[registrationName][id]) {\n        continue;\n      }\n\n      var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n      if (PluginModule && PluginModule.willDeleteListener) {\n        PluginModule.willDeleteListener(id, registrationName);\n      }\n\n      delete listenerBank[registrationName][id];\n    }\n  },\n\n  /**\n   * Allows registered plugins an opportunity to extract events from top-level\n   * native browser events.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @internal\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events;\n    var plugins = EventPluginRegistry.plugins;\n    for (var i = 0; i < plugins.length; i++) {\n      // Not every plugin in the ordering may be loaded at runtime.\n      var possiblePlugin = plugins[i];\n      if (possiblePlugin) {\n        var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n        if (extractedEvents) {\n          events = accumulateInto(events, extractedEvents);\n        }\n      }\n    }\n    return events;\n  },\n\n  /**\n   * Enqueues a synthetic event that should be dispatched when\n   * `processEventQueue` is invoked.\n   *\n   * @param {*} events An accumulation of synthetic events.\n   * @internal\n   */\n  enqueueEvents: function (events) {\n    if (events) {\n      eventQueue = accumulateInto(eventQueue, events);\n    }\n  },\n\n  /**\n   * Dispatches all synthetic events on the event queue.\n   *\n   * @internal\n   */\n  processEventQueue: function (simulated) {\n    // Set `eventQueue` to null before processing it so that we can tell if more\n    // events get enqueued while processing.\n    var processingEventQueue = eventQueue;\n    eventQueue = null;\n    if (simulated) {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n    } else {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n    }\n    !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined;\n    // This would be a good time to rethrow if any of the event handlers threw.\n    ReactErrorUtils.rethrowCaughtError();\n  },\n\n  /**\n   * These are needed for tests only. Do not use!\n   */\n  __purge: function () {\n    listenerBank = {};\n  },\n\n  __getListenerBank: function () {\n    return listenerBank;\n  }\n\n};\n\nmodule.exports = EventPluginHub;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EventPluginHub.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!EventPluginOrder) {\n    // Wait until an `EventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var PluginModule = namesToPlugins[pluginName];\n    var pluginIndex = EventPluginOrder.indexOf(pluginName);\n    !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined;\n    if (EventPluginRegistry.plugins[pluginIndex]) {\n      continue;\n    }\n    !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined;\n    EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n    var publishedEvents = PluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined;\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n  !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined;\n  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n  !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined;\n  EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n  EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n  /**\n   * Ordered list of injected plugins.\n   */\n  plugins: [],\n\n  /**\n   * Mapping from event name to dispatch config\n   */\n  eventNameDispatchConfigs: {},\n\n  /**\n   * Mapping from registration name to plugin module\n   */\n  registrationNameModules: {},\n\n  /**\n   * Mapping from registration name to event name\n   */\n  registrationNameDependencies: {},\n\n  /**\n   * Injects an ordering of plugins (by plugin name). This allows the ordering\n   * to be decoupled from injection of the actual plugins so that ordering is\n   * always deterministic regardless of packaging, on-the-fly injection, etc.\n   *\n   * @param {array} InjectedEventPluginOrder\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginOrder}\n   */\n  injectEventPluginOrder: function (InjectedEventPluginOrder) {\n    !!EventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined;\n    // Clone the ordering so it cannot be dynamically mutated.\n    EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n    recomputePluginOrdering();\n  },\n\n  /**\n   * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n   * in the ordering injected by `injectEventPluginOrder`.\n   *\n   * Plugins can be injected as part of page initialization or on-the-fly.\n   *\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginsByName}\n   */\n  injectEventPluginsByName: function (injectedNamesToPlugins) {\n    var isOrderingDirty = false;\n    for (var pluginName in injectedNamesToPlugins) {\n      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n        continue;\n      }\n      var PluginModule = injectedNamesToPlugins[pluginName];\n      if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n        !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined;\n        namesToPlugins[pluginName] = PluginModule;\n        isOrderingDirty = true;\n      }\n    }\n    if (isOrderingDirty) {\n      recomputePluginOrdering();\n    }\n  },\n\n  /**\n   * Looks up the plugin for the supplied event.\n   *\n   * @param {object} event A synthetic event.\n   * @return {?object} The plugin that created the supplied event.\n   * @internal\n   */\n  getPluginModuleForEvent: function (event) {\n    var dispatchConfig = event.dispatchConfig;\n    if (dispatchConfig.registrationName) {\n      return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n    }\n    for (var phase in dispatchConfig.phasedRegistrationNames) {\n      if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n        continue;\n      }\n      var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n      if (PluginModule) {\n        return PluginModule;\n      }\n    }\n    return null;\n  },\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _resetEventPlugins: function () {\n    EventPluginOrder = null;\n    for (var pluginName in namesToPlugins) {\n      if (namesToPlugins.hasOwnProperty(pluginName)) {\n        delete namesToPlugins[pluginName];\n      }\n    }\n    EventPluginRegistry.plugins.length = 0;\n\n    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n    for (var eventName in eventNameDispatchConfigs) {\n      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n        delete eventNameDispatchConfigs[eventName];\n      }\n    }\n\n    var registrationNameModules = EventPluginRegistry.registrationNameModules;\n    for (var registrationName in registrationNameModules) {\n      if (registrationNameModules.hasOwnProperty(registrationName)) {\n        delete registrationNameModules[registrationName];\n      }\n    }\n  }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EventPluginRegistry.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `Mount`: [required] Module that can convert between React dom IDs and\n *   actual node references.\n */\nvar injection = {\n  Mount: null,\n  injectMount: function (InjectedMount) {\n    injection.Mount = InjectedMount;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined;\n    }\n  }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchIDs = event._dispatchIDs;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var idsIsArr = Array.isArray(dispatchIDs);\n    var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    process.env.NODE_ENV !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {string} domID DOM id to pass to the callback.\n */\nfunction executeDispatch(event, simulated, listener, domID) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = injection.Mount.getNode(domID);\n  if (simulated) {\n    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID);\n  } else {\n    ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);\n  }\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, simulated, dispatchListeners, dispatchIDs);\n  }\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      if (dispatchListeners[i](event, dispatchIDs[i])) {\n        return dispatchIDs[i];\n      }\n    }\n  } else if (dispatchListeners) {\n    if (dispatchListeners(event, dispatchIDs)) {\n      return dispatchIDs;\n    }\n  }\n  return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n  var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n  event._dispatchIDs = null;\n  event._dispatchListeners = null;\n  return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  var dispatchListener = event._dispatchListeners;\n  var dispatchID = event._dispatchIDs;\n  !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined;\n  var res = dispatchListener ? dispatchListener(event, dispatchID) : null;\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n  return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n  return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n  isEndish: isEndish,\n  isMoveish: isMoveish,\n  isStartish: isStartish,\n\n  executeDirectDispatch: executeDirectDispatch,\n  executeDispatchesInOrder: executeDispatchesInOrder,\n  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n  hasDispatches: hasDispatches,\n\n  getNode: function (id) {\n    return injection.Mount.getNode(id);\n  },\n  getID: function (node) {\n    return injection.Mount.getID(node);\n  },\n\n  injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EventPluginUtils.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n * @typechecks\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n  try {\n    return func(a, b);\n  } catch (x) {\n    if (caughtError === null) {\n      caughtError = x;\n    }\n    return undefined;\n  }\n}\n\nvar ReactErrorUtils = {\n  invokeGuardedCallback: invokeGuardedCallback,\n\n  /**\n   * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n   * handler are sure to be rethrown by rethrowCaughtError.\n   */\n  invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n  /**\n   * During execution of guarded functions we will capture the first error which\n   * we will rethrow to be handled by the top level error handler.\n   */\n  rethrowCaughtError: function () {\n    if (caughtError) {\n      var error = caughtError;\n      caughtError = null;\n      throw error;\n    }\n  }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  /**\n   * To help development we can get better devtools integration by simulating a\n   * real browser event.\n   */\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof Event === 'function') {\n    var fakeNode = document.createElement('react');\n    ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n      var boundFunc = func.bind(null, a, b);\n      fakeNode.addEventListener(name, boundFunc, false);\n      fakeNode.dispatchEvent(new Event(name));\n      fakeNode.removeEventListener(name, boundFunc, false);\n    };\n  }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactErrorUtils.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n *\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined;\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  var currentIsArray = Array.isArray(current);\n  var nextIsArray = Array.isArray(next);\n\n  if (currentIsArray && nextIsArray) {\n    current.push.apply(current, next);\n    return current;\n  }\n\n  if (currentIsArray) {\n    current.push(next);\n    return current;\n  }\n\n  if (nextIsArray) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\nmodule.exports = accumulateInto;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/accumulateInto.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\nvar forEachAccumulated = function (arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n};\n\nmodule.exports = forEachAccumulated;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/forEachAccumulated.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n  EventPluginHub.enqueueEvents(events);\n  EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n  /**\n   * Streams a fired top-level event to `EventPluginHub` where plugins have the\n   * opportunity to create `ReactEvent`s to be dispatched.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {object} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native environment event.\n   */\n  handleTopLevel: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n    runEventQueueInBatch(events);\n  }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactEventEmitterMixin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n  currentScrollLeft: 0,\n\n  currentScrollTop: 0,\n\n  refreshScrollValues: function (scrollPosition) {\n    ViewportMetrics.currentScrollLeft = scrollPosition.x;\n    ViewportMetrics.currentScrollTop = scrollPosition.y;\n  }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ViewportMetrics.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n  if (target == null) {\n    throw new TypeError('Object.assign target cannot be null or undefined');\n  }\n\n  var to = Object(target);\n  var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n  for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n    var nextSource = arguments[nextIndex];\n    if (nextSource == null) {\n      continue;\n    }\n\n    var from = Object(nextSource);\n\n    // We don't currently support accessors nor proxies. Therefore this\n    // copy cannot throw. If we ever supported this then we must handle\n    // exceptions and side-effects. We don't support symbols so they won't\n    // be transferred.\n\n    for (var key in from) {\n      if (hasOwnProperty.call(from, key)) {\n        to[key] = from[key];\n      }\n    }\n  }\n\n  return to;\n}\n\nmodule.exports = assign;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/Object.assign.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature = document.implementation && document.implementation.hasFeature &&\n  // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = (eventName in document);\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/isEventSupported.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n  useCreateElement: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMFeatureFlags.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar assign = require('./Object.assign');\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n  try {\n    Object.defineProperty({}, 'x', {});\n    canDefineProperty = true;\n  } catch (x) {\n    // IE will fail on defineProperty\n  }\n}\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allow us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  if (process.env.NODE_ENV !== 'production') {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    if (canDefineProperty) {\n      Object.defineProperty(element._store, 'validated', {\n        configurable: false,\n        enumerable: false,\n        writable: true,\n        value: false\n      });\n      // self and source are DEV only properties.\n      Object.defineProperty(element, '_self', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: self\n      });\n      // Two elements created in two different places should be considered\n      // equal for testing purposes and therefore we hide it from enumeration.\n      Object.defineProperty(element, '_source', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: source\n      });\n    } else {\n      element._store.validated = false;\n      element._self = self;\n      element._source = source;\n    }\n    Object.freeze(element.props);\n    Object.freeze(element);\n  }\n\n  return element;\n};\n\nReactElement.createElement = function (type, config, children) {\n  var propName;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : '' + config.key;\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (typeof props[propName] === 'undefined') {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\nReactElement.createFactory = function (type) {\n  var factory = ReactElement.createElement.bind(null, type);\n  // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n  // Legacy hook TODO: Warn if this is accessed\n  factory.type = type;\n  return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n};\n\nReactElement.cloneAndReplaceProps = function (oldElement, newProps) {\n  var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps);\n\n  if (process.env.NODE_ENV !== 'production') {\n    // If the key on the original is valid, then the clone is valid\n    newElement._store.validated = oldElement._store.validated;\n  }\n\n  return newElement;\n};\n\nReactElement.cloneElement = function (element, config, children) {\n  var propName;\n\n  // Original props are copied\n  var props = assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (config.ref !== undefined) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (config.key !== undefined) {\n      key = '' + config.key;\n    }\n    // Remaining properties override existing props\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactElement.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponentRegistry\n */\n\n'use strict';\n\n// This registry keeps track of the React IDs of the components that rendered to\n// `null` (in reality a placeholder such as `noscript`)\nvar nullComponentIDsRegistry = {};\n\n/**\n * @param {string} id Component's `_rootNodeID`.\n * @return {boolean} True if the component is rendered to null.\n */\nfunction isNullComponentID(id) {\n  return !!nullComponentIDsRegistry[id];\n}\n\n/**\n * Mark the component as having rendered to null.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction registerNullComponentID(id) {\n  nullComponentIDsRegistry[id] = true;\n}\n\n/**\n * Unmark the component as having rendered to null: it renders to something now.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction deregisterNullComponentID(id) {\n  delete nullComponentIDsRegistry[id];\n}\n\nvar ReactEmptyComponentRegistry = {\n  isNullComponentID: isNullComponentID,\n  registerNullComponentID: registerNullComponentID,\n  deregisterNullComponentID: deregisterNullComponentID\n};\n\nmodule.exports = ReactEmptyComponentRegistry;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactEmptyComponentRegistry.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceHandles\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactRootIndex = require('./ReactRootIndex');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar SEPARATOR = '.';\nvar SEPARATOR_LENGTH = SEPARATOR.length;\n\n/**\n * Maximum depth of traversals before we consider the possibility of a bad ID.\n */\nvar MAX_TREE_DEPTH = 10000;\n\n/**\n * Creates a DOM ID prefix to use when mounting React components.\n *\n * @param {number} index A unique integer\n * @return {string} React root ID.\n * @internal\n */\nfunction getReactRootIDString(index) {\n  return SEPARATOR + index.toString(36);\n}\n\n/**\n * Checks if a character in the supplied ID is a separator or the end.\n *\n * @param {string} id A React DOM ID.\n * @param {number} index Index of the character to check.\n * @return {boolean} True if the character is a separator or end of the ID.\n * @private\n */\nfunction isBoundary(id, index) {\n  return id.charAt(index) === SEPARATOR || index === id.length;\n}\n\n/**\n * Checks if the supplied string is a valid React DOM ID.\n *\n * @param {string} id A React DOM ID, maybe.\n * @return {boolean} True if the string is a valid React DOM ID.\n * @private\n */\nfunction isValidID(id) {\n  return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR;\n}\n\n/**\n * Checks if the first ID is an ancestor of or equal to the second ID.\n *\n * @param {string} ancestorID\n * @param {string} descendantID\n * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.\n * @internal\n */\nfunction isAncestorIDOf(ancestorID, descendantID) {\n  return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length);\n}\n\n/**\n * Gets the parent ID of the supplied React DOM ID, `id`.\n *\n * @param {string} id ID of a component.\n * @return {string} ID of the parent, or an empty string.\n * @private\n */\nfunction getParentID(id) {\n  return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';\n}\n\n/**\n * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the\n * supplied `destinationID`. If they are equal, the ID is returned.\n *\n * @param {string} ancestorID ID of an ancestor node of `destinationID`.\n * @param {string} destinationID ID of the destination node.\n * @return {string} Next ID on the path from `ancestorID` to `destinationID`.\n * @private\n */\nfunction getNextDescendantID(ancestorID, destinationID) {\n  !(isValidID(ancestorID) && isValidID(destinationID)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined;\n  !isAncestorIDOf(ancestorID, destinationID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined;\n  if (ancestorID === destinationID) {\n    return ancestorID;\n  }\n  // Skip over the ancestor and the immediate separator. Traverse until we hit\n  // another separator or we reach the end of `destinationID`.\n  var start = ancestorID.length + SEPARATOR_LENGTH;\n  var i;\n  for (i = start; i < destinationID.length; i++) {\n    if (isBoundary(destinationID, i)) {\n      break;\n    }\n  }\n  return destinationID.substr(0, i);\n}\n\n/**\n * Gets the nearest common ancestor ID of two IDs.\n *\n * Using this ID scheme, the nearest common ancestor ID is the longest common\n * prefix of the two IDs that immediately preceded a \"marker\" in both strings.\n *\n * @param {string} oneID\n * @param {string} twoID\n * @return {string} Nearest common ancestor ID, or the empty string if none.\n * @private\n */\nfunction getFirstCommonAncestorID(oneID, twoID) {\n  var minLength = Math.min(oneID.length, twoID.length);\n  if (minLength === 0) {\n    return '';\n  }\n  var lastCommonMarkerIndex = 0;\n  // Use `<=` to traverse until the \"EOL\" of the shorter string.\n  for (var i = 0; i <= minLength; i++) {\n    if (isBoundary(oneID, i) && isBoundary(twoID, i)) {\n      lastCommonMarkerIndex = i;\n    } else if (oneID.charAt(i) !== twoID.charAt(i)) {\n      break;\n    }\n  }\n  var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);\n  !isValidID(longestCommonID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined;\n  return longestCommonID;\n}\n\n/**\n * Traverses the parent path between two IDs (either up or down). The IDs must\n * not be the same, and there must exist a parent path between them. If the\n * callback returns `false`, traversal is stopped.\n *\n * @param {?string} start ID at which to start traversal.\n * @param {?string} stop ID at which to end traversal.\n * @param {function} cb Callback to invoke each ID with.\n * @param {*} arg Argument to invoke the callback with.\n * @param {?boolean} skipFirst Whether or not to skip the first node.\n * @param {?boolean} skipLast Whether or not to skip the last node.\n * @private\n */\nfunction traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {\n  start = start || '';\n  stop = stop || '';\n  !(start !== stop) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined;\n  var traverseUp = isAncestorIDOf(stop, start);\n  !(traverseUp || isAncestorIDOf(start, stop)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined;\n  // Traverse from `start` to `stop` one depth at a time.\n  var depth = 0;\n  var traverse = traverseUp ? getParentID : getNextDescendantID;\n  for (var id = start;; /* until break */id = traverse(id, stop)) {\n    var ret;\n    if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {\n      ret = cb(id, traverseUp, arg);\n    }\n    if (ret === false || id === stop) {\n      // Only break //after// visiting `stop`.\n      break;\n    }\n    !(depth++ < MAX_TREE_DEPTH) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Manages the IDs assigned to DOM representations of React components. This\n * uses a specific scheme in order to traverse the DOM efficiently (e.g. in\n * order to simulate events).\n *\n * @internal\n */\nvar ReactInstanceHandles = {\n\n  /**\n   * Constructs a React root ID\n   * @return {string} A React root ID.\n   */\n  createReactRootID: function () {\n    return getReactRootIDString(ReactRootIndex.createReactRootIndex());\n  },\n\n  /**\n   * Constructs a React ID by joining a root ID with a name.\n   *\n   * @param {string} rootID Root ID of a parent component.\n   * @param {string} name A component's name (as flattened children).\n   * @return {string} A React ID.\n   * @internal\n   */\n  createReactID: function (rootID, name) {\n    return rootID + name;\n  },\n\n  /**\n   * Gets the DOM ID of the React component that is the root of the tree that\n   * contains the React component with the supplied DOM ID.\n   *\n   * @param {string} id DOM ID of a React component.\n   * @return {?string} DOM ID of the React component that is the root.\n   * @internal\n   */\n  getReactRootIDFromNodeID: function (id) {\n    if (id && id.charAt(0) === SEPARATOR && id.length > 1) {\n      var index = id.indexOf(SEPARATOR, 1);\n      return index > -1 ? id.substr(0, index) : id;\n    }\n    return null;\n  },\n\n  /**\n   * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n   * should would receive a `mouseEnter` or `mouseLeave` event.\n   *\n   * NOTE: Does not invoke the callback on the nearest common ancestor because\n   * nothing \"entered\" or \"left\" that element.\n   *\n   * @param {string} leaveID ID being left.\n   * @param {string} enterID ID being entered.\n   * @param {function} cb Callback to invoke on each entered/left ID.\n   * @param {*} upArg Argument to invoke the callback with on left IDs.\n   * @param {*} downArg Argument to invoke the callback with on entered IDs.\n   * @internal\n   */\n  traverseEnterLeave: function (leaveID, enterID, cb, upArg, downArg) {\n    var ancestorID = getFirstCommonAncestorID(leaveID, enterID);\n    if (ancestorID !== leaveID) {\n      traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);\n    }\n    if (ancestorID !== enterID) {\n      traverseParentPath(ancestorID, enterID, cb, downArg, true, false);\n    }\n  },\n\n  /**\n   * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseTwoPhase: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, false);\n      traverseParentPath(targetID, '', cb, arg, false, true);\n    }\n  },\n\n  /**\n   * Same as `traverseTwoPhase` but skips the `targetID`.\n   */\n  traverseTwoPhaseSkipTarget: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, true);\n      traverseParentPath(targetID, '', cb, arg, true, true);\n    }\n  },\n\n  /**\n   * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For\n   * example, passing `.0.$row-0.1` would result in `cb` getting called\n   * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseAncestors: function (targetID, cb, arg) {\n    traverseParentPath('', targetID, cb, arg, true, false);\n  },\n\n  getFirstCommonAncestorID: getFirstCommonAncestorID,\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _getNextDescendantID: getNextDescendantID,\n\n  isAncestorIDOf: isAncestorIDOf,\n\n  SEPARATOR: SEPARATOR\n\n};\n\nmodule.exports = ReactInstanceHandles;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactInstanceHandles.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar ReactRootIndexInjection = {\n  /**\n   * @param {function} _createReactRootIndex\n   */\n  injectCreateReactRootIndex: function (_createReactRootIndex) {\n    ReactRootIndex.createReactRootIndex = _createReactRootIndex;\n  }\n};\n\nvar ReactRootIndex = {\n  createReactRootIndex: null,\n  injection: ReactRootIndexInjection\n};\n\nmodule.exports = ReactRootIndex;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactRootIndex.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\nvar ReactInstanceMap = {\n\n  /**\n   * This API should be called `delete` but we'd have to make sure to always\n   * transform these to strings for IE support. When this transform is fully\n   * supported we can rename it.\n   */\n  remove: function (key) {\n    key._reactInternalInstance = undefined;\n  },\n\n  get: function (key) {\n    return key._reactInternalInstance;\n  },\n\n  has: function (key) {\n    return key._reactInternalInstance !== undefined;\n  },\n\n  set: function (key, value) {\n    key._reactInternalInstance = value;\n  }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactInstanceMap.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\n\nvar ReactMarkupChecksum = {\n  CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n  /**\n   * @param {string} markup Markup string\n   * @return {string} Markup string with checksum attribute attached\n   */\n  addChecksumToMarkup: function (markup) {\n    var checksum = adler32(markup);\n\n    // Add checksum (handle both parent tags and self-closing tags)\n    return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n  },\n\n  /**\n   * @param {string} markup to use\n   * @param {DOMElement} element root React element\n   * @returns {boolean} whether or not the markup is the same\n   */\n  canReuseMarkup: function (markup, element) {\n    var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n    var markupChecksum = adler32(markup);\n    return markupChecksum === existingChecksum;\n  }\n};\n\nmodule.exports = ReactMarkupChecksum;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactMarkupChecksum.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n  var a = 1;\n  var b = 0;\n  var i = 0;\n  var l = data.length;\n  var m = l & ~0x3;\n  while (i < m) {\n    for (; i < Math.min(i + 4096, m); i += 4) {\n      b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n    }\n    a %= MOD;\n    b %= MOD;\n  }\n  for (; i < l; i++) {\n    b += a += data.charCodeAt(i);\n  }\n  a %= MOD;\n  b %= MOD;\n  return a | b << 16;\n}\n\nmodule.exports = adler32;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/adler32.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n  ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (internalInstance, rootID, transaction, context) {\n    var markup = internalInstance.mountComponent(rootID, transaction, context);\n    if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (internalInstance) {\n    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n    internalInstance.unmountComponent();\n  },\n\n  /**\n   * Update a component using a new element.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @internal\n   */\n  receiveComponent: function (internalInstance, nextElement, transaction, context) {\n    var prevElement = internalInstance._currentElement;\n\n    if (nextElement === prevElement && context === internalInstance._context) {\n      // Since elements are immutable after the owner is rendered,\n      // we can do a cheap identity compare here to determine if this is a\n      // superfluous reconcile. It's possible for state to be mutable but such\n      // change should trigger an update of the owner which would recreate\n      // the element. We explicitly check for the existence of an owner since\n      // it's possible for an element created outside a composite to be\n      // deeply mutated and reused.\n\n      // TODO: Bailing out early is just a perf optimization right?\n      // TODO: Removing the return statement should affect correctness?\n      return;\n    }\n\n    var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n    if (refsChanged) {\n      ReactRef.detachRefs(internalInstance, prevElement);\n    }\n\n    internalInstance.receiveComponent(nextElement, transaction, context);\n\n    if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n  },\n\n  /**\n   * Flush any dirty changes in a component.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (internalInstance, transaction) {\n    internalInstance.performUpdateIfNecessary(transaction);\n  }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactReconciler.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(component.getPublicInstance());\n  } else {\n    // Legacy ref\n    ReactOwner.addComponentAsRefTo(component, ref, owner);\n  }\n}\n\nfunction detachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(null);\n  } else {\n    // Legacy ref\n    ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n  }\n}\n\nReactRef.attachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    attachRef(ref, instance, element._owner);\n  }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n  // If either the owner or a `ref` has changed, make sure the newest owner\n  // has stored a reference to `this`, and the previous owner (if different)\n  // has forgotten the reference to `this`. We use the element instead\n  // of the public this.props because the post processing cannot determine\n  // a ref. The ref conceptually lives on the element.\n\n  // TODO: Should this even be possible? The owner cannot change because\n  // it's forbidden by shouldUpdateReactComponent. The ref can change\n  // if you swap the keys of but not the refs. Reconsider where this check\n  // is made. It probably belongs where the key checking and\n  // instantiateReactComponent is done.\n\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n\n  return(\n    // This has a few false positives w/r/t empty components.\n    prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref\n  );\n};\n\nReactRef.detachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    detachRef(ref, instance, element._owner);\n  }\n};\n\nmodule.exports = ReactRef;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactRef.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return (\n *         <div onClick={this.handleClick}>\n *           <CustomComponent ref=\"custom\" />\n *         </div>\n *       );\n *     },\n *     handleClick: function() {\n *       this.refs.custom.handleClick();\n *     },\n *     componentDidMount: function() {\n *       this.refs.custom.initialize();\n *     }\n *   });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n  /**\n   * @param {?object} object\n   * @return {boolean} True if `object` is a valid owner.\n   * @final\n   */\n  isValidOwner: function (object) {\n    return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n  },\n\n  /**\n   * Adds a component by ref to an owner component.\n   *\n   * @param {ReactComponent} component Component to reference.\n   * @param {string} ref Name by which to refer to the component.\n   * @param {ReactOwner} owner Component on which to record the ref.\n   * @final\n   * @internal\n   */\n  addComponentAsRefTo: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    owner.attachRef(ref, component);\n  },\n\n  /**\n   * Removes a component by ref from an owner component.\n   *\n   * @param {ReactComponent} component Component to dereference.\n   * @param {string} ref Name of the ref to remove.\n   * @param {ReactOwner} owner Component on which the ref is recorded.\n   * @final\n   * @internal\n   */\n  removeComponentAsRefFrom: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    // Check that `component` is still the current ref because we do not want to\n    // detach the ref if another component stole it.\n    if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {\n      owner.detachRef(ref);\n    }\n  }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactOwner.js\n **/","/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n  ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n  var internalInstance = ReactInstanceMap.get(publicInstance);\n  if (!internalInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Only warn when we have a callerName. Otherwise we should be silent.\n      // We're probably calling from enqueueCallback. We don't want to warn\n      // there because we already warned for the corresponding lifecycle method.\n      process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined;\n    }\n    return null;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined;\n  }\n\n  return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n        owner._warnedAboutRefsInRender = true;\n      }\n    }\n    var internalInstance = ReactInstanceMap.get(publicInstance);\n    if (internalInstance) {\n      // During componentWillMount and render this will still be null but after\n      // that will always render to something. At least for now. So we can use\n      // this hack.\n      return !!internalInstance._renderedComponent;\n    } else {\n      return false;\n    }\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n    // Previously we would throw an error if we didn't have an internal\n    // instance. Since we want to make it a no-op instead, we mirror the same\n    // behavior we have in other enqueue* methods.\n    // We also need to ignore callbacks in componentWillMount. See\n    // enqueueUpdates.\n    if (!internalInstance) {\n      return null;\n    }\n\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    // TODO: The callback here is ignored when setState is called from\n    // componentWillMount. Either fix it or disallow doing so completely in\n    // favor of getInitialState. Alternatively, we can disallow\n    // componentWillMount during server-side rendering.\n    enqueueUpdate(internalInstance);\n  },\n\n  enqueueCallbackInternal: function (internalInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingForceUpdate = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingStateQueue = [completeState];\n    internalInstance._pendingReplaceState = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n    queue.push(partialState);\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps);\n  },\n\n  enqueueSetPropsInternal: function (internalInstance, partialProps) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    var props = assign({}, element.props, partialProps);\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props);\n  },\n\n  enqueueReplacePropsInternal: function (internalInstance, props) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  enqueueElementInternal: function (internalInstance, newElement) {\n    internalInstance._pendingElement = newElement;\n    enqueueUpdate(internalInstance);\n  }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactUpdateQueue.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n  !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined;\n}\n\nvar NESTED_UPDATES = {\n  initialize: function () {\n    this.dirtyComponentsLength = dirtyComponents.length;\n  },\n  close: function () {\n    if (this.dirtyComponentsLength !== dirtyComponents.length) {\n      // Additional updates were enqueued by componentDidUpdate handlers or\n      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n      // these new updates so that if A's componentDidUpdate calls setState on\n      // B, B will update before the callback A's updater provided when calling\n      // setState.\n      dirtyComponents.splice(0, this.dirtyComponentsLength);\n      flushBatchedUpdates();\n    } else {\n      dirtyComponents.length = 0;\n    }\n  }\n};\n\nvar UPDATE_QUEUEING = {\n  initialize: function () {\n    this.callbackQueue.reset();\n  },\n  close: function () {\n    this.callbackQueue.notifyAll();\n  }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n  this.reinitializeTransaction();\n  this.dirtyComponentsLength = null;\n  this.callbackQueue = CallbackQueue.getPooled();\n  this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false);\n}\n\nassign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  destructor: function () {\n    this.dirtyComponentsLength = null;\n    CallbackQueue.release(this.callbackQueue);\n    this.callbackQueue = null;\n    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n    this.reconcileTransaction = null;\n  },\n\n  perform: function (method, scope, a) {\n    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n    // with this transaction's wrappers around it.\n    return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n  }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n  ensureInjected();\n  batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n  return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n  var len = transaction.dirtyComponentsLength;\n  !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined;\n\n  // Since reconciling a component higher in the owner hierarchy usually (not\n  // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n  // them before their children by sorting the array.\n  dirtyComponents.sort(mountOrderComparator);\n\n  for (var i = 0; i < len; i++) {\n    // If a component is unmounted before pending changes apply, it will still\n    // be here, but we assume that it has cleared its _pendingCallbacks and\n    // that performUpdateIfNecessary is a noop.\n    var component = dirtyComponents[i];\n\n    // If performUpdateIfNecessary happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n    var callbacks = component._pendingCallbacks;\n    component._pendingCallbacks = null;\n\n    ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction);\n\n    if (callbacks) {\n      for (var j = 0; j < callbacks.length; j++) {\n        transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n      }\n    }\n  }\n}\n\nvar flushBatchedUpdates = function () {\n  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n  // array and perform any updates enqueued by mount-ready handlers (i.e.,\n  // componentDidUpdate) but we need to check here too in order to catch\n  // updates enqueued by setState callbacks and asap calls.\n  while (dirtyComponents.length || asapEnqueued) {\n    if (dirtyComponents.length) {\n      var transaction = ReactUpdatesFlushTransaction.getPooled();\n      transaction.perform(runBatchedUpdates, null, transaction);\n      ReactUpdatesFlushTransaction.release(transaction);\n    }\n\n    if (asapEnqueued) {\n      asapEnqueued = false;\n      var queue = asapCallbackQueue;\n      asapCallbackQueue = CallbackQueue.getPooled();\n      queue.notifyAll();\n      CallbackQueue.release(queue);\n    }\n  }\n};\nflushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates);\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n  ensureInjected();\n\n  // Various parts of our code (such as ReactCompositeComponent's\n  // _renderValidatedComponent) assume that calls to render aren't nested;\n  // verify that that's the case. (This is called by each top-level update\n  // function, like setProps, setState, forceUpdate, etc.; creation and\n  // destruction of top-level components is guarded in ReactMount.)\n\n  if (!batchingStrategy.isBatchingUpdates) {\n    batchingStrategy.batchedUpdates(enqueueUpdate, component);\n    return;\n  }\n\n  dirtyComponents.push(component);\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n  !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined;\n  asapCallbackQueue.enqueue(callback, context);\n  asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n  injectReconcileTransaction: function (ReconcileTransaction) {\n    !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined;\n    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n  },\n\n  injectBatchingStrategy: function (_batchingStrategy) {\n    !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined;\n    batchingStrategy = _batchingStrategy;\n  }\n};\n\nvar ReactUpdates = {\n  /**\n   * React references `ReactReconcileTransaction` using this property in order\n   * to allow dependency injection.\n   *\n   * @internal\n   */\n  ReactReconcileTransaction: null,\n\n  batchedUpdates: batchedUpdates,\n  enqueueUpdate: enqueueUpdate,\n  flushBatchedUpdates: flushBatchedUpdates,\n  injection: ReactUpdatesInjection,\n  asap: asap\n};\n\nmodule.exports = ReactUpdates;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactUpdates.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n  this._callbacks = null;\n  this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n  /**\n   * Enqueues a callback to be invoked when `notifyAll` is invoked.\n   *\n   * @param {function} callback Invoked when `notifyAll` is invoked.\n   * @param {?object} context Context to call `callback` with.\n   * @internal\n   */\n  enqueue: function (callback, context) {\n    this._callbacks = this._callbacks || [];\n    this._contexts = this._contexts || [];\n    this._callbacks.push(callback);\n    this._contexts.push(context);\n  },\n\n  /**\n   * Invokes all enqueued callbacks and clears the queue. This is invoked after\n   * the DOM representation of a component has been created or updated.\n   *\n   * @internal\n   */\n  notifyAll: function () {\n    var callbacks = this._callbacks;\n    var contexts = this._contexts;\n    if (callbacks) {\n      !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined;\n      this._callbacks = null;\n      this._contexts = null;\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(contexts[i]);\n      }\n      callbacks.length = 0;\n      contexts.length = 0;\n    }\n  },\n\n  /**\n   * Resets the internal queue.\n   *\n   * @internal\n   */\n  reset: function () {\n    this._callbacks = null;\n    this._contexts = null;\n  },\n\n  /**\n   * `PooledClass` looks for this.\n   */\n  destructor: function () {\n    this.reset();\n  }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/CallbackQueue.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, copyFieldsFrom);\n    return instance;\n  } else {\n    return new Klass(copyFieldsFrom);\n  }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2);\n    return instance;\n  } else {\n    return new Klass(a1, a2);\n  }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3);\n  }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4);\n  }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4, a5);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4, a5);\n  }\n};\n\nvar standardReleaser = function (instance) {\n  var Klass = this;\n  !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined;\n  instance.destructor();\n  if (Klass.instancePool.length < Klass.poolSize) {\n    Klass.instancePool.push(instance);\n  }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances (optional).\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n  var NewKlass = CopyConstructor;\n  NewKlass.instancePool = [];\n  NewKlass.getPooled = pooler || DEFAULT_POOLER;\n  if (!NewKlass.poolSize) {\n    NewKlass.poolSize = DEFAULT_POOL_SIZE;\n  }\n  NewKlass.release = standardReleaser;\n  return NewKlass;\n};\n\nvar PooledClass = {\n  addPoolingTo: addPoolingTo,\n  oneArgumentPooler: oneArgumentPooler,\n  twoArgumentPooler: twoArgumentPooler,\n  threeArgumentPooler: threeArgumentPooler,\n  fourArgumentPooler: fourArgumentPooler,\n  fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/PooledClass.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n *   Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n *   while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n *   reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n *   content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n *   to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n *   when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n  /**\n   * Sets up this instance so that it is prepared for collecting metrics. Does\n   * so such that this setup method may be used on an instance that is already\n   * initialized, in a way that does not consume additional memory upon reuse.\n   * That can be useful if you decide to make your subclass of this mixin a\n   * \"PooledClass\".\n   */\n  reinitializeTransaction: function () {\n    this.transactionWrappers = this.getTransactionWrappers();\n    if (this.wrapperInitData) {\n      this.wrapperInitData.length = 0;\n    } else {\n      this.wrapperInitData = [];\n    }\n    this._isInTransaction = false;\n  },\n\n  _isInTransaction: false,\n\n  /**\n   * @abstract\n   * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n   */\n  getTransactionWrappers: null,\n\n  isInTransaction: function () {\n    return !!this._isInTransaction;\n  },\n\n  /**\n   * Executes the function within a safety window. Use this for the top level\n   * methods that result in large amounts of computation/mutations that would\n   * need to be safety checked. The optional arguments helps prevent the need\n   * to bind in many cases.\n   *\n   * @param {function} method Member of scope to call.\n   * @param {Object} scope Scope to invoke from.\n   * @param {Object?=} a Argument to pass to the method.\n   * @param {Object?=} b Argument to pass to the method.\n   * @param {Object?=} c Argument to pass to the method.\n   * @param {Object?=} d Argument to pass to the method.\n   * @param {Object?=} e Argument to pass to the method.\n   * @param {Object?=} f Argument to pass to the method.\n   *\n   * @return {*} Return value from `method`.\n   */\n  perform: function (method, scope, a, b, c, d, e, f) {\n    !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined;\n    var errorThrown;\n    var ret;\n    try {\n      this._isInTransaction = true;\n      // Catching errors makes debugging more difficult, so we start with\n      // errorThrown set to true before setting it to false after calling\n      // close -- if it's still set to true in the finally block, it means\n      // one of these calls threw.\n      errorThrown = true;\n      this.initializeAll(0);\n      ret = method.call(scope, a, b, c, d, e, f);\n      errorThrown = false;\n    } finally {\n      try {\n        if (errorThrown) {\n          // If `method` throws, prefer to show that stack trace over any thrown\n          // by invoking `closeAll`.\n          try {\n            this.closeAll(0);\n          } catch (err) {}\n        } else {\n          // Since `method` didn't throw, we don't want to silence the exception\n          // here.\n          this.closeAll(0);\n        }\n      } finally {\n        this._isInTransaction = false;\n      }\n    }\n    return ret;\n  },\n\n  initializeAll: function (startIndex) {\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      try {\n        // Catching errors makes debugging more difficult, so we start with the\n        // OBSERVED_ERROR state before overwriting it with the real return value\n        // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n        // block, it means wrapper.initialize threw.\n        this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n        this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n      } finally {\n        if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n          // The initializer for wrapper i threw an error; initialize the\n          // remaining wrappers but silence any exceptions from them to ensure\n          // that the first error is the one to bubble up.\n          try {\n            this.initializeAll(i + 1);\n          } catch (err) {}\n        }\n      }\n    }\n  },\n\n  /**\n   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n   * them the respective return values of `this.transactionWrappers.init[i]`\n   * (`close`rs that correspond to initializers that failed will not be\n   * invoked).\n   */\n  closeAll: function (startIndex) {\n    !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined;\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      var initData = this.wrapperInitData[i];\n      var errorThrown;\n      try {\n        // Catching errors makes debugging more difficult, so we start with\n        // errorThrown set to true before setting it to false after calling\n        // close -- if it's still set to true in the finally block, it means\n        // wrapper.close threw.\n        errorThrown = true;\n        if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n          wrapper.close.call(this, initData);\n        }\n        errorThrown = false;\n      } finally {\n        if (errorThrown) {\n          // The closer for wrapper i threw an error; close the remaining\n          // wrappers but silence any exceptions from them to ensure that the\n          // first error is the one to bubble up.\n          try {\n            this.closeAll(i + 1);\n          } catch (e) {}\n        }\n      }\n    }\n    this.wrapperInitData.length = 0;\n  }\n};\n\nvar Transaction = {\n\n  Mixin: Mixin,\n\n  /**\n   * Token to look for to determine if an error occurred.\n   */\n  OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/Transaction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/emptyObject.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule containsNode\n * @typechecks\n */\n\n'use strict';\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n *\n * @param {?DOMNode} outerNode Outer DOM node.\n * @param {?DOMNode} innerNode Inner DOM node.\n * @return {boolean} True if `outerNode` contains or is `innerNode`.\n */\nfunction containsNode(_x, _x2) {\n  var _again = true;\n\n  _function: while (_again) {\n    var outerNode = _x,\n        innerNode = _x2;\n    _again = false;\n\n    if (!outerNode || !innerNode) {\n      return false;\n    } else if (outerNode === innerNode) {\n      return true;\n    } else if (isTextNode(outerNode)) {\n      return false;\n    } else if (isTextNode(innerNode)) {\n      _x = outerNode;\n      _x2 = innerNode.parentNode;\n      _again = true;\n      continue _function;\n    } else if (outerNode.contains) {\n      return outerNode.contains(innerNode);\n    } else if (outerNode.compareDocumentPosition) {\n      return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n    } else {\n      return false;\n    }\n  }\n}\n\nmodule.exports = containsNode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/containsNode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextNode\n * @typechecks\n */\n\n'use strict';\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/isTextNode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isNode\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\n'use strict';\n\nfunction isNode(object) {\n  return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/isNode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactNativeComponent = require('./ReactNativeComponent');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function () {};\nassign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n  _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n  return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node) {\n  var instance;\n\n  if (node === null || node === false) {\n    instance = new ReactEmptyComponent(instantiateReactComponent);\n  } else if (typeof node === 'object') {\n    var element = node;\n    !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined;\n\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = ReactNativeComponent.createInternalComponent(element);\n    } else if (isInternalComponentType(element.type)) {\n      // This is temporarily available for custom components that are not string\n      // representations. I.e. ART. Once those are updated to use the string\n      // representation, we can drop this code path.\n      instance = new element.type(element);\n    } else {\n      instance = new ReactCompositeComponentWrapper();\n    }\n  } else if (typeof node === 'string' || typeof node === 'number') {\n    instance = ReactNativeComponent.createInstanceForText(node);\n  } else {\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : invariant(false) : undefined;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined;\n  }\n\n  // Sets up the instance. This can probably just move into the constructor now.\n  instance.construct(node);\n\n  // These two fields are used by the DOM and ART diffing algorithms\n  // respectively. Instead of using expandos on components, we should be\n  // storing the state needed by the diffing algorithms elsewhere.\n  instance._mountIndex = 0;\n  instance._mountImage = null;\n\n  if (process.env.NODE_ENV !== 'production') {\n    instance._isOwnerNecessary = false;\n    instance._warnedAboutRefsInRender = false;\n  }\n\n  // Internal instances should fully constructed at this point, so they should\n  // not get any new fields added to them at this point.\n  if (process.env.NODE_ENV !== 'production') {\n    if (Object.preventExtensions) {\n      Object.preventExtensions(instance);\n    }\n  }\n\n  return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/instantiateReactComponent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactPerf = require('./ReactPerf');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum(component) {\n  var owner = component._currentElement._owner || null;\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n  var Component = ReactInstanceMap.get(this)._currentElement.type;\n  return Component(this.props, this.context, this.updater);\n};\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n *   - componentWillMount\n *   - render\n *   - [children's constructors]\n *     - [children's componentWillMount and render]\n *     - [children's componentDidMount]\n *     - componentDidMount\n *\n *       Update Phases:\n *       - componentWillReceiveProps (only called if parent updated)\n *       - shouldComponentUpdate\n *         - componentWillUpdate\n *           - render\n *           - [children's constructors or receive props phases]\n *         - componentDidUpdate\n *\n *     - componentWillUnmount\n *     - [children's componentWillUnmount]\n *   - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n  /**\n   * Base constructor for all composite component.\n   *\n   * @param {ReactElement} element\n   * @final\n   * @internal\n   */\n  construct: function (element) {\n    this._currentElement = element;\n    this._rootNodeID = null;\n    this._instance = null;\n\n    // See ReactUpdateQueue\n    this._pendingElement = null;\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    this._renderedComponent = null;\n\n    this._context = null;\n    this._mountOrder = 0;\n    this._topLevelWrapper = null;\n\n    // See ReactUpdates and ReactUpdateQueue.\n    this._pendingCallbacks = null;\n  },\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._context = context;\n    this._mountOrder = nextMountID++;\n    this._rootNodeID = rootID;\n\n    var publicProps = this._processProps(this._currentElement.props);\n    var publicContext = this._processContext(context);\n\n    var Component = this._currentElement.type;\n\n    // Initialize the public class\n    var inst;\n    var renderedElement;\n\n    // This is a way to detect if Component is a stateless arrow function\n    // component, which is not newable. It might not be 100% reliable but is\n    // something we can do until we start detecting that Component extends\n    // React.Component. We already assume that typeof Component === 'function'.\n    var canInstantiate = ('prototype' in Component);\n\n    if (canInstantiate) {\n      if (process.env.NODE_ENV !== 'production') {\n        ReactCurrentOwner.current = this;\n        try {\n          inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n        } finally {\n          ReactCurrentOwner.current = null;\n        }\n      } else {\n        inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n      }\n    }\n\n    if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) {\n      renderedElement = inst;\n      inst = new StatelessComponent(Component);\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw later in _renderValidatedComponent, but add an early\n      // warning now to help debugging\n      if (inst.render == null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\\'t a React component.', Component.displayName || Component.name || 'Component') : undefined;\n      } else {\n        // We support ES6 inheriting from React.Component, the module pattern,\n        // and stateless components, but not ES6 classes that don't extend\n        process.env.NODE_ENV !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;\n      }\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    inst.props = publicProps;\n    inst.context = publicContext;\n    inst.refs = emptyObject;\n    inst.updater = ReactUpdateQueue;\n\n    this._instance = inst;\n\n    // Store a reference from the instance back to the internal representation\n    ReactInstanceMap.set(inst, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Since plain JS classes are defined without any special initialization\n      // logic, we can not catch common errors early. Therefore, we have to\n      // catch them here, at initialization time, instead.\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%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.', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined;\n    }\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    if (inst.componentWillMount) {\n      inst.componentWillMount();\n      // When mounting, calls to `setState` by `componentWillMount` will set\n      // `this._pendingStateQueue` without triggering a re-render.\n      if (this._pendingStateQueue) {\n        inst.state = this._processPendingState(inst.props, inst.context);\n      }\n    }\n\n    // If not a stateless component, we now render\n    if (renderedElement === undefined) {\n      renderedElement = this._renderValidatedComponent();\n    }\n\n    this._renderedComponent = this._instantiateReactComponent(renderedElement);\n\n    var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context));\n    if (inst.componentDidMount) {\n      transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n    }\n\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function () {\n    var inst = this._instance;\n\n    if (inst.componentWillUnmount) {\n      inst.componentWillUnmount();\n    }\n\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    this._renderedComponent = null;\n    this._instance = null;\n\n    // Reset pending fields\n    // Even if this component is scheduled for another update in ReactUpdates,\n    // it would still be ignored because these fields are reset.\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n    this._pendingCallbacks = null;\n    this._pendingElement = null;\n\n    // These fields do not really need to be reset since this object is no\n    // longer accessible.\n    this._context = null;\n    this._rootNodeID = null;\n    this._topLevelWrapper = null;\n\n    // Delete the reference from the instance to this internal representation\n    // which allow the internals to be properly cleaned up even if the user\n    // leaks a reference to the public instance.\n    ReactInstanceMap.remove(inst);\n\n    // Some existing components rely on inst.props even after they've been\n    // destroyed (in event handlers).\n    // TODO: inst.props = null;\n    // TODO: inst.state = null;\n    // TODO: inst.context = null;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _maskContext: function (context) {\n    var maskedContext = null;\n    var Component = this._currentElement.type;\n    var contextTypes = Component.contextTypes;\n    if (!contextTypes) {\n      return emptyObject;\n    }\n    maskedContext = {};\n    for (var contextName in contextTypes) {\n      maskedContext[contextName] = context[contextName];\n    }\n    return maskedContext;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`, and asserts that they are valid.\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _processContext: function (context) {\n    var maskedContext = this._maskContext(context);\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.contextTypes) {\n        this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n      }\n    }\n    return maskedContext;\n  },\n\n  /**\n   * @param {object} currentContext\n   * @return {object}\n   * @private\n   */\n  _processChildContext: function (currentContext) {\n    var Component = this._currentElement.type;\n    var inst = this._instance;\n    var childContext = inst.getChildContext && inst.getChildContext();\n    if (childContext) {\n      !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n      if (process.env.NODE_ENV !== 'production') {\n        this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n      }\n      for (var name in childContext) {\n        !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined;\n      }\n      return assign({}, currentContext, childContext);\n    }\n    return currentContext;\n  },\n\n  /**\n   * Processes props by setting default values for unspecified props and\n   * asserting that the props are valid. Does not mutate its argument; returns\n   * a new props object with defaults merged in.\n   *\n   * @param {object} newProps\n   * @return {object}\n   * @private\n   */\n  _processProps: function (newProps) {\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.propTypes) {\n        this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop);\n      }\n    }\n    return newProps;\n  },\n\n  /**\n   * Assert that the props are valid\n   *\n   * @param {object} propTypes Map of prop name to a ReactPropType\n   * @param {object} props\n   * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n   * @private\n   */\n  _checkPropTypes: function (propTypes, props, location) {\n    // TODO: Stop validating prop types here and only use the element\n    // validation.\n    var componentName = this.getName();\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error;\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n          error = propTypes[propName](props, propName, componentName, location);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error instanceof Error) {\n          // We may want to extend this logic for similar errors in\n          // top-level render calls, so I'm abstracting it away into\n          // a function to minimize refactoring in the future\n          var addendum = getDeclarationErrorAddendum(this);\n\n          if (location === ReactPropTypeLocations.prop) {\n            // Preface gives us something to blacklist in warning module\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined;\n          } else {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined;\n          }\n        }\n      }\n    }\n  },\n\n  receiveComponent: function (nextElement, transaction, nextContext) {\n    var prevElement = this._currentElement;\n    var prevContext = this._context;\n\n    this._pendingElement = null;\n\n    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n  },\n\n  /**\n   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n   * is set, update the component.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (transaction) {\n    if (this._pendingElement != null) {\n      ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context);\n    }\n\n    if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n    }\n  },\n\n  /**\n   * Perform an update to a mounted component. The componentWillReceiveProps and\n   * shouldComponentUpdate methods are called, then (assuming the update isn't\n   * skipped) the remaining update lifecycle methods are called and the DOM\n   * representation is updated.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevParentElement\n   * @param {ReactElement} nextParentElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n    var inst = this._instance;\n\n    var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext);\n    var nextProps;\n\n    // Distinguish between a props update versus a simple state update\n    if (prevParentElement === nextParentElement) {\n      // Skip checking prop types again -- we don't read inst.props to avoid\n      // warning for DOM component props in this upgrade\n      nextProps = nextParentElement.props;\n    } else {\n      nextProps = this._processProps(nextParentElement.props);\n      // An update here will schedule an update but immediately set\n      // _pendingStateQueue which will ensure that any state updates gets\n      // immediately reconciled instead of waiting for the next batch.\n\n      if (inst.componentWillReceiveProps) {\n        inst.componentWillReceiveProps(nextProps, nextContext);\n      }\n    }\n\n    var nextState = this._processPendingState(nextProps, nextContext);\n\n    var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined;\n    }\n\n    if (shouldUpdate) {\n      this._pendingForceUpdate = false;\n      // Will set `this.props`, `this.state` and `this.context`.\n      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n    } else {\n      // If it's determined that a component should not update, we still want\n      // to set props and state but we shortcut the rest of the update.\n      this._currentElement = nextParentElement;\n      this._context = nextUnmaskedContext;\n      inst.props = nextProps;\n      inst.state = nextState;\n      inst.context = nextContext;\n    }\n  },\n\n  _processPendingState: function (props, context) {\n    var inst = this._instance;\n    var queue = this._pendingStateQueue;\n    var replace = this._pendingReplaceState;\n    this._pendingReplaceState = false;\n    this._pendingStateQueue = null;\n\n    if (!queue) {\n      return inst.state;\n    }\n\n    if (replace && queue.length === 1) {\n      return queue[0];\n    }\n\n    var nextState = assign({}, replace ? queue[0] : inst.state);\n    for (var i = replace ? 1 : 0; i < queue.length; i++) {\n      var partial = queue[i];\n      assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n    }\n\n    return nextState;\n  },\n\n  /**\n   * Merges new props and state, notifies delegate methods of update and\n   * performs update.\n   *\n   * @param {ReactElement} nextElement Next element\n   * @param {object} nextProps Next public object to set as properties.\n   * @param {?object} nextState Next object to set as state.\n   * @param {?object} nextContext Next public object to set as context.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?object} unmaskedContext\n   * @private\n   */\n  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n    var inst = this._instance;\n\n    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n    var prevProps;\n    var prevState;\n    var prevContext;\n    if (hasComponentDidUpdate) {\n      prevProps = inst.props;\n      prevState = inst.state;\n      prevContext = inst.context;\n    }\n\n    if (inst.componentWillUpdate) {\n      inst.componentWillUpdate(nextProps, nextState, nextContext);\n    }\n\n    this._currentElement = nextElement;\n    this._context = unmaskedContext;\n    inst.props = nextProps;\n    inst.state = nextState;\n    inst.context = nextContext;\n\n    this._updateRenderedComponent(transaction, unmaskedContext);\n\n    if (hasComponentDidUpdate) {\n      transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n    }\n  },\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  _updateRenderedComponent: function (transaction, context) {\n    var prevComponentInstance = this._renderedComponent;\n    var prevRenderedElement = prevComponentInstance._currentElement;\n    var nextRenderedElement = this._renderValidatedComponent();\n    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n    } else {\n      // These two IDs are actually the same! But nothing should rely on that.\n      var thisID = this._rootNodeID;\n      var prevComponentID = prevComponentInstance._rootNodeID;\n      ReactReconciler.unmountComponent(prevComponentInstance);\n\n      this._renderedComponent = this._instantiateReactComponent(nextRenderedElement);\n      var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context));\n      this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  _replaceNodeWithMarkupByID: function (prevComponentID, nextMarkup) {\n    ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n  },\n\n  /**\n   * @protected\n   */\n  _renderValidatedComponentWithoutOwnerOrContext: function () {\n    var inst = this._instance;\n    var renderedComponent = inst.render();\n    if (process.env.NODE_ENV !== 'production') {\n      // We allow auto-mocks to proceed as if they're returning null.\n      if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        renderedComponent = null;\n      }\n    }\n\n    return renderedComponent;\n  },\n\n  /**\n   * @private\n   */\n  _renderValidatedComponent: function () {\n    var renderedComponent;\n    ReactCurrentOwner.current = this;\n    try {\n      renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n    } finally {\n      ReactCurrentOwner.current = null;\n    }\n    !(\n    // TODO: An `isValidNode` function would probably be more appropriate\n    renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n    return renderedComponent;\n  },\n\n  /**\n   * Lazily allocates the refs object and stores `component` as `ref`.\n   *\n   * @param {string} ref Reference name.\n   * @param {component} component Component to store as `ref`.\n   * @final\n   * @private\n   */\n  attachRef: function (ref, component) {\n    var inst = this.getPublicInstance();\n    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined;\n    var publicComponentInstance = component.getPublicInstance();\n    if (process.env.NODE_ENV !== 'production') {\n      var componentName = component && component.getName ? component.getName() : 'a component';\n      process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined;\n    }\n    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n    refs[ref] = publicComponentInstance;\n  },\n\n  /**\n   * Detaches a reference name.\n   *\n   * @param {string} ref Name to dereference.\n   * @final\n   * @private\n   */\n  detachRef: function (ref) {\n    var refs = this.getPublicInstance().refs;\n    delete refs[ref];\n  },\n\n  /**\n   * Get a text description of the component that can be used to identify it\n   * in error messages.\n   * @return {string} The name or null.\n   * @internal\n   */\n  getName: function () {\n    var type = this._currentElement.type;\n    var constructor = this._instance && this._instance.constructor;\n    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n  },\n\n  /**\n   * Get the publicly accessible representation of this component - i.e. what\n   * is exposed by refs and returned by render. Can be null for stateless\n   * components.\n   *\n   * @return {ReactComponent} the public component instance.\n   * @internal\n   */\n  getPublicInstance: function () {\n    var inst = this._instance;\n    if (inst instanceof StatelessComponent) {\n      return null;\n    }\n    return inst;\n  },\n\n  // Stub\n  _instantiateReactComponent: null\n\n};\n\nReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent',\n  _renderValidatedComponent: '_renderValidatedComponent'\n});\n\nvar ReactCompositeComponent = {\n\n  Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactCompositeComponent.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n  /**\n   * Optionally injectable environment dependent cleanup hook. (server vs.\n   * browser etc). Example: A browser system caches DOM nodes based on component\n   * ID and must remove that cache entry when this instance is unmounted.\n   */\n  unmountIDFromEnvironment: null,\n\n  /**\n   * Optionally injectable hook for swapping out mount images in the middle of\n   * the tree.\n   */\n  replaceNodeWithMarkupByID: null,\n\n  /**\n   * Optionally injectable hook for processing a queue of child updates. Will\n   * later move into MultiChildComponents.\n   */\n  processChildrenUpdates: null,\n\n  injection: {\n    injectEnvironment: function (environment) {\n      !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined;\n      ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;\n      ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID;\n      ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n      injected = true;\n    }\n  }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactComponentEnvironment.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar ReactPropTypeLocations = keyMirror({\n  prop: null,\n  context: null,\n  childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPropTypeLocations.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  ReactPropTypeLocationNames = {\n    prop: 'prop',\n    context: 'context',\n    childContext: 'child context'\n  };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPropTypeLocationNames.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement;\n  var nextType = typeof nextElement;\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n  return false;\n}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/shouldUpdateReactComponent.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactReconciler = require('./ReactReconciler');\n\nvar assign = require('./Object.assign');\n\nvar placeholderElement;\n\nvar ReactEmptyComponentInjection = {\n  injectEmptyComponent: function (component) {\n    placeholderElement = ReactElement.createElement(component);\n  }\n};\n\nvar ReactEmptyComponent = function (instantiate) {\n  this._currentElement = null;\n  this._rootNodeID = null;\n  this._renderedComponent = instantiate(placeholderElement);\n};\nassign(ReactEmptyComponent.prototype, {\n  construct: function (element) {},\n  mountComponent: function (rootID, transaction, context) {\n    ReactEmptyComponentRegistry.registerNullComponentID(rootID);\n    this._rootNodeID = rootID;\n    return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context);\n  },\n  receiveComponent: function () {},\n  unmountComponent: function (rootID, transaction, context) {\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID);\n    this._rootNodeID = null;\n    this._renderedComponent = null;\n  }\n});\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactEmptyComponent.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNativeComponent\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar autoGenerateWrapperClass = null;\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around native tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactNativeComponentInjection = {\n  // This accepts a class that receives the tag string. This is a catch all\n  // that can render any kind of tag.\n  injectGenericComponentClass: function (componentClass) {\n    genericComponentClass = componentClass;\n  },\n  // This accepts a text component class that takes the text string to be\n  // rendered as props.\n  injectTextComponentClass: function (componentClass) {\n    textComponentClass = componentClass;\n  },\n  // This accepts a keyed object with classes as values. Each key represents a\n  // tag. That particular tag will use this class instead of the generic one.\n  injectComponentClasses: function (componentClasses) {\n    assign(tagToComponentClass, componentClasses);\n  }\n};\n\n/**\n * Get a composite component wrapper class for a specific tag.\n *\n * @param {ReactElement} element The tag for which to get the class.\n * @return {function} The React class constructor function.\n */\nfunction getComponentClassForElement(element) {\n  if (typeof element.type === 'function') {\n    return element.type;\n  }\n  var tag = element.type;\n  var componentClass = tagToComponentClass[tag];\n  if (componentClass == null) {\n    tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);\n  }\n  return componentClass;\n}\n\n/**\n * Get a native internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n  !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined;\n  return new genericComponentClass(element.type, element.props);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n  return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n  return component instanceof textComponentClass;\n}\n\nvar ReactNativeComponent = {\n  getComponentClassForElement: getComponentClassForElement,\n  createInternalComponent: createInternalComponent,\n  createInstanceForText: createInstanceForText,\n  isTextComponent: isTextComponent,\n  injection: ReactNativeComponentInjection\n};\n\nmodule.exports = ReactNativeComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactNativeComponent.js\n **/","/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    parentTag: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  var updatedAncestorInfo = function (oldInfo, tag, instance) {\n    var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag, instance: instance };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.parentTag = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frame':\n      case 'head':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n\n      case 'pre':\n      case 'listing':\n\n      case 'table':\n\n      case 'hr':\n\n      case 'xmp':\n\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  /**\n   * Given a ReactCompositeComponent instance, return a list of its recursive\n   * owners, starting at the root and ending with the instance itself.\n   */\n  var findOwnerStack = function (instance) {\n    if (!instance) {\n      return [];\n    }\n\n    var stack = [];\n    /*eslint-disable space-after-keywords */\n    do {\n      /*eslint-enable space-after-keywords */\n      stack.push(instance);\n    } while (instance = instance._currentElement._owner);\n    stack.reverse();\n    return stack;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childInstance, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var problematic = invalidParent || invalidAncestor;\n\n    if (problematic) {\n      var ancestorTag = problematic.tag;\n      var ancestorInstance = problematic.instance;\n\n      var childOwner = childInstance && childInstance._currentElement._owner;\n      var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n      var childOwners = findOwnerStack(childOwner);\n      var ancestorOwners = findOwnerStack(ancestorOwner);\n\n      var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n      var i;\n\n      var deepestCommon = -1;\n      for (i = 0; i < minStackLen; i++) {\n        if (childOwners[i] === ancestorOwners[i]) {\n          deepestCommon = i;\n        } else {\n          break;\n        }\n      }\n\n      var UNKNOWN = '(unknown)';\n      var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ownerInfo = [].concat(\n      // If the parent and child instances have a common owner ancestor, start\n      // with that -- otherwise we just start with the parent's owners.\n      deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n      // If we're warning about an invalid (non-parent) ancestry, add '...'\n      invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n      var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n      if (didWarn[warnKey]) {\n        return;\n      }\n      didWarn[warnKey] = true;\n\n      if (invalidParent) {\n        var info = '';\n        if (ancestorTag === 'table' && childTag === 'tr') {\n          info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n        }\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined;\n      }\n    }\n  };\n\n  validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2);\n\n  validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n  // For testing\n  validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n    return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n  };\n}\n\nmodule.exports = validateDOMNesting;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/validateDOMNesting.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar ClientReactRootIndex = require('./ClientReactRootIndex');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactBrowserComponentMixin = require('./ReactBrowserComponentMixin');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar ServerReactRootIndex = require('./ServerReactRootIndex');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n  if (alreadyInjected) {\n    // TODO: This is currently true because these injections are shared between\n    // the client and the server package. They should be built independently\n    // and not share any injection state. Then this problem will be solved.\n    return;\n  }\n  alreadyInjected = true;\n\n  ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n  /**\n   * Inject modules for resolving DOM hierarchy and plugin ordering.\n   */\n  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n  ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);\n  ReactInjection.EventPluginHub.injectMount(ReactMount);\n\n  /**\n   * Some important event plugins included by default (without having to require\n   * them).\n   */\n  ReactInjection.EventPluginHub.injectEventPluginsByName({\n    SimpleEventPlugin: SimpleEventPlugin,\n    EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n    ChangeEventPlugin: ChangeEventPlugin,\n    SelectEventPlugin: SelectEventPlugin,\n    BeforeInputEventPlugin: BeforeInputEventPlugin\n  });\n\n  ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent);\n\n  ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n  ReactInjection.Class.injectMixin(ReactBrowserComponentMixin);\n\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n  ReactInjection.EmptyComponent.injectEmptyComponent('noscript');\n\n  ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n  ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n  ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex);\n\n  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n\n  if (process.env.NODE_ENV !== 'production') {\n    var url = ExecutionEnvironment.canUseDOM && window.location.href || '';\n    if (/[?&]react_perf\\b/.test(url)) {\n      var ReactDefaultPerf = require('./ReactDefaultPerf');\n      ReactDefaultPerf.start();\n    }\n  }\n}\n\nmodule.exports = {\n  inject: inject\n};\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDefaultInjection.js\n **/","/**\n * Copyright 2013-2015 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n  var opera = window.opera;\n  return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBeforeInput: null }),\n      captured: keyOf({ onBeforeInputCapture: null })\n    },\n    dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionEnd: null }),\n      captured: keyOf({ onCompositionEndCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionStart: null }),\n      captured: keyOf({ onCompositionStartCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionUpdate: null }),\n      captured: keyOf({ onCompositionUpdateCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionStart:\n      return eventTypes.compositionStart;\n    case topLevelTypes.topCompositionEnd:\n      return eventTypes.compositionEnd;\n    case topLevelTypes.topCompositionUpdate:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topKeyUp:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case topLevelTypes.topKeyDown:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case topLevelTypes.topKeyPress:\n    case topLevelTypes.topMouseDown:\n    case topLevelTypes.topBlur:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!currentComposition) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!currentComposition && eventType === eventTypes.compositionStart) {\n      currentComposition = FallbackCompositionState.getPooled(topLevelTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (currentComposition) {\n        fallbackData = currentComposition.getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionEnd:\n      return getDataFromCustomEvent(nativeEvent);\n    case topLevelTypes.topKeyPress:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case topLevelTypes.topTextInput:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to blacklist it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  if (currentComposition) {\n    if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = currentComposition.getData();\n      FallbackCompositionState.release(currentComposition);\n      currentComposition = null;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case topLevelTypes.topPaste:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case topLevelTypes.topKeyPress:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n        return String.fromCharCode(nativeEvent.which);\n      }\n      return null;\n    case topLevelTypes.topCompositionEnd:\n      return useFallbackCompositionData ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)];\n  }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/BeforeInputEventPlugin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\n\nvar warning = require('fbjs/lib/warning');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(id, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(id, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(domID, upwards, event) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined;\n  }\n  var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n  var listener = listenerAtPhase(domID, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(id, ignoredDirection, event) {\n  if (event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(id, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchIDs = accumulateInto(event._dispatchIDs, id);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event.dispatchMarker, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {\n  EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n  accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n  accumulateDirectDispatches: accumulateDirectDispatches,\n  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EventPropagators.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n  this._root = root;\n  this._startText = this.getText();\n  this._fallbackText = null;\n}\n\nassign(FallbackCompositionState.prototype, {\n  destructor: function () {\n    this._root = null;\n    this._startText = null;\n    this._fallbackText = null;\n  },\n\n  /**\n   * Get current text of input.\n   *\n   * @return {string}\n   */\n  getText: function () {\n    if ('value' in this._root) {\n      return this._root.value;\n    }\n    return this._root[getTextContentAccessor()];\n  },\n\n  /**\n   * Determine the differing substring between the initially stored\n   * text content and the current content.\n   *\n   * @return {string}\n   */\n  getData: function () {\n    if (this._fallbackText) {\n      return this._fallbackText;\n    }\n\n    var start;\n    var startValue = this._startText;\n    var startLength = startValue.length;\n    var end;\n    var endValue = this.getText();\n    var endLength = endValue.length;\n\n    for (start = 0; start < startLength; start++) {\n      if (startValue[start] !== endValue[start]) {\n        break;\n      }\n    }\n\n    var minEnd = startLength - start;\n    for (end = 1; end <= minEnd; end++) {\n      if (startValue[startLength - end] !== endValue[endLength - end]) {\n        break;\n      }\n    }\n\n    var sliceTail = end > 1 ? 1 - end : undefined;\n    this._fallbackText = endValue.slice(start, sliceTail);\n    return this._fallbackText;\n  }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/FallbackCompositionState.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n  if (!contentKey && ExecutionEnvironment.canUseDOM) {\n    // Prefer textContent to innerText because many browsers support both but\n    // SVG <text> elements don't support innerText even when <div> does.\n    contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n  }\n  return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getTextContentAccessor.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticCompositionEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: emptyFunction.thatReturnsNull,\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n */\nfunction SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  this.dispatchConfig = dispatchConfig;\n  this.dispatchMarker = dispatchMarker;\n  this.nativeEvent = nativeEvent;\n  this.target = nativeEventTarget;\n  this.currentTarget = nativeEventTarget;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      this[propName] = nativeEvent[propName];\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n  }\n  this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n}\n\nassign(SyntheticEvent.prototype, {\n\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else {\n      event.cancelBubble = true;\n    }\n    this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: emptyFunction.thatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      this[propName] = null;\n    }\n    this.dispatchConfig = null;\n    this.dispatchMarker = null;\n    this.nativeEvent = null;\n  }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n  var Super = this;\n\n  var prototype = Object.create(Super.prototype);\n  assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = assign({}, Super.Interface, Interface);\n  Class.augmentClass = Super.augmentClass;\n\n  PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar InputEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticInputEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\n\"use strict\";\n\nvar keyOf = function (oneKeyObj) {\n  var key;\n  for (key in oneKeyObj) {\n    if (!oneKeyObj.hasOwnProperty(key)) {\n      continue;\n    }\n    return key;\n  }\n  return null;\n};\n\nmodule.exports = keyOf;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/keyOf.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onChange: null }),\n      captured: keyOf({ onChangeCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n  }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // See `handleChange` comment below\n  doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent));\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  EventPluginHub.enqueueEvents(event);\n  EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n  activeElement = null;\n  activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topChange) {\n    return topLevelTargetID;\n  }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForChangeEventIE8();\n    startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForChangeEventIE8();\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events\n  isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n  get: function () {\n    return activeElementValueProp.get.call(this);\n  },\n  set: function (val) {\n    // Cast to a string so we can do equality checks.\n    activeElementValue = '' + val;\n    activeElementValueProp.set.call(this, val);\n  }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElementValue = target.value;\n  activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n  Object.defineProperty(activeElement, 'value', newValueProp);\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  // delete restores the original property definition\n  delete activeElement.value;\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n  activeElement = null;\n  activeElementID = null;\n  activeElementValue = null;\n  activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  var value = nativeEvent.srcElement.value;\n  if (value === activeElementValue) {\n    return;\n  }\n  activeElementValue = value;\n\n  manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topInput) {\n    // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n    // what we want so fall through here and trigger an abstract event\n    return topLevelTargetID;\n  }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // In IE8, we can capture almost all .value changes by adding a\n    // propertychange handler and looking for events with propertyName\n    // equal to 'value'\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    if (activeElement && activeElement.value !== activeElementValue) {\n      activeElementValue = activeElement.value;\n      return activeElementID;\n    }\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topClick) {\n    return topLevelTargetID;\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n\n    var getTargetIDFunc, handleEventFunc;\n    if (shouldUseChangeEvent(topLevelTarget)) {\n      if (doesChangeEventBubble) {\n        getTargetIDFunc = getTargetIDForChangeEvent;\n      } else {\n        handleEventFunc = handleEventsForChangeEventIE8;\n      }\n    } else if (isTextInputElement(topLevelTarget)) {\n      if (isInputEventSupported) {\n        getTargetIDFunc = getTargetIDForInputEvent;\n      } else {\n        getTargetIDFunc = getTargetIDForInputEventIE;\n        handleEventFunc = handleEventsForInputEventIE;\n      }\n    } else if (shouldUseClickEvent(topLevelTarget)) {\n      getTargetIDFunc = getTargetIDForClickEvent;\n    }\n\n    if (getTargetIDFunc) {\n      var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID);\n      if (targetID) {\n        var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget);\n        event.type = 'change';\n        EventPropagators.accumulateTwoPhaseDispatches(event);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID);\n    }\n  }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ChangeEventPlugin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getEventTarget.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  'color': true,\n  'date': true,\n  'datetime': true,\n  'datetime-local': true,\n  'email': true,\n  'month': true,\n  'number': true,\n  'password': true,\n  'range': true,\n  'search': true,\n  'tel': true,\n  'text': true,\n  'time': true,\n  'url': true,\n  'week': true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea');\n}\n\nmodule.exports = isTextInputElement;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/isTextInputElement.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n  createReactRootIndex: function () {\n    return nextReactRootIndex++;\n  }\n};\n\nmodule.exports = ClientReactRootIndex;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ClientReactRootIndex.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = require('fbjs/lib/keyOf');\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/DefaultEventPluginOrder.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar ReactMount = require('./ReactMount');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar getFirstReactDOM = ReactMount.getFirstReactDOM;\n\nvar eventTypes = {\n  mouseEnter: {\n    registrationName: keyOf({ onMouseEnter: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  },\n  mouseLeave: {\n    registrationName: keyOf({ onMouseLeave: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  }\n};\n\nvar extractedEvents = [null, null];\n\nvar EnterLeaveEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n    if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n      // Must not be a mouse in or mouse out - ignoring.\n      return null;\n    }\n\n    var win;\n    if (topLevelTarget.window === topLevelTarget) {\n      // `topLevelTarget` is probably a window object.\n      win = topLevelTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = topLevelTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from;\n    var to;\n    var fromID = '';\n    var toID = '';\n    if (topLevelType === topLevelTypes.topMouseOut) {\n      from = topLevelTarget;\n      fromID = topLevelTargetID;\n      to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement);\n      if (to) {\n        toID = ReactMount.getID(to);\n      } else {\n        to = win;\n      }\n      to = to || win;\n    } else {\n      from = win;\n      to = topLevelTarget;\n      toID = topLevelTargetID;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget);\n    leave.type = 'mouseleave';\n    leave.target = from;\n    leave.relatedTarget = to;\n\n    var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget);\n    enter.type = 'mouseenter';\n    enter.target = to;\n    enter.relatedTarget = from;\n\n    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);\n\n    extractedEvents[0] = leave;\n    extractedEvents[1] = enter;\n\n    return extractedEvents;\n  }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/EnterLeaveEventPlugin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: function (event) {\n    // Webkit, Firefox, IE9+\n    // which:  1 2 3\n    // button: 0 1 2 (standard)\n    var button = event.button;\n    if ('which' in event) {\n      return button;\n    }\n    // IE<9\n    // which:  undefined\n    // button: 0 0 0\n    // button: 1 4 2 (onmouseup)\n    return button === 2 ? 2 : button === 4 ? 1 : 0;\n  },\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  // \"Proprietary\" Interface.\n  pageX: function (event) {\n    return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n  },\n  pageY: function (event) {\n    return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticMouseEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n  view: function (event) {\n    if (event.view) {\n      return event.view;\n    }\n\n    var target = getEventTarget(event);\n    if (target != null && target.window === target) {\n      // target is a window object\n      return target;\n    }\n\n    var doc = target.ownerDocument;\n    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n    if (doc) {\n      return doc.defaultView || doc.parentWindow;\n    } else {\n      return window;\n    }\n  },\n  detail: function (event) {\n    return event.detail || 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticUIEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n  'Alt': 'altKey',\n  'Control': 'ctrlKey',\n  'Meta': 'metaKey',\n  'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getEventModifierState.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar hasSVG;\nif (ExecutionEnvironment.canUseDOM) {\n  var implementation = document.implementation;\n  hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n}\n\nvar HTMLDOMPropertyConfig = {\n  isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n  Properties: {\n    /**\n     * Standard Properties\n     */\n    accept: null,\n    acceptCharset: null,\n    accessKey: null,\n    action: null,\n    allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    allowTransparency: MUST_USE_ATTRIBUTE,\n    alt: null,\n    async: HAS_BOOLEAN_VALUE,\n    autoComplete: null,\n    // autoFocus is polyfilled/normalized by AutoFocusUtils\n    // autoFocus: HAS_BOOLEAN_VALUE,\n    autoPlay: HAS_BOOLEAN_VALUE,\n    capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    cellPadding: null,\n    cellSpacing: null,\n    charSet: MUST_USE_ATTRIBUTE,\n    challenge: MUST_USE_ATTRIBUTE,\n    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    classID: MUST_USE_ATTRIBUTE,\n    // To set className on SVG elements, it's necessary to use .setAttribute;\n    // this works on HTML elements too in all browsers except IE8. Conveniently,\n    // IE8 doesn't support SVG and so we can simply use the attribute in\n    // browsers that support SVG and the property in browsers that don't,\n    // regardless of whether the element is HTML or SVG.\n    className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,\n    cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    colSpan: null,\n    content: null,\n    contentEditable: null,\n    contextMenu: MUST_USE_ATTRIBUTE,\n    controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    coords: null,\n    crossOrigin: null,\n    data: null, // For `<object />` acts as `src`.\n    dateTime: MUST_USE_ATTRIBUTE,\n    defer: HAS_BOOLEAN_VALUE,\n    dir: null,\n    disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    download: HAS_OVERLOADED_BOOLEAN_VALUE,\n    draggable: null,\n    encType: null,\n    form: MUST_USE_ATTRIBUTE,\n    formAction: MUST_USE_ATTRIBUTE,\n    formEncType: MUST_USE_ATTRIBUTE,\n    formMethod: MUST_USE_ATTRIBUTE,\n    formNoValidate: HAS_BOOLEAN_VALUE,\n    formTarget: MUST_USE_ATTRIBUTE,\n    frameBorder: MUST_USE_ATTRIBUTE,\n    headers: null,\n    height: MUST_USE_ATTRIBUTE,\n    hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    high: null,\n    href: null,\n    hrefLang: null,\n    htmlFor: null,\n    httpEquiv: null,\n    icon: null,\n    id: MUST_USE_PROPERTY,\n    inputMode: MUST_USE_ATTRIBUTE,\n    is: MUST_USE_ATTRIBUTE,\n    keyParams: MUST_USE_ATTRIBUTE,\n    keyType: MUST_USE_ATTRIBUTE,\n    label: null,\n    lang: null,\n    list: MUST_USE_ATTRIBUTE,\n    loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    low: null,\n    manifest: MUST_USE_ATTRIBUTE,\n    marginHeight: null,\n    marginWidth: null,\n    max: null,\n    maxLength: MUST_USE_ATTRIBUTE,\n    media: MUST_USE_ATTRIBUTE,\n    mediaGroup: null,\n    method: null,\n    min: null,\n    minLength: MUST_USE_ATTRIBUTE,\n    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    name: null,\n    noValidate: HAS_BOOLEAN_VALUE,\n    open: HAS_BOOLEAN_VALUE,\n    optimum: null,\n    pattern: null,\n    placeholder: null,\n    poster: null,\n    preload: null,\n    radioGroup: null,\n    readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    rel: null,\n    required: HAS_BOOLEAN_VALUE,\n    role: MUST_USE_ATTRIBUTE,\n    rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    rowSpan: null,\n    sandbox: null,\n    scope: null,\n    scoped: HAS_BOOLEAN_VALUE,\n    scrolling: null,\n    seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    shape: null,\n    size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    sizes: MUST_USE_ATTRIBUTE,\n    span: HAS_POSITIVE_NUMERIC_VALUE,\n    spellCheck: null,\n    src: null,\n    srcDoc: MUST_USE_PROPERTY,\n    srcSet: MUST_USE_ATTRIBUTE,\n    start: HAS_NUMERIC_VALUE,\n    step: null,\n    style: null,\n    summary: null,\n    tabIndex: null,\n    target: null,\n    title: null,\n    type: null,\n    useMap: null,\n    value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,\n    width: MUST_USE_ATTRIBUTE,\n    wmode: MUST_USE_ATTRIBUTE,\n    wrap: null,\n\n    /**\n     * RDFa Properties\n     */\n    about: MUST_USE_ATTRIBUTE,\n    datatype: MUST_USE_ATTRIBUTE,\n    inlist: MUST_USE_ATTRIBUTE,\n    prefix: MUST_USE_ATTRIBUTE,\n    // property is also supported for OpenGraph in meta tags.\n    property: MUST_USE_ATTRIBUTE,\n    resource: MUST_USE_ATTRIBUTE,\n    'typeof': MUST_USE_ATTRIBUTE,\n    vocab: MUST_USE_ATTRIBUTE,\n\n    /**\n     * Non-standard Properties\n     */\n    // autoCapitalize and autoCorrect are supported in Mobile Safari for\n    // keyboard hints.\n    autoCapitalize: null,\n    autoCorrect: null,\n    // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n    autoSave: null,\n    // itemProp, itemScope, itemType are for\n    // Microdata support. See http://schema.org/docs/gs.html\n    itemProp: MUST_USE_ATTRIBUTE,\n    itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    itemType: MUST_USE_ATTRIBUTE,\n    // itemID and itemRef are for Microdata support as well but\n    // only specified in the the WHATWG spec document. See\n    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n    itemID: MUST_USE_ATTRIBUTE,\n    itemRef: MUST_USE_ATTRIBUTE,\n    // results show looking glass icon and recent searches on input\n    // search fields in WebKit/Blink\n    results: null,\n    // IE-only attribute that specifies security restrictions on an iframe\n    // as an alternative to the sandbox attribute on IE<10\n    security: MUST_USE_ATTRIBUTE,\n    // IE-only attribute that controls focus behavior\n    unselectable: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNames: {\n    acceptCharset: 'accept-charset',\n    className: 'class',\n    htmlFor: 'for',\n    httpEquiv: 'http-equiv'\n  },\n  DOMPropertyNames: {\n    autoCapitalize: 'autocapitalize',\n    autoComplete: 'autocomplete',\n    autoCorrect: 'autocorrect',\n    autoFocus: 'autofocus',\n    autoPlay: 'autoplay',\n    autoSave: 'autosave',\n    // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter.\n    // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding\n    encType: 'encoding',\n    hrefLang: 'hreflang',\n    radioGroup: 'radiogroup',\n    spellCheck: 'spellcheck',\n    srcDoc: 'srcdoc',\n    srcSet: 'srcset'\n  }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/HTMLDOMPropertyConfig.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserComponentMixin\n */\n\n'use strict';\n\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar findDOMNode = require('./findDOMNode');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnKey = '_getDOMNodeDidWarn';\n\nvar ReactBrowserComponentMixin = {\n  /**\n   * Returns the DOM node rendered by this component.\n   *\n   * @return {DOMElement} The root node of this component.\n   * @final\n   * @protected\n   */\n  getDOMNode: function () {\n    process.env.NODE_ENV !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined;\n    this.constructor[didWarnKey] = true;\n    return findDOMNode(this);\n  }\n};\n\nmodule.exports = ReactBrowserComponentMixin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactBrowserComponentMixin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMount = require('./ReactMount');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n  if (process.env.NODE_ENV !== 'production') {\n    var owner = ReactCurrentOwner.current;\n    if (owner !== null) {\n      process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n      owner._warnedAboutRefsInRender = true;\n    }\n  }\n  if (componentOrElement == null) {\n    return null;\n  }\n  if (componentOrElement.nodeType === 1) {\n    return componentOrElement;\n  }\n  if (ReactInstanceMap.has(componentOrElement)) {\n    return ReactMount.getNodeFromInstance(componentOrElement);\n  }\n  !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined;\n  !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined;\n}\n\nmodule.exports = findDOMNode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/findDOMNode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: function () {\n    ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n  }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n  this.reinitializeTransaction();\n}\n\nassign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n  isBatchingUpdates: false,\n\n  /**\n   * Call the provided function in a context within which calls to `setState`\n   * and friends are batched such that components aren't updated unnecessarily.\n   */\n  batchedUpdates: function (callback, a, b, c, d, e) {\n    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n    ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n    // The code is written this way to avoid extra allocations\n    if (alreadyBatchingUpdates) {\n      callback(a, b, c, d, e);\n    } else {\n      transaction.perform(callback, null, a, b, c, d, e);\n    }\n  }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDefaultBatchingStrategy.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n * @typechecks static-only\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventConstants = require('./EventConstants');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMButton = require('./ReactDOMButton');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactMount = require('./ReactMount');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactPerf = require('./ReactPerf');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar keyOf = require('fbjs/lib/keyOf');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar deleteListener = ReactBrowserEventEmitter.deleteListener;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar STYLE = keyOf({ style: null });\n\nvar ELEMENT_NODE_TYPE = 1;\n\nvar canDefineProperty = false;\ntry {\n  Object.defineProperty({}, 'test', { get: function () {} });\n  canDefineProperty = true;\n} catch (e) {}\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n  if (internalInstance) {\n    var owner = internalInstance._currentElement._owner || null;\n    if (owner) {\n      var name = owner.getName();\n      if (name) {\n        return ' This DOM node was rendered by `' + name + '`.';\n      }\n    }\n  }\n  return '';\n}\n\nvar legacyPropsDescriptor;\nif (process.env.NODE_ENV !== 'production') {\n  legacyPropsDescriptor = {\n    props: {\n      enumerable: false,\n      get: function () {\n        var component = this._reactInternalComponent;\n        process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined;\n        return component._currentElement.props;\n      }\n    }\n  };\n}\n\nfunction legacyGetDOMNode() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return this;\n}\n\nfunction legacyIsMounted() {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return !!component;\n}\n\nfunction legacySetStateEtc() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n}\n\nfunction legacySetProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction legacyReplaceProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction friendlyStringify(obj) {\n  if (typeof obj === 'object') {\n    if (Array.isArray(obj)) {\n      return '[' + obj.map(friendlyStringify).join(', ') + ']';\n    } else {\n      var pairs = [];\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n          pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n        }\n      }\n      return '{' + pairs.join(', ') + '}';\n    }\n  } else if (typeof obj === 'string') {\n    return JSON.stringify(obj);\n  } else if (typeof obj === 'function') {\n    return '[function object]';\n  }\n  // Differs from JSON.stringify in that undefined becauses undefined and that\n  // inf and nan don't become null\n  return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n  if (style1 == null || style2 == null) {\n    return;\n  }\n  if (shallowEqual(style1, style2)) {\n    return;\n  }\n\n  var componentName = component._tag;\n  var owner = component._currentElement._owner;\n  var ownerName;\n  if (owner) {\n    ownerName = owner.getName();\n  }\n\n  var hash = ownerName + '|' + componentName;\n\n  if (styleMutationWarning.hasOwnProperty(hash)) {\n    return;\n  }\n\n  styleMutationWarning[hash] = true;\n\n  process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (process.env.NODE_ENV !== 'production') {\n    if (voidElementTags[component._tag]) {\n      process.env.NODE_ENV !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined;\n    }\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && '__html' in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined;\n    process.env.NODE_ENV !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined;\n  }\n  !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \\'em\\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined;\n}\n\nfunction enqueuePutListener(id, registrationName, listener, transaction) {\n  if (process.env.NODE_ENV !== 'production') {\n    // IE8 has no API for event capturing and the `onScroll` event doesn't\n    // bubble.\n    process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : undefined;\n  }\n  var container = ReactMount.findReactContainerForID(id);\n  if (container) {\n    var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container;\n    listenTo(registrationName, doc);\n  }\n  transaction.getReactMountReady().enqueue(putListener, {\n    id: id,\n    registrationName: registrationName,\n    listener: listener\n  });\n}\n\nfunction putListener() {\n  var listenerToPut = this;\n  ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener);\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n  topAbort: 'abort',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTimeUpdate: 'timeupdate',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n  var inst = this;\n  // If a component renders to null or if another component fatals and causes\n  // the state of the tree to be corrupted, `node` here can be null.\n  !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined;\n  var node = ReactMount.getNode(inst._rootNodeID);\n  !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined;\n\n  switch (inst._tag) {\n    case 'iframe':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'video':\n    case 'audio':\n\n      inst._wrapperState.listeners = [];\n      // create listener for each media event\n      for (var event in mediaEvents) {\n        if (mediaEvents.hasOwnProperty(event)) {\n          inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n        }\n      }\n\n      break;\n    case 'img':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'form':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n      break;\n  }\n}\n\nfunction mountReadyInputWrapper() {\n  ReactDOMInput.mountReadyWrapper(this);\n}\n\nfunction postUpdateSelectWrapper() {\n  ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special cased tags.\n\nvar omittedCloseTags = {\n  'area': true,\n  'base': true,\n  'br': true,\n  'col': true,\n  'embed': true,\n  'hr': true,\n  'img': true,\n  'input': true,\n  'keygen': true,\n  'link': true,\n  'meta': true,\n  'param': true,\n  'source': true,\n  'track': true,\n  'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n  'listing': true,\n  'pre': true,\n  'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = assign({\n  'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = ({}).hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n  if (!hasOwnProperty.call(validatedTagCache, tag)) {\n    !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined;\n    validatedTagCache[tag] = true;\n  }\n}\n\nfunction processChildContextDev(context, inst) {\n  // Pass down our tag name to child components for validation purposes\n  context = assign({}, context);\n  var info = context[validateDOMNesting.ancestorInfoContextKey];\n  context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);\n  return context;\n}\n\nfunction isCustomComponent(tagName, props) {\n  return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n *  - Event listeners: `onClick`, `onMouseDown`, etc.\n *  - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(tag) {\n  validateDangerousTag(tag);\n  this._tag = tag.toLowerCase();\n  this._renderedChildren = null;\n  this._previousStyle = null;\n  this._previousStyleCopy = null;\n  this._rootNodeID = null;\n  this._wrapperState = null;\n  this._topLevelWrapper = null;\n  this._nodeWithLegacyProperties = null;\n  if (process.env.NODE_ENV !== 'production') {\n    this._unprocessedContextDev = null;\n    this._processedContextDev = null;\n  }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n  construct: function (element) {\n    this._currentElement = element;\n  },\n\n  /**\n   * Generates root tag markup then recurses. This method has side effects and\n   * is not idempotent.\n   *\n   * @internal\n   * @param {string} rootID The root DOM ID for this node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   * @return {string} The computed markup.\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._rootNodeID = rootID;\n\n    var props = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        this._wrapperState = {\n          listeners: null\n        };\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'button':\n        props = ReactDOMButton.getNativeProps(this, props, context);\n        break;\n      case 'input':\n        ReactDOMInput.mountWrapper(this, props, context);\n        props = ReactDOMInput.getNativeProps(this, props, context);\n        break;\n      case 'option':\n        ReactDOMOption.mountWrapper(this, props, context);\n        props = ReactDOMOption.getNativeProps(this, props, context);\n        break;\n      case 'select':\n        ReactDOMSelect.mountWrapper(this, props, context);\n        props = ReactDOMSelect.getNativeProps(this, props, context);\n        context = ReactDOMSelect.processChildContext(this, props, context);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.mountWrapper(this, props, context);\n        props = ReactDOMTextarea.getNativeProps(this, props, context);\n        break;\n    }\n\n    assertValidProps(this, props);\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._unprocessedContextDev = context;\n      this._processedContextDev = processChildContextDev(context, this);\n      context = this._processedContextDev;\n    }\n\n    var mountImage;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement(this._currentElement.type);\n      DOMPropertyOperations.setAttributeForID(el, this._rootNodeID);\n      // Populate node cache\n      ReactMount.getID(el);\n      this._updateDOMProperties({}, props, transaction, el);\n      this._createInitialChildren(transaction, props, context, el);\n      mountImage = el;\n    } else {\n      var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n      var tagContent = this._createContentMarkup(transaction, props, context);\n      if (!tagContent && omittedCloseTags[this._tag]) {\n        mountImage = tagOpen + '/>';\n      } else {\n        mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n      }\n    }\n\n    switch (this._tag) {\n      case 'input':\n        transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this);\n      // falls through\n      case 'button':\n      case 'select':\n      case 'textarea':\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n    }\n\n    return mountImage;\n  },\n\n  /**\n   * Creates markup for the open tag and all attributes.\n   *\n   * This method has side effects because events get registered.\n   *\n   * Iterating over object properties is faster than iterating over arrays.\n   * @see http://jsperf.com/obj-vs-arr-iteration\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @return {string} Markup of opening tag.\n   */\n  _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n    var ret = '<' + this._currentElement.type;\n\n    for (var propKey in props) {\n      if (!props.hasOwnProperty(propKey)) {\n        continue;\n      }\n      var propValue = props[propKey];\n      if (propValue == null) {\n        continue;\n      }\n      if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (propValue) {\n          enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);\n        }\n      } else {\n        if (propKey === STYLE) {\n          if (propValue) {\n            if (process.env.NODE_ENV !== 'production') {\n              // See `_updateDOMProperties`. style block\n              this._previousStyle = propValue;\n            }\n            propValue = this._previousStyleCopy = assign({}, props.style);\n          }\n          propValue = CSSPropertyOperations.createMarkupForStyles(propValue);\n        }\n        var markup = null;\n        if (this._tag != null && isCustomComponent(this._tag, props)) {\n          markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n        } else {\n          markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n        }\n        if (markup) {\n          ret += ' ' + markup;\n        }\n      }\n    }\n\n    // For static pages, no need to put React ID and checksum. Saves lots of\n    // bytes.\n    if (transaction.renderToStaticMarkup) {\n      return ret;\n    }\n\n    var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);\n    return ret + ' ' + markupForID;\n  },\n\n  /**\n   * Creates markup for the content between the tags.\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @param {object} context\n   * @return {string} Content markup.\n   */\n  _createContentMarkup: function (transaction, props, context) {\n    var ret = '';\n\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        ret = innerHTML.__html;\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        ret = escapeTextContentForBrowser(contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        ret = mountImages.join('');\n      }\n    }\n    if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n      // text/html ignores the first character in these tags if it's a newline\n      // Prefer to break application/xml over text/html (for now) by adding\n      // a newline specifically to get eaten by the parser. (Alternately for\n      // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n      // \\r is normalized out by HTMLTextAreaElement#value.)\n      // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n      // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n      // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n      // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n      //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n      return '\\n' + ret;\n    } else {\n      return ret;\n    }\n  },\n\n  _createInitialChildren: function (transaction, props, context, el) {\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        setInnerHTML(el, innerHTML.__html);\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        setTextContent(el, contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        for (var i = 0; i < mountImages.length; i++) {\n          el.appendChild(mountImages[i]);\n        }\n      }\n    }\n  },\n\n  /**\n   * Receives a next element and updates the component.\n   *\n   * @internal\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   */\n  receiveComponent: function (nextElement, transaction, context) {\n    var prevElement = this._currentElement;\n    this._currentElement = nextElement;\n    this.updateComponent(transaction, prevElement, nextElement, context);\n  },\n\n  /**\n   * Updates a native DOM component after it has already been allocated and\n   * attached to the DOM. Reconciles the root DOM node, then recurses.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevElement\n   * @param {ReactElement} nextElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevElement, nextElement, context) {\n    var lastProps = prevElement.props;\n    var nextProps = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'button':\n        lastProps = ReactDOMButton.getNativeProps(this, lastProps);\n        nextProps = ReactDOMButton.getNativeProps(this, nextProps);\n        break;\n      case 'input':\n        ReactDOMInput.updateWrapper(this);\n        lastProps = ReactDOMInput.getNativeProps(this, lastProps);\n        nextProps = ReactDOMInput.getNativeProps(this, nextProps);\n        break;\n      case 'option':\n        lastProps = ReactDOMOption.getNativeProps(this, lastProps);\n        nextProps = ReactDOMOption.getNativeProps(this, nextProps);\n        break;\n      case 'select':\n        lastProps = ReactDOMSelect.getNativeProps(this, lastProps);\n        nextProps = ReactDOMSelect.getNativeProps(this, nextProps);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.updateWrapper(this);\n        lastProps = ReactDOMTextarea.getNativeProps(this, lastProps);\n        nextProps = ReactDOMTextarea.getNativeProps(this, nextProps);\n        break;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // If the context is reference-equal to the old one, pass down the same\n      // processed object so the update bailout in ReactReconciler behaves\n      // correctly (and identically in dev and prod). See #5005.\n      if (this._unprocessedContextDev !== context) {\n        this._unprocessedContextDev = context;\n        this._processedContextDev = processChildContextDev(context, this);\n      }\n      context = this._processedContextDev;\n    }\n\n    assertValidProps(this, nextProps);\n    this._updateDOMProperties(lastProps, nextProps, transaction, null);\n    this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n    if (!canDefineProperty && this._nodeWithLegacyProperties) {\n      this._nodeWithLegacyProperties.props = nextProps;\n    }\n\n    if (this._tag === 'select') {\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n    }\n  },\n\n  /**\n   * Reconciles the properties by detecting differences in property values and\n   * updating the DOM as necessary. This function is probably the single most\n   * critical path for performance optimization.\n   *\n   * TODO: Benchmark whether checking for changed values in memory actually\n   *       improves performance (especially statically positioned elements).\n   * TODO: Benchmark the effects of putting this at the top since 99% of props\n   *       do not change for a given reconciliation.\n   * TODO: Benchmark areas that can be improved with caching.\n   *\n   * @private\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?DOMElement} node\n   */\n  _updateDOMProperties: function (lastProps, nextProps, transaction, node) {\n    var propKey;\n    var styleName;\n    var styleUpdates;\n    for (propKey in lastProps) {\n      if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        var lastStyle = this._previousStyleCopy;\n        for (styleName in lastStyle) {\n          if (lastStyle.hasOwnProperty(styleName)) {\n            styleUpdates = styleUpdates || {};\n            styleUpdates[styleName] = '';\n          }\n        }\n        this._previousStyleCopy = null;\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (lastProps[propKey]) {\n          // Only call deleteListener if there was a listener previously or\n          // else willDeleteListener gets called when there wasn't actually a\n          // listener (e.g., onClick={null})\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        DOMPropertyOperations.deleteValueForProperty(node, propKey);\n      }\n    }\n    for (propKey in nextProps) {\n      var nextProp = nextProps[propKey];\n      var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey];\n      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        if (nextProp) {\n          if (process.env.NODE_ENV !== 'production') {\n            checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n            this._previousStyle = nextProp;\n          }\n          nextProp = this._previousStyleCopy = assign({}, nextProp);\n        } else {\n          this._previousStyleCopy = null;\n        }\n        if (lastProp) {\n          // Unset styles on `lastProp` but not on `nextProp`.\n          for (styleName in lastProp) {\n            if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          // Update styles that changed since `lastProp`.\n          for (styleName in nextProp) {\n            if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = nextProp[styleName];\n            }\n          }\n        } else {\n          // Relies on `updateStylesByID` not mutating `styleUpdates`.\n          styleUpdates = nextProp;\n        }\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (nextProp) {\n          enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction);\n        } else if (lastProp) {\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (isCustomComponent(this._tag, nextProps)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp);\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        // If we're updating to null or undefined, we should remove the property\n        // from the DOM node instead of inadvertantly setting to a string. This\n        // brings us in line with the same behavior we have on initial render.\n        if (nextProp != null) {\n          DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n        } else {\n          DOMPropertyOperations.deleteValueForProperty(node, propKey);\n        }\n      }\n    }\n    if (styleUpdates) {\n      if (!node) {\n        node = ReactMount.getNode(this._rootNodeID);\n      }\n      CSSPropertyOperations.setValueForStyles(node, styleUpdates);\n    }\n  },\n\n  /**\n   * Reconciles the children with the various properties that affect the\n   * children content.\n   *\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   */\n  _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n    var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n    var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n    var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n    var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n    // Note the use of `!=` which checks for null or undefined.\n    var lastChildren = lastContent != null ? null : lastProps.children;\n    var nextChildren = nextContent != null ? null : nextProps.children;\n\n    // If we're switching from children to content/html or vice versa, remove\n    // the old content\n    var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n    var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n    if (lastChildren != null && nextChildren == null) {\n      this.updateChildren(null, transaction, context);\n    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n      this.updateTextContent('');\n    }\n\n    if (nextContent != null) {\n      if (lastContent !== nextContent) {\n        this.updateTextContent('' + nextContent);\n      }\n    } else if (nextHtml != null) {\n      if (lastHtml !== nextHtml) {\n        this.updateMarkup('' + nextHtml);\n      }\n    } else if (nextChildren != null) {\n      this.updateChildren(nextChildren, transaction, context);\n    }\n  },\n\n  /**\n   * Destroys all event registrations for this instance. Does not remove from\n   * the DOM. That must be done by the parent.\n   *\n   * @internal\n   */\n  unmountComponent: function () {\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        var listeners = this._wrapperState.listeners;\n        if (listeners) {\n          for (var i = 0; i < listeners.length; i++) {\n            listeners[i].remove();\n          }\n        }\n        break;\n      case 'input':\n        ReactDOMInput.unmountWrapper(this);\n        break;\n      case 'html':\n      case 'head':\n      case 'body':\n        /**\n         * Components like <html> <head> and <body> can't be removed or added\n         * easily in a cross-browser way, however it's valuable to be able to\n         * take advantage of React's reconciliation for styling and <title>\n         * management. So we just document it and throw in dangerous cases.\n         */\n        !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined;\n        break;\n    }\n\n    this.unmountChildren();\n    ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n    this._rootNodeID = null;\n    this._wrapperState = null;\n    if (this._nodeWithLegacyProperties) {\n      var node = this._nodeWithLegacyProperties;\n      node._reactInternalComponent = null;\n      this._nodeWithLegacyProperties = null;\n    }\n  },\n\n  getPublicInstance: function () {\n    if (!this._nodeWithLegacyProperties) {\n      var node = ReactMount.getNode(this._rootNodeID);\n\n      node._reactInternalComponent = this;\n      node.getDOMNode = legacyGetDOMNode;\n      node.isMounted = legacyIsMounted;\n      node.setState = legacySetStateEtc;\n      node.replaceState = legacySetStateEtc;\n      node.forceUpdate = legacySetStateEtc;\n      node.setProps = legacySetProps;\n      node.replaceProps = legacyReplaceProps;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (canDefineProperty) {\n          Object.defineProperties(node, legacyPropsDescriptor);\n        } else {\n          // updateComponent will update this property on subsequent renders\n          node.props = this._currentElement.props;\n        }\n      } else {\n        // updateComponent will update this property on subsequent renders\n        node.props = this._currentElement.props;\n      }\n\n      this._nodeWithLegacyProperties = node;\n    }\n    return this._nodeWithLegacyProperties;\n  }\n\n};\n\nReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent'\n});\n\nassign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMComponent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nvar findDOMNode = require('./findDOMNode');\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar Mixin = {\n  componentDidMount: function () {\n    if (this.props.autoFocus) {\n      focusNode(findDOMNode(this));\n    }\n  }\n};\n\nvar AutoFocusUtils = {\n  Mixin: Mixin,\n\n  focusDOMComponent: function () {\n    focusNode(ReactMount.getNode(this._rootNodeID));\n  }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/AutoFocusUtils.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule focusNode\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/focusNode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactPerf = require('./ReactPerf');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n  return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n  var tempStyle = document.createElement('div').style;\n  try {\n    // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n    tempStyle.font = '';\n  } catch (e) {\n    hasShorthandPropertyBug = true;\n  }\n  // IE8 only supports accessing cssFloat (standard) as styleFloat\n  if (document.documentElement.style.cssFloat === undefined) {\n    styleFloatAccessor = 'styleFloat';\n  }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined;\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined;\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon. ' + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined;\n  };\n\n  /**\n   * @param {string} name\n   * @param {*} value\n   */\n  var warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n  };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n  /**\n   * Serializes a mapping of style properties for use as inline styles:\n   *\n   *   > createMarkupForStyles({width: '200px', height: 0})\n   *   \"width:200px;height:0;\"\n   *\n   * Undefined values are ignored so that declarative programming is easier.\n   * The result should be HTML-escaped before insertion into the DOM.\n   *\n   * @param {object} styles\n   * @return {?string}\n   */\n  createMarkupForStyles: function (styles) {\n    var serialized = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styleValue);\n      }\n      if (styleValue != null) {\n        serialized += processStyleName(styleName) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue) + ';';\n      }\n    }\n    return serialized || null;\n  },\n\n  /**\n   * Sets the value for multiple styles on a node.  If a value is specified as\n   * '' (empty string), the corresponding style property will be unset.\n   *\n   * @param {DOMElement} node\n   * @param {object} styles\n   */\n  setValueForStyles: function (node, styles) {\n    var style = node.style;\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styles[styleName]);\n      }\n      var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n      if (styleName === 'float') {\n        styleName = styleFloatAccessor;\n      }\n      if (styleValue) {\n        style[styleName] = styleValue;\n      } else {\n        var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n        if (expansion) {\n          // Shorthand property that IE8 won't like unsetting, so unset each\n          // component to placate it\n          for (var individualStyleName in expansion) {\n            style[individualStyleName] = '';\n          }\n        } else {\n          style[styleName] = '';\n        }\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {\n  setValueForStyles: 'setValueForStyles'\n});\n\nmodule.exports = CSSPropertyOperations;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/CSSPropertyOperations.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\n  // SVG-related properties\n  fillOpacity: true,\n  stopOpacity: true,\n  strokeDashoffset: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n  background: {\n    backgroundAttachment: true,\n    backgroundColor: true,\n    backgroundImage: true,\n    backgroundPositionX: true,\n    backgroundPositionY: true,\n    backgroundRepeat: true\n  },\n  backgroundPosition: {\n    backgroundPositionX: true,\n    backgroundPositionY: true\n  },\n  border: {\n    borderWidth: true,\n    borderStyle: true,\n    borderColor: true\n  },\n  borderBottom: {\n    borderBottomWidth: true,\n    borderBottomStyle: true,\n    borderBottomColor: true\n  },\n  borderLeft: {\n    borderLeftWidth: true,\n    borderLeftStyle: true,\n    borderLeftColor: true\n  },\n  borderRight: {\n    borderRightWidth: true,\n    borderRightStyle: true,\n    borderRightColor: true\n  },\n  borderTop: {\n    borderTopWidth: true,\n    borderTopStyle: true,\n    borderTopColor: true\n  },\n  font: {\n    fontStyle: true,\n    fontVariant: true,\n    fontWeight: true,\n    fontSize: true,\n    lineHeight: true,\n    fontFamily: true\n  },\n  outline: {\n    outlineWidth: true,\n    outlineStyle: true,\n    outlineColor: true\n  }\n};\n\nvar CSSProperty = {\n  isUnitlessNumber: isUnitlessNumber,\n  shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/CSSProperty.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelizeStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n *   > camelizeStyleName('background-color')\n *   < \"backgroundColor\"\n *   > camelizeStyleName('-moz-transition')\n *   < \"MozTransition\"\n *   > camelizeStyleName('-ms-transition')\n *   < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n  return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/camelizeStyleName.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\n\n\"use strict\";\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n *   > camelize('background-color')\n *   < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n  return string.replace(_hyphenPattern, function (_, character) {\n    return character.toUpperCase();\n  });\n}\n\nmodule.exports = camelize;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/camelize.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  var isNonNumeric = isNaN(value);\n  if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n    return '' + value; // cast to string\n  }\n\n  if (typeof value === 'string') {\n    value = value.trim();\n  }\n  return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/dangerousStyleValue.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenateStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/hyphenateStyleName.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenate\n * @typechecks\n */\n\n'use strict';\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n *   > hyphenate('backgroundColor')\n *   < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n  return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/hyphenate.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule memoizeStringOnly\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n *\n * @param {function} callback\n * @return {function}\n */\nfunction memoizeStringOnly(callback) {\n  var cache = {};\n  return function (string) {\n    if (!cache.hasOwnProperty(string)) {\n      cache[string] = callback.call(this, string);\n    }\n    return cache[string];\n  };\n}\n\nmodule.exports = memoizeStringOnly;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/memoizeStringOnly.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar mouseListenerNames = {\n  onClick: true,\n  onDoubleClick: true,\n  onMouseDown: true,\n  onMouseMove: true,\n  onMouseUp: true,\n\n  onClickCapture: true,\n  onDoubleClickCapture: true,\n  onMouseDownCapture: true,\n  onMouseMoveCapture: true,\n  onMouseUpCapture: true\n};\n\n/**\n * Implements a <button> native component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n  getNativeProps: function (inst, props, context) {\n    if (!props.disabled) {\n      return props;\n    }\n\n    // Copy the props, except the mouse listeners\n    var nativeProps = {};\n    for (var key in props) {\n      if (props.hasOwnProperty(key) && !mouseListenerNames[key]) {\n        nativeProps[key] = props[key];\n      }\n    }\n\n    return nativeProps;\n  }\n};\n\nmodule.exports = ReactDOMButton;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMButton.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar instancesByReactID = {};\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMInput.updateWrapper(this);\n  }\n}\n\n/**\n * Implements an <input> native component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n  getNativeProps: function (inst, props, context) {\n    var value = LinkedValueUtils.getValue(props);\n    var checked = LinkedValueUtils.getChecked(props);\n\n    var nativeProps = assign({}, props, {\n      defaultChecked: undefined,\n      defaultValue: undefined,\n      value: value != null ? value : inst._wrapperState.initialValue,\n      checked: checked != null ? checked : inst._wrapperState.initialChecked,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    inst._wrapperState = {\n      initialChecked: props.defaultChecked || false,\n      initialValue: defaultValue != null ? defaultValue : null,\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  mountReadyWrapper: function (inst) {\n    // Can't be in mountWrapper or else server rendering leaks.\n    instancesByReactID[inst._rootNodeID] = inst;\n  },\n\n  unmountWrapper: function (inst) {\n    delete instancesByReactID[inst._rootNodeID];\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // TODO: Shouldn't this be getChecked(props)?\n    var checked = props.checked;\n    if (checked != null) {\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  // Here we use asap to wait until all updates have propagated, which\n  // is important when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var rootNode = ReactMount.getNode(this._rootNodeID);\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form, let's just use the global\n    // `querySelectorAll` to ensure we don't miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React with non-React.\n      var otherID = ReactMount.getID(otherNode);\n      !otherID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined;\n      var otherInstance = instancesByReactID[otherID];\n      !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined;\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n    }\n  }\n\n  return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMInput.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n  'button': true,\n  'checkbox': true,\n  'image': true,\n  'hidden': true,\n  'radio': true,\n  'reset': true,\n  'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n  !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\\'t want to use valueLink and vice versa.') : invariant(false) : undefined;\n}\nfunction _assertValueLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\\'t want to use valueLink.') : invariant(false) : undefined;\n}\n\nfunction _assertCheckedLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\\'t want to ' + 'use checkedLink') : invariant(false) : undefined;\n}\n\nvar propTypes = {\n  value: function (props, propName, componentName) {\n    if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  checked: function (props, propName, componentName) {\n    if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n  checkPropTypes: function (tagName, props, owner) {\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop);\n      }\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum(owner);\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current value of the input either from value prop or link.\n   */\n  getValue: function (inputProps) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.value;\n    }\n    return inputProps.value;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current checked status of the input either from checked prop\n   *             or link.\n   */\n  getChecked: function (inputProps) {\n    if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.value;\n    }\n    return inputProps.checked;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @param {SyntheticEvent} event change event to handle\n   */\n  executeOnChange: function (inputProps, event) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.requestChange(event.target.value);\n    } else if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.requestChange(event.target.checked);\n    } else if (inputProps.onChange) {\n      return inputProps.onChange.call(undefined, event);\n    }\n  }\n};\n\nmodule.exports = LinkedValueUtils;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/LinkedValueUtils.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getIteratorFn = require('./getIteratorFn');\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n *   var Props = require('ReactPropTypes');\n *   var MyArticle = React.createClass({\n *     propTypes: {\n *       // An optional string prop named \"description\".\n *       description: Props.string,\n *\n *       // A required enum prop named \"category\".\n *       category: Props.oneOf(['News','Photos']).isRequired,\n *\n *       // A prop named \"dialog\" that requires an instance of Dialog.\n *       dialog: Props.instanceOf(Dialog).isRequired\n *     },\n *     render: function() { ... }\n *   });\n *\n * A more formal specification of how these methods are used:\n *\n *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n *   decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n *  var MyLink = React.createClass({\n *    propTypes: {\n *      // An optional string or URI prop named \"href\".\n *      href: function(props, propName, componentName) {\n *        var propValue = props[propName];\n *        if (propValue != null && typeof propValue !== 'string' &&\n *            !(propValue instanceof URI)) {\n *          return new Error(\n *            'Expected a string or an URI for ' + propName + ' in ' +\n *            componentName\n *          );\n *        }\n *      }\n *    },\n *    render: function() {...}\n *  });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n  array: createPrimitiveTypeChecker('array'),\n  bool: createPrimitiveTypeChecker('boolean'),\n  func: createPrimitiveTypeChecker('function'),\n  number: createPrimitiveTypeChecker('number'),\n  object: createPrimitiveTypeChecker('object'),\n  string: createPrimitiveTypeChecker('string'),\n\n  any: createAnyTypeChecker(),\n  arrayOf: createArrayOfTypeChecker,\n  element: createElementTypeChecker(),\n  instanceOf: createInstanceTypeChecker,\n  node: createNodeChecker(),\n  objectOf: createObjectOfTypeChecker,\n  oneOf: createEnumTypeChecker,\n  oneOfType: createUnionTypeChecker,\n  shape: createShapeTypeChecker\n};\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    componentName = componentName || ANONYMOUS;\n    propFullName = propFullName || propName;\n    if (props[propName] == null) {\n      var locationName = ReactPropTypeLocationNames[location];\n      if (isRequired) {\n        return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n      }\n      return null;\n    } else {\n      return validate(props, propName, componentName, location, propFullName);\n    }\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== expectedType) {\n      var locationName = ReactPropTypeLocationNames[location];\n      // `propValue` being instance of, say, date/regexp, pass the 'object'\n      // check, but we can offer a more precise error message here rather than\n      // 'of type `object`'.\n      var preciseType = getPreciseType(propValue);\n\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n  return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    if (!Array.isArray(propValue)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var propType = getPropType(propValue);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n    }\n    for (var i = 0; i < propValue.length; i++) {\n      var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']');\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!ReactElement.isValidElement(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!(props[propName] instanceof expectedClass)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var expectedClassName = expectedClass.name || ANONYMOUS;\n      var actualClassName = getClassName(props[propName]);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n  if (!Array.isArray(expectedValues)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOf, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    for (var i = 0; i < expectedValues.length; i++) {\n      if (propValue === expectedValues[i]) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    var valuesString = JSON.stringify(expectedValues);\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n    }\n    for (var key in propValue) {\n      if (propValue.hasOwnProperty(key)) {\n        var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n  if (!Array.isArray(arrayOfTypeCheckers)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOfType, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (checker(props, propName, componentName, location, propFullName) == null) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!isNode(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n    }\n    for (var key in shapeTypes) {\n      var checker = shapeTypes[key];\n      if (!checker) {\n        continue;\n      }\n      var error = checker(propValue, key, componentName, location, propFullName + '.' + key);\n      if (error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n  switch (typeof propValue) {\n    case 'number':\n    case 'string':\n    case 'undefined':\n      return true;\n    case 'boolean':\n      return !propValue;\n    case 'object':\n      if (Array.isArray(propValue)) {\n        return propValue.every(isNode);\n      }\n      if (propValue === null || ReactElement.isValidElement(propValue)) {\n        return true;\n      }\n\n      var iteratorFn = getIteratorFn(propValue);\n      if (iteratorFn) {\n        var iterator = iteratorFn.call(propValue);\n        var step;\n        if (iteratorFn !== propValue.entries) {\n          while (!(step = iterator.next()).done) {\n            if (!isNode(step.value)) {\n              return false;\n            }\n          }\n        } else {\n          // Iterator will provide entry [k,v] tuples rather than values.\n          while (!(step = iterator.next()).done) {\n            var entry = step.value;\n            if (entry) {\n              if (!isNode(entry[1])) {\n                return false;\n              }\n            }\n          }\n        }\n      } else {\n        return false;\n      }\n\n      return true;\n    default:\n      return false;\n  }\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n  var propType = typeof propValue;\n  if (Array.isArray(propValue)) {\n    return 'array';\n  }\n  if (propValue instanceof RegExp) {\n    // Old webkits (at least until Android 4.0) return 'function' rather than\n    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n    // passes PropTypes.object.\n    return 'object';\n  }\n  return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n  var propType = getPropType(propValue);\n  if (propType === 'object') {\n    if (propValue instanceof Date) {\n      return 'date';\n    } else if (propValue instanceof RegExp) {\n      return 'regexp';\n    }\n  }\n  return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n  if (!propValue.constructor || !propValue.constructor.name) {\n    return '<<anonymous>>';\n  }\n  return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactPropTypes.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * @typechecks static-only\n */\n\n'use strict';\n\n/* global Symbol */\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n *     var iteratorFn = getIteratorFn(myIterable);\n *     if (iteratorFn) {\n *       var iterator = iteratorFn.call(myIterable);\n *       ...\n *     }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n  if (typeof iteratorFn === 'function') {\n    return iteratorFn;\n  }\n}\n\nmodule.exports = getIteratorFn;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getIteratorFn.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = ReactDOMSelect.valueContextKey;\n\n/**\n * Implements an <option> native component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n  mountWrapper: function (inst, props, context) {\n    // TODO (yungsters): Remove support for `selected` in <option>.\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined;\n    }\n\n    // Look up whether this option is 'selected' via context\n    var selectValue = context[valueContextKey];\n\n    // If context key is null (e.g., no specified value or after initial mount)\n    // or missing (e.g., for <datalist>), we don't change props.selected\n    var selected = null;\n    if (selectValue != null) {\n      selected = false;\n      if (Array.isArray(selectValue)) {\n        // multiple\n        for (var i = 0; i < selectValue.length; i++) {\n          if ('' + selectValue[i] === '' + props.value) {\n            selected = true;\n            break;\n          }\n        }\n      } else {\n        selected = '' + selectValue === '' + props.value;\n      }\n    }\n\n    inst._wrapperState = { selected: selected };\n  },\n\n  getNativeProps: function (inst, props, context) {\n    var nativeProps = assign({ selected: undefined, children: undefined }, props);\n\n    // Read state only from initial mount because <select> updates value\n    // manually; we need the initial state only for server rendering\n    if (inst._wrapperState.selected != null) {\n      nativeProps.selected = inst._wrapperState.selected;\n    }\n\n    var content = '';\n\n    // Flatten children and warn if they aren't strings or numbers;\n    // invalid types are ignored.\n    ReactChildren.forEach(props.children, function (child) {\n      if (child == null) {\n        return;\n      }\n      if (typeof child === 'string' || typeof child === 'number') {\n        content += child;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined;\n      }\n    });\n\n    nativeProps.children = content;\n    return nativeProps;\n  }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMOption.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/(?!\\/)/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '//');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n  this.func = forEachFunction;\n  this.context = forEachContext;\n  this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n  this.result = mapResult;\n  this.keyPrefix = keyPrefix;\n  this.func = mapFunction;\n  this.context = mapContext;\n  this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n  this.result = null;\n  this.keyPrefix = null;\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result;\n  var keyPrefix = bookKeeping.keyPrefix;\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n  } else if (mappedChild != null) {\n    if (ReactElement.isValidElement(mappedChild)) {\n      mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n  return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n  return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n  return result;\n}\n\nvar ReactChildren = {\n  forEach: forEachChildren,\n  map: mapChildren,\n  mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n  count: countChildren,\n  toArray: toArray\n};\n\nmodule.exports = ReactChildren;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactChildren.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar userProvidedKeyEscaperLookup = {\n  '=': '=0',\n  '.': '=1',\n  ':': '=2'\n};\n\nvar userProvidedKeyEscapeRegex = /[=.:]/g;\n\nvar didWarnAboutMaps = false;\n\nfunction userProvidedKeyEscaper(match) {\n  return userProvidedKeyEscaperLookup[match];\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  if (component && component.key != null) {\n    // Explicit key\n    return wrapUserProvidedKey(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\n/**\n * Escape a component key so that it is safe to use in a reactid.\n *\n * @param {*} text Component key to be escaped.\n * @return {string} An escaped string.\n */\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper);\n}\n\n/**\n * Wrap a `key` value explicitly provided by the user to distinguish it from\n * implicitly-generated keys generated by a component's index in its parent.\n *\n * @param {string} key Value of a user-provided `key` attribute\n * @return {string}\n */\nfunction wrapUserProvidedKey(key) {\n  return '$' + escapeUserProvidedKey(key);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (iteratorFn) {\n      var iterator = iteratorFn.call(children);\n      var step;\n      if (iteratorFn !== children.entries) {\n        var ii = 0;\n        while (!(step = iterator.next()).done) {\n          child = step.value;\n          nextName = nextNamePrefix + getComponentKey(child, ii++);\n          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n        }\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined;\n          didWarnAboutMaps = true;\n        }\n        // Iterator will provide entry [k,v] tuples rather than values.\n        while (!(step = iterator.next()).done) {\n          var entry = step.value;\n          if (entry) {\n            child = entry[1];\n            nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n          }\n        }\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      if (process.env.NODE_ENV !== 'production') {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n        if (children._isReactElement) {\n          addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n        }\n        if (ReactCurrentOwner.current) {\n          var name = ReactCurrentOwner.current.getName();\n          if (name) {\n            addendum += ' Check the render method of `' + name + '`.';\n          }\n        }\n      }\n      var childrenString = String(children);\n      !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined;\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/traverseAllChildren.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2);\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n  if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n    this._wrapperState.pendingUpdate = false;\n\n    var props = this._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n\n    if (value != null) {\n      updateOptions(this, props, value);\n    }\n  }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n  var owner = inst._currentElement._owner;\n  LinkedValueUtils.checkPropTypes('select', props, owner);\n\n  for (var i = 0; i < valuePropNames.length; i++) {\n    var propName = valuePropNames[i];\n    if (props[propName] == null) {\n      continue;\n    }\n    if (props.multiple) {\n      process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    } else {\n      process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    }\n  }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n  var selectedValue, i;\n  var options = ReactMount.getNode(inst._rootNodeID).options;\n\n  if (multiple) {\n    selectedValue = {};\n    for (i = 0; i < propValue.length; i++) {\n      selectedValue['' + propValue[i]] = true;\n    }\n    for (i = 0; i < options.length; i++) {\n      var selected = selectedValue.hasOwnProperty(options[i].value);\n      if (options[i].selected !== selected) {\n        options[i].selected = selected;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    selectedValue = '' + propValue;\n    for (i = 0; i < options.length; i++) {\n      if (options[i].value === selectedValue) {\n        options[i].selected = true;\n        return;\n      }\n    }\n    if (options.length) {\n      options[0].selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> native component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n  valueContextKey: valueContextKey,\n\n  getNativeProps: function (inst, props, context) {\n    return assign({}, props, {\n      onChange: inst._wrapperState.onChange,\n      value: undefined\n    });\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      checkSelectPropTypes(inst, props);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    inst._wrapperState = {\n      pendingUpdate: false,\n      initialValue: value != null ? value : props.defaultValue,\n      onChange: _handleChange.bind(inst),\n      wasMultiple: Boolean(props.multiple)\n    };\n  },\n\n  processChildContext: function (inst, props, context) {\n    // Pass down initial value so initial generated markup has correct\n    // `selected` attributes\n    var childContext = assign({}, context);\n    childContext[valueContextKey] = inst._wrapperState.initialValue;\n    return childContext;\n  },\n\n  postUpdateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // After the initial mount, we control selected-ness manually so don't pass\n    // the context value down\n    inst._wrapperState.initialValue = undefined;\n\n    var wasMultiple = inst._wrapperState.wasMultiple;\n    inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      inst._wrapperState.pendingUpdate = false;\n      updateOptions(inst, Boolean(props.multiple), value);\n    } else if (wasMultiple !== Boolean(props.multiple)) {\n      // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n      if (props.defaultValue != null) {\n        updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n      } else {\n        // Revert the select back to its default unselected state.\n        updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n      }\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  this._wrapperState.pendingUpdate = true;\n  ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMSelect.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMTextarea.updateWrapper(this);\n  }\n}\n\n/**\n * Implements a <textarea> native component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n  getNativeProps: function (inst, props, context) {\n    !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined;\n\n    // Always set children to the same thing. In IE9, the selection range will\n    // get reset if `textContent` is mutated.\n    var nativeProps = assign({}, props, {\n      defaultValue: undefined,\n      value: undefined,\n      children: inst._wrapperState.initialValue,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    // TODO (yungsters): Remove support for children content in <textarea>.\n    var children = props.children;\n    if (children != null) {\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined;\n      }\n      !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined;\n      if (Array.isArray(children)) {\n        !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined;\n        children = children[0];\n      }\n\n      defaultValue = '' + children;\n    }\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n    var value = LinkedValueUtils.getValue(props);\n\n    inst._wrapperState = {\n      // We save the initial value so that `ReactDOMComponent` doesn't update\n      // `textContent` (unnecessary since we update value).\n      // The initial value can be a boolean or object so that's why it's\n      // forced to be a string.\n      initialValue: '' + (value != null ? value : defaultValue),\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMTextarea.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar flattenChildren = require('./flattenChildren');\n\n/**\n * Updating children of a component may trigger recursive updates. The depth is\n * used to batch recursive updates to render markup more efficiently.\n *\n * @type {number}\n * @private\n */\nvar updateDepth = 0;\n\n/**\n * Queue of update configuration objects.\n *\n * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.\n *\n * @type {array<object>}\n * @private\n */\nvar updateQueue = [];\n\n/**\n * Queue of markup to be rendered.\n *\n * @type {array<string>}\n * @private\n */\nvar markupQueue = [];\n\n/**\n * Enqueues markup to be rendered and inserted at a supplied index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction enqueueInsertMarkup(parentID, markup, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n    markupIndex: markupQueue.push(markup) - 1,\n    content: null,\n    fromIndex: null,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues moving an existing element to another index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction enqueueMove(parentID, fromIndex, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues removing an element at an index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction enqueueRemove(parentID, fromIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the markup of a node.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction enqueueSetMarkup(parentID, markup) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.SET_MARKUP,\n    markupIndex: null,\n    content: markup,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the text content.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction enqueueTextContent(parentID, textContent) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n    markupIndex: null,\n    content: textContent,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue() {\n  if (updateQueue.length) {\n    ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue);\n    clearQueue();\n  }\n}\n\n/**\n * Clears any enqueued updates.\n *\n * @private\n */\nfunction clearQueue() {\n  updateQueue.length = 0;\n  markupQueue.length = 0;\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n  /**\n   * Provides common functionality for components that must reconcile multiple\n   * children. This is used by `ReactDOMComponent` to mount, update, and\n   * unmount child components.\n   *\n   * @lends {ReactMultiChild.prototype}\n   */\n  Mixin: {\n\n    _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n        }\n      }\n      return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n    },\n\n    _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, transaction, context) {\n      var nextChildren;\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            nextChildren = flattenChildren(nextNestedChildrenElements);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n          return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n        }\n      }\n      nextChildren = flattenChildren(nextNestedChildrenElements);\n      return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n    },\n\n    /**\n     * Generates a \"mount image\" for each of the supplied children. In the case\n     * of `ReactDOMComponent`, a mount image is a string of markup.\n     *\n     * @param {?object} nestedChildren Nested child maps.\n     * @return {array} An array of mounted representations.\n     * @internal\n     */\n    mountChildren: function (nestedChildren, transaction, context) {\n      var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n      this._renderedChildren = children;\n      var mountImages = [];\n      var index = 0;\n      for (var name in children) {\n        if (children.hasOwnProperty(name)) {\n          var child = children[name];\n          // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n          var rootID = this._rootNodeID + name;\n          var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n          child._mountIndex = index++;\n          mountImages.push(mountImage);\n        }\n      }\n      return mountImages;\n    },\n\n    /**\n     * Replaces any rendered children with a text content string.\n     *\n     * @param {string} nextContent String of content.\n     * @internal\n     */\n    updateTextContent: function (nextContent) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        // TODO: The setTextContent operation should be enough\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChild(prevChildren[name]);\n          }\n        }\n        // Set new text content.\n        this.setTextContent(nextContent);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Replaces any rendered children with a markup string.\n     *\n     * @param {string} nextMarkup String of markup.\n     * @internal\n     */\n    updateMarkup: function (nextMarkup) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChildByName(prevChildren[name], name);\n          }\n        }\n        this.setMarkup(nextMarkup);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Updates the rendered children with new children.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @internal\n     */\n    updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        this._updateChildren(nextNestedChildrenElements, transaction, context);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Improve performance by isolating this hot code path from the try/catch\n     * block in `updateChildren`.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @final\n     * @protected\n     */\n    _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      var prevChildren = this._renderedChildren;\n      var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context);\n      this._renderedChildren = nextChildren;\n      if (!nextChildren && !prevChildren) {\n        return;\n      }\n      var name;\n      // `nextIndex` will increment for each child in `nextChildren`, but\n      // `lastIndex` will be the last index visited in `prevChildren`.\n      var lastIndex = 0;\n      var nextIndex = 0;\n      for (name in nextChildren) {\n        if (!nextChildren.hasOwnProperty(name)) {\n          continue;\n        }\n        var prevChild = prevChildren && prevChildren[name];\n        var nextChild = nextChildren[name];\n        if (prevChild === nextChild) {\n          this.moveChild(prevChild, nextIndex, lastIndex);\n          lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n          prevChild._mountIndex = nextIndex;\n        } else {\n          if (prevChild) {\n            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n            lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n            this._unmountChild(prevChild);\n          }\n          // The child must be instantiated before it's mounted.\n          this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context);\n        }\n        nextIndex++;\n      }\n      // Remove children that are no longer present.\n      for (name in prevChildren) {\n        if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n          this._unmountChild(prevChildren[name]);\n        }\n      }\n    },\n\n    /**\n     * Unmounts all rendered children. This should be used to clean up children\n     * when this component is unmounted.\n     *\n     * @internal\n     */\n    unmountChildren: function () {\n      var renderedChildren = this._renderedChildren;\n      ReactChildReconciler.unmountChildren(renderedChildren);\n      this._renderedChildren = null;\n    },\n\n    /**\n     * Moves a child component to the supplied index.\n     *\n     * @param {ReactComponent} child Component to move.\n     * @param {number} toIndex Destination index of the element.\n     * @param {number} lastIndex Last index visited of the siblings of `child`.\n     * @protected\n     */\n    moveChild: function (child, toIndex, lastIndex) {\n      // If the index of `child` is less than `lastIndex`, then it needs to\n      // be moved. Otherwise, we do not need to move it because a child will be\n      // inserted or moved before `child`.\n      if (child._mountIndex < lastIndex) {\n        enqueueMove(this._rootNodeID, child._mountIndex, toIndex);\n      }\n    },\n\n    /**\n     * Creates a child component.\n     *\n     * @param {ReactComponent} child Component to create.\n     * @param {string} mountImage Markup to insert.\n     * @protected\n     */\n    createChild: function (child, mountImage) {\n      enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex);\n    },\n\n    /**\n     * Removes a child component.\n     *\n     * @param {ReactComponent} child Child to remove.\n     * @protected\n     */\n    removeChild: function (child) {\n      enqueueRemove(this._rootNodeID, child._mountIndex);\n    },\n\n    /**\n     * Sets this text content string.\n     *\n     * @param {string} textContent Text content to set.\n     * @protected\n     */\n    setTextContent: function (textContent) {\n      enqueueTextContent(this._rootNodeID, textContent);\n    },\n\n    /**\n     * Sets this markup string.\n     *\n     * @param {string} markup Markup to set.\n     * @protected\n     */\n    setMarkup: function (markup) {\n      enqueueSetMarkup(this._rootNodeID, markup);\n    },\n\n    /**\n     * Mounts a child with the supplied name.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to mount.\n     * @param {string} name Name of the child.\n     * @param {number} index Index at which to insert the child.\n     * @param {ReactReconcileTransaction} transaction\n     * @private\n     */\n    _mountChildByNameAtIndex: function (child, name, index, transaction, context) {\n      // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n      var rootID = this._rootNodeID + name;\n      var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n      child._mountIndex = index;\n      this.createChild(child, mountImage);\n    },\n\n    /**\n     * Unmounts a rendered child.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to unmount.\n     * @private\n     */\n    _unmountChild: function (child) {\n      this.removeChild(child);\n      child._mountIndex = null;\n    }\n\n  }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactMultiChild.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nfunction instantiateChild(childInstances, child, name) {\n  // We found a component instance.\n  var keyUnique = childInstances[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (child != null && keyUnique) {\n    childInstances[name] = instantiateReactComponent(child, null);\n  }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n  /**\n   * Generates a \"mount image\" for each of the supplied children. In the case\n   * of `ReactDOMComponent`, a mount image is a string of markup.\n   *\n   * @param {?object} nestedChildNodes Nested child maps.\n   * @return {?object} A set of child instances.\n   * @internal\n   */\n  instantiateChildren: function (nestedChildNodes, transaction, context) {\n    if (nestedChildNodes == null) {\n      return null;\n    }\n    var childInstances = {};\n    traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n    return childInstances;\n  },\n\n  /**\n   * Updates the rendered children and returns a new set of children.\n   *\n   * @param {?object} prevChildren Previously initialized set of children.\n   * @param {?object} nextChildren Flat child element maps.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @return {?object} A new set of child instances.\n   * @internal\n   */\n  updateChildren: function (prevChildren, nextChildren, transaction, context) {\n    // We currently don't have a way to track moves here but if we use iterators\n    // instead of for..in we can zip the iterators and check if an item has\n    // moved.\n    // TODO: If nothing has changed, return the prevChildren object so that we\n    // can quickly bailout if nothing has changed.\n    if (!nextChildren && !prevChildren) {\n      return null;\n    }\n    var name;\n    for (name in nextChildren) {\n      if (!nextChildren.hasOwnProperty(name)) {\n        continue;\n      }\n      var prevChild = prevChildren && prevChildren[name];\n      var prevElement = prevChild && prevChild._currentElement;\n      var nextElement = nextChildren[name];\n      if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n        ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n        nextChildren[name] = prevChild;\n      } else {\n        if (prevChild) {\n          ReactReconciler.unmountComponent(prevChild, name);\n        }\n        // The child must be instantiated before it's mounted.\n        var nextChildInstance = instantiateReactComponent(nextElement, null);\n        nextChildren[name] = nextChildInstance;\n      }\n    }\n    // Unmount children that are no longer present.\n    for (name in prevChildren) {\n      if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n        ReactReconciler.unmountComponent(prevChildren[name]);\n      }\n    }\n    return nextChildren;\n  },\n\n  /**\n   * Unmounts all rendered children. This should be used to clean up children\n   * when this component is unmounted.\n   *\n   * @param {?object} renderedChildren Previously initialized set of children.\n   * @internal\n   */\n  unmountChildren: function (renderedChildren) {\n    for (var name in renderedChildren) {\n      if (renderedChildren.hasOwnProperty(name)) {\n        var renderedChild = renderedChildren[name];\n        ReactReconciler.unmountComponent(renderedChild);\n      }\n    }\n  }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactChildReconciler.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n */\n\n'use strict';\n\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name) {\n  // We found a component instance.\n  var result = traverseContext;\n  var keyUnique = result[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (keyUnique && child != null) {\n    result[name] = child;\n  }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n  var result = {};\n  traverseAllChildren(children, flattenSingleChildIntoContext, result);\n  return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/flattenChildren.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  var bHasOwnProperty = hasOwnProperty.bind(objB);\n  for (var i = 0; i < keysA.length; i++) {\n    if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/shallowEqual.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * Finds the parent React component of `node`.\n *\n * @param {*} node\n * @return {?DOMEventTarget} Parent container, or `null` if the specified node\n *                           is not nested.\n */\nfunction findParent(node) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  var nodeID = ReactMount.getID(node);\n  var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n  var container = ReactMount.findReactContainerForID(rootID);\n  var parent = ReactMount.getFirstReactDOM(container);\n  return parent;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n  this.topLevelType = topLevelType;\n  this.nativeEvent = nativeEvent;\n  this.ancestors = [];\n}\nassign(TopLevelCallbackBookKeeping.prototype, {\n  destructor: function () {\n    this.topLevelType = null;\n    this.nativeEvent = null;\n    this.ancestors.length = 0;\n  }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n  // TODO: Re-enable event.path handling\n  //\n  // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) {\n  //   // New browsers have a path attribute on native events\n  //   handleTopLevelWithPath(bookKeeping);\n  // } else {\n  //   // Legacy browsers don't have a path attribute on native events\n  //   handleTopLevelWithoutPath(bookKeeping);\n  // }\n\n  void handleTopLevelWithPath; // temporarily unused\n  handleTopLevelWithoutPath(bookKeeping);\n}\n\n// Legacy browsers don't have a path attribute on native events\nfunction handleTopLevelWithoutPath(bookKeeping) {\n  var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window;\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = topLevelTarget;\n  while (ancestor) {\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = findParent(ancestor);\n  }\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    topLevelTarget = bookKeeping.ancestors[i];\n    var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\n// New browsers have a path attribute on native events\nfunction handleTopLevelWithPath(bookKeeping) {\n  var path = bookKeeping.nativeEvent.path;\n  var currentNativeTarget = path[0];\n  var eventsFired = 0;\n  for (var i = 0; i < path.length; i++) {\n    var currentPathElement = path[i];\n    if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) {\n      currentNativeTarget = path[i + 1];\n    }\n    // TODO: slow\n    var reactParent = ReactMount.getFirstReactDOM(currentPathElement);\n    if (reactParent === currentPathElement) {\n      var currentPathElementID = ReactMount.getID(currentPathElement);\n      var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID);\n      bookKeeping.ancestors.push(currentPathElement);\n\n      var topLevelTargetID = ReactMount.getID(currentPathElement) || '';\n      eventsFired++;\n      ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget);\n\n      // Jump to the root of this React render tree\n      while (currentPathElementID !== newRootID) {\n        i++;\n        currentPathElement = path[i];\n        currentPathElementID = ReactMount.getID(currentPathElement);\n      }\n    }\n  }\n  if (eventsFired === 0) {\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\nfunction scrollValueMonitor(cb) {\n  var scrollPosition = getUnboundedScrollPosition(window);\n  cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n  _enabled: true,\n  _handleTopLevel: null,\n\n  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n  setHandleTopLevel: function (handleTopLevel) {\n    ReactEventListener._handleTopLevel = handleTopLevel;\n  },\n\n  setEnabled: function (enabled) {\n    ReactEventListener._enabled = !!enabled;\n  },\n\n  isEnabled: function () {\n    return ReactEventListener._enabled;\n  },\n\n  /**\n   * Traps top-level events by using event bubbling.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  /**\n   * Traps a top-level event by using event capturing.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  monitorScrollValue: function (refresh) {\n    var callback = scrollValueMonitor.bind(null, refresh);\n    EventListener.listen(window, 'scroll', callback);\n  },\n\n  dispatchEvent: function (topLevelType, nativeEvent) {\n    if (!ReactEventListener._enabled) {\n      return;\n    }\n\n    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n    try {\n      // Event queue being processed in the same cycle allows\n      // `preventDefault`.\n      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n    } finally {\n      TopLevelCallbackBookKeeping.release(bookKeeping);\n    }\n  }\n};\n\nmodule.exports = ReactEventListener;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactEventListener.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function () {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function () {}\n};\n\nmodule.exports = EventListener;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/EventListener.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getUnboundedScrollPosition\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\nfunction getUnboundedScrollPosition(scrollable) {\n  if (scrollable === window) {\n    return {\n      x: window.pageXOffset || document.documentElement.scrollLeft,\n      y: window.pageYOffset || document.documentElement.scrollTop\n    };\n  }\n  return {\n    x: scrollable.scrollLeft,\n    y: scrollable.scrollTop\n  };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/getUnboundedScrollPosition.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactClass = require('./ReactClass');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactNativeComponent = require('./ReactNativeComponent');\nvar ReactPerf = require('./ReactPerf');\nvar ReactRootIndex = require('./ReactRootIndex');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n  Component: ReactComponentEnvironment.injection,\n  Class: ReactClass.injection,\n  DOMProperty: DOMProperty.injection,\n  EmptyComponent: ReactEmptyComponent.injection,\n  EventPluginHub: EventPluginHub.injection,\n  EventEmitter: ReactBrowserEventEmitter.injection,\n  NativeComponent: ReactNativeComponent.injection,\n  Perf: ReactPerf.injection,\n  RootIndex: ReactRootIndex.injection,\n  Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactInjection.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar keyMirror = require('fbjs/lib/keyMirror');\nvar keyOf = require('fbjs/lib/keyOf');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n  /**\n   * These methods may be defined only once by the class specification or mixin.\n   */\n  DEFINE_ONCE: null,\n  /**\n   * These methods may be defined by both the class specification and mixins.\n   * Subsequent definitions will be chained. These methods must return void.\n   */\n  DEFINE_MANY: null,\n  /**\n   * These methods are overriding the base class.\n   */\n  OVERRIDE_BASE: null,\n  /**\n   * These methods are similar to DEFINE_MANY, except we assume they return\n   * objects. We try to merge the keys of the return values of all the mixed in\n   * functions. If there is a key conflict we throw.\n   */\n  DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\nvar warnedSetProps = false;\nfunction warnSetProps() {\n  if (!warnedSetProps) {\n    warnedSetProps = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined;\n  }\n}\n\n/**\n * Composite components are higher-level components that compose other composite\n * or native components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return <div>Hello World</div>;\n *     }\n *   });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n  /**\n   * An array of Mixin objects to include when defining your component.\n   *\n   * @type {array}\n   * @optional\n   */\n  mixins: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * An object containing properties and methods that should be defined on\n   * the component's constructor instead of its prototype (static methods).\n   *\n   * @type {object}\n   * @optional\n   */\n  statics: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of prop types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  propTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  contextTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types this component sets for its children.\n   *\n   * @type {object}\n   * @optional\n   */\n  childContextTypes: SpecPolicy.DEFINE_MANY,\n\n  // ==== Definition methods ====\n\n  /**\n   * Invoked when the component is mounted. Values in the mapping will be set on\n   * `this.props` if that prop is not specified (i.e. using an `in` check).\n   *\n   * This method is invoked before `getInitialState` and therefore cannot rely\n   * on `this.state` or use `this.setState`.\n   *\n   * @return {object}\n   * @optional\n   */\n  getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Invoked once before the component is mounted. The return value will be used\n   * as the initial value of `this.state`.\n   *\n   *   getInitialState: function() {\n   *     return {\n   *       isOn: false,\n   *       fooBaz: new BazFoo()\n   *     }\n   *   }\n   *\n   * @return {object}\n   * @optional\n   */\n  getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * @return {object}\n   * @optional\n   */\n  getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Uses props from `this.props` and state from `this.state` to render the\n   * structure of the component.\n   *\n   * No guarantees are made about when or how often this method is invoked, so\n   * it must not have side effects.\n   *\n   *   render: function() {\n   *     var name = this.props.name;\n   *     return <div>Hello, {name}!</div>;\n   *   }\n   *\n   * @return {ReactComponent}\n   * @nosideeffects\n   * @required\n   */\n  render: SpecPolicy.DEFINE_ONCE,\n\n  // ==== Delegate methods ====\n\n  /**\n   * Invoked when the component is initially created and about to be mounted.\n   * This may have side effects, but any external subscriptions or data created\n   * by this method must be cleaned up in `componentWillUnmount`.\n   *\n   * @optional\n   */\n  componentWillMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component has been mounted and has a DOM representation.\n   * However, there is no guarantee that the DOM node is in the document.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been mounted (initialized and rendered) for the first time.\n   *\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked before the component receives new props.\n   *\n   * Use this as an opportunity to react to a prop transition by updating the\n   * state using `this.setState`. Current props are accessed via `this.props`.\n   *\n   *   componentWillReceiveProps: function(nextProps, nextContext) {\n   *     this.setState({\n   *       likesIncreasing: nextProps.likeCount > this.props.likeCount\n   *     });\n   *   }\n   *\n   * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n   * transition may cause a state change, but the opposite is not true. If you\n   * need it, you are probably looking for `componentWillUpdate`.\n   *\n   * @param {object} nextProps\n   * @optional\n   */\n  componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked while deciding if the component should be updated as a result of\n   * receiving new props, state and/or context.\n   *\n   * Use this as an opportunity to `return false` when you're certain that the\n   * transition to the new props/state/context will not require a component\n   * update.\n   *\n   *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n   *     return !equal(nextProps, this.props) ||\n   *       !equal(nextState, this.state) ||\n   *       !equal(nextContext, this.context);\n   *   }\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @return {boolean} True if the component should update.\n   * @optional\n   */\n  shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n  /**\n   * Invoked when the component is about to update due to a transition from\n   * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n   * and `nextContext`.\n   *\n   * Use this as an opportunity to perform preparation before an update occurs.\n   *\n   * NOTE: You **cannot** use `this.setState()` in this method.\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @param {ReactReconcileTransaction} transaction\n   * @optional\n   */\n  componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component's DOM representation has been updated.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been updated.\n   *\n   * @param {object} prevProps\n   * @param {?object} prevState\n   * @param {?object} prevContext\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component is about to be removed from its parent and have\n   * its DOM representation destroyed.\n   *\n   * Use this as an opportunity to deallocate any external resources.\n   *\n   * NOTE: There is no `componentDidUnmount` since your component will have been\n   * destroyed by that point.\n   *\n   * @optional\n   */\n  componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n  // ==== Advanced methods ====\n\n  /**\n   * Updates the component's currently mounted DOM representation.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   * @overridable\n   */\n  updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n  displayName: function (Constructor, displayName) {\n    Constructor.displayName = displayName;\n  },\n  mixins: function (Constructor, mixins) {\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        mixSpecIntoComponent(Constructor, mixins[i]);\n      }\n    }\n  },\n  childContextTypes: function (Constructor, childContextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n    }\n    Constructor.childContextTypes = assign({}, Constructor.childContextTypes, childContextTypes);\n  },\n  contextTypes: function (Constructor, contextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n    }\n    Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes);\n  },\n  /**\n   * Special case getDefaultProps which should move into statics but requires\n   * automatic merging.\n   */\n  getDefaultProps: function (Constructor, getDefaultProps) {\n    if (Constructor.getDefaultProps) {\n      Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n    } else {\n      Constructor.getDefaultProps = getDefaultProps;\n    }\n  },\n  propTypes: function (Constructor, propTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n    }\n    Constructor.propTypes = assign({}, Constructor.propTypes, propTypes);\n  },\n  statics: function (Constructor, statics) {\n    mixStaticSpecIntoComponent(Constructor, statics);\n  },\n  autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n  for (var propName in typeDef) {\n    if (typeDef.hasOwnProperty(propName)) {\n      // use a warning instead of an invariant so components\n      // don't show up in prod but not in __DEV__\n      process.env.NODE_ENV !== 'production' ? 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) : undefined;\n    }\n  }\n}\n\nfunction validateMethodOverride(proto, name) {\n  var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n  // Disallow overriding of base class methods unless explicitly allowed.\n  if (ReactClassMixin.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined;\n  }\n\n  // Disallow defining methods more than once unless explicitly allowed.\n  if (proto.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classses.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n  if (!spec) {\n    return;\n  }\n\n  !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n  !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n\n  var proto = Constructor.prototype;\n\n  // By handling mixins before any other properties, we ensure the same\n  // chaining order is applied to methods with DEFINE_MANY policy, whether\n  // mixins are listed before or after these methods in the spec.\n  if (spec.hasOwnProperty(MIXINS_KEY)) {\n    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n  }\n\n  for (var name in spec) {\n    if (!spec.hasOwnProperty(name)) {\n      continue;\n    }\n\n    if (name === MIXINS_KEY) {\n      // We have already handled mixins in a special case above.\n      continue;\n    }\n\n    var property = spec[name];\n    validateMethodOverride(proto, name);\n\n    if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n      RESERVED_SPEC_KEYS[name](Constructor, property);\n    } else {\n      // Setup methods on prototype:\n      // The following member methods should not be automatically bound:\n      // 1. Expected ReactClass methods (in the \"interface\").\n      // 2. Overridden methods (that were mixed in).\n      var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n      var isAlreadyDefined = proto.hasOwnProperty(name);\n      var isFunction = typeof property === 'function';\n      var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n      if (shouldAutoBind) {\n        if (!proto.__reactAutoBindMap) {\n          proto.__reactAutoBindMap = {};\n        }\n        proto.__reactAutoBindMap[name] = property;\n        proto[name] = property;\n      } else {\n        if (isAlreadyDefined) {\n          var specPolicy = ReactClassInterface[name];\n\n          // These cases should already be caught by validateMethodOverride.\n          !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined;\n\n          // For methods which are defined more than once, call the existing\n          // methods before calling the new property, merging if appropriate.\n          if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n            proto[name] = createMergedResultFunction(proto[name], property);\n          } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n            proto[name] = createChainedFunction(proto[name], property);\n          }\n        } else {\n          proto[name] = property;\n          if (process.env.NODE_ENV !== 'production') {\n            // Add verbose displayName to the function, which helps when looking\n            // at profiling tools.\n            if (typeof property === 'function' && spec.displayName) {\n              proto[name].displayName = spec.displayName + '_' + name;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n  if (!statics) {\n    return;\n  }\n  for (var name in statics) {\n    var property = statics[name];\n    if (!statics.hasOwnProperty(name)) {\n      continue;\n    }\n\n    var isReserved = (name in RESERVED_SPEC_KEYS);\n    !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, '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) : invariant(false) : undefined;\n\n    var isInherited = (name in Constructor);\n    !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined;\n    Constructor[name] = property;\n  }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n  !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined;\n\n  for (var key in two) {\n    if (two.hasOwnProperty(key)) {\n      !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, '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) : invariant(false) : undefined;\n      one[key] = two[key];\n    }\n  }\n  return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n  return function mergedResult() {\n    var a = one.apply(this, arguments);\n    var b = two.apply(this, arguments);\n    if (a == null) {\n      return b;\n    } else if (b == null) {\n      return a;\n    }\n    var c = {};\n    mergeIntoWithNoDuplicateKeys(c, a);\n    mergeIntoWithNoDuplicateKeys(c, b);\n    return c;\n  };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n  return function chainedFunction() {\n    one.apply(this, arguments);\n    two.apply(this, arguments);\n  };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n  var boundMethod = method.bind(component);\n  if (process.env.NODE_ENV !== 'production') {\n    boundMethod.__reactBoundContext = component;\n    boundMethod.__reactBoundMethod = method;\n    boundMethod.__reactBoundArguments = null;\n    var componentName = component.constructor.displayName;\n    var _bind = boundMethod.bind;\n    /* eslint-disable block-scoped-var, no-undef */\n    boundMethod.bind = function (newThis) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      // User is trying to bind() an autobound method; we effectively will\n      // ignore the value of \"this\" that the user is trying to use, so\n      // let's warn.\n      if (newThis !== component && newThis !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined;\n      } else if (!args.length) {\n        process.env.NODE_ENV !== 'production' ? 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) : undefined;\n        return boundMethod;\n      }\n      var reboundMethod = _bind.apply(boundMethod, arguments);\n      reboundMethod.__reactBoundContext = component;\n      reboundMethod.__reactBoundMethod = method;\n      reboundMethod.__reactBoundArguments = args;\n      return reboundMethod;\n      /* eslint-enable */\n    };\n  }\n  return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n  for (var autoBindKey in component.__reactAutoBindMap) {\n    if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n      var method = component.__reactAutoBindMap[autoBindKey];\n      component[autoBindKey] = bindAutoBindMethod(component, method);\n    }\n  }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n  /**\n   * TODO: This will be deprecated because state should always keep a consistent\n   * type signature and the only use case for this, is to avoid that.\n   */\n  replaceState: function (newState, callback) {\n    this.updater.enqueueReplaceState(this, newState);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function () {\n    return this.updater.isMounted(this);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {object} partialProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  setProps: function (partialProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueSetProps(this, partialProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Replace all the props.\n   *\n   * @param {object} newProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  replaceProps: function (newProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueReplaceProps(this, newProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  }\n};\n\nvar ReactClassComponent = function () {};\nassign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n  /**\n   * Creates a composite component class given a class specification.\n   *\n   * @param {object} spec Class specification (which must define `render`).\n   * @return {function} Component constructor function.\n   * @public\n   */\n  createClass: function (spec) {\n    var Constructor = function (props, context, updater) {\n      // This constructor is overridden by mocks. The argument is used\n      // by mocks to assert on what gets mounted.\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined;\n      }\n\n      // Wire up auto-binding\n      if (this.__reactAutoBindMap) {\n        bindAutoBindMethods(this);\n      }\n\n      this.props = props;\n      this.context = context;\n      this.refs = emptyObject;\n      this.updater = updater || ReactNoopUpdateQueue;\n\n      this.state = null;\n\n      // ReactClasses doesn't have constructors. Instead, they use the\n      // getInitialState and componentWillMount methods for initialization.\n\n      var initialState = this.getInitialState ? this.getInitialState() : null;\n      if (process.env.NODE_ENV !== 'production') {\n        // We allow auto-mocks to proceed as if they're returning null.\n        if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) {\n          // This is probably bad practice. Consider warning here and\n          // deprecating this convenience.\n          initialState = null;\n        }\n      }\n      !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n      this.state = initialState;\n    };\n    Constructor.prototype = new ReactClassComponent();\n    Constructor.prototype.constructor = Constructor;\n\n    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n    mixSpecIntoComponent(Constructor, spec);\n\n    // Initialize the defaultProps property after all mixins have been merged.\n    if (Constructor.getDefaultProps) {\n      Constructor.defaultProps = Constructor.getDefaultProps();\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This is a tag to indicate that the use of these method names is ok,\n      // since it's used with createClass. If it's not, then it's likely a\n      // mistake so we'll warn you to use the static property, property\n      // initializer or constructor respectively.\n      if (Constructor.getDefaultProps) {\n        Constructor.getDefaultProps.isReactClassApproved = {};\n      }\n      if (Constructor.prototype.getInitialState) {\n        Constructor.prototype.getInitialState.isReactClassApproved = {};\n      }\n    }\n\n    !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined;\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? 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') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined;\n    }\n\n    // Reduce time spent doing lookups by setting these on the prototype.\n    for (var methodName in ReactClassInterface) {\n      if (!Constructor.prototype[methodName]) {\n        Constructor.prototype[methodName] = null;\n      }\n    }\n\n    return Constructor;\n  },\n\n  injection: {\n    injectMixin: function (mixin) {\n      injectedMixins.push(mixin);\n    }\n  }\n\n};\n\nmodule.exports = ReactClass;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactClass.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined;\n  }\n  this.updater.enqueueSetState(this, partialState);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n  var deprecatedAPIs = {\n    getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'],\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceProps: ['replaceProps', 'Instead, call render again at the top level.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'],\n    setProps: ['setProps', 'Instead, call render again at the top level.']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    try {\n      Object.defineProperty(ReactComponent.prototype, methodName, {\n        get: function () {\n          process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined;\n          return undefined;\n        }\n      });\n    } catch (x) {\n      // IE will fail on defineProperty (es5-shim/sham too)\n    }\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nmodule.exports = ReactComponent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactComponent.js\n **/","/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnTDZ(publicInstance, callerName) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {},\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    warnTDZ(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    warnTDZ(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    warnTDZ(publicInstance, 'setState');\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    warnTDZ(publicInstance, 'setProps');\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    warnTDZ(publicInstance, 'replaceProps');\n  }\n\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactNoopUpdateQueue.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n  /**\n   * @return {Selection} Selection information.\n   */\n  initialize: ReactInputSelection.getSelectionInformation,\n  /**\n   * @param {Selection} sel Selection information returned from `initialize`.\n   */\n  close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n  /**\n   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n   * the reconciliation.\n   */\n  initialize: function () {\n    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n    ReactBrowserEventEmitter.setEnabled(false);\n    return currentlyEnabled;\n  },\n\n  /**\n   * @param {boolean} previouslyEnabled Enabled status of\n   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n   *   restores the previous value.\n   */\n  close: function (previouslyEnabled) {\n    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n  }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  /**\n   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n   */\n  close: function () {\n    this.reactMountReady.notifyAll();\n  }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n *   modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n *   track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(forceHTML) {\n  this.reinitializeTransaction();\n  // Only server-side rendering really needs this option (see\n  // `ReactServerRendering`), but server-side uses\n  // `ReactServerRenderingTransaction` instead. This option is here so that it's\n  // accessible and defaults to false when `ReactDOMComponent` and\n  // `ReactTextComponent` checks it in `mountComponent`.`\n  this.renderToStaticMarkup = false;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array<object>} List of operation wrap procedures.\n   *   TODO: convert to array<TransactionWrapper>\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactReconcileTransaction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n  return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n  hasSelectionCapabilities: function (elem) {\n    var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n    return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n  },\n\n  getSelectionInformation: function () {\n    var focusedElem = getActiveElement();\n    return {\n      focusedElem: focusedElem,\n      selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n    };\n  },\n\n  /**\n   * @restoreSelection: If any selection information was potentially lost,\n   * restore it. This is useful when performing operations that could remove dom\n   * nodes and place them back in, resulting in focus being lost.\n   */\n  restoreSelection: function (priorSelectionInformation) {\n    var curFocusedElem = getActiveElement();\n    var priorFocusedElem = priorSelectionInformation.focusedElem;\n    var priorSelectionRange = priorSelectionInformation.selectionRange;\n    if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n        ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n      }\n      focusNode(priorFocusedElem);\n    }\n  },\n\n  /**\n   * @getSelection: Gets the selection bounds of a focused textarea, input or\n   * contentEditable node.\n   * -@input: Look up selection bounds of this input\n   * -@return {start: selectionStart, end: selectionEnd}\n   */\n  getSelection: function (input) {\n    var selection;\n\n    if ('selectionStart' in input) {\n      // Modern browser with input or textarea.\n      selection = {\n        start: input.selectionStart,\n        end: input.selectionEnd\n      };\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      // IE8 input.\n      var range = document.selection.createRange();\n      // There can only be one selection per document in IE, so it must\n      // be in our element.\n      if (range.parentElement() === input) {\n        selection = {\n          start: -range.moveStart('character', -input.value.length),\n          end: -range.moveEnd('character', -input.value.length)\n        };\n      }\n    } else {\n      // Content editable or old IE textarea.\n      selection = ReactDOMSelection.getOffsets(input);\n    }\n\n    return selection || { start: 0, end: 0 };\n  },\n\n  /**\n   * @setSelection: Sets the selection bounds of a textarea or input and focuses\n   * the input.\n   * -@input     Set selection bounds of this input or textarea\n   * -@offsets   Object of same form that is returned from get*\n   */\n  setSelection: function (input, offsets) {\n    var start = offsets.start;\n    var end = offsets.end;\n    if (typeof end === 'undefined') {\n      end = start;\n    }\n\n    if ('selectionStart' in input) {\n      input.selectionStart = start;\n      input.selectionEnd = Math.min(end, input.value.length);\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      var range = input.createTextRange();\n      range.collapse(true);\n      range.moveStart('character', start);\n      range.moveEnd('character', end - start);\n      range.select();\n    } else {\n      ReactDOMSelection.setOffsets(input, offsets);\n    }\n  }\n};\n\nmodule.exports = ReactInputSelection;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactInputSelection.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n  return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n  var selection = document.selection;\n  var selectedRange = selection.createRange();\n  var selectedLength = selectedRange.text.length;\n\n  // Duplicate selection so we can move range without breaking user selection.\n  var fromStart = selectedRange.duplicate();\n  fromStart.moveToElementText(node);\n  fromStart.setEndPoint('EndToStart', selectedRange);\n\n  var startOffset = fromStart.text.length;\n  var endOffset = startOffset + selectedLength;\n\n  return {\n    start: startOffset,\n    end: endOffset\n  };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n  var selection = window.getSelection && window.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode;\n  var anchorOffset = selection.anchorOffset;\n  var focusNode = selection.focusNode;\n  var focusOffset = selection.focusOffset;\n\n  var currentRange = selection.getRangeAt(0);\n\n  // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n  // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n  // divs do not seem to expose properties, triggering a \"Permission denied\n  // error\" if any of its properties are accessed. The only seemingly possible\n  // way to avoid erroring is to access a property that typically works for\n  // non-anonymous divs and catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n  try {\n    /* eslint-disable no-unused-expressions */\n    currentRange.startContainer.nodeType;\n    currentRange.endContainer.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  // If the node and offset values are the same, the selection is collapsed.\n  // `Selection.isCollapsed` is available natively, but IE sometimes gets\n  // this value wrong.\n  var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n  var tempRange = currentRange.cloneRange();\n  tempRange.selectNodeContents(node);\n  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n  var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n  var end = start + rangeLength;\n\n  // Detect whether the selection is backward.\n  var detectionRange = document.createRange();\n  detectionRange.setStart(anchorNode, anchorOffset);\n  detectionRange.setEnd(focusNode, focusOffset);\n  var isBackward = detectionRange.collapsed;\n\n  return {\n    start: isBackward ? end : start,\n    end: isBackward ? start : end\n  };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n  var range = document.selection.createRange().duplicate();\n  var start, end;\n\n  if (typeof offsets.end === 'undefined') {\n    start = offsets.start;\n    end = start;\n  } else if (offsets.start > offsets.end) {\n    start = offsets.end;\n    end = offsets.start;\n  } else {\n    start = offsets.start;\n    end = offsets.end;\n  }\n\n  range.moveToElementText(node);\n  range.moveStart('character', start);\n  range.setEndPoint('EndToStart', range);\n  range.moveEnd('character', end - start);\n  range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n  if (!window.getSelection) {\n    return;\n  }\n\n  var selection = window.getSelection();\n  var length = node[getTextContentAccessor()].length;\n  var start = Math.min(offsets.start, length);\n  var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    var range = document.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n  /**\n   * @param {DOMElement} node\n   */\n  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n  /**\n   * @param {DOMElement|DOMTextNode} node\n   * @param {object} offsets\n   */\n  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMSelection.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === 3) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\nmodule.exports = getNodeForCharacterOffset;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getNodeForCharacterOffset.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getActiveElement\n * @typechecks\n */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not yet defined.\n */\n'use strict';\n\nfunction getActiveElement() /*?DOMElement*/{\n  if (typeof document === 'undefined') {\n    return null;\n  }\n\n  try {\n    return document.activeElement || document.body;\n  } catch (e) {\n    return document.body;\n  }\n}\n\nmodule.exports = getActiveElement;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/getActiveElement.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSelect: null }),\n      captured: keyOf({ onSelectCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n  }\n};\n\nvar activeElement = null;\nvar activeElementID = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else if (window.getSelection) {\n    var selection = window.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  } else if (document.selection) {\n    var range = document.selection.createRange();\n    return {\n      parentElement: range.parentElement(),\n      text: range.text,\n      top: range.boundingTop,\n      left: range.boundingLeft\n    };\n  }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement;\n\n    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (!hasListener) {\n      return null;\n    }\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case topLevelTypes.topFocus:\n        if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') {\n          activeElement = topLevelTarget;\n          activeElementID = topLevelTargetID;\n          lastSelection = null;\n        }\n        break;\n      case topLevelTypes.topBlur:\n        activeElement = null;\n        activeElementID = null;\n        lastSelection = null;\n        break;\n\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case topLevelTypes.topMouseDown:\n        mouseDown = true;\n        break;\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topMouseUp:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case topLevelTypes.topSelectionChange:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    if (registrationName === ON_SELECT_KEY) {\n      hasListener = true;\n    }\n  }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SelectEventPlugin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ServerReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Size of the reactRoot ID space. We generate random numbers for React root\n * IDs and if there's a collision the events and DOM update system will\n * get confused. In the future we need a way to generate GUIDs but for\n * now this will work on a smaller scale.\n */\nvar GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);\n\nvar ServerReactRootIndex = {\n  createReactRootIndex: function () {\n    return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);\n  }\n};\n\nmodule.exports = ServerReactRootIndex;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ServerReactRootIndex.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactMount = require('./ReactMount');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  abort: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAbort: true }),\n      captured: keyOf({ onAbortCapture: true })\n    }\n  },\n  blur: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBlur: true }),\n      captured: keyOf({ onBlurCapture: true })\n    }\n  },\n  canPlay: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlay: true }),\n      captured: keyOf({ onCanPlayCapture: true })\n    }\n  },\n  canPlayThrough: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlayThrough: true }),\n      captured: keyOf({ onCanPlayThroughCapture: true })\n    }\n  },\n  click: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onClick: true }),\n      captured: keyOf({ onClickCapture: true })\n    }\n  },\n  contextMenu: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onContextMenu: true }),\n      captured: keyOf({ onContextMenuCapture: true })\n    }\n  },\n  copy: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCopy: true }),\n      captured: keyOf({ onCopyCapture: true })\n    }\n  },\n  cut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCut: true }),\n      captured: keyOf({ onCutCapture: true })\n    }\n  },\n  doubleClick: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDoubleClick: true }),\n      captured: keyOf({ onDoubleClickCapture: true })\n    }\n  },\n  drag: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrag: true }),\n      captured: keyOf({ onDragCapture: true })\n    }\n  },\n  dragEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnd: true }),\n      captured: keyOf({ onDragEndCapture: true })\n    }\n  },\n  dragEnter: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnter: true }),\n      captured: keyOf({ onDragEnterCapture: true })\n    }\n  },\n  dragExit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragExit: true }),\n      captured: keyOf({ onDragExitCapture: true })\n    }\n  },\n  dragLeave: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragLeave: true }),\n      captured: keyOf({ onDragLeaveCapture: true })\n    }\n  },\n  dragOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragOver: true }),\n      captured: keyOf({ onDragOverCapture: true })\n    }\n  },\n  dragStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragStart: true }),\n      captured: keyOf({ onDragStartCapture: true })\n    }\n  },\n  drop: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrop: true }),\n      captured: keyOf({ onDropCapture: true })\n    }\n  },\n  durationChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDurationChange: true }),\n      captured: keyOf({ onDurationChangeCapture: true })\n    }\n  },\n  emptied: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEmptied: true }),\n      captured: keyOf({ onEmptiedCapture: true })\n    }\n  },\n  encrypted: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEncrypted: true }),\n      captured: keyOf({ onEncryptedCapture: true })\n    }\n  },\n  ended: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEnded: true }),\n      captured: keyOf({ onEndedCapture: true })\n    }\n  },\n  error: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onError: true }),\n      captured: keyOf({ onErrorCapture: true })\n    }\n  },\n  focus: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onFocus: true }),\n      captured: keyOf({ onFocusCapture: true })\n    }\n  },\n  input: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onInput: true }),\n      captured: keyOf({ onInputCapture: true })\n    }\n  },\n  keyDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyDown: true }),\n      captured: keyOf({ onKeyDownCapture: true })\n    }\n  },\n  keyPress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyPress: true }),\n      captured: keyOf({ onKeyPressCapture: true })\n    }\n  },\n  keyUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyUp: true }),\n      captured: keyOf({ onKeyUpCapture: true })\n    }\n  },\n  load: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoad: true }),\n      captured: keyOf({ onLoadCapture: true })\n    }\n  },\n  loadedData: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedData: true }),\n      captured: keyOf({ onLoadedDataCapture: true })\n    }\n  },\n  loadedMetadata: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedMetadata: true }),\n      captured: keyOf({ onLoadedMetadataCapture: true })\n    }\n  },\n  loadStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadStart: true }),\n      captured: keyOf({ onLoadStartCapture: true })\n    }\n  },\n  // Note: We do not allow listening to mouseOver events. Instead, use the\n  // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n  mouseDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseDown: true }),\n      captured: keyOf({ onMouseDownCapture: true })\n    }\n  },\n  mouseMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseMove: true }),\n      captured: keyOf({ onMouseMoveCapture: true })\n    }\n  },\n  mouseOut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOut: true }),\n      captured: keyOf({ onMouseOutCapture: true })\n    }\n  },\n  mouseOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOver: true }),\n      captured: keyOf({ onMouseOverCapture: true })\n    }\n  },\n  mouseUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseUp: true }),\n      captured: keyOf({ onMouseUpCapture: true })\n    }\n  },\n  paste: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPaste: true }),\n      captured: keyOf({ onPasteCapture: true })\n    }\n  },\n  pause: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPause: true }),\n      captured: keyOf({ onPauseCapture: true })\n    }\n  },\n  play: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlay: true }),\n      captured: keyOf({ onPlayCapture: true })\n    }\n  },\n  playing: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlaying: true }),\n      captured: keyOf({ onPlayingCapture: true })\n    }\n  },\n  progress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onProgress: true }),\n      captured: keyOf({ onProgressCapture: true })\n    }\n  },\n  rateChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onRateChange: true }),\n      captured: keyOf({ onRateChangeCapture: true })\n    }\n  },\n  reset: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onReset: true }),\n      captured: keyOf({ onResetCapture: true })\n    }\n  },\n  scroll: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onScroll: true }),\n      captured: keyOf({ onScrollCapture: true })\n    }\n  },\n  seeked: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeked: true }),\n      captured: keyOf({ onSeekedCapture: true })\n    }\n  },\n  seeking: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeking: true }),\n      captured: keyOf({ onSeekingCapture: true })\n    }\n  },\n  stalled: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onStalled: true }),\n      captured: keyOf({ onStalledCapture: true })\n    }\n  },\n  submit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSubmit: true }),\n      captured: keyOf({ onSubmitCapture: true })\n    }\n  },\n  suspend: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSuspend: true }),\n      captured: keyOf({ onSuspendCapture: true })\n    }\n  },\n  timeUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTimeUpdate: true }),\n      captured: keyOf({ onTimeUpdateCapture: true })\n    }\n  },\n  touchCancel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchCancel: true }),\n      captured: keyOf({ onTouchCancelCapture: true })\n    }\n  },\n  touchEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchEnd: true }),\n      captured: keyOf({ onTouchEndCapture: true })\n    }\n  },\n  touchMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchMove: true }),\n      captured: keyOf({ onTouchMoveCapture: true })\n    }\n  },\n  touchStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchStart: true }),\n      captured: keyOf({ onTouchStartCapture: true })\n    }\n  },\n  volumeChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onVolumeChange: true }),\n      captured: keyOf({ onVolumeChangeCapture: true })\n    }\n  },\n  waiting: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWaiting: true }),\n      captured: keyOf({ onWaitingCapture: true })\n    }\n  },\n  wheel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWheel: true }),\n      captured: keyOf({ onWheelCapture: true })\n    }\n  }\n};\n\nvar topLevelEventsToDispatchConfig = {\n  topAbort: eventTypes.abort,\n  topBlur: eventTypes.blur,\n  topCanPlay: eventTypes.canPlay,\n  topCanPlayThrough: eventTypes.canPlayThrough,\n  topClick: eventTypes.click,\n  topContextMenu: eventTypes.contextMenu,\n  topCopy: eventTypes.copy,\n  topCut: eventTypes.cut,\n  topDoubleClick: eventTypes.doubleClick,\n  topDrag: eventTypes.drag,\n  topDragEnd: eventTypes.dragEnd,\n  topDragEnter: eventTypes.dragEnter,\n  topDragExit: eventTypes.dragExit,\n  topDragLeave: eventTypes.dragLeave,\n  topDragOver: eventTypes.dragOver,\n  topDragStart: eventTypes.dragStart,\n  topDrop: eventTypes.drop,\n  topDurationChange: eventTypes.durationChange,\n  topEmptied: eventTypes.emptied,\n  topEncrypted: eventTypes.encrypted,\n  topEnded: eventTypes.ended,\n  topError: eventTypes.error,\n  topFocus: eventTypes.focus,\n  topInput: eventTypes.input,\n  topKeyDown: eventTypes.keyDown,\n  topKeyPress: eventTypes.keyPress,\n  topKeyUp: eventTypes.keyUp,\n  topLoad: eventTypes.load,\n  topLoadedData: eventTypes.loadedData,\n  topLoadedMetadata: eventTypes.loadedMetadata,\n  topLoadStart: eventTypes.loadStart,\n  topMouseDown: eventTypes.mouseDown,\n  topMouseMove: eventTypes.mouseMove,\n  topMouseOut: eventTypes.mouseOut,\n  topMouseOver: eventTypes.mouseOver,\n  topMouseUp: eventTypes.mouseUp,\n  topPaste: eventTypes.paste,\n  topPause: eventTypes.pause,\n  topPlay: eventTypes.play,\n  topPlaying: eventTypes.playing,\n  topProgress: eventTypes.progress,\n  topRateChange: eventTypes.rateChange,\n  topReset: eventTypes.reset,\n  topScroll: eventTypes.scroll,\n  topSeeked: eventTypes.seeked,\n  topSeeking: eventTypes.seeking,\n  topStalled: eventTypes.stalled,\n  topSubmit: eventTypes.submit,\n  topSuspend: eventTypes.suspend,\n  topTimeUpdate: eventTypes.timeUpdate,\n  topTouchCancel: eventTypes.touchCancel,\n  topTouchEnd: eventTypes.touchEnd,\n  topTouchMove: eventTypes.touchMove,\n  topTouchStart: eventTypes.touchStart,\n  topVolumeChange: eventTypes.volumeChange,\n  topWaiting: eventTypes.waiting,\n  topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n  topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nvar SimpleEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor;\n    switch (topLevelType) {\n      case topLevelTypes.topAbort:\n      case topLevelTypes.topCanPlay:\n      case topLevelTypes.topCanPlayThrough:\n      case topLevelTypes.topDurationChange:\n      case topLevelTypes.topEmptied:\n      case topLevelTypes.topEncrypted:\n      case topLevelTypes.topEnded:\n      case topLevelTypes.topError:\n      case topLevelTypes.topInput:\n      case topLevelTypes.topLoad:\n      case topLevelTypes.topLoadedData:\n      case topLevelTypes.topLoadedMetadata:\n      case topLevelTypes.topLoadStart:\n      case topLevelTypes.topPause:\n      case topLevelTypes.topPlay:\n      case topLevelTypes.topPlaying:\n      case topLevelTypes.topProgress:\n      case topLevelTypes.topRateChange:\n      case topLevelTypes.topReset:\n      case topLevelTypes.topSeeked:\n      case topLevelTypes.topSeeking:\n      case topLevelTypes.topStalled:\n      case topLevelTypes.topSubmit:\n      case topLevelTypes.topSuspend:\n      case topLevelTypes.topTimeUpdate:\n      case topLevelTypes.topVolumeChange:\n      case topLevelTypes.topWaiting:\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n      case topLevelTypes.topKeyPress:\n        // FireFox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case topLevelTypes.topBlur:\n      case topLevelTypes.topFocus:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case topLevelTypes.topClick:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topDoubleClick:\n      case topLevelTypes.topMouseDown:\n      case topLevelTypes.topMouseMove:\n      case topLevelTypes.topMouseOut:\n      case topLevelTypes.topMouseOver:\n      case topLevelTypes.topMouseUp:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case topLevelTypes.topDrag:\n      case topLevelTypes.topDragEnd:\n      case topLevelTypes.topDragEnter:\n      case topLevelTypes.topDragExit:\n      case topLevelTypes.topDragLeave:\n      case topLevelTypes.topDragOver:\n      case topLevelTypes.topDragStart:\n      case topLevelTypes.topDrop:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case topLevelTypes.topTouchCancel:\n      case topLevelTypes.topTouchEnd:\n      case topLevelTypes.topTouchMove:\n      case topLevelTypes.topTouchStart:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case topLevelTypes.topScroll:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case topLevelTypes.topWheel:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case topLevelTypes.topCopy:\n      case topLevelTypes.topCut:\n      case topLevelTypes.topPaste:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n    }\n    !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined;\n    var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget);\n    EventPropagators.accumulateTwoPhaseDispatches(event);\n    return event;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    // Mobile Safari does not fire properly bubble click events on\n    // non-interactive elements, which means delegated click listeners do not\n    // fire. The workaround for this bug involves attaching an empty click\n    // listener on the target node.\n    if (registrationName === ON_CLICK_KEY) {\n      var node = ReactMount.getNode(id);\n      if (!onClickListeners[id]) {\n        onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction);\n      }\n    }\n  },\n\n  willDeleteListener: function (id, registrationName) {\n    if (registrationName === ON_CLICK_KEY) {\n      onClickListeners[id].remove();\n      delete onClickListeners[id];\n    }\n  }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SimpleEventPlugin.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticClipboardEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n  relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticFocusEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticKeyboardEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\nmodule.exports = getEventCharCode;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getEventCharCode.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n * @typechecks static-only\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  'Esc': 'Escape',\n  'Spacebar': ' ',\n  'Left': 'ArrowLeft',\n  'Up': 'ArrowUp',\n  'Right': 'ArrowRight',\n  'Down': 'ArrowDown',\n  'Del': 'Delete',\n  'Win': 'OS',\n  'Menu': 'ContextMenu',\n  'Apps': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  8: 'Backspace',\n  9: 'Tab',\n  12: 'Clear',\n  13: 'Enter',\n  16: 'Shift',\n  17: 'Control',\n  18: 'Alt',\n  19: 'Pause',\n  20: 'CapsLock',\n  27: 'Escape',\n  32: ' ',\n  33: 'PageUp',\n  34: 'PageDown',\n  35: 'End',\n  36: 'Home',\n  37: 'ArrowLeft',\n  38: 'ArrowUp',\n  39: 'ArrowRight',\n  40: 'ArrowDown',\n  45: 'Insert',\n  46: 'Delete',\n  112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n  118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n  144: 'NumLock',\n  145: 'ScrollLock',\n  224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\nmodule.exports = getEventKey;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/getEventKey.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n  dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticDragEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticTouchEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX :\n    // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY :\n    // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY :\n    // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SyntheticWheelEvent.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\n\nvar NS = {\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\nvar SVGDOMPropertyConfig = {\n  Properties: {\n    clipPath: MUST_USE_ATTRIBUTE,\n    cx: MUST_USE_ATTRIBUTE,\n    cy: MUST_USE_ATTRIBUTE,\n    d: MUST_USE_ATTRIBUTE,\n    dx: MUST_USE_ATTRIBUTE,\n    dy: MUST_USE_ATTRIBUTE,\n    fill: MUST_USE_ATTRIBUTE,\n    fillOpacity: MUST_USE_ATTRIBUTE,\n    fontFamily: MUST_USE_ATTRIBUTE,\n    fontSize: MUST_USE_ATTRIBUTE,\n    fx: MUST_USE_ATTRIBUTE,\n    fy: MUST_USE_ATTRIBUTE,\n    gradientTransform: MUST_USE_ATTRIBUTE,\n    gradientUnits: MUST_USE_ATTRIBUTE,\n    markerEnd: MUST_USE_ATTRIBUTE,\n    markerMid: MUST_USE_ATTRIBUTE,\n    markerStart: MUST_USE_ATTRIBUTE,\n    offset: MUST_USE_ATTRIBUTE,\n    opacity: MUST_USE_ATTRIBUTE,\n    patternContentUnits: MUST_USE_ATTRIBUTE,\n    patternUnits: MUST_USE_ATTRIBUTE,\n    points: MUST_USE_ATTRIBUTE,\n    preserveAspectRatio: MUST_USE_ATTRIBUTE,\n    r: MUST_USE_ATTRIBUTE,\n    rx: MUST_USE_ATTRIBUTE,\n    ry: MUST_USE_ATTRIBUTE,\n    spreadMethod: MUST_USE_ATTRIBUTE,\n    stopColor: MUST_USE_ATTRIBUTE,\n    stopOpacity: MUST_USE_ATTRIBUTE,\n    stroke: MUST_USE_ATTRIBUTE,\n    strokeDasharray: MUST_USE_ATTRIBUTE,\n    strokeLinecap: MUST_USE_ATTRIBUTE,\n    strokeOpacity: MUST_USE_ATTRIBUTE,\n    strokeWidth: MUST_USE_ATTRIBUTE,\n    textAnchor: MUST_USE_ATTRIBUTE,\n    transform: MUST_USE_ATTRIBUTE,\n    version: MUST_USE_ATTRIBUTE,\n    viewBox: MUST_USE_ATTRIBUTE,\n    x1: MUST_USE_ATTRIBUTE,\n    x2: MUST_USE_ATTRIBUTE,\n    x: MUST_USE_ATTRIBUTE,\n    xlinkActuate: MUST_USE_ATTRIBUTE,\n    xlinkArcrole: MUST_USE_ATTRIBUTE,\n    xlinkHref: MUST_USE_ATTRIBUTE,\n    xlinkRole: MUST_USE_ATTRIBUTE,\n    xlinkShow: MUST_USE_ATTRIBUTE,\n    xlinkTitle: MUST_USE_ATTRIBUTE,\n    xlinkType: MUST_USE_ATTRIBUTE,\n    xmlBase: MUST_USE_ATTRIBUTE,\n    xmlLang: MUST_USE_ATTRIBUTE,\n    xmlSpace: MUST_USE_ATTRIBUTE,\n    y1: MUST_USE_ATTRIBUTE,\n    y2: MUST_USE_ATTRIBUTE,\n    y: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNamespaces: {\n    xlinkActuate: NS.xlink,\n    xlinkArcrole: NS.xlink,\n    xlinkHref: NS.xlink,\n    xlinkRole: NS.xlink,\n    xlinkShow: NS.xlink,\n    xlinkTitle: NS.xlink,\n    xlinkType: NS.xlink,\n    xmlBase: NS.xml,\n    xmlLang: NS.xml,\n    xmlSpace: NS.xml\n  },\n  DOMAttributeNames: {\n    clipPath: 'clip-path',\n    fillOpacity: 'fill-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    gradientTransform: 'gradientTransform',\n    gradientUnits: 'gradientUnits',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    patternContentUnits: 'patternContentUnits',\n    patternUnits: 'patternUnits',\n    preserveAspectRatio: 'preserveAspectRatio',\n    spreadMethod: 'spreadMethod',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strokeDasharray: 'stroke-dasharray',\n    strokeLinecap: 'stroke-linecap',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    textAnchor: 'text-anchor',\n    viewBox: 'viewBox',\n    xlinkActuate: 'xlink:actuate',\n    xlinkArcrole: 'xlink:arcrole',\n    xlinkHref: 'xlink:href',\n    xlinkRole: 'xlink:role',\n    xlinkShow: 'xlink:show',\n    xlinkTitle: 'xlink:title',\n    xlinkType: 'xlink:type',\n    xmlBase: 'xml:base',\n    xmlLang: 'xml:lang',\n    xmlSpace: 'xml:space'\n  }\n};\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/SVGDOMPropertyConfig.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerf\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDefaultPerfAnalysis = require('./ReactDefaultPerfAnalysis');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar performanceNow = require('fbjs/lib/performanceNow');\n\nfunction roundFloat(val) {\n  return Math.floor(val * 100) / 100;\n}\n\nfunction addValue(obj, key, val) {\n  obj[key] = (obj[key] || 0) + val;\n}\n\nvar ReactDefaultPerf = {\n  _allMeasurements: [], // last item in the list is the current one\n  _mountStack: [0],\n  _injected: false,\n\n  start: function () {\n    if (!ReactDefaultPerf._injected) {\n      ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);\n    }\n\n    ReactDefaultPerf._allMeasurements.length = 0;\n    ReactPerf.enableMeasure = true;\n  },\n\n  stop: function () {\n    ReactPerf.enableMeasure = false;\n  },\n\n  getLastMeasurements: function () {\n    return ReactDefaultPerf._allMeasurements;\n  },\n\n  printExclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Component class name': item.componentName,\n        'Total inclusive time (ms)': roundFloat(item.inclusive),\n        'Exclusive mount time (ms)': roundFloat(item.exclusive),\n        'Exclusive render time (ms)': roundFloat(item.render),\n        'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),\n        'Render time per instance (ms)': roundFloat(item.render / item.count),\n        'Instances': item.count\n      };\n    }));\n    // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct\n    // number.\n  },\n\n  printInclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Inclusive time (ms)': roundFloat(item.time),\n        'Instances': item.count\n      };\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  getMeasurementsSummaryMap: function (measurements) {\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true);\n    return summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Wasted time (ms)': item.time,\n        'Instances': item.count\n      };\n    });\n  },\n\n  printWasted: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  printDOM: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);\n    console.table(summary.map(function (item) {\n      var result = {};\n      result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;\n      result.type = item.type;\n      result.args = JSON.stringify(item.args);\n      return result;\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  _recordWrite: function (id, fnName, totalTime, args) {\n    // TODO: totalTime isn't that useful since it doesn't count paints/reflows\n    var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes;\n    writes[id] = writes[id] || [];\n    writes[id].push({\n      type: fnName,\n      time: totalTime,\n      args: args\n    });\n  },\n\n  measure: function (moduleName, fnName, func) {\n    return function () {\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var totalTime;\n      var rv;\n      var start;\n\n      if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') {\n        // A \"measurement\" is a set of metrics recorded for each flush. We want\n        // to group the metrics for a given flush together so we can look at the\n        // components that rendered and the DOM operations that actually\n        // happened to determine the amount of \"wasted work\" performed.\n        ReactDefaultPerf._allMeasurements.push({\n          exclusive: {},\n          inclusive: {},\n          render: {},\n          counts: {},\n          writes: {},\n          displayNames: {},\n          totalTime: 0,\n          created: {}\n        });\n        start = performanceNow();\n        rv = func.apply(this, args);\n        ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start;\n        return rv;\n      } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') {\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (fnName === '_mountImageIntoNode') {\n          var mountID = ReactMount.getID(args[1]);\n          ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);\n        } else if (fnName === 'dangerouslyProcessChildrenUpdates') {\n          // special format\n          args[0].forEach(function (update) {\n            var writeArgs = {};\n            if (update.fromIndex !== null) {\n              writeArgs.fromIndex = update.fromIndex;\n            }\n            if (update.toIndex !== null) {\n              writeArgs.toIndex = update.toIndex;\n            }\n            if (update.textContent !== null) {\n              writeArgs.textContent = update.textContent;\n            }\n            if (update.markupIndex !== null) {\n              writeArgs.markup = args[1][update.markupIndex];\n            }\n            ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs);\n          });\n        } else {\n          // basic format\n          var id = args[0];\n          if (typeof id === 'object') {\n            id = ReactMount.getID(args[0]);\n          }\n          ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1));\n        }\n        return rv;\n      } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()?\n      fnName === '_renderValidatedComponent')) {\n\n        if (this._currentElement.type === ReactMount.TopLevelWrapper) {\n          return func.apply(this, args);\n        }\n\n        var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID;\n        var isRender = fnName === '_renderValidatedComponent';\n        var isMount = fnName === 'mountComponent';\n\n        var mountStack = ReactDefaultPerf._mountStack;\n        var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1];\n\n        if (isRender) {\n          addValue(entry.counts, rootNodeID, 1);\n        } else if (isMount) {\n          entry.created[rootNodeID] = true;\n          mountStack.push(0);\n        }\n\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (isRender) {\n          addValue(entry.render, rootNodeID, totalTime);\n        } else if (isMount) {\n          var subMountTime = mountStack.pop();\n          mountStack[mountStack.length - 1] += totalTime;\n          addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        } else {\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        }\n\n        entry.displayNames[rootNodeID] = {\n          current: this.getName(),\n          owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>'\n        };\n\n        return rv;\n      } else {\n        return func.apply(this, args);\n      }\n    };\n  }\n};\n\nmodule.exports = ReactDefaultPerf;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDefaultPerf.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerfAnalysis\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\n\n// Don't try to save users less than 1.2ms (a number I made up)\nvar DONT_CARE_THRESHOLD = 1.2;\nvar DOM_OPERATION_TYPES = {\n  '_mountImageIntoNode': 'set innerHTML',\n  INSERT_MARKUP: 'set innerHTML',\n  MOVE_EXISTING: 'move',\n  REMOVE_NODE: 'remove',\n  SET_MARKUP: 'set innerHTML',\n  TEXT_CONTENT: 'set textContent',\n  'setValueForProperty': 'update attribute',\n  'setValueForAttribute': 'update attribute',\n  'deleteValueForProperty': 'remove attribute',\n  'dangerouslyReplaceNodeWithMarkupByID': 'replace'\n};\n\nfunction getTotalTime(measurements) {\n  // TODO: return number of DOM ops? could be misleading.\n  // TODO: measure dropped frames after reconcile?\n  // TODO: log total time of each reconcile and the top-level component\n  // class that triggered it.\n  var totalTime = 0;\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    totalTime += measurement.totalTime;\n  }\n  return totalTime;\n}\n\nfunction getDOMSummary(measurements) {\n  var items = [];\n  measurements.forEach(function (measurement) {\n    Object.keys(measurement.writes).forEach(function (id) {\n      measurement.writes[id].forEach(function (write) {\n        items.push({\n          id: id,\n          type: DOM_OPERATION_TYPES[write.type] || write.type,\n          args: write.args\n        });\n      });\n    });\n  });\n  return items;\n}\n\nfunction getExclusiveSummary(measurements) {\n  var candidates = {};\n  var displayName;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n    for (var id in allIDs) {\n      displayName = measurement.displayNames[id].current;\n\n      candidates[displayName] = candidates[displayName] || {\n        componentName: displayName,\n        inclusive: 0,\n        exclusive: 0,\n        render: 0,\n        count: 0\n      };\n      if (measurement.render[id]) {\n        candidates[displayName].render += measurement.render[id];\n      }\n      if (measurement.exclusive[id]) {\n        candidates[displayName].exclusive += measurement.exclusive[id];\n      }\n      if (measurement.inclusive[id]) {\n        candidates[displayName].inclusive += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[displayName].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (displayName in candidates) {\n    if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[displayName]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.exclusive - a.exclusive;\n  });\n\n  return arr;\n}\n\nfunction getInclusiveSummary(measurements, onlyClean) {\n  var candidates = {};\n  var inclusiveKey;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n    var cleanComponents;\n\n    if (onlyClean) {\n      cleanComponents = getUnchangedComponents(measurement);\n    }\n\n    for (var id in allIDs) {\n      if (onlyClean && !cleanComponents[id]) {\n        continue;\n      }\n\n      var displayName = measurement.displayNames[id];\n\n      // Inclusive time is not useful for many components without knowing where\n      // they are instantiated. So we aggregate inclusive time with both the\n      // owner and current displayName as the key.\n      inclusiveKey = displayName.owner + ' > ' + displayName.current;\n\n      candidates[inclusiveKey] = candidates[inclusiveKey] || {\n        componentName: inclusiveKey,\n        time: 0,\n        count: 0\n      };\n\n      if (measurement.inclusive[id]) {\n        candidates[inclusiveKey].time += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[inclusiveKey].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (inclusiveKey in candidates) {\n    if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[inclusiveKey]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.time - a.time;\n  });\n\n  return arr;\n}\n\nfunction getUnchangedComponents(measurement) {\n  // For a given reconcile, look at which components did not actually\n  // render anything to the DOM and return a mapping of their ID to\n  // the amount of time it took to render the entire subtree.\n  var cleanComponents = {};\n  var dirtyLeafIDs = Object.keys(measurement.writes);\n  var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n  for (var id in allIDs) {\n    var isDirty = false;\n    // For each component that rendered, see if a component that triggered\n    // a DOM op is in its subtree.\n    for (var i = 0; i < dirtyLeafIDs.length; i++) {\n      if (dirtyLeafIDs[i].indexOf(id) === 0) {\n        isDirty = true;\n        break;\n      }\n    }\n    // check if component newly created\n    if (measurement.created[id]) {\n      isDirty = true;\n    }\n    if (!isDirty && measurement.counts[id] > 0) {\n      cleanComponents[id] = true;\n    }\n  }\n  return cleanComponents;\n}\n\nvar ReactDefaultPerfAnalysis = {\n  getExclusiveSummary: getExclusiveSummary,\n  getInclusiveSummary: getInclusiveSummary,\n  getDOMSummary: getDOMSummary,\n  getTotalTime: getTotalTime\n};\n\nmodule.exports = ReactDefaultPerfAnalysis;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDefaultPerfAnalysis.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performanceNow\n * @typechecks\n */\n\n'use strict';\n\nvar performance = require('./performance');\nvar curPerformance = performance;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (!curPerformance || !curPerformance.now) {\n  curPerformance = Date;\n}\n\nvar performanceNow = curPerformance.now.bind(curPerformance);\n\nmodule.exports = performanceNow;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/performanceNow.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performance\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n  performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/performance.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '0.14.0';\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactVersion.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/renderSubtreeIntoContainer.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMServer\n */\n\n'use strict';\n\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactServerRendering = require('./ReactServerRendering');\nvar ReactVersion = require('./ReactVersion');\n\nReactDefaultInjection.inject();\n\nvar ReactDOMServer = {\n  renderToString: ReactServerRendering.renderToString,\n  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n  version: ReactVersion\n};\n\nmodule.exports = ReactDOMServer;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMServer.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule ReactServerRendering\n */\n'use strict';\n\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactServerBatchingStrategy = require('./ReactServerBatchingStrategy');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToString(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(false);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      var markup = componentInstance.mountComponent(id, transaction, emptyObject);\n      return ReactMarkupChecksum.addChecksumToMarkup(markup);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup, without the extra React ID and checksum\n * (for generating static pages)\n */\nfunction renderToStaticMarkup(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(true);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      return componentInstance.mountComponent(id, transaction, emptyObject);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\nmodule.exports = {\n  renderToString: renderToString,\n  renderToStaticMarkup: renderToStaticMarkup\n};\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactServerRendering.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerBatchingStrategy\n * @typechecks\n */\n\n'use strict';\n\nvar ReactServerBatchingStrategy = {\n  isBatchingUpdates: false,\n  batchedUpdates: function (callback) {\n    // Don't do anything here. During the server rendering we don't want to\n    // schedule any updates. We will simply ignore them.\n  }\n};\n\nmodule.exports = ReactServerBatchingStrategy;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactServerBatchingStrategy.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n * @typechecks\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar CallbackQueue = require('./CallbackQueue');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\n/**\n * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks\n * during the performing of the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  close: emptyFunction\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING];\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n  this.reinitializeTransaction();\n  this.renderToStaticMarkup = renderToStaticMarkup;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = false;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array} Empty list of operation wrap procedures.\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactServerRenderingTransaction.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactIsomorphic\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar assign = require('./Object.assign');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n  createElement = ReactElementValidator.createElement;\n  createFactory = ReactElementValidator.createFactory;\n  cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar React = {\n\n  // Modern\n\n  Children: {\n    map: ReactChildren.map,\n    forEach: ReactChildren.forEach,\n    count: ReactChildren.count,\n    toArray: ReactChildren.toArray,\n    only: onlyChild\n  },\n\n  Component: ReactComponent,\n\n  createElement: createElement,\n  cloneElement: cloneElement,\n  isValidElement: ReactElement.isValidElement,\n\n  // Classic\n\n  PropTypes: ReactPropTypes,\n  createClass: ReactClass.createClass,\n  createFactory: createFactory,\n  createMixin: function (mixin) {\n    // Currently a noop. Will be used to validate and trace mixins.\n    return mixin;\n  },\n\n  // This looks DOM specific but these are actually isomorphic helpers\n  // since they are just generating DOM strings.\n  DOM: ReactDOMFactories,\n\n  version: ReactVersion,\n\n  // Hook for JSX spread, don't use this for anything else.\n  __spread: assign\n};\n\nmodule.exports = React;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactIsomorphic.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\n\nvar mapObject = require('fbjs/lib/mapObject');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n  if (process.env.NODE_ENV !== 'production') {\n    return ReactElementValidator.createFactory(tag);\n  }\n  return ReactElement.createFactory(tag);\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = mapObject({\n  a: 'a',\n  abbr: 'abbr',\n  address: 'address',\n  area: 'area',\n  article: 'article',\n  aside: 'aside',\n  audio: 'audio',\n  b: 'b',\n  base: 'base',\n  bdi: 'bdi',\n  bdo: 'bdo',\n  big: 'big',\n  blockquote: 'blockquote',\n  body: 'body',\n  br: 'br',\n  button: 'button',\n  canvas: 'canvas',\n  caption: 'caption',\n  cite: 'cite',\n  code: 'code',\n  col: 'col',\n  colgroup: 'colgroup',\n  data: 'data',\n  datalist: 'datalist',\n  dd: 'dd',\n  del: 'del',\n  details: 'details',\n  dfn: 'dfn',\n  dialog: 'dialog',\n  div: 'div',\n  dl: 'dl',\n  dt: 'dt',\n  em: 'em',\n  embed: 'embed',\n  fieldset: 'fieldset',\n  figcaption: 'figcaption',\n  figure: 'figure',\n  footer: 'footer',\n  form: 'form',\n  h1: 'h1',\n  h2: 'h2',\n  h3: 'h3',\n  h4: 'h4',\n  h5: 'h5',\n  h6: 'h6',\n  head: 'head',\n  header: 'header',\n  hgroup: 'hgroup',\n  hr: 'hr',\n  html: 'html',\n  i: 'i',\n  iframe: 'iframe',\n  img: 'img',\n  input: 'input',\n  ins: 'ins',\n  kbd: 'kbd',\n  keygen: 'keygen',\n  label: 'label',\n  legend: 'legend',\n  li: 'li',\n  link: 'link',\n  main: 'main',\n  map: 'map',\n  mark: 'mark',\n  menu: 'menu',\n  menuitem: 'menuitem',\n  meta: 'meta',\n  meter: 'meter',\n  nav: 'nav',\n  noscript: 'noscript',\n  object: 'object',\n  ol: 'ol',\n  optgroup: 'optgroup',\n  option: 'option',\n  output: 'output',\n  p: 'p',\n  param: 'param',\n  picture: 'picture',\n  pre: 'pre',\n  progress: 'progress',\n  q: 'q',\n  rp: 'rp',\n  rt: 'rt',\n  ruby: 'ruby',\n  s: 's',\n  samp: 'samp',\n  script: 'script',\n  section: 'section',\n  select: 'select',\n  small: 'small',\n  source: 'source',\n  span: 'span',\n  strong: 'strong',\n  style: 'style',\n  sub: 'sub',\n  summary: 'summary',\n  sup: 'sup',\n  table: 'table',\n  tbody: 'tbody',\n  td: 'td',\n  textarea: 'textarea',\n  tfoot: 'tfoot',\n  th: 'th',\n  thead: 'thead',\n  time: 'time',\n  title: 'title',\n  tr: 'tr',\n  track: 'track',\n  u: 'u',\n  ul: 'ul',\n  'var': 'var',\n  video: 'video',\n  wbr: 'wbr',\n\n  // SVG\n  circle: 'circle',\n  clipPath: 'clipPath',\n  defs: 'defs',\n  ellipse: 'ellipse',\n  g: 'g',\n  image: 'image',\n  line: 'line',\n  linearGradient: 'linearGradient',\n  mask: 'mask',\n  path: 'path',\n  pattern: 'pattern',\n  polygon: 'polygon',\n  polyline: 'polyline',\n  radialGradient: 'radialGradient',\n  rect: 'rect',\n  stop: 'stop',\n  svg: 'svg',\n  text: 'text',\n  tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOMFactories;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactDOMFactories.js\n **/","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = ReactCurrentOwner.current.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nvar loggedTypeFailures = {};\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var addenda = getAddendaForKeyUse('uniqueKey', element, parentType);\n  if (addenda === null) {\n    // we already showed the warning\n    return;\n  }\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined;\n}\n\n/**\n * Shared warning and monitoring code for the key warnings.\n *\n * @internal\n * @param {string} messageType A key used for de-duping warnings.\n * @param {ReactElement} element Component that requires a key.\n * @param {*} parentType element's parent's type.\n * @returns {?object} A set of addenda to use in the warning message, or null\n * if the warning has already been shown before (and shouldn't be shown again).\n */\nfunction getAddendaForKeyUse(messageType, element, parentType) {\n  var addendum = getDeclarationErrorAddendum();\n  if (!addendum) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      addendum = ' Check the top-level render call using <' + parentName + '>.';\n    }\n  }\n\n  var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {});\n  if (memoizer[addendum]) {\n    return null;\n  }\n  memoizer[addendum] = true;\n\n  var addenda = {\n    parentOrOwner: addendum,\n    url: ' See https://fb.me/react-warning-keys for more information.',\n    childOwner: null\n  };\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n  }\n\n  return addenda;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (ReactElement.isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (ReactElement.isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    // Entry iterators provide implicit keys.\n    if (iteratorFn) {\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n        while (!(step = iterator.next()).done) {\n          if (ReactElement.isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Assert that the props are valid\n *\n * @param {string} componentName Name of the component for error messages.\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\nfunction checkPropTypes(componentName, propTypes, props, location) {\n  for (var propName in propTypes) {\n    if (propTypes.hasOwnProperty(propName)) {\n      var error;\n      // Prop type validation may throw. In case they do, we don't want to\n      // fail the render phase where it didn't fail before. So we log it.\n      // After these have been cleaned up, we'll let them throw.\n      try {\n        // This is intentionally an invariant that gets caught. It's the same\n        // behavior as without this statement except with a better message.\n        !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n        error = propTypes[propName](props, propName, componentName, location);\n      } catch (ex) {\n        error = ex;\n      }\n      process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : undefined;\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum();\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var componentClass = element.type;\n  if (typeof componentClass !== 'function') {\n    return;\n  }\n  var name = componentClass.displayName || componentClass.name;\n  if (componentClass.propTypes) {\n    checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop);\n  }\n  if (typeof componentClass.getDefaultProps === 'function') {\n    process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined;\n  }\n}\n\nvar ReactElementValidator = {\n\n  createElement: function (type, props, children) {\n    var validType = typeof type === 'string' || typeof type === 'function';\n    // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n    process.env.NODE_ENV !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined;\n\n    var element = ReactElement.createElement.apply(this, arguments);\n\n    // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n    if (element == null) {\n      return element;\n    }\n\n    // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n    if (validType) {\n      for (var i = 2; i < arguments.length; i++) {\n        validateChildKeys(arguments[i], type);\n      }\n    }\n\n    validatePropTypes(element);\n\n    return element;\n  },\n\n  createFactory: function (type) {\n    var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n    // Legacy hook TODO: Warn if this is accessed\n    validatedFactory.type = type;\n\n    if (process.env.NODE_ENV !== 'production') {\n      try {\n        Object.defineProperty(validatedFactory, 'type', {\n          enumerable: false,\n          get: function () {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined;\n            Object.defineProperty(this, 'type', {\n              value: type\n            });\n            return type;\n          }\n        });\n      } catch (x) {\n        // IE will fail on defineProperty (es5-shim/sham too)\n      }\n    }\n\n    return validatedFactory;\n  },\n\n  cloneElement: function (element, props, children) {\n    var newElement = ReactElement.cloneElement.apply(this, arguments);\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], newElement.type);\n    }\n    validatePropTypes(newElement);\n    return newElement;\n  }\n\n};\n\nmodule.exports = ReactElementValidator;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/ReactElementValidator.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule mapObject\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n *  - the property value\n *  - the property name\n *  - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n  if (!object) {\n    return null;\n  }\n  var result = {};\n  for (var name in object) {\n    if (hasOwnProperty.call(object, name)) {\n      result[name] = callback.call(context, object[name], name, object);\n    }\n  }\n  return result;\n}\n\nmodule.exports = mapObject;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/~/fbjs/lib/mapObject.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection. The current implementation of this\n * function assumes that a single child gets passed without a wrapper, but the\n * purpose of this helper function is to abstract away the particular structure\n * of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactComponent} The first and only `ReactComponent` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined;\n  return children;\n}\n\nmodule.exports = onlyChild;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/onlyChild.js\n **/","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule deprecated\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * This will log a single deprecation notice per function and forward the call\n * on to the new API.\n *\n * @param {string} fnName The name of the function\n * @param {string} newModule The module that fn will exist in\n * @param {string} newPackage The module that fn will exist in\n * @param {*} ctx The context this forwarded call should run in\n * @param {function} fn The function to forward on to\n * @return {function} The function that will warn once and then call fn\n */\nfunction deprecated(fnName, newModule, newPackage, ctx, fn) {\n  var warned = false;\n  if (process.env.NODE_ENV !== 'production') {\n    var newFn = function () {\n      process.env.NODE_ENV !== 'production' ? warning(warned,\n      // Require examples in this string must be split to prevent React's\n      // build tools from mistaking them for real requires.\n      // Otherwise the build tools will attempt to build a '%s' module.\n      'React.%s is deprecated. Please use %s.%s from require' + '(\\'%s\\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined;\n      warned = true;\n      return fn.apply(ctx, arguments);\n    };\n    // We need to make sure all properties of the original fn are copied over.\n    // In particular, this is needed to support PropTypes\n    return assign(newFn, fn);\n  }\n\n  return fn;\n}\n\nmodule.exports = deprecated;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react/lib/deprecated.js\n **/","'use strict';\n\nmodule.exports = require('react/lib/ReactDOM');\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-dom/index.js\n **/","import React from 'react';\nimport { TransitionMotion, spring } from 'react-motion';\n\nexport default function Ticker({item}) {\n  return (\n    <TransitionMotion\n      willEnter={key => ({\n        item,\n        opacity: spring(0),\n        y: spring(15),\n      })}\n      willLeave={(key, {item}) => ({\n        item,\n        leaving: true,\n        opacity: spring(0),\n        y: spring(-15),\n      })}\n      styles={{\n        [item.id]: {\n          item,\n          opacity: spring(1),\n          y: spring(0),\n        },\n      }}>\n      {configs =>\n        <div style={{\n          position: 'relative',\n          border: '1px solid #bbb',\n          width: 300,\n          padding: '20px 0',\n          fontFamily: 'sans-serif',\n          fontSize: 30,\n          textAlign: 'center',\n        }}>\n          {Object.keys(configs).map(key =>\n            <div key={key}\n              style={{\n                width: '100%',\n                position: configs[key].leaving ? 'absolute' : 'static',\n                opacity: configs[key].opacity,\n                transform: `translateY(${configs[key].y}px)`,\n              }}>\n              {configs[key].item.text}\n            </div>\n          )}\n        </div>\n      }\n    </TransitionMotion>\n  );\n\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./Ticker.js\n **/","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _components2 = require('./components');\n\nvar _components3 = _interopRequireDefault(_components2);\n\nvar _reorderKeys = require('./reorderKeys');\n\nvar _reorderKeys2 = _interopRequireDefault(_reorderKeys);\n\nvar _components = _components3['default'](_react2['default']);\n\nvar Spring = _components.Spring;\nvar TransitionSpring = _components.TransitionSpring;\nvar Motion = _components.Motion;\nvar StaggeredMotion = _components.StaggeredMotion;\nvar TransitionMotion = _components.TransitionMotion;\nexports.Spring = Spring;\nexports.TransitionSpring = TransitionSpring;\nexports.Motion = Motion;\nexports.StaggeredMotion = StaggeredMotion;\nexports.TransitionMotion = TransitionMotion;\n\nvar _spring2 = require('./spring');\n\nvar _spring3 = _interopRequireDefault(_spring2);\n\nexports.spring = _spring3['default'];\n\nvar _presets2 = require('./presets');\n\nvar _presets3 = _interopRequireDefault(_presets2);\n\nexports.presets = _presets3['default'];\nvar utils = {\n  reorderKeys: _reorderKeys2['default']\n};\nexports.utils = utils;\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/react-motion.js\n **/","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports['default'] = components;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _noVelocity = require('./noVelocity');\n\nvar _noVelocity2 = _interopRequireDefault(_noVelocity);\n\nvar _hasReachedStyle = require('./hasReachedStyle');\n\nvar _hasReachedStyle2 = _interopRequireDefault(_hasReachedStyle);\n\nvar _mergeDiff = require('./mergeDiff');\n\nvar _mergeDiff2 = _interopRequireDefault(_mergeDiff);\n\nvar _animationLoop = require('./animationLoop');\n\nvar _animationLoop2 = _interopRequireDefault(_animationLoop);\n\nvar _zero = require('./zero');\n\nvar _zero2 = _interopRequireDefault(_zero);\n\nvar _updateTree = require('./updateTree');\n\nvar _deprecatedSprings2 = require('./deprecatedSprings');\n\nvar _deprecatedSprings3 = _interopRequireDefault(_deprecatedSprings2);\n\nvar _stripStyle = require('./stripStyle');\n\nvar _stripStyle2 = _interopRequireDefault(_stripStyle);\n\nvar startAnimation = _animationLoop2['default']();\n\nfunction mapObject(f, obj) {\n  var ret = {};\n  for (var key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = f(obj[key], key);\n  }\n  return ret;\n}\n\nfunction everyObj(f, obj) {\n  for (var key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    if (!f(obj[key], key)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction components(React) {\n  var PropTypes = React.PropTypes;\n\n  var Motion = React.createClass({\n    displayName: 'Motion',\n\n    propTypes: {\n      // TOOD: warn against putting a config in here\n      defaultValue: function defaultValue(prop, propName) {\n        if (prop[propName]) {\n          return new Error('Spring\\'s `defaultValue` has been changed to `defaultStyle`. ' + 'Its format received a few (easy to update!) changes as well.');\n        }\n      },\n      endValue: function endValue(prop, propName) {\n        if (prop[propName]) {\n          return new Error('Spring\\'s `endValue` has been changed to `style`. Its format ' + 'received a few (easy to update!) changes as well.');\n        }\n      },\n      defaultStyle: PropTypes.object,\n      style: PropTypes.object.isRequired,\n      children: PropTypes.func.isRequired\n    },\n\n    getInitialState: function getInitialState() {\n      var _props = this.props;\n      var defaultStyle = _props.defaultStyle;\n      var style = _props.style;\n\n      var currentStyle = defaultStyle || style;\n      return {\n        currentStyle: currentStyle,\n        currentVelocity: mapObject(_zero2['default'], currentStyle)\n      };\n    },\n\n    componentDidMount: function componentDidMount() {\n      this.startAnimating();\n    },\n\n    componentWillReceiveProps: function componentWillReceiveProps() {\n      this.startAnimating();\n    },\n\n    animationStep: function animationStep(timestep, state) {\n      var currentStyle = state.currentStyle;\n      var currentVelocity = state.currentVelocity;\n      var style = this.props.style;\n\n      var newCurrentStyle = _updateTree.updateCurrentStyle(timestep, currentStyle, currentVelocity, style);\n      var newCurrentVelocity = _updateTree.updateCurrentVelocity(timestep, currentStyle, currentVelocity, style);\n\n      // TOOD: this isn't necessary anymore. It was used only against endValue func\n      if (_noVelocity2['default'](currentVelocity, newCurrentStyle) && _noVelocity2['default'](newCurrentVelocity, newCurrentStyle)) {\n        // check explanation in `Motion.animationRender`\n        this.stopAnimation(); // Nasty side effects....\n      }\n\n      return {\n        currentStyle: newCurrentStyle,\n        currentVelocity: newCurrentVelocity\n      };\n    },\n\n    stopAnimation: null,\n\n    // used in animationRender\n    hasUnmounted: false,\n\n    componentWillUnmount: function componentWillUnmount() {\n      this.stopAnimation();\n      this.hasUnmounted = true;\n    },\n\n    startAnimating: function startAnimating() {\n      // Is smart enough to not start it twice\n      this.stopAnimation = startAnimation(this.state, this.animationStep, this.animationRender);\n    },\n\n    animationRender: function animationRender(alpha, nextState, prevState) {\n      // `this.hasUnmounted` might be true in the following condition:\n      // user does some checks in `style` and calls an owner handler\n      // owner sets state in the callback, triggering a re-render\n      // unmounts Motion\n      if (!this.hasUnmounted) {\n        this.setState({\n          currentStyle: _updateTree.interpolateValue(alpha, nextState.currentStyle, prevState.currentStyle),\n          currentVelocity: nextState.currentVelocity\n        });\n      }\n    },\n\n    render: function render() {\n      var strippedStyle = _stripStyle2['default'](this.state.currentStyle);\n      var renderedChildren = this.props.children(strippedStyle);\n      return renderedChildren && React.Children.only(renderedChildren);\n    }\n  });\n\n  var StaggeredMotion = React.createClass({\n    displayName: 'StaggeredMotion',\n\n    propTypes: {\n      defaultStyle: function defaultStyle(prop, propName) {\n        if (prop[propName]) {\n          return new Error('You forgot the \"s\" for `StaggeredMotion`\\'s `defaultStyles`.');\n        }\n      },\n      style: function style(prop, propName) {\n        if (prop[propName]) {\n          return new Error('You forgot the \"s\" for `StaggeredMotion`\\'s `styles`.');\n        }\n      },\n      // TOOD: warn against putting configs in here\n      defaultStyles: PropTypes.arrayOf(PropTypes.object),\n      styles: PropTypes.func.isRequired,\n      children: PropTypes.func.isRequired\n    },\n\n    getInitialState: function getInitialState() {\n      var _props2 = this.props;\n      var styles = _props2.styles;\n      var defaultStyles = _props2.defaultStyles;\n\n      var currentStyles = defaultStyles ? defaultStyles : styles();\n      return {\n        currentStyles: currentStyles,\n        currentVelocities: currentStyles.map(function (s) {\n          return mapObject(_zero2['default'], s);\n        })\n      };\n    },\n\n    componentDidMount: function componentDidMount() {\n      this.startAnimating();\n    },\n\n    componentWillReceiveProps: function componentWillReceiveProps() {\n      this.startAnimating();\n    },\n\n    animationStep: function animationStep(timestep, state) {\n      var currentStyles = state.currentStyles;\n      var currentVelocities = state.currentVelocities;\n\n      var styles = this.props.styles(currentStyles.map(_stripStyle2['default']));\n\n      var newCurrentStyles = currentStyles.map(function (currentStyle, i) {\n        return _updateTree.updateCurrentStyle(timestep, currentStyle, currentVelocities[i], styles[i]);\n      });\n      var newCurrentVelocities = currentStyles.map(function (currentStyle, i) {\n        return _updateTree.updateCurrentVelocity(timestep, currentStyle, currentVelocities[i], styles[i]);\n      });\n\n      // TODO: is this right?\n      if (currentVelocities.every(function (v, k) {\n        return _noVelocity2['default'](v, currentStyles[k]);\n      }) && newCurrentVelocities.every(function (v, k) {\n        return _noVelocity2['default'](v, newCurrentStyles[k]);\n      })) {\n        this.stopAnimation();\n      }\n\n      return {\n        currentStyles: newCurrentStyles,\n        currentVelocities: newCurrentVelocities\n      };\n    },\n\n    stopAnimation: null,\n\n    // used in animationRender\n    hasUnmounted: false,\n\n    componentWillUnmount: function componentWillUnmount() {\n      this.stopAnimation();\n      this.hasUnmounted = true;\n    },\n\n    startAnimating: function startAnimating() {\n      this.stopAnimation = startAnimation(this.state, this.animationStep, this.animationRender);\n    },\n\n    animationRender: function animationRender(alpha, nextState, prevState) {\n      // See comment in Motion.\n      if (!this.hasUnmounted) {\n        var currentStyles = nextState.currentStyles.map(function (style, i) {\n          return _updateTree.interpolateValue(alpha, style, prevState.currentStyles[i]);\n        });\n        this.setState({\n          currentStyles: currentStyles,\n          currentVelocities: nextState.currentVelocities\n        });\n      }\n    },\n\n    render: function render() {\n      var strippedStyle = this.state.currentStyles.map(_stripStyle2['default']);\n      var renderedChildren = this.props.children(strippedStyle);\n      return renderedChildren && React.Children.only(renderedChildren);\n    }\n  });\n\n  var TransitionMotion = React.createClass({\n    displayName: 'TransitionMotion',\n\n    propTypes: {\n      defaultValue: function defaultValue(prop, propName) {\n        if (prop[propName]) {\n          return new Error('TransitionSpring\\'s `defaultValue` has been changed to ' + '`defaultStyles`. Its format received a few (easy to update!) ' + 'changes as well.');\n        }\n      },\n      endValue: function endValue(prop, propName) {\n        if (prop[propName]) {\n          return new Error('TransitionSpring\\'s `endValue` has been changed to `styles`. ' + 'Its format received a few (easy to update!) changes as well.');\n        }\n      },\n      defaultStyle: function defaultStyle(prop, propName) {\n        if (prop[propName]) {\n          return new Error('You forgot the \"s\" for `TransitionMotion`\\'s `defaultStyles`.');\n        }\n      },\n      style: function style(prop, propName) {\n        if (prop[propName]) {\n          return new Error('You forgot the \"s\" for `TransitionMotion`\\'s `styles`.');\n        }\n      },\n      // TOOD: warn against putting configs in here\n      defaultStyles: PropTypes.objectOf(PropTypes.any),\n      styles: PropTypes.oneOfType([PropTypes.func, PropTypes.objectOf(PropTypes.any.isRequired)]).isRequired,\n      willLeave: PropTypes.oneOfType([PropTypes.func]),\n      // TOOD: warn against putting configs in here\n      willEnter: PropTypes.oneOfType([PropTypes.func]),\n      children: PropTypes.func.isRequired\n    },\n\n    getDefaultProps: function getDefaultProps() {\n      return {\n        willEnter: function willEnter(key, value) {\n          return value;\n        },\n        willLeave: function willLeave() {\n          return null;\n        }\n      };\n    },\n\n    getInitialState: function getInitialState() {\n      var _props3 = this.props;\n      var styles = _props3.styles;\n      var defaultStyles = _props3.defaultStyles;\n\n      var currentStyles = undefined;\n      if (defaultStyles == null) {\n        if (typeof styles === 'function') {\n          currentStyles = styles();\n        } else {\n          currentStyles = styles;\n        }\n      } else {\n        currentStyles = defaultStyles;\n      }\n      return {\n        currentStyles: currentStyles,\n        currentVelocities: mapObject(function (s) {\n          return mapObject(_zero2['default'], s);\n        }, currentStyles)\n      };\n    },\n\n    componentDidMount: function componentDidMount() {\n      this.startAnimating();\n    },\n\n    componentWillReceiveProps: function componentWillReceiveProps() {\n      this.startAnimating();\n    },\n\n    animationStep: function animationStep(timestep, state) {\n      var currentStyles = state.currentStyles;\n      var currentVelocities = state.currentVelocities;\n      var _props4 = this.props;\n      var styles = _props4.styles;\n      var willEnter = _props4.willEnter;\n      var willLeave = _props4.willLeave;\n\n      if (typeof styles === 'function') {\n        styles = styles(currentStyles);\n      }\n\n      // TODO: huh?\n      var mergedStyles = styles; // set mergedStyles to styles as the default\n      var hasNewKey = false;\n\n      mergedStyles = _mergeDiff2['default'](currentStyles, styles,\n      // TODO: stop allocating like crazy in this whole code path\n      function (key) {\n        var res = willLeave(key, currentStyles[key], styles, currentStyles, currentVelocities);\n        if (res == null) {\n          // For legacy reason. We won't allow returning null soon\n          // TODO: remove, after next release\n          return null;\n        }\n\n        if (_noVelocity2['default'](currentVelocities[key], currentStyles[key]) && _hasReachedStyle2['default'](currentStyles[key], res)) {\n          return null;\n        }\n        return res;\n      });\n\n      Object.keys(mergedStyles).filter(function (key) {\n        return !currentStyles.hasOwnProperty(key);\n      }).forEach(function (key) {\n        var _extends2, _extends3;\n\n        hasNewKey = true;\n        var enterStyle = willEnter(key, mergedStyles[key], styles, currentStyles, currentVelocities);\n\n        // We can mutate this here because mergeDiff returns a new Obj\n        mergedStyles[key] = enterStyle;\n\n        currentStyles = _extends({}, currentStyles, (_extends2 = {}, _extends2[key] = enterStyle, _extends2));\n        currentVelocities = _extends({}, currentVelocities, (_extends3 = {}, _extends3[key] = mapObject(_zero2['default'], enterStyle), _extends3));\n      });\n\n      var newCurrentStyles = mapObject(function (mergedStyle, key) {\n        return _updateTree.updateCurrentStyle(timestep, currentStyles[key], currentVelocities[key], mergedStyle);\n      }, mergedStyles);\n      var newCurrentVelocities = mapObject(function (mergedStyle, key) {\n        return _updateTree.updateCurrentVelocity(timestep, currentStyles[key], currentVelocities[key], mergedStyle);\n      }, mergedStyles);\n\n      if (!hasNewKey && everyObj(function (v, k) {\n        return _noVelocity2['default'](v, currentStyles[k]);\n      }, currentVelocities) && everyObj(function (v, k) {\n        return _noVelocity2['default'](v, newCurrentStyles[k]);\n      }, newCurrentVelocities)) {\n        // check explanation in `Motion.animationRender`\n        this.stopAnimation(); // Nasty side effects....\n      }\n\n      return {\n        currentStyles: newCurrentStyles,\n        currentVelocities: newCurrentVelocities\n      };\n    },\n\n    stopAnimation: null,\n\n    // used in animationRender\n    hasUnmounted: false,\n\n    componentWillUnmount: function componentWillUnmount() {\n      this.stopAnimation();\n      this.hasUnmounted = true;\n    },\n\n    startAnimating: function startAnimating() {\n      this.stopAnimation = startAnimation(this.state, this.animationStep, this.animationRender);\n    },\n\n    animationRender: function animationRender(alpha, nextState, prevState) {\n      // See comment in Motion.\n      if (!this.hasUnmounted) {\n        var currentStyles = mapObject(function (style, key) {\n          return _updateTree.interpolateValue(alpha, style, prevState.currentStyles[key]);\n        }, nextState.currentStyles);\n        this.setState({\n          currentStyles: currentStyles,\n          currentVelocities: nextState.currentVelocities\n        });\n      }\n    },\n\n    render: function render() {\n      var strippedStyle = mapObject(_stripStyle2['default'], this.state.currentStyles);\n      var renderedChildren = this.props.children(strippedStyle);\n      return renderedChildren && React.Children.only(renderedChildren);\n    }\n  });\n\n  var _deprecatedSprings = _deprecatedSprings3['default'](React);\n\n  var Spring = _deprecatedSprings.Spring;\n  var TransitionSpring = _deprecatedSprings.TransitionSpring;\n\n  return { Spring: Spring, TransitionSpring: TransitionSpring, Motion: Motion, StaggeredMotion: StaggeredMotion, TransitionMotion: TransitionMotion };\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/components.js\n **/","\n// currentStyle keeps the info about whether a prop is configured as a spring\n// or if it's just a random prop that happens to be present on the style\n\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = noVelocity;\n\nfunction noVelocity(currentVelocity, currentStyle) {\n  for (var key in currentVelocity) {\n    if (!currentVelocity.hasOwnProperty(key)) {\n      continue;\n    }\n    if (currentStyle[key] != null && currentStyle[key].config && currentVelocity[key] !== 0) {\n      return false;\n    }\n  }\n  return true;\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/noVelocity.js\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = hasReachedStyle;\n\nfunction hasReachedStyle(currentStyle, style) {\n  for (var key in style) {\n    if (!style.hasOwnProperty(key)) {\n      continue;\n    }\n    var currentValue = currentStyle[key];\n    var destValue = style[key];\n    if (destValue == null || !destValue.config) {\n      // not a spring config\n      continue;\n    }\n    if (currentValue.config && currentValue.val !== destValue.val) {\n      return false;\n    }\n    if (!currentValue.config && currentValue !== destValue.val) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/hasReachedStyle.js\n **/","\n\n// this function is allocation-less thanks to babel, which transforms the tail\n// calls into loops\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeDiff;\nfunction mergeDiffArr(_x, _x2, _x3, _x4, _x5, _x6, _x7) {\n  var _again = true;\n\n  _function: while (_again) {\n    var arrA = _x,\n        arrB = _x2,\n        collB = _x3,\n        indexA = _x4,\n        indexB = _x5,\n        onRemove = _x6,\n        accum = _x7;\n    endA = endB = keyA = keyB = fill = fill = undefined;\n    _again = false;\n\n    var endA = indexA === arrA.length;\n    var endB = indexB === arrB.length;\n    var keyA = arrA[indexA];\n    var keyB = arrB[indexB];\n    if (endA && endB) {\n      // returning null here, otherwise lint complains that we're not expecting\n      // a return value in subsequent calls. We know what we're doing.\n      return null;\n    }\n\n    if (endA) {\n      accum[keyB] = collB[keyB];\n      _x = arrA;\n      _x2 = arrB;\n      _x3 = collB;\n      _x4 = indexA;\n      _x5 = indexB + 1;\n      _x6 = onRemove;\n      _x7 = accum;\n      _again = true;\n      continue _function;\n    }\n\n    if (endB) {\n      var fill = onRemove(keyA);\n      if (fill != null) {\n        accum[keyA] = fill;\n      }\n      _x = arrA;\n      _x2 = arrB;\n      _x3 = collB;\n      _x4 = indexA + 1;\n      _x5 = indexB;\n      _x6 = onRemove;\n      _x7 = accum;\n      _again = true;\n      continue _function;\n    }\n\n    if (keyA === keyB) {\n      accum[keyA] = collB[keyA];\n      _x = arrA;\n      _x2 = arrB;\n      _x3 = collB;\n      _x4 = indexA + 1;\n      _x5 = indexB + 1;\n      _x6 = onRemove;\n      _x7 = accum;\n      _again = true;\n      continue _function;\n    }\n\n    if (!collB.hasOwnProperty(keyA)) {\n      var fill = onRemove(keyA);\n      if (fill != null) {\n        accum[keyA] = fill;\n      }\n      _x = arrA;\n      _x2 = arrB;\n      _x3 = collB;\n      _x4 = indexA + 1;\n      _x5 = indexB;\n      _x6 = onRemove;\n      _x7 = accum;\n      _again = true;\n      continue _function;\n    }\n\n    _x = arrA;\n    _x2 = arrB;\n    _x3 = collB;\n    _x4 = indexA + 1;\n    _x5 = indexB;\n    _x6 = onRemove;\n    _x7 = accum;\n    _again = true;\n    continue _function;\n  }\n}\n\nfunction mergeDiff(a, b, onRemove) {\n  var ret = {};\n  // if anyone can make this work without allocating the arrays here, we'll\n  // give you a medal\n  mergeDiffArr(Object.keys(a), Object.keys(b), b, 0, 0, onRemove, ret);\n  return ret;\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/mergeDiff.js\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = configAnimation;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _performanceNow = require('performance-now');\n\nvar _performanceNow2 = _interopRequireDefault(_performanceNow);\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nfunction configAnimation() {\n  var config = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var _config$timeStep = config.timeStep;\n  var timeStep = _config$timeStep === undefined ? 1 / 60 * 1000 : _config$timeStep;\n  var _config$timeScale = config.timeScale;\n  var timeScale = _config$timeScale === undefined ? 1 : _config$timeScale;\n  var _config$maxSteps = config.maxSteps;\n  var maxSteps = _config$maxSteps === undefined ? 10 : _config$maxSteps;\n  var _config$raf = config.raf;\n  var raf = _config$raf === undefined ? _raf2['default'] : _config$raf;\n  var _config$now = config.now;\n  var now = _config$now === undefined ? _performanceNow2['default'] : _config$now;\n\n  var animRunning = [];\n  var running = false;\n  var prevTime = 0;\n  var accumulatedTime = 0;\n\n  function loop() {\n    var currentTime = now();\n    var frameTime = currentTime - prevTime; // delta\n\n    prevTime = currentTime;\n    accumulatedTime += frameTime * timeScale;\n\n    if (accumulatedTime > timeStep * maxSteps) {\n      accumulatedTime = 0;\n    }\n\n    var frameNumber = Math.ceil(accumulatedTime / timeStep);\n    for (var i = 0; i < animRunning.length; i++) {\n      var _animRunning$i = animRunning[i];\n      var active = _animRunning$i.active;\n      var animationStep = _animRunning$i.animationStep;\n      var prevPrevState = _animRunning$i.prevState;\n      var prevNextState = animRunning[i].nextState;\n\n      if (!active) {\n        continue;\n      }\n\n      // Seems like because the TS sets destVals as enterVals for the first\n      // tick, we might render that value twice. We render it once, currValue is\n      // enterVal and destVal is enterVal. The next tick is faster than 16ms,\n      // so accumulatedTime (which would be about -16ms from the previous tick)\n      // is negative (-16ms + any number less than 16ms < 0). So we just render\n      // part ways towards the nextState, but that's enterVal still. We render\n      // say 75% between currValue (=== enterVal) and destValue (=== enterVal).\n      // So we render the same value a second time.\n      // The solution below is to recalculate the destination state even when\n      // you're moving partially towards it.\n      if (accumulatedTime <= 0) {\n        animRunning[i].nextState = animationStep(timeStep / 1000, prevPrevState);\n      } else {\n        for (var j = 0; j < frameNumber; j++) {\n          animRunning[i].nextState = animationStep(timeStep / 1000, prevNextState);\n          var _ref = [prevNextState, animRunning[i].nextState];\n          animRunning[i].prevState = _ref[0];\n          prevNextState = _ref[1];\n        }\n      }\n    }\n\n    accumulatedTime = accumulatedTime - frameNumber * timeStep;\n\n    // Render and filter in one iteration.\n    var alpha = 1 + accumulatedTime / timeStep;\n    for (var i = 0; i < animRunning.length; i++) {\n      var _animRunning$i2 = animRunning[i];\n      var animationRender = _animRunning$i2.animationRender;\n      var nextState = _animRunning$i2.nextState;\n      var prevState = _animRunning$i2.prevState;\n\n      // Might mutate animRunning........\n      animationRender(alpha, nextState, prevState);\n    }\n\n    animRunning = animRunning.filter(function (_ref2) {\n      var active = _ref2.active;\n      return active;\n    });\n\n    if (animRunning.length === 0) {\n      running = false;\n    } else {\n      raf(loop);\n    }\n  }\n\n  function start() {\n    if (!running) {\n      running = true;\n      prevTime = now();\n      accumulatedTime = 0;\n      raf(loop);\n    }\n  }\n\n  return function startAnimation(state, animationStep, animationRender) {\n    for (var i = 0; i < animRunning.length; i++) {\n      var val = animRunning[i];\n      if (val.animationStep === animationStep) {\n        val.active = true;\n        val.prevState = state;\n        start();\n        return val.stop;\n      }\n    }\n\n    var newAnim = {\n      animationStep: animationStep,\n      animationRender: animationRender,\n      prevState: state,\n      nextState: state,\n      active: true\n    };\n\n    newAnim.stop = function () {\n      return newAnim.active = false;\n    };\n    animRunning.push(newAnim);\n\n    start();\n\n    return newAnim.stop;\n  };\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/animationLoop.js\n **/","// Generated by CoffeeScript 1.7.1\n(function() {\n  var getNanoSeconds, hrtime, loadTime;\n\n  if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n    module.exports = function() {\n      return performance.now();\n    };\n  } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n    module.exports = function() {\n      return (getNanoSeconds() - loadTime) / 1e6;\n    };\n    hrtime = process.hrtime;\n    getNanoSeconds = function() {\n      var hr;\n      hr = hrtime();\n      return hr[0] * 1e9 + hr[1];\n    };\n    loadTime = getNanoSeconds();\n  } else if (Date.now) {\n    module.exports = function() {\n      return Date.now() - loadTime;\n    };\n    loadTime = Date.now();\n  } else {\n    module.exports = function() {\n      return new Date().getTime() - loadTime;\n    };\n    loadTime = new Date().getTime();\n  }\n\n}).call(this);\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/~/performance-now/lib/performance-now.js\n **/","var now = require('performance-now')\n  , global = typeof window === 'undefined' ? {} : window\n  , vendors = ['moz', 'webkit']\n  , suffix = 'AnimationFrame'\n  , raf = global['request' + suffix]\n  , caf = global['cancel' + suffix] || global['cancelRequest' + suffix]\n\nfor(var i = 0; i < vendors.length && !raf; i++) {\n  raf = global[vendors[i] + 'Request' + suffix]\n  caf = global[vendors[i] + 'Cancel' + suffix]\n      || global[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n  var last = 0\n    , id = 0\n    , queue = []\n    , frameDuration = 1000 / 60\n\n  raf = function(callback) {\n    if(queue.length === 0) {\n      var _now = now()\n        , next = Math.max(0, frameDuration - (_now - last))\n      last = next + _now\n      setTimeout(function() {\n        var cp = queue.slice(0)\n        // Clear queue here to prevent\n        // callbacks from appending listeners\n        // to the current frame's queue\n        queue.length = 0\n        for(var i = 0; i < cp.length; i++) {\n          if(!cp[i].cancelled) {\n            try{\n              cp[i].callback(last)\n            } catch(e) {\n              setTimeout(function() { throw e }, 0)\n            }\n          }\n        }\n      }, Math.round(next))\n    }\n    queue.push({\n      handle: ++id,\n      callback: callback,\n      cancelled: false\n    })\n    return id\n  }\n\n  caf = function(handle) {\n    for(var i = 0; i < queue.length; i++) {\n      if(queue[i].handle === handle) {\n        queue[i].cancelled = true\n      }\n    }\n  }\n}\n\nmodule.exports = function(fn) {\n  // Wrap in a new function to prevent\n  // `cancel` potentially being assigned\n  // to the native rAF function\n  return raf.call(global, fn)\n}\nmodule.exports.cancel = function() {\n  caf.apply(global, arguments)\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/~/raf/index.js\n **/","\n// used by the tree-walking updates and springs. Avoids some allocations\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = zero;\n\nfunction zero() {\n  return 0;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/zero.js\n **/","\n\n// TODO: refactor common logic with updateCurrValue and updateCurrVelocity\n'use strict';\n\nexports.__esModule = true;\nexports.interpolateValue = interpolateValue;\nexports.updateCurrentStyle = updateCurrentStyle;\nexports.updateCurrentVelocity = updateCurrentVelocity;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _stepper = require('./stepper');\n\nvar _stepper2 = _interopRequireDefault(_stepper);\n\nvar _spring = require('./spring');\n\nvar _spring2 = _interopRequireDefault(_spring);\n\nfunction interpolateValue(alpha, nextStyle, prevStyle) {\n  // might be used by a TransitionMotion, where prevStyle might not exist anymore\n  if (!prevStyle) {\n    return nextStyle;\n  }\n\n  var ret = {};\n  for (var key in nextStyle) {\n    if (!nextStyle.hasOwnProperty(key)) {\n      continue;\n    }\n\n    if (nextStyle[key] == null || !nextStyle[key].config) {\n      ret[key] = nextStyle[key];\n      // not a spring config, not something we want to interpolate\n      continue;\n    }\n    var prevValue = prevStyle[key].config ? prevStyle[key].val : prevStyle[key];\n    ret[key] = _spring2['default'](nextStyle[key].val * alpha + prevValue * (1 - alpha), nextStyle[key].config);\n  }\n\n  return ret;\n}\n\n// TODO: refactor common logic with updateCurrentVelocity\n\nfunction updateCurrentStyle(frameRate, currentStyle, currentVelocity, style) {\n  var ret = {};\n  for (var key in style) {\n    if (!style.hasOwnProperty(key)) {\n      continue;\n    }\n    if (style[key] == null || !style[key].config) {\n      ret[key] = style[key];\n      // not a spring config, not something we want to interpolate\n      continue;\n    }\n    var _style$key$config = style[key].config;\n    var k = _style$key$config[0];\n    var b = _style$key$config[1];\n\n    var val = _stepper2['default'](frameRate,\n    // might have been a non-springed prop that just became one\n    currentStyle[key].val == null ? currentStyle[key] : currentStyle[key].val, currentVelocity[key], style[key].val, k, b)[0];\n    ret[key] = _spring2['default'](val, style[key].config);\n  }\n  return ret;\n}\n\nfunction updateCurrentVelocity(frameRate, currentStyle, currentVelocity, style) {\n  var ret = {};\n  for (var key in style) {\n    if (!style.hasOwnProperty(key)) {\n      continue;\n    }\n    if (style[key] == null || !style[key].config) {\n      // not a spring config, not something we want to interpolate\n      ret[key] = 0;\n      continue;\n    }\n    var _style$key$config2 = style[key].config;\n    var k = _style$key$config2[0];\n    var b = _style$key$config2[1];\n\n    var val = _stepper2['default'](frameRate,\n    // might have been a non-springed prop that just became one\n    currentStyle[key].val == null ? currentStyle[key] : currentStyle[key].val, currentVelocity[key], style[key].val, k, b)[1];\n    ret[key] = val;\n  }\n  return ret;\n}\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/updateTree.js\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stepper;\n\nvar errorMargin = 0.0001;\n\nfunction stepper(frameRate, x, v, destX, k, b) {\n  // Spring stiffness, in kg / s^2\n\n  // for animations, destX is really spring length (spring at rest). initial\n  // position is considered as the stretched/compressed position of a spring\n  var Fspring = -k * (x - destX);\n\n  // Damping, in kg / s\n  var Fdamper = -b * v;\n\n  // usually we put mass here, but for animation purposes, specifying mass is a\n  // bit redundant. you could simply adjust k and b accordingly\n  // let a = (Fspring + Fdamper) / mass;\n  var a = Fspring + Fdamper;\n\n  var newV = v + a * frameRate;\n  var newX = x + newV * frameRate;\n\n  if (Math.abs(newV - v) < errorMargin && Math.abs(newX - x) < errorMargin) {\n    return [destX, 0];\n  }\n\n  return [newX, newV];\n}\n\nmodule.exports = exports[\"default\"];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/stepper.js\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = spring;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _presets = require('./presets');\n\nvar _presets2 = _interopRequireDefault(_presets);\n\nfunction spring(val) {\n  var config = arguments.length <= 1 || arguments[1] === undefined ? _presets2['default'].noWobble : arguments[1];\n\n  return { val: val, config: config };\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/spring.js\n **/","\n// [stiffness, damping]\n\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = {\n  noWobble: [170, 26], // the default\n  gentle: [120, 14],\n  wobbly: [180, 12],\n  stiff: [210, 20]\n};\nmodule.exports = exports[\"default\"];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/presets.js\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = deprecatedSprings;\nvar hasWarnedForSpring = {};\nvar hasWarnedForTransitionSpring = {};\n\nfunction deprecatedSprings(React) {\n  var Spring = React.createClass({\n    displayName: 'Spring',\n\n    componentWillMount: function componentWillMount() {\n      if (process.env.NODE_ENV === 'development') {\n        var ownerName = this._reactInternalInstance._currentElement._owner && this._reactInternalInstance._currentElement._owner.getName();\n        if (!hasWarnedForSpring[ownerName]) {\n          hasWarnedForSpring[ownerName] = true;\n          console.error('Spring (used in %srender) has now been renamed to Motion. ' + 'Please see the release note for the upgrade path. Thank you!', ownerName ? ownerName + '\\'s ' : 'React.');\n        }\n      }\n    },\n\n    render: function render() {\n      return null;\n    }\n  });\n\n  var TransitionSpring = React.createClass({\n    displayName: 'TransitionSpring',\n\n    componentWillMount: function componentWillMount() {\n      if (process.env.NODE_ENV === 'development') {\n        var ownerName = this._reactInternalInstance._currentElement._owner && this._reactInternalInstance._currentElement._owner.getName();\n        if (!hasWarnedForTransitionSpring[ownerName]) {\n          hasWarnedForTransitionSpring[ownerName] = true;\n          console.error('TransitionSpring (used in %srender) has now been renamed to ' + 'TransitionMotion. Please see the release note for the upgrade ' + 'path. Thank you!', ownerName ? ownerName + '\\'s ' : 'React.');\n        }\n      }\n    },\n\n    render: function render() {\n      return null;\n    }\n  });\n\n  return { Spring: Spring, TransitionSpring: TransitionSpring };\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/deprecatedSprings.js\n **/","\n// turn {x: {val: 1, config: [1, 2]}, y: 2} generated by\n// `{x: spring(1, [1, 2]), y: 2}` into {x: 1, y: 2}\n\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = stripStyle;\n\nfunction stripStyle(style) {\n  var ret = {};\n  for (var key in style) {\n    if (!style.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = style[key] == null || style[key].val == null ? style[key] : style[key].val;\n  }\n  return ret;\n}\n\nmodule.exports = exports['default'];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/stripStyle.js\n **/","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = reorderKeys;\n\nfunction reorderKeys(obj, f) {\n  var newKeys = f(Object.keys(obj));\n  var ret = {};\n  for (var i = 0; i < newKeys.length; i++) {\n    var key = newKeys[i];\n    ret[key] = obj[key];\n  }\n\n  return ret;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n/** WEBPACK FOOTER **\n ** ./~/react-motion/lib/reorderKeys.js\n **/"],"sourceRoot":""}