From 51bdbc6f57dfe5a6b59be26d95542edcaade04e6 Mon Sep 17 00:00:00 2001 From: Borys_Levytskyi Date: Tue, 12 Jan 2021 16:51:45 +0200 Subject: [PATCH] Release typescript version --- .gitignore | 3 +- analytics.js | 7 +- asset-manifest.json | 15 ++ bundle.js | 21 --- bundle.js.map | 1 - css/styles.css | 139 -------------- img/feedback-dark.png | Bin 1108 -> 0 bytes img/feedback-light.png | Bin 1108 -> 0 bytes img/github-dark.png | Bin 470 -> 0 bytes img/github-light.png | Bin 605 -> 0 bytes img/social-avatar.png | Bin 6513 -> 0 bytes img/twitter-dark.png | Bin 1108 -> 0 bytes img/twitter-light.png | Bin 1108 -> 0 bytes index.html | 40 +--- manifest.json | 15 ++ old/css/styles.css | 1 - old/favicon.ico | Bin 1150 -> 0 bytes old/img/feedback-dark.png | Bin 1108 -> 0 bytes old/img/feedback-light.png | Bin 1108 -> 0 bytes old/img/github-dark.png | Bin 470 -> 0 bytes old/img/github-light.png | Bin 605 -> 0 bytes old/img/social-avatar.png | Bin 5424 -> 0 bytes old/img/twitter-dark.png | Bin 1108 -> 0 bytes old/img/twitter-light.png | Bin 1108 -> 0 bytes old/index.html | 175 ------------------ old/js/analytics.js | 14 -- old/js/bitwisecmd.js | 2 - ...nifest.306a719117545e31b16fdffd84fad1d1.js | 22 +++ react/analytics.js | 15 -- react/bundle.js | 21 --- react/bundle.js.map | 1 - react/css/styles.css | 110 ----------- react/img/feedback-dark.png | Bin 1108 -> 0 bytes react/img/feedback-light.png | Bin 1108 -> 0 bytes react/img/github-dark.png | Bin 470 -> 0 bytes react/img/github-light.png | Bin 605 -> 0 bytes react/img/social-avatar.png | Bin 6513 -> 0 bytes react/img/twitter-dark.png | Bin 1108 -> 0 bytes react/img/twitter-light.png | Bin 1108 -> 0 bytes react/index.html | 35 ---- react/npm-debug.log | 23 --- service-worker.js | 39 ++++ static/css/main.c7a8b155.chunk.css | 2 + static/css/main.c7a8b155.chunk.css.map | 1 + static/js/2.5133f82a.chunk.js | 2 + static/js/2.5133f82a.chunk.js.map | 1 + static/js/main.ff2608fb.chunk.js | 2 + static/js/main.ff2608fb.chunk.js.map | 1 + static/js/runtime~main.a8a9905a.js | 2 + static/js/runtime~main.a8a9905a.js.map | 1 + 50 files changed, 110 insertions(+), 601 deletions(-) create mode 100644 asset-manifest.json delete mode 100644 bundle.js delete mode 100644 bundle.js.map delete mode 100644 css/styles.css delete mode 100644 img/feedback-dark.png delete mode 100644 img/feedback-light.png delete mode 100644 img/github-dark.png delete mode 100644 img/github-light.png delete mode 100644 img/social-avatar.png delete mode 100644 img/twitter-dark.png delete mode 100644 img/twitter-light.png create mode 100644 manifest.json delete mode 100644 old/css/styles.css delete mode 100644 old/favicon.ico delete mode 100644 old/img/feedback-dark.png delete mode 100644 old/img/feedback-light.png delete mode 100644 old/img/github-dark.png delete mode 100644 old/img/github-light.png delete mode 100644 old/img/social-avatar.png delete mode 100644 old/img/twitter-dark.png delete mode 100644 old/img/twitter-light.png delete mode 100644 old/index.html delete mode 100644 old/js/analytics.js delete mode 100644 old/js/bitwisecmd.js create mode 100644 precache-manifest.306a719117545e31b16fdffd84fad1d1.js delete mode 100644 react/analytics.js delete mode 100644 react/bundle.js delete mode 100644 react/bundle.js.map delete mode 100644 react/css/styles.css delete mode 100644 react/img/feedback-dark.png delete mode 100644 react/img/feedback-light.png delete mode 100644 react/img/github-dark.png delete mode 100644 react/img/github-light.png delete mode 100644 react/img/social-avatar.png delete mode 100644 react/img/twitter-dark.png delete mode 100644 react/img/twitter-light.png delete mode 100644 react/index.html delete mode 100644 react/npm-debug.log create mode 100644 service-worker.js create mode 100644 static/css/main.c7a8b155.chunk.css create mode 100644 static/css/main.c7a8b155.chunk.css.map create mode 100644 static/js/2.5133f82a.chunk.js create mode 100644 static/js/2.5133f82a.chunk.js.map create mode 100644 static/js/main.ff2608fb.chunk.js create mode 100644 static/js/main.ff2608fb.chunk.js.map create mode 100644 static/js/runtime~main.a8a9905a.js create mode 100644 static/js/runtime~main.a8a9905a.js.map diff --git a/.gitignore b/.gitignore index 35eb62c..e4f24db 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ BitwiseCmdPages/ .DS_Store -node_modules/ \ No newline at end of file +node_modules/ +build/ \ No newline at end of file diff --git a/analytics.js b/analytics.js index d5f56b2..2ec8cfe 100644 --- a/analytics.js +++ b/analytics.js @@ -1,14 +1,15 @@ (function() { - var disableAnalytics = localStorage.getItem('trackAnalytics') === 'false' || window.location.hash.indexOf('-notrack') > -1 + var key = 'TrackAnalytics'; + var disableAnalytics = localStorage.getItem(key) === 'false' || window.location.hash.indexOf('-notrack') > -1 if(disableAnalytics) { - localStorage.setItem("trackAnalytics", "false"); + localStorage.setItem(key, "false"); console.log('Analytics tracking disabled.'); return; } - if(window.location.host != 'bitwisecmd.com') { + if(window.location.host !== 'bitwisecmd.com') { console.log("Analytics not tracked. Non-prod host") return; } diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..abb790f --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,15 @@ +{ + "files": { + "main.css": "/static/css/main.c7a8b155.chunk.css", + "main.js": "/static/js/main.ff2608fb.chunk.js", + "main.js.map": "/static/js/main.ff2608fb.chunk.js.map", + "runtime~main.js": "/static/js/runtime~main.a8a9905a.js", + "runtime~main.js.map": "/static/js/runtime~main.a8a9905a.js.map", + "static/js/2.5133f82a.chunk.js": "/static/js/2.5133f82a.chunk.js", + "static/js/2.5133f82a.chunk.js.map": "/static/js/2.5133f82a.chunk.js.map", + "index.html": "/index.html", + "precache-manifest.306a719117545e31b16fdffd84fad1d1.js": "/precache-manifest.306a719117545e31b16fdffd84fad1d1.js", + "service-worker.js": "/service-worker.js", + "static/css/main.c7a8b155.chunk.css.map": "/static/css/main.c7a8b155.chunk.css.map" + } +} \ No newline at end of file diff --git a/bundle.js b/bundle.js deleted file mode 100644 index cd2d27f..0000000 --- a/bundle.js +++ /dev/null @@ -1,21 +0,0 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="http://localhost:8080/",t(t.s=204)}([function(e,t,n){"use strict";function r(e,t,n,r,i,a,u,s){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,a,u,s],p=0;l=new Error(t.replace(/%s/g,function(){return c[p++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";var r=n(6),o=r;e.exports=o},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r1){for(var h=Array(d),m=0;m1){for(var v=Array(y),g=0;g]/;e.exports=o},function(e,t,n){"use strict";var r,o=n(5),i=n(34),a=/^[ \r\n\t\f]/,u=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,s=n(42),l=s(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=t.parser=t.MultipleOperandsExpression=t.ListOfNumbersExpression=t.ExpressionOperand=t.ExpressionError=t.Operand=void 0;var i=function(){function e(e,t){for(var n=0;n=0;n--)if(!0===this.factories[n].canCreate(t))return!0;return!1},parse:function(e){for(var t,n=e.replace(/^\s+|\s+$/,""),r=0,o=this.factories.length;r0&&n.push(p.default.parse(e.trim()))}),new d.default(r,n)}}),m.addFactory({fullRegex:/^((<<|>>|>>>|\||\&|\^)?(~?-?([b,x,a-f,0-9]+)))+$/,regex:/(<<|>>|>>>|\||\&|\^)?(~?-?(?:[b,x,a-f,0-9]+))/g,canCreate:function(e){return this.fullRegex.lastIndex=0,this.fullRegex.test(this.normalizeString(e))},create:function(e){for(var t,n=[],r=this.normalizeString(e);null!=(t=this.regex.exec(r));)n.push(this.parseMatch(t));return new h.default(r,n)},parseMatch:function(e){var t=e[0],n=e[1],r=e[2],o=null;return o="0"==r.indexOf("~")?new f.default(t,p.default.parse(r.substring(1)),"~"):p.default.parse(r),null==n?o:new f.default(t,o,n)},normalizeString:function(e){return e.replace(/\s+/g,"")}});t.parser=m,t.Parser=function(){function e(t,n){o(this,e),this.input=t,this.pos=n||0,this.buffer=[]}return i(e,[{key:"parse",value:function(){for(console.log(this.input.length);this.pos-1||a("96",e),!l.plugins[n]){t.extractEvents||a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)||a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&a("99",n),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];i(u,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]&&a("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(2),u=(n(0),null),s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){u&&a("101"),u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]&&a("102",n),s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(o,n,e):m.invokeGuardedCallback(o,n,e),e.currentTarget=null}function u(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);if(!n){return null}return n}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=(n(11),n(23)),l=(n(7),n(9)),c=(n(0),n(1),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var o=i(e);if(!o)return null;o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],r(o)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&u("122",t,o(e))}});e.exports=c},function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};e.exports=r},function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}e.exports=r},function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=o},function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=r},function(e,t,n){"use strict";/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=n(5);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var i=void 0===e?"undefined":o(e),a=void 0===t?"undefined":o(t);return"string"===i||"number"===i?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,n){"use strict";var r=(n(3),n(6)),o=(n(1),r);e.exports=o},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=u,this.updater=n||a}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(19),a=n(50),u=(n(80),n(20));n(0),n(1);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!==(void 0===e?"undefined":o(e))&&"function"!=typeof e&&null!=e&&i("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};e.exports=r},function(e,t,n){"use strict";var r=(n(1),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}});e.exports=r},function(e,t,n){"use strict";var r,o,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(i,a){r=a,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}(0,function(){function e(e){return("undefined"==typeof console?"undefined":i(console))!==s&&(void 0!==console[e]?t(console,e):void 0!==console.log?t(console,"log"):u)}function t(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function n(e,t,n){return function(){("undefined"==typeof console?"undefined":i(console))!==s&&(r.call(this,t,n),this[e].apply(this,arguments))}}function r(e,t){for(var n=0;n=0&&t<=p.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(c=t,!1!==n&&a(t),r.call(p,t,e),("undefined"==typeof console?"undefined":i(console))===s&&t>2' or 'help' "})}},{key:"onKeyUp",value:function(e){var t=e.target;if(13==e.keyCode&&0!=t.value.trim().length){var n=t.value;this.history.unshift(n),this.historyIndex=-1,t.value="",p.default.execute(n)}}},{key:"onKeyDown",value:function(e){if(38==e.keyCode){var t=this.historyIndex+1;return this.history.length>t&&(e.target.value=this.history[t],this.historyIndex=t),void e.preventDefault()}40==e.keyCode&&(this.historyIndex>0&&(e.target.value=this.history[--this.historyIndex]),e.preventDefault())}}]),t}(l.default.Component);t.default=f},function(e,t,n){"use strict";var r=n(6),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";function r(e){try{e.focus()}catch(e){}}e.exports=r},function(e,t,n){"use strict";function r(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=r},function(e,t,n){"use strict";function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function a(e){if(f===clearTimeout)return clearTimeout(e);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function u(){y&&h&&(y=!1,h.length?m=h.concat(m):v=-1,m.length&&s())}function s(){if(!y){var e=i(u);y=!0;for(var t=m.length;t;){for(h=m,m=[];++v1)for(var n=1;n.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,u=y.createElement(U,{child:t});if(e){var s=C.get(e);a=s._processChildContext(s._context)}else a=S;var c=f(n);if(c){var p=c._currentElement,h=p.props.child;if(N(h,t)){var m=c._renderedComponent.getPublicInstance(),v=r&&function(){r.call(m)};return B._updateRootComponent(c,u,a,n,v),m}B.unmountComponentAtNode(n)}var g=o(n),b=g&&!!i(g),_=l(n),E=b&&!c&&!_,w=B._renderNewRootComponent(u,n,E,a)._renderedComponent.getPublicInstance();return r&&r.call(w),w},render:function(e,t,n){return B._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)||d("40");var t=f(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(I);return!1}return delete j[t._instance.rootID],k.batchedUpdates(s,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)||d("41"),i){var u=o(t);if(w.canReuseMarkup(e,u))return void g.precacheNode(n,u);var s=u.getAttribute(w.CHECKSUM_ATTR_NAME);u.removeAttribute(w.CHECKSUM_ATTR_NAME);var l=u.outerHTML;u.setAttribute(w.CHECKSUM_ATTR_NAME,s);var p=e,f=r(p,l),m=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===A&&d("42",m)}if(t.nodeType===A&&d("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else T(t,e),g.precacheNode(n,t.firstChild)}};e.exports=B},function(e,t,n){"use strict";var r=n(2),o=n(17),i=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t&&o("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=n(2);n(0);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=r},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=n(68);e.exports=r},function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=n(5),i=null;e.exports=r},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||!1===e)n=c.create(i);else if("object"===(void 0===e?"undefined":a(e))){var s=e,l=s.type;if("function"!=typeof l&&"string"!=typeof l){var d="";d+=r(s._owner),u("130",null==l?l:void 0===l?"undefined":a(l),d)}"string"==typeof s.type?n=p.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(s)}else"string"==typeof e||"number"==typeof e?n=p.createInstanceForText(e):u("131",void 0===e?"undefined":a(e));return n._mountIndex=0,n._mountImage=null,n}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=n(3),l=n(124),c=n(63),p=n(65),f=(n(185),n(0),n(1),function(e){this.construct(e)});s(f.prototype,l,{_instantiateReactComponent:i}),e.exports=i},function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=r},function(e,t,n){"use strict";var r=n(5),o=n(29),i=n(30),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){if(3===e.nodeType)return void(e.nodeValue=t);i(e,o(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"===(void 0===e?"undefined":a(e))&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var d=void 0===e?"undefined":a(e);if("undefined"!==d&&"boolean"!==d||(e=null),null===e||"string"===d||"number"===d||"object"===d&&e.$$typeof===s)return n(i,e,""===t?p+r(e,0):t),1;var h,m,y=0,v=""===t?p:t+f;if(Array.isArray(e))for(var g=0;g=0?"0x"+n:"-0x"+n;case"bin":return(e>>>0).toString(2);case"dec":return e.toString(10);default:throw new Error("Unexpected kind: "+t)}}},{key:"toHexString",value:function(e){return 0==e.indexOf("-")?"-0x"+e.substr(1):"0x"+e}}]),e}();t.default=p},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e,n){r(this,t);var i=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.error=n,i}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e,n){r(this,t);var i=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.expression=n,i}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e,n){r(this,t);var i=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.value=n,i}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.message="Sorry, i don''t know what "+e+" is :(",n}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(13),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";e.exports=n(125)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;nthis.persistedVersion}return o(e,[{key:"addCommandResult",value:function(e){this.commandResults.unshift(e),this.triggerChanged()}},{key:"clearCommmandResults",value:function(){this.commandResults=[],this.triggerChanged()}},{key:"toggleEmphasizeBytes",value:function(){this.emphasizeBytes=!this.emphasizeBytes,this.triggerChanged()}},{key:"onChange",value:function(e){this.handlers.push(e)}},{key:"triggerChanged",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,o=this.handlers[Symbol.iterator]();!(e=(r=o.next()).done);e=!0){(0,r.value)()}}catch(e){t=!0,n=e}finally{try{!e&&o.return&&o.return()}finally{if(t)throw n}}}},{key:"setUiTheme",value:function(e){this.uiTheme=e,this.triggerChanged()}},{key:"getPersistData",value:function(){return{emphasizeBytes:this.emphasizeBytes,uiTheme:this.uiTheme,version:this.version}}}]),e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={getPersistedData:function(){var e=window.localStorage.getItem("AppState");if(!e)return{};try{return JSON.parse(e)}catch(t){return console.error("Failed to parse AppState json. Json Value: \n"+e,t),{}}},watch:function(e){var t=this;e.onChange(function(){return t.persistData(e)})},persistData:function(e){localStorage.setItem("AppState",JSON.stringify(e.getPersistData()))}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(87),i=r(o),a=n(84),u=r(a),s=n(89),l=r(s),c=n(86),p=r(c),f=n(85),d=r(f),h=n(90),m=r(h),y=n(88),v=r(y),g=n(31),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(g),_=n(190),E=r(_);console.log(E.default);t.default={initialize:function(e,t){e.commands({help:function(e){t.addCommandResult(new i.default(e.input))},clear:function(){t.clearCommmandResults()},em:function(){t.toggleEmphasizeBytes()},dark:function(){t.setUiTheme("dark")},light:function(){t.setUiTheme("light")},midnight:function(){t.setUiTheme("midnight")},about:function(e){t.addCommandResult(new u.default(e.input))},whatsnew:function(e){t.addCommandResult(new m.default(e.input))},guid:function(e){t.addCommandResult(new v.default(e.input,(0,E.default)()))},"-notrack":function(){},"-debug":function(){console.log("Debug mode on"),e.debugMode=!0}}),e.command({canHandle:function(e){return b.parser.canParse(e)},handle:function(e){var n=b.parser.parse(e.input);t.addCommandResult(new p.default(e.input,n))}}),e.command({canHandle:function(){return!0},handle:function(e){return t.addCommandResult(new l.default(e.input))}}),e.onError(function(e,n){return t.addCommandResult(new d.default(e,n))})}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0&&t.push(e)}):t.push(e),t}Object.defineProperty(t,"__esModule",{value:!0}),t.default={encodeHash:function(e){return encodeURI(e.trim().replace(/\s/g,","))},decodeHash:function(e){return decodeURI(e).replace(/^\#/,"").replace(/,/g," ")},getArgs:function(e){var t=this.decodeHash(e),n={commands:[]};return r(t).forEach(function(e){n.commands.push(e)}),Object.freeze(n)}}},function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e.replace(i,"ms-"))}var o=n(97),i=/^-ms-/;e.exports=r},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(107);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.length;if((Array.isArray(e)||"object"!==(void 0===e?"undefined":a(e))&&"function"!=typeof e)&&u(!1),"number"!=typeof t&&u(!1),0===t||t-1 in e||u(!1),"function"==typeof e.callee&&u(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r":"<"+e+">",u[e]=!a.firstChild),u[e]?f[e]:null}var o=n(5),i=n(0),a=o.canUseDOM?document.createElement("div"):null,u={},s=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){f[e]=p,u[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(104),i=/^ms-/;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"===(void 0===e?"undefined":o(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(106);e.exports=r},function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o){}"function"==typeof Symbol&&Symbol.iterator;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(6),i=n(0),a=n(1),u=n(111),s=n(109);e.exports=function(e,t){function n(e){var t=e&&(O&&e[O]||e[k]);if("function"==typeof t)return t}function l(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function p(e){function n(n,r,o,a,s,l,p){if(a=a||S,l=l||o,p!==u)if(t)i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else;return null==r[o]?n?new c(null===r[o]?"The "+s+" `"+l+"` is marked as required in `"+a+"`, but its value is `null`.":"The "+s+" `"+l+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,o,a,s,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function f(e){function t(t,n,r,o,i,a){var u=t[n];if(E(u)!==e)return new c("Invalid "+o+" `"+i+"` of type `"+C(u)+"` supplied to `"+r+"`, expected `"+e+"`.");return null}return p(t)}function d(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a)){return new c("Invalid "+o+" `"+i+"` of type `"+E(a)+"` supplied to `"+r+"`, expected an array.")}for(var s=0;s8&&E<=11),x=32,O=String.fromCharCode(x),k={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},S=!1,P=null,T={eventTypes:k,extractEvents:function(e,t,n,r){return[s(e,t,n,r),p(e,t,n,r)]}};e.exports=T},function(e,t,n){"use strict";var r=n(58),o=n(5),i=(n(7),n(98),n(166)),a=n(105),u=n(108),s=(n(1),u(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=s(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var u=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=c),u)o[a]=u;else{var s=l&&r.shorthandPropertyExpansions[a];if(s)for(var p in s)o[p]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(P.change,N,e,O(e));_.accumulateTwoPhaseDispatches(t),w.batchedUpdates(i,t)}function i(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){T=e,N=t,T.attachEvent("onchange",o)}function u(){T&&(T.detachEvent("onchange",o),T=null,N=null)}function s(e,t){if("topChange"===e)return t}function l(e,t,n){"topFocus"===e?(u(),a(t,n)):"topBlur"===e&&u()}function c(e,t){T=e,N=t,M=e.value,I=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",D),T.attachEvent?T.attachEvent("onpropertychange",f):T.addEventListener("propertychange",f,!1)}function p(){T&&(delete T.value,T.detachEvent?T.detachEvent("onpropertychange",f):T.removeEventListener("propertychange",f,!1),T=null,N=null,M=null,I=null)}function f(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==M&&(M=t,o(e))}}function d(e,t){if("topInput"===e)return t}function h(e,t,n){"topFocus"===e?(p(),c(t,n)):"topBlur"===e&&p()}function m(e,t){if(("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)&&T&&T.value!==M)return M=T.value,N}function y(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function v(e,t){if("topClick"===e)return t}function g(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var b=n(21),_=n(22),E=n(5),C=n(4),w=n(9),x=n(10),O=n(45),k=n(46),S=n(75),P={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},T=null,N=null,M=null,I=null,R=!1;E.canUseDOM&&(R=k("change")&&(!document.documentMode||document.documentMode>8));var A=!1;E.canUseDOM&&(A=k("input")&&(!document.documentMode||document.documentMode>11));var D={get:function(){return I.get.call(this)},set:function(e){M=""+e,I.set.call(this,e)}},j={eventTypes:P,extractEvents:function(e,t,n,o){var i,a,u=t?C.getNodeFromInstance(t):window;if(r(u)?R?i=s:a=l:S(u)?A?i=d:(i=m,a=h):y(u)&&(i=v),i){var c=i(e,t);if(c){var p=x.getPooled(P.change,c,n,o);return p.type="change",_.accumulateTwoPhaseDispatches(p),p}}a&&a(e,u,t),"topBlur"===e&&g(t,u)}};e.exports=j},function(e,t,n){"use strict";var r=n(2),o=n(14),i=n(5),a=n(101),u=n(6),s=(n(0),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,u)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=s},function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=r},function(e,t,n){"use strict";var r=n(22),o=n(4),i=n(27),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},u={eventTypes:a,extractEvents:function(e,t,n,u){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var s;if(u.window===u)s=u;else{var l=u.ownerDocument;s=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else c=null,p=t;if(c===p)return null;var d=null==c?s:o.getNodeFromInstance(c),h=null==p?s:o.getNodeFromInstance(p),m=i.getPooled(a.mouseLeave,c,n,u);m.type="mouseleave",m.target=d,m.relatedTarget=h;var y=i.getPooled(a.mouseEnter,p,n,u);return y.type="mouseenter",y.target=h,y.relatedTarget=d,r.accumulateEnterLeaveDispatches(m,y,c,p),[m,y]}};e.exports=u},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(3),i=n(12),a=n(73);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(15),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,s=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:s,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";(function(t){function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(16),i=n(74),a=(n(37),n(47)),u=n(77);n(1);void 0!==t&&t.env;var s={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return u(e,r,i),i},updateChildren:function(e,t,n,r,u,s,l,c,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,m=t[f];if(null!=d&&a(h,m))o.receiveComponent(d,m,u,c),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var y=i(m,!0);t[f]=y;var v=o.mountComponent(y,u,s,l,c,p);n.push(v)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};e.exports=s}).call(t,n(56))},function(e,t,n){"use strict";var r=n(33),o=n(130),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function i(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=n(3),l=n(17),c=n(39),p=n(11),f=n(40),d=n(23),h=(n(7),n(68)),m=n(16),y=n(20),v=(n(0),n(32)),g=n(47),b=(n(1),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return t};var _=1,E={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,s){this._context=s,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var c,p=this._currentElement.props,f=this._processContext(s),h=this._currentElement.type,m=e.getUpdateQueue(),v=o(h),g=this._constructComponent(v,p,f,m);v||null!=g&&null!=g.render?i(h)?this._compositeType=b.PureClass:this._compositeType=b.ImpureClass:(c=g,null===g||!1===g||l.isValidElement(g)||u("105",h.displayName||h.name||"Component"),g=new r(h),this._compositeType=b.StatelessFunctional);g.props=p,g.context=f,g.refs=y,g.updater=m,this._instance=g,d.set(g,this);var E=g.state;void 0===E&&(g.state=E=null),("object"!==(void 0===E?"undefined":a(E))||Array.isArray(E))&&u("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var C;return C=g.unstable_handleError?this.performInitialMountWithErrorHandling(c,t,n,e,s):this.performInitialMount(c,t,n,e,s),g.componentDidMount&&e.getReactMountReady().enqueue(g.componentDidMount,g),C},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var u=h.getType(e);this._renderedNodeType=u;var s=this._instantiateReactComponent(e,u!==h.EMPTY);this._renderedComponent=s;var l=m.mountComponent(s,r,t,n,this._processChildContext(o),a);return l},getHostNode:function(){return m.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";f.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(m.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,d.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return y;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!==a(n.childContextTypes)&&u("107",this.getName()||"ReactCompositeComponent");for(var o in t)o in n.childContextTypes||u("108",this.getName()||"ReactCompositeComponent",o);return s({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?m.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i&&u("136",this.getName()||"ReactCompositeComponent");var a,s=!1;this._context===o?a=i.context:(a=this._processContext(o),s=!0);var l=t.props,c=n.props;t!==n&&(s=!0),s&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,a);var p=this._processPendingState(c,a),f=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?f=i.shouldComponentUpdate(c,p,a):this._compositeType===b.PureClass&&(f=!v(l,c)||!v(i.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,a,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function h(e){var t=e.type;f(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y=n(2),v=n(3),g=n(113),b=n(115),_=n(14),E=n(34),C=n(15),w=n(60),x=n(21),O=n(35),k=n(26),S=n(61),P=n(4),T=n(131),N=n(132),M=n(62),I=n(135),R=(n(7),n(144)),A=n(149),D=(n(6),n(29)),j=(n(0),n(46),n(32),n(48),n(1),S),L=x.deleteListener,U=P.getNodeFromInstance,B=k.listenTo,F=O.registrationNameModules,V={string:!0,number:!0},H="__html",W={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},z=11,q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},K={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},G=v({menuitem:!0},K),X=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,$={},Q={}.hasOwnProperty,J=1;h.displayName="ReactDOMComponent",h.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=J++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(c,this);break;case"input":T.mountWrapper(this,i,t),i=T.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"option":N.mountWrapper(this,i,t),i=N.getHostProps(this,i);break;case"select":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"textarea":I.mountWrapper(this,i,t),i=I.getHostProps(this,i),e.getReactMountReady().enqueue(c,this)}o(this,i);var a,p;null!=t?(a=t._namespaceURI,p=t._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===E.svg&&"foreignobject"===p)&&(a=E.html),a===E.html&&("svg"===this._tag?a=E.svg:"math"===this._tag&&(a=E.mathml)),this._namespaceURI=a;var f;if(e.useCreateElement){var d,h=n._ownerDocument;if(a===E.html)if("script"===this._tag){var m=h.createElement("div"),y=this._currentElement.type;m.innerHTML="<"+y+">",d=m.removeChild(m.firstChild)}else d=i.is?h.createElement(this._currentElement.type,i.is):h.createElement(this._currentElement.type);else d=h.createElementNS(a,this._currentElement.type);P.precacheNode(this,d),this._flags|=j.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(d),this._updateDOMProperties(null,i,e);var v=_(d);this._createInitialChildren(e,i,r,v),f=v}else{var b=this._createOpenTagMarkupAndPutListeners(e,i),C=this._createContentMarkup(e,i,r);f=!C&&K[this._tag]?b+"/>":b+">"+C+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":case"button":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return f},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(F.hasOwnProperty(r))o&&i(this,r,o,e);else{"style"===r&&(o&&(o=this._previousStyleCopy=v({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&d(this._tag,t)?W.hasOwnProperty(r)||(a=w.createMarkupForCustomAttribute(r,o)):a=w.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=V[m(t.children)]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=D(i);else if(null!=a){var u=this.mountChildren(a,e,n);r=u.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&_.queueHTML(r,o.__html);else{var i=V[m(t.children)]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&_.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),s=0;st.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=l(e,o),s=l(e,i);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=n(5),l=n(171),c=n(73),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:i,setOffsets:p?a:u};e.exports=f},function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(33),a=n(14),u=n(4),s=n(29),l=(n(0),n(48),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),f=a(l.createDocumentFragment());return a.queueChild(f,a(c)),this._stringText&&a.queueChild(f,a(l.createTextNode(this._stringText))),a.queueChild(f,a(p)),u.precacheNode(this,c),this._closingComment=p,f}var d=s(this._stringText);return e.renderToStaticMarkup?d:"\x3c!--"+i+"--\x3e"+d+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=u.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n&&r("67",this._domID),8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=u.executeOnChange(t,e);return l.asap(r,this),n}var i=n(2),a=n(3),u=n(38),s=n(4),l=n(9),c=(n(0),n(1),{getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&i("91"),a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=u.getValue(t),r=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&i("92"),Array.isArray(s)&&(s.length<=1||i("93"),s=s[0]),a=""+s),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e),r=u.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=s.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e||s("33"),"_hostNode"in t||s("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e||s("35"),"_hostNode"in t||s("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e||s("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(s[l],"captured",i)}var s=n(2);n(0);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:u}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(3),i=n(9),a=n(28),u=n(6),s={initialize:u,close:function(){f.isBatchingUpdates=!1}},l={initialize:u,close:i.flushBatchedUpdates.bind(i)},c=[l,s];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};e.exports=f},function(e,t,n){"use strict";function r(){w||(w=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginUtils.injectComponentTree(f),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:C,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:E,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(p),g.HostComponent.injectTextComponentClass(m),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(y),g.Component.injectEnvironment(c))}var o=n(112),i=n(114),a=n(116),u=n(118),s=n(119),l=n(121),c=n(123),p=n(126),f=n(4),d=n(128),h=n(136),m=n(134),y=n(137),v=n(141),g=n(142),b=n(147),_=n(152),E=n(153),C=n(154),w=!1;e.exports={inject:r}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(21),i={handleTopLevel:function(e,t,n,i){r(o.extractEvents(e,t,n,i))}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do{e.ancestors.push(o),o=o&&r(o)}while(o);for(var i=0;i/," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(i.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=i},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=n(2),p=n(39),f=(n(23),n(7),n(11),n(16)),d=n(122),h=(n(6),n(168)),m=(n(0),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,u=0;return a=h(t,u),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,u),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=0,l=f.mountComponent(u,t,this,this._hostContainerInfo,n,s);u._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[u(e)])},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[a(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var u,c=null,p=0,d=0,h=0,m=null;for(u in a)if(a.hasOwnProperty(u)){var y=r&&r[u],v=a[u];y===v?(c=s(c,this.moveChild(y,m,p,d)),d=Math.max(y._mountIndex,d),y._mountIndex=p):(y&&(d=Math.max(y._mountIndex,d)),c=s(c,this._mountChildAtIndex(v,i[h],m,p,t,n)),h++),p++,m=f.getHostNode(v)}for(u in o)o.hasOwnProperty(u)&&(c=s(c,this._unmountChild(r[u],o[u])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(u[e])return u[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return u[e]=t[n];return""}var i=n(5),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},u={},s={};i.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(29);e.exports=r},function(e,t,n){"use strict";var r=n(67);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}var i={escape:r,unescape:o};e.exports=i},function(e,t,n){"use strict";var r=n(19),o=(n(0),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},u=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},s=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length>>((3&t)<<3)&255;return i}}e.exports=n}).call(t,n(191))},function(e,t,n){"use strict";function r(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var a=e.random||(e.rng||o)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var u=0;u<16;++u)t[r+u]=a[u];return t||i(a)}var o=n(189),i=n(188);e.exports=r},function(e,t,n){"use strict";var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":o(window))&&(r=window)}e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n"),this.props.content.input,l.default.createElement("a",{className:"hashLink",title:"Link for this expression",href:window.location.pathname+"#"+this.props.inputHash},"#")),l.default.createElement("div",{className:"content"},this.findResultComponent(this.props.content)))}},{key:"findResultComponent",value:function(e){return e instanceof p.default?l.default.createElement(y.default,{content:e}):e instanceof d.default?l.default.createElement(g.default,null):e instanceof _.default?l.default.createElement(C.default,{expression:e.expression,emphasizeBytes:this.props.appState.emphasizeBytes}):e instanceof x.default?l.default.createElement(k.default,null):e instanceof N.default?l.default.createElement("p",null,e.value):e instanceof P.default?l.default.createElement("div",{className:"result"},l.default.createElement("div",{className:"error"},"(X_X) Ooops.. Something ain' right: ",l.default.createElement("strong",null,e.error.message))):l.default.createElement("div",{className:"result"},l.default.createElement("div",{className:"error"},"¯\\_(ツ)_/¯ Sorry, i don′t know what ",l.default.createElement("strong",null,this.props.input)," is"))}}]),t}(l.default.Component));t.default=I},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0;)t.push(s.default.createElement("span",{key:n++,className:"byte"},e.splice(0,8)));return t}}]),t}(s.default.Component);t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t>")," — sign propagating right shift"),l.default.createElement("li",null,l.default.createElement("code",null,">>>")," — zero-fill right shift"))))))}}]),t}(l.default.Component);t.default=d},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=t.emphasizeBytes,o=void 0!==n&&n,i=t.allowFlipBits,a=void 0!==i&&i;r(this,e),this.emphasizeBytes=o,this.items=[],this.maxNumberOfBits=0,this.allowFlipBits=!0===a}return o(e,[{key:"addOperand",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"",css:"",operand:e,allowFlipBits:this.allowFlipBits})}},{key:"addExpression",value:function(e){this.maxNumberOfBits=Math.max(e.operand.apply().getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign,label:this.getLabel(e.operand),operand:e.operand,allowFlipBits:this.allowFlipBits})}},{key:"addShiftExpressionResult",value:function(e,t){this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign+e.operand.toString(),css:"expression-result",operand:t,allowFlipBits:!1})}},{key:"addExpressionResult",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"=",css:"expression-result",operand:e,allowFlipBits:!1})}},{key:"getLabel",value:function(e){return"bin"==e.kind?e.dec:e.toString()}}],[{key:"buildListOfNumbers",value:function(t,n){var r=new e(n);return t.numbers.forEach(function(e){return r.addOperand(e)}),r.maxNumberOfBits=e.getNumberOfBits(r.maxNumberOfBits,r.emphasizeBytes),r}},{key:"buildMultiple",value:function(t,n){for(var r,o=(t.expressions[0],0),a=t.expressions.length,u=new e(n),s=null;o=0||this.sign.indexOf(">")>=0,this.isNotExpression="~"==this.sign}return _createClass(ExpressionOperand,[{key:"apply",value:function apply(operand){if(operand instanceof ExpressionOperand)throw console.error("value shouldnt be expression",value),new Error("value shouldnt be expression");var str="";str="~"==this.sign?"~"+this.operand.apply().value:operand.value+this.sign+this.operand.apply().value;var resultValue=eval(str),resultOp=_Operand2.default.create(eval(str),this.operand.kind||this.operand.operand.kind);return resultOp}},{key:"toString",value:function(){return this.sign+this.operand.toString()}}]),ExpressionOperand}();exports.default=ExpressionOperand},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n=t?e:t},0)}return o(e,[{key:"toString",value:function(){return this.numbers.map(function(e){return e.value.toString()}).join(" ")}}]),e}();t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function e(t,n){r(this,e),this.expressionString=t,this.expressions=n};t.default=o},function(e,t,n){"use strict";function r(e,t){return e.regex.test(t)?{value:parseInt(t.replace(e.prefix,""),e.radix),kind:e.kind,input:t}:null}Object.defineProperty(t,"__esModule",{value:!0});var o=[{regex:/^-?\d+$/,radix:10,kind:"dec",prefix:"^$"},{regex:/^-?0x[0-9,a-f]+$/i,radix:16,kind:"hex",prefix:/0x/i},{regex:/^-?0b[0-1]+$/i,radix:2,kind:"bin",prefix:/0b/i}],i={parse:function(e){return o.map(function(t){return r(t,e)}).reduce(function(e,t){return e||t})},parseOperator:function(e){var t=e.match(e);return 0==t.length?null:t[0]}};t.default=i},function(e,t,n){"use strict";function r(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}}Object.defineProperty(t,"__esModule",{value:!0}),t.default={formatString:function(e,t){return e.toString(r(t||"bin"))},padLeft:function(e,t,n){var r=Array.prototype.slice.call(e),n=n||"0";if(null==t)return e;for(;t>r.length;)r.unshift(n);return r.join("")}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o=n(8),i=r(o),a=n(91),u=r(a),s=n(52),l=(r(s),n(92)),c=r(l),p=n(93),f=r(p),d=n(25),h=r(d),m=n(94),y=r(m),v=n(95),g=r(v),b=n(96),_=r(b),E=n(51),C=r(E);!function(){"bitwisecmd.com"!=window.location.host||window.location.hash.indexOf("-debug")>-1?C.default.setLevel("trace"):C.default.setLevel("warn")}();var w=function(){var e=f.default.getPersistedData(),t=new c.default(e);return f.default.watch(t),C.default.debug("appState",t),t}();y.default.initialize(h.default,w),function(){var e=_.default.getArgs(window.location.hash),t=["help","1|2&6","1 2 4 8 16 32 0b1000000 0x80"];w.wasOldVersion&&(t=["whatsnew"]),e.commands.length>0&&(t=e.commands),t.forEach(h.default.execute.bind(h.default))}();var x=i.default.createElement(g.default,{appState:w});u.default.render(x,document.getElementById("root")),C.default.debug("started")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={plainObject:function(e){return"object"==(void 0===e?"undefined":r(e))&&e instanceof Object},aFunction:function(e){return"function"==typeof e},string:function(e){return"string"==typeof e},regex:function(e){return"object"==(void 0===e?"undefined":r(e))&&this.constructedFrom(RegExp)},constructedFrom:function(e,t){return e instanceof t},htmlElement:function(e){return e instanceof HtmlElement},array:function(e){return e instanceof Array},number:function(e){return"number"==typeof e&&!isNaN(e)}}}]); -//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/bundle.js.map b/bundle.js.map deleted file mode 100644 index dfa8487..0000000 --- a/bundle.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///bundle.js","webpack:///webpack/bootstrap 5f8c5a02f34ad3f80b23","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/react-dom/lib/reactProdInvariant.js","webpack:///./~/object-assign/index.js","webpack:///./~/react-dom/lib/ReactDOMComponentTree.js","webpack:///./~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/react-dom/lib/ReactInstrumentation.js","webpack:///./~/react/react.js","webpack:///./~/react-dom/lib/ReactUpdates.js","webpack:///./~/react-dom/lib/SyntheticEvent.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/react-dom/lib/PooledClass.js","webpack:///./src/app/models/CommandResult.js","webpack:///./~/react-dom/lib/DOMLazyTree.js","webpack:///./~/react-dom/lib/DOMProperty.js","webpack:///./~/react-dom/lib/ReactReconciler.js","webpack:///./~/react/lib/React.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/reactProdInvariant.js","webpack:///./~/fbjs/lib/emptyObject.js","webpack:///./~/react-dom/lib/EventPluginHub.js","webpack:///./~/react-dom/lib/EventPropagators.js","webpack:///./~/react-dom/lib/ReactInstanceMap.js","webpack:///./~/react-dom/lib/SyntheticUIEvent.js","webpack:///./src/app/cmd.js","webpack:///./~/react-dom/lib/ReactBrowserEventEmitter.js","webpack:///./~/react-dom/lib/SyntheticMouseEvent.js","webpack:///./~/react-dom/lib/Transaction.js","webpack:///./~/react-dom/lib/escapeTextContentForBrowser.js","webpack:///./~/react-dom/lib/setInnerHTML.js","webpack:///./src/app/expression.js","webpack:///./~/fbjs/lib/shallowEqual.js","webpack:///./~/react-dom/lib/DOMChildrenOperations.js","webpack:///./~/react-dom/lib/DOMNamespaces.js","webpack:///./~/react-dom/lib/EventPluginRegistry.js","webpack:///./~/react-dom/lib/EventPluginUtils.js","webpack:///./~/react-dom/lib/KeyEscapeUtils.js","webpack:///./~/react-dom/lib/LinkedValueUtils.js","webpack:///./~/react-dom/lib/ReactComponentEnvironment.js","webpack:///./~/react-dom/lib/ReactErrorUtils.js","webpack:///./~/react-dom/lib/ReactUpdateQueue.js","webpack:///./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./~/react-dom/lib/getEventCharCode.js","webpack:///./~/react-dom/lib/getEventModifierState.js","webpack:///./~/react-dom/lib/getEventTarget.js","webpack:///./~/react-dom/lib/isEventSupported.js","webpack:///./~/react-dom/lib/shouldUpdateReactComponent.js","webpack:///./~/react-dom/lib/validateDOMNesting.js","webpack:///./~/react/lib/ReactComponent.js","webpack:///./~/react/lib/ReactNoopUpdateQueue.js","webpack:///./~/loglevel/lib/loglevel.js","webpack:///./src/app/components/InputBox.jsx","webpack:///./~/fbjs/lib/EventListener.js","webpack:///./~/fbjs/lib/focusNode.js","webpack:///./~/fbjs/lib/getActiveElement.js","webpack:///./~/process/browser.js","webpack:///./~/prop-types/factory.js","webpack:///./~/react-dom/lib/CSSProperty.js","webpack:///./~/react-dom/lib/CallbackQueue.js","webpack:///./~/react-dom/lib/DOMPropertyOperations.js","webpack:///./~/react-dom/lib/ReactDOMComponentFlags.js","webpack:///./~/react-dom/lib/ReactDOMSelect.js","webpack:///./~/react-dom/lib/ReactEmptyComponent.js","webpack:///./~/react-dom/lib/ReactFeatureFlags.js","webpack:///./~/react-dom/lib/ReactHostComponent.js","webpack:///./~/react-dom/lib/ReactInputSelection.js","webpack:///./~/react-dom/lib/ReactMount.js","webpack:///./~/react-dom/lib/ReactNodeTypes.js","webpack:///./~/react-dom/lib/ViewportMetrics.js","webpack:///./~/react-dom/lib/accumulateInto.js","webpack:///./~/react-dom/lib/forEachAccumulated.js","webpack:///./~/react-dom/lib/getHostComponentFromComposite.js","webpack:///./~/react-dom/lib/getTextContentAccessor.js","webpack:///./~/react-dom/lib/instantiateReactComponent.js","webpack:///./~/react-dom/lib/isTextInputElement.js","webpack:///./~/react-dom/lib/setTextContent.js","webpack:///./~/react-dom/lib/traverseAllChildren.js","webpack:///./~/react/lib/ReactComponentTreeHook.js","webpack:///./~/react/lib/ReactElementSymbol.js","webpack:///./~/react/lib/canDefineProperty.js","webpack:///./src/app/components/misc/CommandLink.jsx","webpack:///./src/app/expression/ExpressionError.js","webpack:///./src/app/expression/Operand.js","webpack:///./src/app/models/AboutResult.js","webpack:///./src/app/models/ErrorResult.js","webpack:///./src/app/models/ExpressionResult.js","webpack:///./src/app/models/HelpResult.js","webpack:///./src/app/models/StringResult.js","webpack:///./src/app/models/UnknownCommandResult.js","webpack:///./src/app/models/WhatsnewResult.js","webpack:///./~/react-dom/index.js","webpack:///./src/app/AppState.js","webpack:///./src/app/appStateStore.js","webpack:///./src/app/commands.js","webpack:///./src/app/components/AppRoot.jsx","webpack:///./src/app/hash.js","webpack:///./~/fbjs/lib/camelize.js","webpack:///./~/fbjs/lib/camelizeStyleName.js","webpack:///./~/fbjs/lib/containsNode.js","webpack:///./~/fbjs/lib/createArrayFromMixed.js","webpack:///./~/fbjs/lib/createNodesFromMarkup.js","webpack:///./~/fbjs/lib/getMarkupWrap.js","webpack:///./~/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/fbjs/lib/hyphenate.js","webpack:///./~/fbjs/lib/hyphenateStyleName.js","webpack:///./~/fbjs/lib/isNode.js","webpack:///./~/fbjs/lib/isTextNode.js","webpack:///./~/fbjs/lib/memoizeStringOnly.js","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-dom/lib/ARIADOMPropertyConfig.js","webpack:///./~/react-dom/lib/AutoFocusUtils.js","webpack:///./~/react-dom/lib/BeforeInputEventPlugin.js","webpack:///./~/react-dom/lib/CSSPropertyOperations.js","webpack:///./~/react-dom/lib/ChangeEventPlugin.js","webpack:///./~/react-dom/lib/Danger.js","webpack:///./~/react-dom/lib/DefaultEventPluginOrder.js","webpack:///./~/react-dom/lib/EnterLeaveEventPlugin.js","webpack:///./~/react-dom/lib/FallbackCompositionState.js","webpack:///./~/react-dom/lib/HTMLDOMPropertyConfig.js","webpack:///./~/react-dom/lib/ReactChildReconciler.js","webpack:///./~/react-dom/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/react-dom/lib/ReactCompositeComponent.js","webpack:///./~/react-dom/lib/ReactDOM.js","webpack:///./~/react-dom/lib/ReactDOMComponent.js","webpack:///./~/react-dom/lib/ReactDOMContainerInfo.js","webpack:///./~/react-dom/lib/ReactDOMEmptyComponent.js","webpack:///./~/react-dom/lib/ReactDOMFeatureFlags.js","webpack:///./~/react-dom/lib/ReactDOMIDOperations.js","webpack:///./~/react-dom/lib/ReactDOMInput.js","webpack:///./~/react-dom/lib/ReactDOMOption.js","webpack:///./~/react-dom/lib/ReactDOMSelection.js","webpack:///./~/react-dom/lib/ReactDOMTextComponent.js","webpack:///./~/react-dom/lib/ReactDOMTextarea.js","webpack:///./~/react-dom/lib/ReactDOMTreeTraversal.js","webpack:///./~/react-dom/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/react-dom/lib/ReactDefaultInjection.js","webpack:///./~/react-dom/lib/ReactElementSymbol.js","webpack:///./~/react-dom/lib/ReactEventEmitterMixin.js","webpack:///./~/react-dom/lib/ReactEventListener.js","webpack:///./~/react-dom/lib/ReactInjection.js","webpack:///./~/react-dom/lib/ReactMarkupChecksum.js","webpack:///./~/react-dom/lib/ReactMultiChild.js","webpack:///./~/react-dom/lib/ReactOwner.js","webpack:///./~/react-dom/lib/ReactPropTypesSecret.js","webpack:///./~/react-dom/lib/ReactReconcileTransaction.js","webpack:///./~/react-dom/lib/ReactRef.js","webpack:///./~/react-dom/lib/ReactServerRenderingTransaction.js","webpack:///./~/react-dom/lib/ReactServerUpdateQueue.js","webpack:///./~/react-dom/lib/ReactVersion.js","webpack:///./~/react-dom/lib/SVGDOMPropertyConfig.js","webpack:///./~/react-dom/lib/SelectEventPlugin.js","webpack:///./~/react-dom/lib/SimpleEventPlugin.js","webpack:///./~/react-dom/lib/SyntheticAnimationEvent.js","webpack:///./~/react-dom/lib/SyntheticClipboardEvent.js","webpack:///./~/react-dom/lib/SyntheticCompositionEvent.js","webpack:///./~/react-dom/lib/SyntheticDragEvent.js","webpack:///./~/react-dom/lib/SyntheticFocusEvent.js","webpack:///./~/react-dom/lib/SyntheticInputEvent.js","webpack:///./~/react-dom/lib/SyntheticKeyboardEvent.js","webpack:///./~/react-dom/lib/SyntheticTouchEvent.js","webpack:///./~/react-dom/lib/SyntheticTransitionEvent.js","webpack:///./~/react-dom/lib/SyntheticWheelEvent.js","webpack:///./~/react-dom/lib/adler32.js","webpack:///./~/react-dom/lib/dangerousStyleValue.js","webpack:///./~/react-dom/lib/findDOMNode.js","webpack:///./~/react-dom/lib/flattenChildren.js","webpack:///./~/react-dom/lib/getEventKey.js","webpack:///./~/react-dom/lib/getIteratorFn.js","webpack:///./~/react-dom/lib/getNodeForCharacterOffset.js","webpack:///./~/react-dom/lib/getVendorPrefixedEventName.js","webpack:///./~/react-dom/lib/quoteAttributeValueForBrowser.js","webpack:///./~/react-dom/lib/renderSubtreeIntoContainer.js","webpack:///./~/react/lib/KeyEscapeUtils.js","webpack:///./~/react/lib/PooledClass.js","webpack:///./~/react/lib/ReactChildren.js","webpack:///./~/react/lib/ReactClass.js","webpack:///./~/react/lib/ReactDOMFactories.js","webpack:///./~/react/lib/ReactPropTypeLocationNames.js","webpack:///./~/react/lib/ReactPropTypes.js","webpack:///./~/react/lib/ReactPureComponent.js","webpack:///./~/react/lib/ReactVersion.js","webpack:///./~/react/lib/getIteratorFn.js","webpack:///./~/react/lib/getNextDebugID.js","webpack:///./~/react/lib/onlyChild.js","webpack:///./~/react/lib/traverseAllChildren.js","webpack:///./~/uuid/lib/bytesToUuid.js","webpack:///./~/uuid/lib/rng-browser.js","webpack:///./~/uuid/v4.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/app/components/DisplayResultView.jsx","webpack:///./src/app/components/results/AboutResultView.jsx","webpack:///./src/app/components/results/BinaryStringView.jsx","webpack:///./src/app/components/results/BitwiseOperationExpressionView.jsx","webpack:///./src/app/components/results/HelpResultView.jsx","webpack:///./src/app/components/results/WhatsnewResultView.jsx","webpack:///./src/app/components/results/models/BitwiseExpressionViewModel.js","webpack:///./src/app/expression/ExpressionOperand.js","webpack:///./src/app/expression/ListOfNumbersExpression.js","webpack:///./src/app/expression/MultipleOperandsExpression.js","webpack:///./src/app/expression/numberParser.js","webpack:///./src/app/formatter.js","webpack:///./src/app/index.jsx","webpack:///./src/app/is.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","invariant","condition","format","a","b","e","f","validateFormat","error","undefined","Error","args","argIndex","replace","framesToPop","emptyFunction","warning","reactProdInvariant","code","argCount","arguments","length","message","argIdx","encodeURIComponent","toObject","val","TypeError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","keys","err","target","source","from","symbols","to","key","shouldPrecacheNode","node","nodeID","nodeType","getAttribute","ATTR_NAME","nodeValue","getRenderedHostOrTextFromComponent","component","rendered","_renderedComponent","precacheNode","inst","hostInst","_hostNode","internalInstanceKey","uncacheNode","precacheChildNodes","_flags","Flags","hasCachedChildNodes","children","_renderedChildren","childNode","firstChild","outer","childInst","childID","_domID","nextSibling","_prodInvariant","getClosestInstanceFromNode","parents","push","parentNode","closest","pop","getInstanceFromNode","getNodeFromInstance","_hostParent","DOMProperty","ReactDOMComponentFlags","ID_ATTRIBUTE_NAME","Math","random","toString","slice","ReactDOMComponentTree","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","debugTool","ensureInjected","ReactUpdates","ReactReconcileTransaction","batchingStrategy","ReactUpdatesFlushTransaction","reinitializeTransaction","dirtyComponentsLength","callbackQueue","CallbackQueue","getPooled","reconcileTransaction","batchedUpdates","callback","mountOrderComparator","c1","c2","_mountOrder","runBatchedUpdates","transaction","len","dirtyComponents","sort","updateBatchNumber","callbacks","_pendingCallbacks","markerName","ReactFeatureFlags","logTopLevelRenders","namedComponent","_currentElement","type","isReactTopLevelWrapper","getName","console","time","ReactReconciler","performUpdateIfNecessary","timeEnd","j","enqueue","getPublicInstance","enqueueUpdate","isBatchingUpdates","_updateBatchNumber","asap","context","asapCallbackQueue","asapEnqueued","_assign","PooledClass","Transaction","NESTED_UPDATES","initialize","close","splice","flushBatchedUpdates","UPDATE_QUEUEING","reset","notifyAll","TRANSACTION_WRAPPERS","getTransactionWrappers","destructor","release","perform","method","scope","addPoolingTo","queue","ReactUpdatesInjection","injectReconcileTransaction","ReconcileTransaction","injectBatchingStrategy","_batchingStrategy","injection","SyntheticEvent","dispatchConfig","targetInst","nativeEvent","nativeEventTarget","_targetInst","Interface","constructor","propName","normalize","defaultPrevented","returnValue","isDefaultPrevented","isPropagationStopped","shouldBeReleasedProperties","EventInterface","currentTarget","eventPhase","bubbles","cancelable","timeStamp","event","Date","now","isTrusted","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","augmentClass","Class","Super","E","fourArgumentPooler","ReactCurrentOwner","current","oneArgumentPooler","copyFieldsFrom","Klass","instancePool","instance","twoArgumentPooler","a1","a2","threeArgumentPooler","a3","a4","standardReleaser","poolSize","DEFAULT_POOLER","CopyConstructor","pooler","NewKlass","_classCallCheck","Constructor","_createClass","defineProperties","props","descriptor","writable","protoProps","staticProps","CommandResult","input","inputHash","encodeHash","string","encodeURI","trim","default","insertTreeChildren","tree","enableLazy","insertTreeBefore","html","setInnerHTML","text","setTextContent","replaceChildWithTree","oldNode","newTree","replaceChild","queueChild","parentTree","childTree","appendChild","queueHTML","queueText","nodeName","DOMLazyTree","DOMNamespaces","createMicrosoftUnsafeLocalFunction","documentMode","navigator","userAgent","test","referenceNode","toLowerCase","namespaceURI","insertBefore","checkMask","bitmask","DOMPropertyInjection","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","injectDOMPropertyConfig","domPropertyConfig","Injection","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMPropertyNames","DOMMutationMethods","isCustomAttribute","_isCustomAttributeFunctions","properties","lowerCased","propConfig","propertyInfo","attributeName","attributeNamespace","propertyName","mutationMethod","mustUseProperty","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","hasOverloadedBooleanValue","ATTRIBUTE_NAME_START_CHAR","ROOT_ATTRIBUTE_NAME","ATTRIBUTE_NAME_CHAR","getPossibleStandardName","isCustomAttributeFn","attachRefs","ReactRef","mountComponent","internalInstance","hostParent","hostContainerInfo","parentDebugID","markup","ref","getReactMountReady","getHostNode","unmountComponent","safely","detachRefs","receiveComponent","nextElement","prevElement","_context","refsChanged","shouldUpdateRefs","ReactChildren","ReactComponent","ReactPureComponent","ReactClass","ReactDOMFactories","ReactElement","ReactPropTypes","ReactVersion","onlyChild","createFactory","cloneElement","__spread","React","Children","count","toArray","only","Component","PureComponent","isValidElement","PropTypes","createClass","createMixin","mixin","DOM","version","hasValidRef","config","hasValidKey","_typeof","Symbol","iterator","obj","REACT_ELEMENT_TYPE","RESERVED_PROPS","__self","__source","self","owner","element","$$typeof","_owner","childrenLength","childArray","Array","defaultProps","factory","bind","cloneAndReplaceKey","oldElement","newKey","_self","_source","emptyObject","isInteractive","tag","shouldPreventMouseEvent","disabled","EventPluginRegistry","EventPluginUtils","ReactErrorUtils","accumulateInto","forEachAccumulated","listenerBank","eventQueue","executeDispatchesAndRelease","simulated","executeDispatchesInOrder","executeDispatchesAndReleaseSimulated","executeDispatchesAndReleaseTopLevel","getDictionaryKey","_rootNodeID","EventPluginHub","injectEventPluginOrder","injectEventPluginsByName","putListener","registrationName","listener","PluginModule","registrationNameModules","didPutListener","getListener","bankForRegistrationName","deleteListener","willDeleteListener","deleteAllListeners","extractEvents","topLevelType","events","plugins","possiblePlugin","extractedEvents","enqueueEvents","processEventQueue","processingEventQueue","rethrowCaughtError","__purge","__getListenerBank","listenerAtPhase","propagationPhase","phasedRegistrationNames","accumulateDirectionalDispatches","phase","_dispatchListeners","_dispatchInstances","accumulateTwoPhaseDispatchesSingle","traverseTwoPhase","accumulateTwoPhaseDispatchesSingleSkipTarget","parentInst","getParentInstance","accumulateDispatches","ignoredDirection","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","leave","enter","traverseEnterLeave","accumulateDirectDispatches","EventPropagators","ReactInstanceMap","remove","_reactInternalInstance","has","set","SyntheticUIEvent","dispatchMarker","getEventTarget","UIEventInterface","view","doc","ownerDocument","defaultView","parentWindow","detail","logError","invokeHandler","handler","cmdResult","handle","log","createHandler","cmd","_is2","plainObject","canHandle","findHandler","handlers","_is","errorHandler","debugMode","execute","rawInput","commands","catalog","command","h","warn","aFunction","clear","onError","getListeningForDocument","mountAt","topListenersIDKey","reactTopListenersCounter","alreadyListeningTo","hasEventPageXY","ReactEventEmitterMixin","ViewportMetrics","getVendorPrefixedEventName","isEventSupported","isMonitoringScrollValue","topEventMapping","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topBlur","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topFocus","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","ReactBrowserEventEmitter","ReactEventListener","injectReactEventListener","setHandleTopLevel","handleTopLevel","setEnabled","enabled","isEnabled","listenTo","contentDocumentHandle","isListening","dependencies","registrationNameDependencies","dependency","trapBubbledEvent","trapCapturedEvent","WINDOW_HANDLE","handlerBaseName","supportsEventPageXY","createEvent","ev","ensureScrollValueMonitoring","refresh","refreshScrollValues","monitorScrollValue","SyntheticMouseEvent","getEventModifierState","MouseEventInterface","screenX","screenY","clientX","clientY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","button","buttons","relatedTarget","fromElement","srcElement","toElement","pageX","currentScrollLeft","pageY","currentScrollTop","OBSERVED_ERROR","TransactionImpl","transactionWrappers","wrapperInitData","_isInTransaction","isInTransaction","errorThrown","ret","initializeAll","closeAll","startIndex","wrapper","initData","escapeHtml","str","match","matchHtmlRegExp","exec","escape","index","lastIndex","charCodeAt","substring","escapeTextContentForBrowser","reusableSVGContainer","WHITESPACE_TEST","NONVISIBLE_TEST","svg","innerHTML","svgNode","testElement","textNode","data","removeChild","deleteData","_interopRequireDefault","Parser","parser","MultipleOperandsExpression","ListOfNumbersExpression","ExpressionOperand","ExpressionError","Operand","_Operand","_ExpressionError","_ExpressionOperand","_ListOfNumbersExpression","_MultipleOperandsExpression","_Operand2","_ExpressionOperand2","_ListOfNumbersExpression2","_MultipleOperandsExpression2","expression","factories","canParse","trimmed","canCreate","parse","create","parseOperand","createOperand","number","kind","addFactory","regex","matches","numbers","fullRegex","normalizeString","operands","normalizedString","parseMatch","sign","num","op","indexOf","pos","buffer","is","x","y","shallowEqual","objA","objB","keysA","keysB","getNodeAfter","isArray","insertLazyTreeChildAt","moveChild","moveDelimitedText","insertChildAt","closingComment","removeDelimitedText","openingComment","nextNode","startNode","replaceDelimitedText","stringText","nodeAfterComment","createTextNode","Danger","dangerouslyReplaceNodeWithMarkup","DOMChildrenOperations","processUpdates","updates","k","update","content","afterNode","fromNode","mathml","recomputePluginOrdering","eventPluginOrder","pluginName","namesToPlugins","pluginModule","pluginIndex","publishedEvents","eventTypes","eventName","publishEventForPlugin","eventNameDispatchConfigs","phaseName","phasedRegistrationName","publishRegistrationName","possibleRegistrationNames","injectedEventPluginOrder","injectedNamesToPlugins","isOrderingDirty","getPluginModuleForEvent","_resetEventPlugins","isEndish","isMoveish","isStartish","executeDispatch","invokeGuardedCallbackWithCatch","invokeGuardedCallback","dispatchListeners","dispatchInstances","executeDispatchesInOrderStopAtTrueImpl","executeDispatchesInOrderStopAtTrue","executeDirectDispatch","dispatchListener","dispatchInstance","res","hasDispatches","ComponentTree","TreeTraversal","injectComponentTree","Injected","injectTreeTraversal","isAncestor","getLowestCommonAncestor","fn","argFrom","argTo","escaperLookup","=",":","unescape","unescaperLookup","=0","=2","KeyEscapeUtils","_assertSingleLink","inputProps","checkedLink","valueLink","_assertValueLink","onChange","_assertCheckedLink","checked","getDeclarationErrorAddendum","ReactPropTypesSecret","propTypesFactory","hasReadOnlyValue","checkbox","image","hidden","radio","submit","propTypes","componentName","readOnly","func","loggedTypeFailures","LinkedValueUtils","checkPropTypes","tagName","getValue","getChecked","executeOnChange","requestChange","injected","ReactComponentEnvironment","replaceNodeWithMarkup","processChildrenUpdates","injectEnvironment","environment","caughtError","formatUnexpectedArgument","displayName","getInternalInstanceReadyForUpdate","publicInstance","callerName","ReactUpdateQueue","isMounted","enqueueCallback","validateCallback","enqueueCallbackInternal","enqueueForceUpdate","_pendingForceUpdate","enqueueReplaceState","completeState","_pendingStateQueue","_pendingReplaceState","enqueueSetState","partialState","enqueueElementInternal","nextContext","_pendingElement","MSApp","execUnsafeLocalFunction","arg0","arg1","arg2","arg3","getEventCharCode","charCode","keyCode","modifierStateGetter","keyArg","syntheticEvent","keyProp","modifierKeyToProp","Alt","Control","Meta","Shift","correspondingUseElement","eventNameSuffix","capture","isSupported","setAttribute","useHasFeature","implementation","hasFeature","shouldUpdateReactComponent","prevEmpty","nextEmpty","prevType","nextType","validateDOMNesting","updater","refs","ReactNoopUpdateQueue","isReactComponent","setState","forceUpdate","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","root","definition","realMethod","methodName","undefinedType","bindMethod","noop","Function","apply","enableLoggingWhenConsoleArrives","level","loggerName","replaceLoggingMethods","logMethods","methodFactory","defaultMethodFactory","Logger","defaultLevel","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","storageKey","ignore","cookie","getPersistedLevel","storedLevel","location","levels","currentLevel","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","setDefaultLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","logger","_log","noConflict","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_react","_react2","_cmd","_cmd2","InputBox","_React$Component","_this","getPrototypeOf","history","historyIndex","nameInput","focus","_this2","id","onKeyUp","onKeyDown","className","placeholder","unshift","newIndex","EventListener","listen","eventType","removeEventListener","detachEvent","registerDefault","focusNode","getActiveElement","activeElement","body","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","concat","queueIndex","drainQueue","timeout","run","Item","array","process","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","prefixKey","prefix","charAt","isUnitlessNumber","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","prop","shorthandPropertyExpansions","background","backgroundAttachment","backgroundColor","backgroundImage","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundPosition","border","borderWidth","borderStyle","borderColor","borderBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeft","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRight","borderRightWidth","borderRightStyle","borderRightColor","borderTop","borderTopWidth","borderTopStyle","borderTopColor","font","fontStyle","fontVariant","fontSize","fontFamily","outline","outlineWidth","outlineStyle","outlineColor","CSSProperty","_callbacks","_contexts","_arg","contexts","checkpoint","rollback","isAttributeNameSafe","validatedAttributeNameCache","illegalAttributeNameCache","VALID_ATTRIBUTE_NAME_REGEX","shouldIgnoreValue","isNaN","quoteAttributeValueForBrowser","RegExp","DOMPropertyOperations","createMarkupForID","setAttributeForID","createMarkupForRoot","setAttributeForRoot","createMarkupForProperty","createMarkupForCustomAttribute","setValueForProperty","deleteValueForProperty","namespace","setAttributeNS","setValueForAttribute","removeAttribute","deleteValueForAttribute","updateOptionsIfPendingUpdateAndMounted","_wrapperState","pendingUpdate","updateOptions","Boolean","multiple","propValue","selectedValue","options","selected","_handleChange","didWarnValueDefaultValue","ReactDOMSelect","getHostProps","mountWrapper","initialValue","defaultValue","wasMultiple","getSelectValueContext","postUpdateWrapper","emptyComponentFactory","ReactEmptyComponentInjection","injectEmptyComponentFactory","ReactEmptyComponent","instantiate","createInternalComponent","genericComponentClass","createInstanceForText","textComponentClass","isTextComponent","ReactHostComponentInjection","injectGenericComponentClass","componentClass","injectTextComponentClass","ReactHostComponent","isInDocument","containsNode","documentElement","ReactDOMSelection","ReactInputSelection","hasSelectionCapabilities","elem","contentEditable","getSelectionInformation","focusedElem","selectionRange","getSelection","restoreSelection","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","setSelection","selection","start","selectionStart","end","selectionEnd","range","createRange","parentElement","moveStart","moveEnd","getOffsets","offsets","min","createTextRange","collapse","select","setOffsets","firstDifferenceIndex","string1","string2","minLen","getReactRootElementInContainer","container","DOC_NODE_TYPE","internalGetID","mountComponentIntoNode","wrapperInstance","shouldReuseMarkup","wrappedElement","child","ReactDOMContainerInfo","_topLevelWrapper","ReactMount","_mountImageIntoNode","batchedMountComponentIntoNode","componentInstance","ReactDOMFeatureFlags","useCreateElement","unmountComponentFromNode","lastChild","hasNonRootReactChild","rootEl","isValidContainer","ELEMENT_NODE_TYPE","DOCUMENT_FRAGMENT_NODE_TYPE","getHostRootInstanceInContainer","prevHostInstance","getTopLevelWrapperInContainer","_hostContainerInfo","ReactMarkupChecksum","instantiateReactComponent","ROOT_ATTR_NAME","instancesByReactRootID","topLevelRootCounter","TopLevelWrapper","rootID","render","_instancesByReactRootID","scrollMonitor","renderCallback","_updateRootComponent","prevComponent","_renderNewRootComponent","wrapperID","_instance","renderSubtreeIntoContainer","parentComponent","_renderSubtreeIntoContainer","nextWrappedElement","_processChildContext","prevWrappedElement","publicInst","updatedCallback","unmountComponentAtNode","reactRootElement","containerHasReactMarkup","containerHasNonRootReactChild","hasAttribute","rootElement","canReuseMarkup","checksum","CHECKSUM_ATTR_NAME","rootMarkup","outerHTML","normalizedMarkup","diffIndex","difference","ReactNodeTypes","HOST","COMPOSITE","EMPTY","getType","scrollPosition","next","arr","cb","getHostComponentFromComposite","_renderedNodeType","getTextContentAccessor","contentKey","isInternalComponentType","shouldHaveDebugID","info","getNativeNode","ReactCompositeComponentWrapper","_mountIndex","_mountImage","ReactCompositeComponent","construct","_instantiateReactComponent","isTextInputElement","supportedInputTypes","color","date","datetime","datetime-local","email","month","password","search","tel","url","week","textContent","getComponentKey","traverseAllChildrenImpl","nameSoFar","traverseContext","SEPARATOR","nextName","subtreeCount","nextNamePrefix","SUBSEPARATOR","iteratorFn","getIteratorFn","step","entries","ii","done","entry","addendum","childrenString","traverseAllChildren","isNative","funcToString","reIsNative","purgeDeep","item","getItem","childIDs","removeItem","describeComponentFrame","ownerName","fileName","lineNumber","getDisplayName","describeID","ReactComponentTreeHook","getElement","ownerID","getOwnerID","setItem","getItemIDs","addRoot","removeRoot","getRootIDs","canUseCollections","Map","Set","itemMap","rootIDSet","add","itemByKey","rootByKey","getKeyFromID","getIDFromKey","parseInt","substr","unmountedIDs","onSetChildren","nextChildIDs","nextChildID","nextChild","parentID","onBeforeMountComponent","updateCount","onBeforeUpdateComponent","onMountComponent","onUpdateComponent","onUnmountComponent","purgeUnmountedComponents","_preventPurging","getCurrentStackAddendum","topElement","currentOwner","_debugID","getStackAddendumByID","getParentID","getChildIDs","getSource","getText","getUpdateCount","getRegisteredIDs","canDefineProperty","CommandLink","href","onClick","_Error","_numberParser","_numberParser2","_ExpressionError2","cfg","lengthInBits","getBitLength","isExpression","floor","toKindString","getOtherKind","parsed","hexVal","abs","hex","_CommandResult2","_CommandResult3","AboutResult","_CommandResult","ErrorResult","ExpressionResult","HelpResult","StringResult","UnknownCommandResult","WhatsnewResult","AppState","persistData","emphasizeBytes","commandResults","uiTheme","persistedVersion","wasOldVersion","result","triggerChanged","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","theme","getPersistedData","json","JSON","ex","watch","appState","stringify","getPersistData","_HelpResult","_HelpResult2","_AboutResult","_AboutResult2","_UnknownCommandResult","_UnknownCommandResult2","_ExpressionResult","_ExpressionResult2","_ErrorResult","_ErrorResult2","_WhatsnewResult","_WhatsnewResult2","_StringResult","_StringResult2","_expression","newObj","_v","_v2","help","addCommandResult","clearCommmandResults","em","toggleEmphasizeBytes","dark","setUiTheme","light","midnight","about","whatsnew","guid","-notrack","-debug","expr","_InputBox","_InputBox2","_DisplayResultView","_DisplayResultView2","AppRoot","_this3","state","r","_this4","data-cmd","getIndicator","getResultViews","splitHashList","values","v","decodeHash","hashValue","decodeURI","getArgs","decodedHash","freeze","camelize","_hyphenPattern","_","character","camelizeStyleName","msPattern","outerNode","innerNode","isTextNode","contains","compareDocumentPosition","callee","hasArrayNature","createArrayFromMixed","getNodeName","nodeNameMatch","nodeNamePattern","createNodesFromMarkup","handleScript","dummyNode","wrap","getMarkupWrap","wrapDepth","scripts","getElementsByTagName","nodes","childNodes","markupWrap","shouldWrap","selectWrap","tableWrap","trWrap","svgWrap","*","area","col","legend","param","tr","optgroup","option","caption","colgroup","tbody","tfoot","thead","td","th","getUnboundedScrollPosition","scrollable","Window","pageXOffset","scrollLeft","pageYOffset","scrollTop","hyphenate","_uppercasePattern","hyphenateStyleName","isNode","Node","memoizeStringOnly","cache","typeSpecs","getStack","throwOnDirectAccess","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","propFullName","secret","ANONYMOUS","chainedCheckType","createPrimitiveTypeChecker","expectedType","getPropType","getPreciseType","createArrayOfTypeChecker","typeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","getClassName","createEnumTypeChecker","expectedValues","createObjectOfTypeChecker","propType","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createShapeTypeChecker","shapeTypes","every","isSymbol","bool","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","ARIADOMPropertyConfig","aria-current","aria-details","aria-disabled","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-roledescription","aria-autocomplete","aria-checked","aria-expanded","aria-haspopup","aria-level","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-placeholder","aria-pressed","aria-readonly","aria-required","aria-selected","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","aria-atomic","aria-busy","aria-live","aria-relevant","aria-dropeffect","aria-grabbed","aria-activedescendant","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-describedby","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","aria-posinset","aria-rowcount","aria-rowindex","aria-rowspan","aria-setsize","AutoFocusUtils","focusDOMComponent","isKeypressCommand","getCompositionEventType","compositionStart","compositionEnd","compositionUpdate","isFallbackCompositionStart","START_KEYCODE","isFallbackCompositionEnd","END_KEYCODES","getDataFromCustomEvent","extractCompositionEvent","fallbackData","canUseCompositionEvent","currentComposition","useFallbackCompositionData","getData","FallbackCompositionState","SyntheticCompositionEvent","customData","getNativeBeforeInputChars","which","SPACEBAR_CODE","hasSpaceKeypress","SPACEBAR_CHAR","chars","getFallbackBeforeInputChars","extractBeforeInputEvent","canUseTextInputEvent","SyntheticInputEvent","beforeInput","opera","bubbled","captured","BeforeInputEventPlugin","dangerousStyleValue","processStyleName","styleName","hasShorthandPropertyBug","styleFloatAccessor","tempStyle","style","cssFloat","CSSPropertyOperations","createMarkupForStyles","styles","serialized","styleValue","setValueForStyles","expansion","individualStyleName","shouldUseChangeEvent","manualDispatchChangeEvent","change","activeElementInst","runEventInBatch","startWatchingForChangeEventIE8","stopWatchingForChangeEventIE8","getTargetInstForChangeEvent","handleEventsForChangeEventIE8","startWatchingForValueChange","activeElementValue","activeElementValueProp","getOwnPropertyDescriptor","newValueProp","handlePropertyChange","stopWatchingForValueChange","getTargetInstForInputEvent","handleEventsForInputEventIE","getTargetInstForInputEventIE","shouldUseClickEvent","getTargetInstForClickEvent","handleControlledInputBlur","controlled","doesChangeEventBubble","isInputEventSupported","ChangeEventPlugin","getTargetInstFunc","handleEventFunc","targetNode","oldChild","newChild","DefaultEventPluginOrder","mouseEnter","mouseLeave","EnterLeaveEventPlugin","win","related","toNode","_root","_startText","_fallbackText","startValue","startLength","endValue","endLength","minEnd","sliceTail","HTMLDOMPropertyConfig","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","as","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","challenge","cite","classID","cols","colSpan","contextMenu","controls","coords","crossOrigin","dateTime","defer","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","height","high","hrefLang","htmlFor","httpEquiv","icon","inputMode","integrity","keyParams","keyType","label","lang","list","loop","low","manifest","marginHeight","marginWidth","max","maxLength","media","mediaGroup","minLength","muted","nonce","noValidate","open","optimum","pattern","playsInline","poster","preload","profile","radioGroup","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scoped","scrolling","seamless","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","summary","tabIndex","useMap","width","wmode","datatype","inlist","resource","typeof","vocab","autoCapitalize","autoCorrect","autoSave","itemProp","itemScope","itemType","itemID","itemRef","results","security","unselectable","validity","badInput","instantiateChild","childInstances","selfDebugID","keyUnique","ReactChildReconciler","instantiateChildren","nestedChildNodes","updateChildren","prevChildren","nextChildren","mountImages","removedNodes","prevChild","nextChildInstance","nextChildMountImage","unmountChildren","renderedChildren","renderedChild","ReactDOMIDOperations","ReactComponentBrowserEnvironment","dangerouslyProcessChildrenUpdates","StatelessComponent","shouldConstruct","isPureComponent","isPureReactComponent","CompositeTypes","ImpureClass","PureClass","StatelessFunctional","nextMountID","_compositeType","_calledComponentWillUnmount","renderedElement","publicProps","publicContext","_processContext","updateQueue","getUpdateQueue","doConstruct","_constructComponent","initialState","unstable_handleError","performInitialMountWithErrorHandling","performInitialMount","componentDidMount","_constructComponentWithoutOwner","_processPendingState","debugID","componentWillMount","_renderValidatedComponent","componentWillUnmount","_maskContext","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","childContextTypes","_checkContextTypes","prevContext","updateComponent","prevParentElement","nextParentElement","prevUnmaskedContext","nextUnmaskedContext","willReceive","prevProps","nextProps","componentWillReceiveProps","nextState","shouldUpdate","shouldComponentUpdate","_performComponentUpdate","partial","unmaskedContext","prevState","hasComponentDidUpdate","componentDidUpdate","componentWillUpdate","_updateRenderedComponent","prevComponentInstance","prevRenderedElement","nextRenderedElement","oldHostNode","nextMarkup","_replaceNodeWithMarkup","prevInstance","_renderValidatedComponentWithoutOwnerOrContext","attachRef","publicComponentInstance","detachRef","ReactDefaultInjection","findDOMNode","inject","ReactDOM","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","__REACT_DEVTOOLS_GLOBAL_HOOK__","Mount","Reconciler","assertValidProps","voidElementTags","_tag","dangerouslySetInnerHTML","HTML","enqueuePutListener","ReactServerRenderingTransaction","containerInfo","isDocumentFragment","_node","DOC_FRAGMENT_TYPE","_ownerDocument","listenerToPut","inputPostMount","ReactDOMInput","postMountWrapper","textareaPostMount","ReactDOMTextarea","optionPostMount","ReactDOMOption","trapBubbledEventsLocal","getNode","mediaEvents","postUpdateSelectWrapper","validateDangerousTag","validatedTagCache","VALID_TAG_REGEX","isCustomComponent","ReactDOMComponent","_namespaceURI","_previousStyle","_previousStyleCopy","ReactMultiChild","CONTENT_TYPES","suppressContentEditableWarning","omittedCloseTags","base","br","embed","hr","img","keygen","link","meta","track","wbr","newlineEatingTags","listing","pre","textarea","menuitem","globalIdCounter","Mixin","_idCounter","parentTag","mountImage","el","div","createElementNS","_updateDOMProperties","lazyTree","_createInitialChildren","tagOpen","_createOpenTagMarkupAndPutListeners","tagContent","_createContentMarkup","autoFocus","propKey","renderToStaticMarkup","__html","contentToUse","childrenToUse","mountChildren","lastProps","_updateDOMChildren","updateWrapper","styleUpdates","lastStyle","nextProp","lastProp","lastContent","nextContent","lastHtml","nextHtml","lastChildren","lastHasContentOrHtml","nextHasContentOrHtml","updateTextContent","updateMarkup","topLevelWrapper","ReactDOMEmptyComponent","domID","createComment","useFiber","forceUpdateIfMounted","isControlled","rootNode","queryRoot","group","querySelectorAll","otherNode","otherInstance","defaultChecked","initialChecked","valueAsNumber","parseFloat","flattenChildren","didWarnInvalidOptionChildren","selectValue","selectParent","hostProps","isCollapsed","anchorNode","anchorOffset","focusOffset","getIEOffsets","selectedRange","selectedLength","fromStart","duplicate","moveToElementText","setEndPoint","startOffset","getModernOffsets","rangeCount","currentRange","getRangeAt","startContainer","endContainer","isSelectionCollapsed","rangeLength","tempRange","cloneRange","selectNodeContents","setEnd","isTempRangeCollapsed","endOffset","detectionRange","setStart","isBackward","collapsed","setIEOffsets","setModernOffsets","extend","temp","startMarker","getNodeForCharacterOffset","endMarker","offset","removeAllRanges","addRange","useIEOffsets","ReactDOMTextComponent","_stringText","_closingComment","_commentNodes","openingValue","createDocumentFragment","escapedText","nextText","nextStringText","commentNodes","hostNode","newValue","instA","instB","depthA","tempA","depthB","tempB","depth","path","common","pathFrom","pathTo","ReactDefaultBatchingStrategyTransaction","RESET_BATCHED_UPDATES","ReactDefaultBatchingStrategy","FLUSH_BATCHED_UPDATES","alreadyBatchingUpdates","alreadyInjected","ReactInjection","EventEmitter","ReactDOMTreeTraversal","SimpleEventPlugin","SelectEventPlugin","HostComponent","SVGDOMPropertyConfig","EmptyComponent","Updates","runEventQueueInBatch","findParent","TopLevelCallbackBookKeeping","ancestors","handleTopLevelImpl","bookKeeping","ancestor","_handleTopLevel","scrollValueMonitor","_enabled","dispatchEvent","adler32","COMMENT_START","addChecksumToMarkup","existingChecksum","makeInsertMarkup","toIndex","fromIndex","makeMove","makeRemove","makeSetMarkup","makeTextContent","processQueue","_reconcilerInstantiateChildren","nestedChildren","_reconcilerUpdateChildren","nextNestedChildrenElements","_updateChildren","nextIndex","nextMountIndex","lastPlacedNode","_mountChildAtIndex","_unmountChild","createChild","isValidOwner","ReactOwner","addComponentAsRefTo","removeComponentAsRefFrom","ownerPublicInstance","reactMountReady","SELECTION_RESTORATION","EVENT_SUPPRESSION","currentlyEnabled","previouslyEnabled","ON_DOM_READY_QUEUEING","prevRef","prevOwner","nextRef","nextOwner","ReactServerUpdateQueue","noopCallbackQueue","NS","xlink","xml","ATTRS","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipRule","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillRule","filter","filterRes","filterUnits","floodColor","focusable","fontSizeAdjust","fontStretch","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerMid","markerStart","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","operator","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","rotate","rx","ry","scale","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","stdDeviation","stemh","stemv","stitchTiles","stopColor","strikethroughPosition","strikethroughThickness","stroke","strokeLinecap","strokeLinejoin","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textRendering","textLength","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","viewBox","viewTarget","visibility","widths","wordSpacing","writingMode","xHeight","x1","x2","xChannelSelector","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlns","xmlnsXlink","xmlLang","xmlSpace","y1","y2","yChannelSelector","z","zoomAndPan","top","boundingTop","left","boundingLeft","constructSelectEvent","mouseDown","currentSelection","lastSelection","skipSelectionChangeEvent","hasListener","SyntheticAnimationEvent","SyntheticClipboardEvent","SyntheticFocusEvent","SyntheticKeyboardEvent","SyntheticDragEvent","SyntheticTouchEvent","SyntheticTransitionEvent","SyntheticWheelEvent","topLevelEventsToDispatchConfig","capitalizedEvent","onEvent","topEvent","onClickListeners","EventConstructor","AnimationEventInterface","animationName","elapsedTime","pseudoElement","ClipboardEventInterface","clipboardData","CompositionEventInterface","DragEventInterface","dataTransfer","FocusEventInterface","InputEventInterface","getEventKey","KeyboardEventInterface","repeat","locale","TouchEventInterface","touches","targetTouches","changedTouches","TransitionEventInterface","WheelEventInterface","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","MOD","componentOrElement","flattenSingleChildIntoContext","normalizeKey","translateToKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","getLeafNode","getSiblingNode","nodeStart","nodeEnd","makePrefixMap","styleProp","prefixedEventNames","vendorPrefixes","prefixMap","animationend","animationiteration","animationstart","transitionend","animation","transition","escapeUserProvidedKey","userProvidedKeyEscapeRegex","ForEachBookKeeping","forEachFunction","forEachContext","forEachSingleChild","forEachChildren","forEachFunc","MapBookKeeping","mapResult","keyPrefix","mapFunction","mapContext","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","escapedPrefix","mapChildren","forEachSingleChildDummy","countChildren","identity","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassInterface","ReactClassMixin","mixSpecIntoComponent","spec","proto","autoBindPairs","__reactAutoBindPairs","MIXINS_KEY","RESERVED_SPEC_KEYS","mixins","isReactClassMethod","isFunction","shouldAutoBind","autobind","createMergedResultFunction","createChainedFunction","mixStaticSpecIntoComponent","statics","isReserved","isInherited","mergeIntoWithNoDuplicateKeys","one","two","bindAutoBindMethod","boundMethod","bindAutoBindMethods","pairs","autoBindKey","injectedMixins","getDefaultProps","getInitialState","replaceState","newState","ReactClassComponent","injectMixin","createDOMFactory","abbr","address","article","aside","audio","bdi","bdo","big","blockquote","canvas","datalist","dd","del","details","dfn","dialog","dl","dt","fieldset","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","head","header","hgroup","iframe","ins","kbd","li","main","mark","menu","meter","nav","noscript","ol","output","picture","progress","q","rp","rt","ruby","samp","script","section","small","strong","sub","sup","table","u","ul","var","video","circle","defs","ellipse","g","line","linearGradient","polygon","polyline","radialGradient","rect","stop","tspan","ReactPropTypeLocationNames","_require","ComponentDummy","getNextDebugID","nextDebugID","bytesToUuid","buf","bth","byteToHex","global","rng","crypto","msCrypto","getRandomValues","rnds8","Uint8Array","rnds","v4","eval","_HelpResultView","_HelpResultView2","_AboutResultView","_AboutResultView2","_BitwiseOperationExpressionView","_BitwiseOperationExpressionView2","_WhatsnewResultView","_WhatsnewResultView2","DisplayResult","pathname","findResultComponent","AboutResultView","BinaryStringView","getChildren","allowFlipBits","onFlipBit","binaryString","$event","bits","createBits","splitIntoBytes","bitChars","css","classNames","0","1","onBitClick","bytes","_extends","_formatter","_formatter2","_BinaryStringView","_BinaryStringView2","_BitwiseExpressionViewModel","_BitwiseExpressionViewModel2","_loglevel","_loglevel2","BitwiseOperationEpxressionView","getRows","model","buildListOfNumbers","buildMultiple","items","itm","ExpressionRow","maxNumberOfBits","onBitFlipped","_React$Component2","operand","_props","getLabel","padLeft","toBinaryString","idx","flipBit","getOther","bin","setValue","_CommandLink","_CommandLink2","HelpResultView","float","marginRight","WhatsnewResultView","BitwiseExpressionViewModel","_ref","_ref$emphasizeBytes","_ref$allowFlipBits","getLengthInBits","resultOperand","dec","addOperand","getNumberOfBits","expressions","cur","isNotExpression","addExpression","notResult","addExpressionResult","isShiftExpression","addShiftExpressionResult","expressionString","resultValue","resultOp","maxBitsLegnth","reduce","applyParser","radix","parsers","parseOperator","getBase","formatString","sb","_reactDom","_reactDom2","_AppState","_AppState2","_appStateStore","_appStateStore2","_commands","_commands2","_AppRoot","_AppRoot2","_hash","_hash2","host","hash","stateData","debug","hashArgs","startupCommands","getElementById","constructedFrom","ctor","htmlElement","HtmlElement"],"mappings":"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","file":"bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"http://localhost:8080/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 204);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 validateFormat = function validateFormat(format) {};\n\nif (false) {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\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(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(6);\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 (false) {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var 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 warning = function warning(condition, format) {\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 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMProperty = __webpack_require__(15);\nvar ReactDOMComponentFlags = __webpack_require__(61);\n\nvar invariant = __webpack_require__(0);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n true ? false ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? false ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nvar emptyFunction = function 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/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (false) {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(17);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar CallbackQueue = __webpack_require__(59);\nvar PooledClass = __webpack_require__(12);\nvar ReactFeatureFlags = __webpack_require__(64);\nvar ReactReconciler = __webpack_require__(16);\nvar Transaction = __webpack_require__(28);\n\nvar invariant = __webpack_require__(0);\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? false ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function initialize() {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function close() {\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 initialize() {\n this.callbackQueue.reset();\n },\n close: function close() {\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(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function destructor() {\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 perform(method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.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 return 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) ? false ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\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 // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\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 var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\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 flushBatchedUpdates() {\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};\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 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 if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\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 ? false ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function injectReconcileTransaction(ReconcileTransaction) {\n !ReconcileTransaction ? false ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function injectBatchingStrategy(_batchingStrategy) {\n !_batchingStrategy ? false ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? false ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? false ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\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/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\n\nvar emptyFunction = __webpack_require__(6);\nvar warning = __webpack_require__(1);\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: 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 timeStamp(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 {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (false) {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (false) {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\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 return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function preventDefault() {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function stopPropagation() {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\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 persist() {\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 destructor() {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (false) {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (false) {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (false) {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function construct(target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function apply(constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function set(target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\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 E = function E() {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\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 * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n false ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n }\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 */\n\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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 oneArgumentPooler(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 twoArgumentPooler(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 threeArgumentPooler(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 fourArgumentPooler(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 standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n !(instance instanceof Klass) ? false ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\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.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CommandResult = function () {\n function CommandResult(input) {\n _classCallCheck(this, CommandResult);\n\n this.input = input;\n this.inputHash = this.encodeHash(input);\n }\n\n _createClass(CommandResult, [{\n key: 'encodeHash',\n value: function encodeHash(string) {\n return encodeURI(string.trim().replace(/\\s/g, ','));\n }\n }]);\n\n return CommandResult;\n}();\n\nexports.default = CommandResult;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = __webpack_require__(34);\nvar setInnerHTML = __webpack_require__(30);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(42);\nvar setTextContent = __webpack_require__(76);\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\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 injectDOMPropertyConfig(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) ? false ? 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) : _prodInvariant('48', propName) : void 0;\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 mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\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 !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? false ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;\n\n if (false) {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (false) {\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};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\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 ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\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 * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\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 *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: false ? { autofocus: 'autoFocus' } : 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 isCustomAttribute(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 injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactRef = __webpack_require__(148);\nvar ReactInstrumentation = __webpack_require__(7);\n\nvar warning = __webpack_require__(1);\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function getHostNode(internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent(internalInstance, safely) {\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\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 receiveComponent(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 if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\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 if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\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 performUpdateIfNecessary(internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n false ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactChildren = __webpack_require__(177);\nvar ReactComponent = __webpack_require__(49);\nvar ReactPureComponent = __webpack_require__(182);\nvar ReactClass = __webpack_require__(178);\nvar ReactDOMFactories = __webpack_require__(179);\nvar ReactElement = __webpack_require__(18);\nvar ReactPropTypes = __webpack_require__(181);\nvar ReactVersion = __webpack_require__(183);\n\nvar onlyChild = __webpack_require__(186);\nvar warning = __webpack_require__(1);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (false) {\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (false) {\n var warned = false;\n __spread = function __spread() {\n process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;\n warned = true;\n return _assign.apply(null, arguments);\n };\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 PureComponent: ReactPureComponent,\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 createMixin(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 // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\n// TODO: Fix tests so that this deprecation warning doesn't cause failures.\nif (false) {\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n }\n}\n\nmodule.exports = React;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _assign = __webpack_require__(3);\n\nvar ReactCurrentOwner = __webpack_require__(11);\n\nvar warning = __webpack_require__(1);\nvar canDefineProperty = __webpack_require__(80);\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = __webpack_require__(79);\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (false) {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (false) {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function warnAboutAccessingKey() {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n false ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function warnAboutAccessingRef() {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n false ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\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 ReactElement(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 (false) {\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 if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\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 if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\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 (hasOwnProperty.call(config, 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 if (false) {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\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 (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (false) {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\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. `.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\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\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 (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\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 * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\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 === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyObject = {};\n\nif (false) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar EventPluginRegistry = __webpack_require__(35);\nvar EventPluginUtils = __webpack_require__(36);\nvar ReactErrorUtils = __webpack_require__(40);\n\nvar accumulateInto = __webpack_require__(70);\nvar forEachAccumulated = __webpack_require__(71);\nvar invariant = __webpack_require__(0);\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 executeDispatchesAndRelease(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 executeDispatchesAndReleaseSimulated(e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function executeDispatchesAndReleaseTopLevel(e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\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 {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 /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function putListener(inst, registrationName, listener) {\n !(typeof listener === 'function') ? false ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : _prodInvariant('94', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function getListener(inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function deleteListener(inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function deleteAllListeners(inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function extractEvents(topLevelType, targetInst, 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, targetInst, 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 enqueueEvents(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 processEventQueue(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 ? false ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\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 __purge() {\n listenerBank = {};\n },\n\n __getListenerBank: function __getListenerBank() {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginUtils = __webpack_require__(36);\n\nvar accumulateInto = __webpack_require__(70);\nvar forEachAccumulated = __webpack_require__(71);\nvar warning = __webpack_require__(1);\n\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(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, 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(inst, phase, event) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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 EventPluginUtils.traverseTwoPhase(event._targetInst, 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 var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, 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(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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._targetInst, 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, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, 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/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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();\n\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 remove(key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function get(key) {\n return key._reactInternalInstance;\n },\n\n has: function has(key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function set(key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getEventTarget = __webpack_require__(45);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function view(event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (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 detail(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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _is = __webpack_require__(205);\n\nvar _is2 = _interopRequireDefault(_is);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar handlers = [];\n\nvar config = {\n errorHandler: function errorHandler(input, err) {\n return logError(err);\n }\n};\n\nvar cmd = {\n debugMode: false,\n execute: function execute(rawInput) {\n var input = rawInput.trim().toLowerCase();\n var handler = findHandler(input);\n\n if (handler != null) {\n if (this.debugMode) {\n invokeHandler(input, handler);\n } else {\n try {\n invokeHandler(input, handler);\n } catch (e) {\n config.errorHandler(input, e);\n }\n }\n } else {\n logError(input, new Error(\"Unsupported expression: \" + input.trim()));\n }\n },\n commands: function commands(catalog) {\n for (var key in catalog) {\n if (catalog.hasOwnProperty(key)) {\n this.command(key, catalog[key]);\n }\n }\n },\n command: function command(cmd, handler) {\n var h = createHandler(cmd, handler);\n if (h == null) {\n console.warn('unexpected set of arguments: ', Array.prototype.splice.call(arguments));\n return;\n }\n\n if (!_is2.default.aFunction(h.canHandle)) {\n console.warn('handler is missing \"canHandle\" function. registration denied.');\n return;\n }\n\n if (!_is2.default.aFunction(h.handle)) {\n console.warn('handler is missing \"handle\" function. registration denied.');\n return;\n }\n\n handlers.push(h);\n },\n clear: function clear() {\n console.log('clear');\n },\n onError: function onError(handler) {\n config.errorHandler = handler;\n }\n};\n\nfunction logError(err) {\n console.error(err);\n}\n\nfunction invokeHandler(input, handler) {\n\n var cmdResult = handler.handle({ input: input });\n if (cmdResult != null) {\n console.log(cmdResult);\n }\n}\n\nfunction createHandler(cmd, handler) {\n if (_is2.default.plainObject(cmd)) {\n return cmd;\n }\n\n if (_is2.default.string(cmd)) {\n return { canHandle: function canHandle(input) {\n return input === cmd;\n }, handle: handler };\n }\n\n return null;\n}\n\nfunction findHandler(input) {\n var i = 0;\n for (i; i < handlers.length; i++) {\n if (handlers[i].canHandle(input)) {\n return handlers[i];\n }\n }\n};\n\nexports.default = cmd;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar EventPluginRegistry = __webpack_require__(35);\nvar ReactEventEmitterMixin = __webpack_require__(140);\nvar ViewportMetrics = __webpack_require__(69);\n\nvar getVendorPrefixedEventName = __webpack_require__(172);\nvar isEventSupported = __webpack_require__(46);\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 hasEventPageXY;\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 topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\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 topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\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 * EventPluginHub.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 injectReactEventListener(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 setEnabled(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 isEnabled() {\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 listenTo(registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('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('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('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('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.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 trapBubbledEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function trapCapturedEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function supportsEventPageXY() {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\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 * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function ensureScrollValueMonitoring() {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\nvar ViewportMetrics = __webpack_require__(69);\n\nvar getEventModifierState = __webpack_require__(44);\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 button(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 relatedTarget(event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function pageX(event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function pageY(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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar OBSERVED_ERROR = {};\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 *
\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 * 
\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} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar TransactionImpl = {\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 reinitializeTransaction() {\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} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function isInTransaction() {\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 perform(method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? false ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\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 initializeAll(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] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === 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 closeAll(startIndex) {\n !this.isInTransaction() ? false ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\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 !== 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\nmodule.exports = TransactionImpl;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\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 if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\nvar DOMNamespaces = __webpack_require__(34);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(42);\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\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 = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\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 setInnerHTML(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 testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Parser = exports.parser = exports.MultipleOperandsExpression = exports.ListOfNumbersExpression = exports.ExpressionOperand = exports.ExpressionError = exports.Operand = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Operand = __webpack_require__(83);\n\nObject.defineProperty(exports, 'Operand', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_Operand).default;\n }\n});\n\nvar _ExpressionError = __webpack_require__(82);\n\nObject.defineProperty(exports, 'ExpressionError', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ExpressionError).default;\n }\n});\n\nvar _ExpressionOperand = __webpack_require__(199);\n\nObject.defineProperty(exports, 'ExpressionOperand', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ExpressionOperand).default;\n }\n});\n\nvar _ListOfNumbersExpression = __webpack_require__(200);\n\nObject.defineProperty(exports, 'ListOfNumbersExpression', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_ListOfNumbersExpression).default;\n }\n});\n\nvar _MultipleOperandsExpression = __webpack_require__(201);\n\nObject.defineProperty(exports, 'MultipleOperandsExpression', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_MultipleOperandsExpression).default;\n }\n});\n\nvar _Operand2 = _interopRequireDefault(_Operand);\n\nvar _ExpressionOperand2 = _interopRequireDefault(_ExpressionOperand);\n\nvar _ListOfNumbersExpression2 = _interopRequireDefault(_ListOfNumbersExpression);\n\nvar _MultipleOperandsExpression2 = _interopRequireDefault(_MultipleOperandsExpression);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar expression = {\n factories: [],\n canParse: function canParse(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = this.factories.length - 1;\n for (; i >= 0; i--) {\n if (this.factories[i].canCreate(trimmed) === true) {\n return true;\n }\n }\n return false;\n },\n parse: function parse(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = 0,\n l = this.factories.length,\n factory;\n\n for (; i < l; i++) {\n factory = this.factories[i];\n\n if (factory.canCreate(trimmed) == true) {\n return factory.create(trimmed);\n }\n }\n\n return null;\n },\n parseOperand: function parseOperand(input) {\n return _Operand2.default.parse(input);\n },\n createOperand: function createOperand(number, kind) {\n return _Operand2.default.create(number, kind);\n },\n addFactory: function addFactory(factory) {\n this.factories.push(factory);\n }\n};\n\n// List of numbers\nexpression.addFactory({\n regex: /^(-?(?:\\d+|0x[\\d,a-f]+|0b[0-1])\\s?)+$/,\n canCreate: function canCreate(string) {\n return this.regex.test(string);\n },\n create: function create(string) {\n var matches = this.regex.exec(string),\n numbers = [],\n input = matches.input;\n\n input.split(' ').forEach(function (n) {\n if (n.trim().length > 0) {\n numbers.push(_Operand2.default.parse(n.trim()));\n }\n });\n\n return new _ListOfNumbersExpression2.default(input, numbers);\n }\n});\n\n// Multiple operands expression\nexpression.addFactory({\n fullRegex: /^((<<|>>|>>>|\\||\\&|\\^)?(~?-?([b,x,a-f,0-9]+)))+$/,\n regex: /(<<|>>|>>>|\\||\\&|\\^)?(~?-?(?:[b,x,a-f,0-9]+))/g,\n canCreate: function canCreate(string) {\n this.fullRegex.lastIndex = 0;\n return this.fullRegex.test(this.normalizeString(string));\n },\n create: function create(string) {\n var m,\n operands = [],\n normalizedString = this.normalizeString(string);\n\n while ((m = this.regex.exec(normalizedString)) != null) {\n operands.push(this.parseMatch(m));\n }\n\n return new _MultipleOperandsExpression2.default(normalizedString, operands);\n },\n parseMatch: function parseMatch(m) {\n // console.log('match');\n // console.log(m);\n var input = m[0],\n sign = m[1],\n num = m[2];\n\n var op = null;\n if (num.indexOf('~') == '0') {\n op = new _ExpressionOperand2.default(input, _Operand2.default.parse(num.substring(1)), '~');\n } else {\n op = _Operand2.default.parse(num);\n }\n\n if (sign == null) {\n return op;\n } else {\n return new _ExpressionOperand2.default(input, op, sign);\n }\n },\n normalizeString: function normalizeString(string) {\n return string.replace(/\\s+/g, '');\n }\n});\n\nvar parser = exports.parser = expression;\n\nvar Parser = exports.Parser = function () {\n function Parser(input, pos) {\n _classCallCheck(this, Parser);\n\n this.input = input;\n this.pos = pos || 0;\n this.buffer = [];\n }\n\n _createClass(Parser, [{\n key: 'parse',\n value: function parse() {\n console.log(this.input.length);\n while (this.pos < this.input.length) {\n this.buffer.push(this.input[this.pos]);\n this.pos++;\n }\n console.log('exit');\n }\n }]);\n\n return Parser;\n}();\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\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 (is(objA, objB)) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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 for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMLazyTree = __webpack_require__(14);\nvar Danger = __webpack_require__(117);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstrumentation = __webpack_require__(7);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(42);\nvar setInnerHTML = __webpack_require__(30);\nvar setTextContent = __webpack_require__(76);\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\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 */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (false) {\n dangerouslyReplaceNodeWithMarkup = function dangerouslyReplaceNodeWithMarkup(oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\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} updates List of update configurations.\n * @internal\n */\n processUpdates: function processUpdates(parentNode, updates) {\n if (false) {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: { toIndex: update.toIndex, content: update.content.toString() }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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) ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !pluginModule.extractEvents ? false ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? false ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\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) ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\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] ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (false) {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\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 * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: false ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\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 injectEventPluginOrder(injectedEventPluginOrder) {\n !!eventPluginOrder ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;\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 injectEventPluginsByName(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] ? false ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\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 getPluginModuleForEvent(event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function _resetEventPlugins() {\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 if (false) {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactErrorUtils = __webpack_require__(40);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function injectComponentTree(Injected) {\n ComponentTree = Injected;\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function injectTreeTraversal(Injected) {\n TreeTraversal = Injected;\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (false) {\n validateEventDispatches = function validateEventDispatches(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\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 {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\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 dispatchInstances = event._dispatchInstances;\n if (false) {\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 Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = 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 dispatchInstances = event._dispatchInstances;\n if (false) {\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 Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = 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 (false) {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? false ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = 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 getInstanceFromNode: function getInstanceFromNode(node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function getNodeFromInstance(node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function isAncestor(a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function getLowestCommonAncestor(a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function getParentInstance(inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function traverseTwoPhase(target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function traverseEnterLeave(from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactPropTypesSecret = __webpack_require__(146);\nvar propTypesFactory = __webpack_require__(57);\n\nvar React = __webpack_require__(17);\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\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) ? false ? 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.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? false ? 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.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? false ? 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') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function value(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 checked(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: PropTypes.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 checkPropTypes(tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\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 false ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\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 getValue(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 getChecked(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 executeOnChange(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/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: 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 injectEnvironment(environment) {\n !!injected ? false ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\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 rethrowCaughtError() {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (false) {\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 document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(7);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg === 'undefined' ? 'undefined' : _typeof(arg);\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (false) {\n var ctor = publicInstance.constructor;\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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\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 isMounted(publicInstance) {\n if (false) {\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') : void 0;\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 * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function enqueueCallback(publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\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 enqueueCallbackInternal(internalInstance, callback) {\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 enqueueForceUpdate(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 enqueueReplaceState(publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\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 enqueueSetState(publicInstance, partialState) {\n if (false) {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\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 enqueueElementInternal: function enqueueElementInternal(internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function validateCallback(callback, callerName) {\n !(!callback || typeof callback === 'function') ? false ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function createMicrosoftUnsafeLocalFunction(func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\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/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\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/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\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/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 === 'undefined' ? 'undefined' : _typeof(prevElement);\n var nextType = typeof nextElement === 'undefined' ? 'undefined' : _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}\n\nmodule.exports = shouldUpdateReactComponent;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar emptyFunction = __webpack_require__(6);\nvar warning = __webpack_require__(1);\n\nvar validateDOMNesting = emptyFunction;\n\nif (false) {\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,
is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n //

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 , 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 current: 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 updatedAncestorInfo(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.current = 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 isTagValidWithParent(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 case '#document':\n return tag === 'html';\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 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\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 findInvalidAncestorForTag(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 case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\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 findOwnerStack(instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\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 validateDOMNesting(childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\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 var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\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>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(19);\n\nvar ReactNoopUpdateQueue = __webpack_require__(50);\n\nvar canDefineProperty = __webpack_require__(80);\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\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 === 'undefined' ? 'undefined' : _typeof(partialState)) === 'object' || typeof partialState === 'function' || partialState == null) ? false ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\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, 'forceUpdate');\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 (false) {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function defineDeprecationWarning(methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;\n return undefined;\n }\n });\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/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar warning = __webpack_require__(1);\n\nfunction warnNoop(publicInstance, callerName) {\n if (false) {\n var constructor = publicInstance.constructor;\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, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\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 isMounted(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 enqueueCallback(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 enqueueForceUpdate(publicInstance) {\n warnNoop(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 enqueueReplaceState(publicInstance, completeState) {\n warnNoop(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 enqueueSetState(publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n})(undefined, function () {\n \"use strict\";\n\n var noop = function noop() {};\n var undefinedType = \"undefined\";\n\n function realMethod(methodName) {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === undefinedType) {\n return false; // We can't build a real method without a console to log to\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function () {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // these private functions always need `this` to be set properly\n\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = i < level ? noop : this.methodFactory(methodName, level, loggerName);\n }\n }\n\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n var logMethods = [\"trace\", \"debug\", \"info\", \"warn\", \"error\"];\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n if ((typeof storedLevel === 'undefined' ? 'undefined' : _typeof(storedLevel)) === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(encodeURIComponent(storageKey) + \"=\");\n if (location) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n /*\n *\n * Public API\n *\n */\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5 };\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) {\n // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function (persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function (persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Package-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== undefinedType ? window.log : undefined;\n defaultLogger.noConflict = function () {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== undefinedType && window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n return defaultLogger;\n});\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _cmd = __webpack_require__(25);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InputBox = function (_React$Component) {\n _inherits(InputBox, _React$Component);\n\n function InputBox() {\n _classCallCheck(this, InputBox);\n\n var _this = _possibleConstructorReturn(this, (InputBox.__proto__ || Object.getPrototypeOf(InputBox)).call(this));\n\n _this.history = [];\n _this.historyIndex = -1;\n return _this;\n }\n\n _createClass(InputBox, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.nameInput.focus();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('input', { id: 'in', type: 'text',\n ref: function ref(input) {\n _this2.nameInput = input;\n },\n onKeyUp: function onKeyUp(e) {\n return _this2.onKeyUp(e);\n },\n onKeyDown: function onKeyDown(e) {\n return _this2.onKeyDown(e);\n },\n className: 'expressionInput mono',\n placeholder: 'type expression like \\'1>>2\\' or \\'help\\' ' });\n }\n }, {\n key: 'onKeyUp',\n value: function onKeyUp(e) {\n var input = e.target;\n if (e.keyCode != 13 || input.value.trim().length == 0) {\n return;\n }\n\n var value = input.value;\n this.history.unshift(value);\n this.historyIndex = -1;\n\n input.value = '';\n _cmd2.default.execute(value);\n }\n }, {\n key: 'onKeyDown',\n value: function onKeyDown(args) {\n\n if (args.keyCode == 38) {\n var newIndex = this.historyIndex + 1;\n\n if (this.history.length > newIndex) {\n // up\n args.target.value = this.history[newIndex];\n this.historyIndex = newIndex;\n }\n\n args.preventDefault();\n return;\n }\n\n if (args.keyCode == 40) {\n if (this.historyIndex > 0) {\n // down\n args.target.value = this.history[--this.historyIndex];\n }\n\n args.preventDefault();\n }\n }\n }]);\n\n return InputBox;\n}(_react2.default.Component);\n\nexports.default = InputBox;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, 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 * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(6);\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 listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\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 capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (false) {\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 registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\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/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\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\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\n\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\n\nvar factory = __webpack_require__(110);\nmodule.exports = function (isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: 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 gridRow: true,\n gridColumn: 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 floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: 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/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar PooledClass = __webpack_require__(12);\n\nvar invariant = __webpack_require__(0);\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 */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\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\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\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\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? false ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(15);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstrumentation = __webpack_require__(7);\n\nvar quoteAttributeValueForBrowser = __webpack_require__(173);\nvar warning = __webpack_require__(1);\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\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 false ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\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\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 createMarkupForID(id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function setAttributeForID(node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function createMarkupForRoot() {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function setAttributeForRoot(node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\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 createMarkupForProperty(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 }\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 createMarkupForCustomAttribute(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 setValueForProperty(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 return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\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 }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (false) {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n setValueForAttribute: function setValueForAttribute(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 if (false) {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function deleteValueForAttribute(node, name) {\n node.removeAttribute(name);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\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 deleteValueForProperty(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.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar LinkedValueUtils = __webpack_require__(38);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\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, Boolean(props.multiple), 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 if (props.valueLink !== undefined && !didWarnValueLink) {\n false ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n false ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n false ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\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 = ReactDOMComponentTree.getNodeFromInstance(inst).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> host 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 getHostProps: function getHostProps(inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\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 listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n false ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function getSelectValueContext(inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function postUpdateWrapper(inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this 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 if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function injectEmptyComponentFactory(factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function create(instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\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 injectGenericComponentClass(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 injectTextComponentClass(componentClass) {\n textComponentClass = componentClass;\n }\n};\n\n/**\n * Get a host 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 ? false ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\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 ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMSelection = __webpack_require__(133);\n\nvar containsNode = __webpack_require__(99);\nvar focusNode = __webpack_require__(54);\nvar getActiveElement = __webpack_require__(55);\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 hasSelectionCapabilities(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 getSelectionInformation() {\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 restoreSelection(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 getSelection(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 setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (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/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMLazyTree = __webpack_require__(14);\nvar DOMProperty = __webpack_require__(15);\nvar React = __webpack_require__(17);\nvar ReactBrowserEventEmitter = __webpack_require__(26);\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMContainerInfo = __webpack_require__(127);\nvar ReactDOMFeatureFlags = __webpack_require__(129);\nvar ReactFeatureFlags = __webpack_require__(64);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(7);\nvar ReactMarkupChecksum = __webpack_require__(143);\nvar ReactReconciler = __webpack_require__(16);\nvar ReactUpdateQueue = __webpack_require__(41);\nvar ReactUpdates = __webpack_require__(9);\n\nvar emptyObject = __webpack_require__(20);\nvar instantiateReactComponent = __webpack_require__(74);\nvar invariant = __webpack_require__(0);\nvar setInnerHTML = __webpack_require__(30);\nvar shouldUpdateReactComponent = __webpack_require__(47);\nvar warning = __webpack_require__(1);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\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\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.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\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(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, 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, safely) {\n if (false) {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (false) {\n ReactInstrumentation.debugTool.onEndFlush();\n }\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(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : 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 topLevelRootCounter = 1;\nvar TopLevelWrapper = function TopLevelWrapper() {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (false) {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\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 /**\n * Used by devtools. The keys are not important.\n */\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 scrollMonitor(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 _updateRootComponent(prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\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 _renderNewRootComponent(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 false ? 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') : void 0;\n\n !isValidContainer(container) ? false ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\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, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\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 renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? false ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function _renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? false ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\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.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n false ? 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.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\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 (false) {\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.') : void 0;\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.') : void 0;\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, nextContext)._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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\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 render(nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\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 unmountComponentAtNode(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 false ? 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') : void 0;\n\n !isValidContainer(container) ? false ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\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 isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (false) {\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.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function _mountImageIntoNode(markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? false ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, 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 (false) {\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) ? false ? 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) : _prodInvariant('42', difference) : void 0;\n\n if (false) {\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) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? false ? 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.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (false) {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar React = __webpack_require__(17);\n\nvar invariant = __webpack_require__(0);\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function getType(node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n true ? false ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function refreshScrollValues(scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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) ? false ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\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 if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\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/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 */\n\nfunction forEachAccumulated(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/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactNodeTypes = __webpack_require__(68);\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\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/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar ReactCompositeComponent = __webpack_require__(124);\nvar ReactEmptyComponent = __webpack_require__(63);\nvar ReactHostComponent = __webpack_require__(65);\n\nvar getNextDebugID = __webpack_require__(185);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function ReactCompositeComponentWrapper(element) {\n this.construct(element);\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 * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (false) {\n if (type === undefined || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + 'it\\'s defined in.';\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n true ? false ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type === 'undefined' ? 'undefined' : _typeof(type), info) : _prodInvariant('130', type == null ? type : typeof type === 'undefined' ? 'undefined' : _typeof(type), info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.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\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n true ? false ? invariant(false, 'Encountered invalid React node of type %s', typeof node === 'undefined' ? 'undefined' : _typeof(node)) : _prodInvariant('131', typeof node === 'undefined' ? 'undefined' : _typeof(node)) : void 0;\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\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 (false) {\n instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\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 (false) {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\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\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\nvar escapeTextContentForBrowser = __webpack_require__(29);\nvar setInnerHTML = __webpack_require__(30);\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 setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function setTextContent(node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar REACT_ELEMENT_TYPE = __webpack_require__(139);\n\nvar getIteratorFn = __webpack_require__(170);\nvar invariant = __webpack_require__(0);\nvar KeyEscapeUtils = __webpack_require__(37);\nvar warning = __webpack_require__(1);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && (typeof component === 'undefined' ? 'undefined' : _typeof(component)) === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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 === 'undefined' ? 'undefined' : _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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 (false) {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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 (false) {\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 true ? false ? 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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(19);\n\nvar ReactCurrentOwner = __webpack_require__(11);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty)\n // Strip regex characters so we can use it for regex\n .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n // Remove hasOwnProperty from the template to make it generic\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function setItem(id, item) {\n itemMap.set(id, item);\n };\n getItem = function getItem(id) {\n return itemMap.get(id);\n };\n removeItem = function removeItem(id) {\n itemMap['delete'](id);\n };\n getItemIDs = function getItemIDs() {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function addRoot(id) {\n rootIDSet.add(id);\n };\n removeRoot = function removeRoot(id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function getRootIDs() {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function getKeyFromID(id) {\n return '.' + id;\n };\n var getIDFromKey = function getIDFromKey(key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function setItem(id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function getItem(id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function removeItem(id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function getItemIDs() {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function addRoot(id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function removeRoot(id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function getRootIDs() {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction _getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n false ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function onSetChildren(id, nextChildIDs) {\n var item = getItem(id);\n !item ? false ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? false ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || _typeof(nextChild.element) !== 'object' || nextChild.element == null) ? false ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? false ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? false ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function onBeforeMountComponent(id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function onBeforeUpdateComponent(id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function onMountComponent(id) {\n var item = getItem(id);\n !item ? false ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function onUpdateComponent(id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function onUnmountComponent(id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function purgeUnmountedComponents() {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function isMounted(id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function getCurrentStackAddendum(topElement) {\n var info = '';\n if (topElement) {\n var name = _getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function getStackAddendumByID(id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function getChildIDs(id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function getDisplayName(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return _getDisplayName(element);\n },\n getElement: function getElement(id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function getOwnerID(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function getParentID(id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function getSource(id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function getText(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function getUpdateCount(id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar canDefineProperty = false;\nif (false) {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function get() {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _cmd = __webpack_require__(25);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CommandLink = function (_React$Component) {\n _inherits(CommandLink, _React$Component);\n\n function CommandLink() {\n _classCallCheck(this, CommandLink);\n\n return _possibleConstructorReturn(this, (CommandLink.__proto__ || Object.getPrototypeOf(CommandLink)).apply(this, arguments));\n }\n\n _createClass(CommandLink, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement(\n 'a',\n { href: 'javascript:void(0)', onClick: function onClick(e) {\n return _cmd2.default.execute(_this2.props.command || _this2.props.text);\n } },\n this.props.text\n );\n }\n }]);\n\n return CommandLink;\n}(_react2.default.Component);\n\nexports.default = CommandLink;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ExpressionError = function (_Error) {\n _inherits(ExpressionError, _Error);\n\n function ExpressionError(message) {\n _classCallCheck(this, ExpressionError);\n\n return _possibleConstructorReturn(this, (ExpressionError.__proto__ || Object.getPrototypeOf(ExpressionError)).call(this, message));\n }\n\n return ExpressionError;\n}(Error);\n\nexports.default = ExpressionError;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _numberParser = __webpack_require__(202);\n\nvar _numberParser2 = _interopRequireDefault(_numberParser);\n\nvar _ExpressionError = __webpack_require__(82);\n\nvar _ExpressionError2 = _interopRequireDefault(_ExpressionError);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 1;\n\n// Represents numeric value\n\nvar Operand = function () {\n function Operand(cfg) {\n _classCallCheck(this, Operand);\n\n this.id = id++;\n this.value = cfg.value;\n this.kind = cfg.kind;\n this.lengthInBits = Operand.getBitLength(this.value);\n this.isExpression = false;\n }\n\n _createClass(Operand, [{\n key: 'getLengthInBits',\n value: function getLengthInBits() {\n if (this.value < 0) {\n return 32;\n }\n return Math.floor(Math.log(this.value) / Math.log(2)) + 1;\n }\n }, {\n key: 'getOtherKind',\n value: function getOtherKind(kind) {\n switch (kind || this.kind) {\n case 'dec':\n case 'bin':\n return 'hex';\n case 'hex':\n return 'dec';\n default:\n throw new Error(kind + \" kind doesn't have opposite kind\");\n }\n }\n }, {\n key: 'toString',\n value: function toString(kind) {\n return Operand.toKindString(this.value, kind || this.kind);\n }\n }, {\n key: 'toOtherKindString',\n value: function toOtherKindString() {\n return this.toString(this.getOtherKind());\n }\n }, {\n key: 'toDecimalString',\n value: function toDecimalString() {\n return this.toString('dec');\n }\n }, {\n key: 'toHexString',\n value: function toHexString() {\n return this.toString('hex');\n }\n }, {\n key: 'toBinaryString',\n value: function toBinaryString() {\n return this.toString('bin');\n }\n }, {\n key: 'setValue',\n value: function setValue(value) {\n console.log('Operand:%s.setValue: %s', this.id, this.value);\n this.value = value;\n }\n }, {\n key: 'apply',\n value: function apply() {\n return this;\n }\n }], [{\n key: 'getBitLength',\n value: function getBitLength(num) {\n return Math.floor(Math.log(num) / Math.log(2)) + 1;\n }\n }, {\n key: 'getBase',\n value: function getBase(kind) {\n switch (kind) {\n case 'bin':\n return 2;\n case 'hex':\n return 16;\n case 'dec':\n return 10;\n }\n }\n }, {\n key: 'create',\n value: function create(value, kind) {\n\n return new Operand({\n value: value,\n kind: kind,\n input: Operand.toKindString(value, kind)\n });\n }\n }, {\n key: 'parse',\n value: function parse(input) {\n\n var parsed = _numberParser2.default.parse(input);\n\n if (!parsed) {\n throw new _ExpressionError2.default(input + \" is not a valid number\");\n }\n\n return new Operand(parsed);\n }\n }, {\n key: 'toKindString',\n value: function toKindString(value, kind) {\n switch (kind) {\n case 'hex':\n var hexVal = Math.abs(value).toString(16);\n return value >= 0 ? '0x' + hexVal : '-0x' + hexVal;\n case 'bin':\n return (value >>> 0).toString(2);\n case 'dec':\n return value.toString(10);\n default:\n throw new Error(\"Unexpected kind: \" + kind);\n }\n }\n }, {\n key: 'toHexString',\n value: function toHexString(hex) {\n return hex.indexOf('-') == 0 ? '-0x' + hex.substr(1) : '0x' + hex;\n }\n }]);\n\n return Operand;\n}();\n\nexports.default = Operand;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AboutResult = function (_CommandResult) {\n _inherits(AboutResult, _CommandResult);\n\n function AboutResult(input) {\n _classCallCheck(this, AboutResult);\n\n return _possibleConstructorReturn(this, (AboutResult.__proto__ || Object.getPrototypeOf(AboutResult)).call(this, input));\n }\n\n return AboutResult;\n}(_CommandResult3.default);\n\nexports.default = AboutResult;\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ErrorResult = function (_CommandResult) {\n _inherits(ErrorResult, _CommandResult);\n\n function ErrorResult(input, error) {\n _classCallCheck(this, ErrorResult);\n\n var _this = _possibleConstructorReturn(this, (ErrorResult.__proto__ || Object.getPrototypeOf(ErrorResult)).call(this, input));\n\n _this.error = error;\n return _this;\n }\n\n return ErrorResult;\n}(_CommandResult3.default);\n\nexports.default = ErrorResult;\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ExpressionResult = function (_CommandResult) {\n _inherits(ExpressionResult, _CommandResult);\n\n function ExpressionResult(input, expression) {\n _classCallCheck(this, ExpressionResult);\n\n var _this = _possibleConstructorReturn(this, (ExpressionResult.__proto__ || Object.getPrototypeOf(ExpressionResult)).call(this, input));\n\n _this.expression = expression;\n return _this;\n }\n\n return ExpressionResult;\n}(_CommandResult3.default);\n\nexports.default = ExpressionResult;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HelpResult = function (_CommandResult) {\n _inherits(HelpResult, _CommandResult);\n\n function HelpResult(input) {\n _classCallCheck(this, HelpResult);\n\n return _possibleConstructorReturn(this, (HelpResult.__proto__ || Object.getPrototypeOf(HelpResult)).call(this, input));\n }\n\n return HelpResult;\n}(_CommandResult3.default);\n\nexports.default = HelpResult;\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar StringResult = function (_CommandResult) {\n _inherits(StringResult, _CommandResult);\n\n function StringResult(input, text) {\n _classCallCheck(this, StringResult);\n\n var _this = _possibleConstructorReturn(this, (StringResult.__proto__ || Object.getPrototypeOf(StringResult)).call(this, input));\n\n _this.value = text;\n return _this;\n }\n\n return StringResult;\n}(_CommandResult3.default);\n\nexports.default = StringResult;\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UnknownCommandResult = function (_CommandResult) {\n _inherits(UnknownCommandResult, _CommandResult);\n\n function UnknownCommandResult(input) {\n _classCallCheck(this, UnknownCommandResult);\n\n var _this = _possibleConstructorReturn(this, (UnknownCommandResult.__proto__ || Object.getPrototypeOf(UnknownCommandResult)).call(this, input));\n\n _this.message = 'Sorry, i don\\'\\'t know what ' + input + ' is :(';\n return _this;\n }\n\n return UnknownCommandResult;\n}(_CommandResult3.default);\n\nexports.default = UnknownCommandResult;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(13);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar WhatsnewResult = function (_CommandResult) {\n _inherits(WhatsnewResult, _CommandResult);\n\n function WhatsnewResult(input) {\n _classCallCheck(this, WhatsnewResult);\n\n return _possibleConstructorReturn(this, (WhatsnewResult.__proto__ || Object.getPrototypeOf(WhatsnewResult)).call(this, input));\n }\n\n return WhatsnewResult;\n}(_CommandResult3.default);\n\nexports.default = WhatsnewResult;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(125);\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AppState = function () {\n function AppState(persistData) {\n _classCallCheck(this, AppState);\n\n this.emphasizeBytes = persistData.emphasizeBytes || true;\n this.commandResults = [];\n this.handlers = [];\n this.uiTheme = persistData.uiTheme || 'dark';\n this.debugMode = false;\n\n this.version = 4;\n this.persistedVersion = persistData.version || 0.1;\n this.wasOldVersion = persistData.version && this.version > this.persistedVersion;\n }\n\n _createClass(AppState, [{\n key: 'addCommandResult',\n value: function addCommandResult(result) {\n this.commandResults.unshift(result);\n this.triggerChanged();\n }\n }, {\n key: 'clearCommmandResults',\n value: function clearCommmandResults() {\n this.commandResults = [];\n this.triggerChanged();\n }\n }, {\n key: 'toggleEmphasizeBytes',\n value: function toggleEmphasizeBytes() {\n this.emphasizeBytes = !this.emphasizeBytes;\n this.triggerChanged();\n }\n }, {\n key: 'onChange',\n value: function onChange(handler) {\n this.handlers.push(handler);\n }\n }, {\n key: 'triggerChanged',\n value: function triggerChanged() {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var h = _step.value;\n\n h();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'setUiTheme',\n value: function setUiTheme(theme) {\n this.uiTheme = theme;\n this.triggerChanged();\n }\n }, {\n key: 'getPersistData',\n value: function getPersistData() {\n return {\n emphasizeBytes: this.emphasizeBytes,\n uiTheme: this.uiTheme,\n version: this.version\n };\n }\n }]);\n\n return AppState;\n}();\n\nexports.default = AppState;\n;\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar storeKey = 'AppState';\n\nexports.default = {\n getPersistedData: function getPersistedData() {\n var json = window.localStorage.getItem(storeKey);\n if (!json) {\n return {};\n }\n\n try {\n return JSON.parse(json);\n } catch (ex) {\n console.error('Failed to parse AppState json. Json Value: \\n' + json, ex);\n return {};\n }\n },\n watch: function watch(appState) {\n var _this = this;\n\n appState.onChange(function () {\n return _this.persistData(appState);\n });\n },\n persistData: function persistData(appState) {\n localStorage.setItem(storeKey, JSON.stringify(appState.getPersistData()));\n }\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _HelpResult = __webpack_require__(87);\n\nvar _HelpResult2 = _interopRequireDefault(_HelpResult);\n\nvar _AboutResult = __webpack_require__(84);\n\nvar _AboutResult2 = _interopRequireDefault(_AboutResult);\n\nvar _UnknownCommandResult = __webpack_require__(89);\n\nvar _UnknownCommandResult2 = _interopRequireDefault(_UnknownCommandResult);\n\nvar _ExpressionResult = __webpack_require__(86);\n\nvar _ExpressionResult2 = _interopRequireDefault(_ExpressionResult);\n\nvar _ErrorResult = __webpack_require__(85);\n\nvar _ErrorResult2 = _interopRequireDefault(_ErrorResult);\n\nvar _WhatsnewResult = __webpack_require__(90);\n\nvar _WhatsnewResult2 = _interopRequireDefault(_WhatsnewResult);\n\nvar _StringResult = __webpack_require__(88);\n\nvar _StringResult2 = _interopRequireDefault(_StringResult);\n\nvar _expression = __webpack_require__(31);\n\nvar expression = _interopRequireWildcard(_expression);\n\nvar _v = __webpack_require__(190);\n\nvar _v2 = _interopRequireDefault(_v);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconsole.log(_v2.default);\n\nvar cmdConfig = {};\n\nexports.default = {\n initialize: function initialize(cmd, appState) {\n\n cmd.commands({\n 'help': function help(c) {\n appState.addCommandResult(new _HelpResult2.default(c.input));\n },\n 'clear': function clear() {\n appState.clearCommmandResults();\n },\n 'em': function em() {\n appState.toggleEmphasizeBytes();\n },\n 'dark': function dark() {\n appState.setUiTheme('dark');\n },\n 'light': function light() {\n appState.setUiTheme('light');\n },\n 'midnight': function midnight() {\n appState.setUiTheme('midnight');\n },\n 'about': function about(c) {\n appState.addCommandResult(new _AboutResult2.default(c.input));\n },\n 'whatsnew': function whatsnew(c) {\n appState.addCommandResult(new _WhatsnewResult2.default(c.input));\n },\n 'guid': function guid(c) {\n appState.addCommandResult(new _StringResult2.default(c.input, (0, _v2.default)()));\n },\n '-notrack': function notrack() {},\n '-debug': function debug() {\n console.log('Debug mode on');\n cmd.debugMode = true;\n }\n });\n\n cmd.command({\n canHandle: function canHandle(input) {\n return expression.parser.canParse(input);\n },\n handle: function handle(c) {\n var expr = expression.parser.parse(c.input);\n appState.addCommandResult(new _ExpressionResult2.default(c.input, expr));\n }\n });\n\n // Last command handler reports that input is unknown\n cmd.command({\n canHandle: function canHandle() {\n return true;\n },\n handle: function handle(c) {\n return appState.addCommandResult(new _UnknownCommandResult2.default(c.input));\n }\n });\n\n cmd.onError(function (input, err) {\n return appState.addCommandResult(new _ErrorResult2.default(input, err));\n });\n }\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _InputBox = __webpack_require__(52);\n\nvar _InputBox2 = _interopRequireDefault(_InputBox);\n\nvar _DisplayResultView = __webpack_require__(192);\n\nvar _DisplayResultView2 = _interopRequireDefault(_DisplayResultView);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AppRoot = function (_React$Component) {\n _inherits(AppRoot, _React$Component);\n\n function AppRoot() {\n _classCallCheck(this, AppRoot);\n\n return _possibleConstructorReturn(this, (AppRoot.__proto__ || Object.getPrototypeOf(AppRoot)).apply(this, arguments));\n }\n\n _createClass(AppRoot, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n this.refresh();\n this.props.appState.onChange(function () {\n return _this2.refresh();\n });\n }\n }, {\n key: 'refresh',\n value: function refresh() {\n this.setState(this.props.appState);\n }\n }, {\n key: 'getIndicator',\n value: function getIndicator(value) {\n return value === true ? 'on' : 'off';\n }\n }, {\n key: 'getResultViews',\n value: function getResultViews() {\n var _this3 = this;\n\n var results = this.state.commandResults.map(function (r, i) {\n return _react2.default.createElement(_DisplayResultView2.default, { key: i, content: r, input: r.input, inputHash: r.inputHash, appState: _this3.props.appState });\n });\n return results;\n }\n }, {\n key: 'toggleEmphasizeBytes',\n value: function toggleEmphasizeBytes() {\n console.log(this.props.appState);\n this.props.appState.toggleEmphasizeBytes();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n return _react2.default.createElement(\n 'div',\n { className: 'app-root ' + this.state.uiTheme },\n _react2.default.createElement(\n 'div',\n { className: 'header' },\n _react2.default.createElement(\n 'h1',\n null,\n 'Bitwise',\n _react2.default.createElement(\n 'span',\n { className: 'header-cmd' },\n 'Cmd'\n )\n ),\n _react2.default.createElement(\n 'ul',\n { className: 'top-links' },\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'https://github.com/BorisLevitskiy/BitwiseCmd' },\n _react2.default.createElement(\n 'i',\n { className: 'icon github' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Project on GitHub'\n )\n )\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'https://twitter.com/BitwiseCmd' },\n _react2.default.createElement(\n 'i',\n { className: 'icon twitter' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Twitter'\n )\n )\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'mailto:bitwisecmd@gmail.com?subject=Feedback' },\n _react2.default.createElement(\n 'i',\n { className: 'icon feedback' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Send Feedback'\n )\n )\n )\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'expressionInput-container' },\n _react2.default.createElement(_InputBox2.default, null),\n _react2.default.createElement(\n 'span',\n { className: 'configPnl' },\n _react2.default.createElement(\n 'span',\n { id: 'emphasizeBytes', 'data-cmd': 'em', className: \"indicator \" + this.getIndicator(this.state.emphasizeBytes), title: 'Toggle Emphasize Bytes', onClick: function onClick(e) {\n return _this4.toggleEmphasizeBytes();\n } },\n '[em]'\n )\n )\n ),\n _react2.default.createElement(\n 'div',\n { id: 'output' },\n this.getResultViews()\n )\n );\n }\n }]);\n\n return AppRoot;\n}(_react2.default.Component);\n\nexports.default = AppRoot;\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n encodeHash: function encodeHash(string) {\n return encodeURI(string.trim().replace(/\\s/g, ','));\n },\n decodeHash: function decodeHash(hashValue) {\n return decodeURI(hashValue).replace(/^\\#/, '').replace(/,/g, ' ');\n },\n getArgs: function getArgs(hashValue) {\n\n var decodedHash = this.decodeHash(hashValue),\n args = { commands: [] };\n\n splitHashList(decodedHash).forEach(function (value) {\n args.commands.push(value);\n });\n\n return Object.freeze(args);\n }\n};\n\n\nfunction splitHashList(str) {\n var values = [];\n\n if (str.indexOf('||')) {\n str.split('||').forEach(function (v) {\n if (v.length > 0) {\n values.push(v);\n }\n });\n } else {\n values.push(str);\n }\n\n return values;\n}\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(97);\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/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(107);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\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 return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar invariant = __webpack_require__(0);\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 browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' || typeof obj === 'function')) ? false ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? false ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? false ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? false ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\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\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 === 'undefined' ? 'undefined' : _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/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar createArrayFromMixed = __webpack_require__(100);\nvar getMarkupWrap = __webpack_require__(102);\nvar invariant = __webpack_require__(0);\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 ? false ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\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 ? false ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar invariant = __webpack_require__(0);\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 ? false ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\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/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\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 */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\n\nvar hyphenate = __webpack_require__(104);\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/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar isNode = __webpack_require__(106);\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/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @typechecks static-only\n */\n\n\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\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/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nif (false) {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (false) {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\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 invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n 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', location, typeSpecName, typeof error === 'undefined' ? 'undefined' : _typeof(error));\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 stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar emptyFunction = __webpack_require__(6);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar ReactPropTypesSecret = __webpack_require__(111);\nvar checkPropTypes = __webpack_require__(109);\n\nmodule.exports = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var 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 */\n function 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\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\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var 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 symbol: createPrimitiveTypeChecker('symbol'),\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\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (false) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n } else if (false) {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName);\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\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\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\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 PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + 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 + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n false ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\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 (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n false ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(false, 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i);\n return emptyFunction.thatReturnsNull;\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, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue === 'undefined' ? 'undefined' : _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 || 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 function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue === 'undefined' ? 'undefined' : _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 if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\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 a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar focusNode = __webpack_require__(54);\n\nvar AutoFocusUtils = {\n focusDOMComponent: function focusDOMComponent() {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar FallbackCompositionState = __webpack_require__(120);\nvar SyntheticCompositionEvent = __webpack_require__(157);\nvar SyntheticInputEvent = __webpack_require__(160);\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 === 'undefined' ? 'undefined' : _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\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', '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 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case '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 === '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 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case '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 'topKeyPress':\n case 'topMouseDown':\n case '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 === 'undefined' ? 'undefined' : _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 * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, 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(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, 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 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case '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 '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 composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && 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 '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 '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 '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 * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, 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, targetInst, 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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar CSSProperty = __webpack_require__(58);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactInstrumentation = __webpack_require__(7);\n\nvar camelizeStyleName = __webpack_require__(98);\nvar dangerousStyleValue = __webpack_require__(166);\nvar hyphenateStyleName = __webpack_require__(105);\nvar memoizeStringOnly = __webpack_require__(108);\nvar warning = __webpack_require__(1);\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 (false) {\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 var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function warnHyphenatedStyleName(name, owner) {\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?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function warnBadVendoredStyleName(name, owner) {\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?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function warnStyleValueWithSemicolon(name, value, owner) {\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.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function warnStyleValueIsNaN(name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function checkRenderMessage(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 * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function warnValidStyle(name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\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 * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function createMarkupForStyles(styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (false) {\n warnValidStyle(styleName, styleValue, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\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 * @param {ReactDOMComponent} component\n */\n setValueForStyles: function setValueForStyles(node, styles, component) {\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (false) {\n warnValidStyle(styleName, styles[styleName], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\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\nmodule.exports = CSSPropertyOperations;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getEventTarget = __webpack_require__(45);\nvar isEventSupported = __webpack_require__(46);\nvar isTextInputElement = __webpack_require__(75);\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = 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') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === '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(target, targetInst);\n } else if (topLevelType === '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 // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function get() {\n return activeElementValueProp.get.call(this);\n },\n set: function set(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 IE <=11) 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) 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\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) 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 getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === '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 targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === '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-11, 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(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === '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 activeElementInst;\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 getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return targetInst;\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMLazyTree = __webpack_require__(14);\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar createNodesFromMarkup = __webpack_require__(101);\nvar emptyFunction = __webpack_require__(6);\nvar invariant = __webpack_require__(0);\n\nvar Danger = {\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 dangerouslyReplaceNodeWithMarkup(oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? false ? 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.') : _prodInvariant('56') : void 0;\n !markup ? false ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? false ? 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().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(22);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar SyntheticMouseEvent = __webpack_require__(27);\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.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 if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\n\nvar getTextContentAccessor = __webpack_require__(73);\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\n_assign(FallbackCompositionState.prototype, {\n destructor: function destructor() {\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 getText() {\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 getData() {\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/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(15);\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\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 HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function value(node, _value) {\n if (_value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + _value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + _value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactReconciler = __webpack_require__(16);\n\nvar instantiateReactComponent = __webpack_require__(74);\nvar KeyEscapeUtils = __webpack_require__(37);\nvar shouldUpdateReactComponent = __webpack_require__(47);\nvar traverseAllChildren = __webpack_require__(77);\nvar warning = __webpack_require__(1);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"production\" === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(78);\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (false) {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\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 instantiateChildren(nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (false) {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\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 updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\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;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n 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 removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\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 prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\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 * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function unmountChildren(renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56)))\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(33);\nvar ReactDOMIDOperations = __webpack_require__(130);\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 replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar React = __webpack_require__(17);\nvar ReactComponentEnvironment = __webpack_require__(39);\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactErrorUtils = __webpack_require__(40);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(7);\nvar ReactNodeTypes = __webpack_require__(68);\nvar ReactReconciler = __webpack_require__(16);\n\nif (false) {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar shallowEqual = __webpack_require__(32);\nvar shouldUpdateReactComponent = __webpack_require__(47);\nvar warning = __webpack_require__(1);\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\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 ReactCompositeComponent = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function construct(element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (false) {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? false ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (false) {\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`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\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 = updateQueue;\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 (false) {\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 || inst.state, '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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? false ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (false) {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function _constructComponent(doConstruct, publicProps, publicContext, updateQueue) {\n if (false) {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function _constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (false) {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (false) {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (false) {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\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 var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (false) {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function getHostNode() {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent(safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\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 = 0;\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 _maskContext(context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var 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 _processContext(context) {\n var maskedContext = this._maskContext(context);\n if (false) {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function _processChildContext(currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (false) {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(_typeof(Component.childContextTypes) === 'object') ? false ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (false) {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? false ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function _checkContextTypes(typeSpecs, values, location) {\n if (false) {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function receiveComponent(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 performUpdateIfNecessary(transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\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 updateComponent(transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? false ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\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 if (willReceive && inst.componentWillReceiveProps) {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (false) {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\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 _processPendingState(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 _performComponentUpdate(nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\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 if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\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 if (false) {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\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 _updateRenderedComponent(transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (false) {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (false) {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function _replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function _renderValidatedComponentWithoutOwnerOrContext() {\n var inst = this._instance;\n var renderedElement;\n\n if (false) {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (false) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function _renderValidatedComponent() {\n var renderedElement;\n if (\"production\" !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? false ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\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 attachRef(ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? false ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (false) {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, '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()) : void 0;\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 detachRef(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 getName() {\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 getPublicInstance() {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n\n\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDefaultInjection = __webpack_require__(138);\nvar ReactMount = __webpack_require__(67);\nvar ReactReconciler = __webpack_require__(16);\nvar ReactUpdates = __webpack_require__(9);\nvar ReactVersion = __webpack_require__(151);\n\nvar findDOMNode = __webpack_require__(167);\nvar getHostComponentFromComposite = __webpack_require__(72);\nvar renderSubtreeIntoContainer = __webpack_require__(174);\nvar warning = __webpack_require__(1);\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.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.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function getNodeFromInstance(inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (false) {\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 // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\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\" />') : void 0;\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.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (false) {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar AutoFocusUtils = __webpack_require__(113);\nvar CSSPropertyOperations = __webpack_require__(115);\nvar DOMLazyTree = __webpack_require__(14);\nvar DOMNamespaces = __webpack_require__(34);\nvar DOMProperty = __webpack_require__(15);\nvar DOMPropertyOperations = __webpack_require__(60);\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginRegistry = __webpack_require__(35);\nvar ReactBrowserEventEmitter = __webpack_require__(26);\nvar ReactDOMComponentFlags = __webpack_require__(61);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMInput = __webpack_require__(131);\nvar ReactDOMOption = __webpack_require__(132);\nvar ReactDOMSelect = __webpack_require__(62);\nvar ReactDOMTextarea = __webpack_require__(135);\nvar ReactInstrumentation = __webpack_require__(7);\nvar ReactMultiChild = __webpack_require__(144);\nvar ReactServerRenderingTransaction = __webpack_require__(149);\n\nvar emptyFunction = __webpack_require__(6);\nvar escapeTextContentForBrowser = __webpack_require__(29);\nvar invariant = __webpack_require__(0);\nvar isEventSupported = __webpack_require__(46);\nvar shallowEqual = __webpack_require__(32);\nvar validateDOMNesting = __webpack_require__(48);\nvar warning = __webpack_require__(1);\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.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 = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\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\nfunction friendlyStringify(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _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 because 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 false ? 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)) : void 0;\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 (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? false ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? false ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(_typeof(props.dangerouslySetInnerHTML) === 'object' && HTML in props.dangerouslySetInnerHTML) ? false ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !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.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || _typeof(props.style) === 'object') ? false ? 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)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (false) {\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') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (false) {\n setAndValidateContentChildDev = function setAndValidateContentChildDev(content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\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 ? false ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? false ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('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(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\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-case 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\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) ? false ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\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(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (false) {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (false) {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\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(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\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 _createOpenTagMarkupAndPutListeners(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, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (false) {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\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 if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\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 _createContentMarkup(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 if (false) {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\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 _createInitialChildren(transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, 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 // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (false) {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, 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 receiveComponent(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 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 updateComponent(transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\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 {?DOMElement} node\n */\n _updateDOMProperties: function _updateDOMProperties(lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\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, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (false) {\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, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently 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 CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\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 _updateDOMChildren(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 if (false) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (false) {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (false) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (false) {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function getHostNode() {\n return getNode(this);\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 unmountComponent(safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\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 '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 true ? false ? 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) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (false) {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function getPublicInstance() {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar validateDOMNesting = __webpack_require__(48);\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (false) {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar DOMLazyTree = __webpack_require__(14);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar ReactDOMEmptyComponent = function ReactDOMEmptyComponent(instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function receiveComponent() {},\n getHostNode: function getHostNode() {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function unmountComponent() {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(33);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\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 * @internal\n */\n dangerouslyProcessChildrenUpdates: function dangerouslyProcessChildrenUpdates(parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar DOMPropertyOperations = __webpack_require__(60);\nvar LinkedValueUtils = __webpack_require__(38);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host 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 getHostProps: function getHostProps(inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, 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 hostProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n\n if (false) {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n // eslint-disable-next-line\n if (value != valueAsNumber) {\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 node.value = '' + value;\n }\n // eslint-disable-next-line\n } else if (value != node.value) {\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 node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\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 = ReactDOMComponentTree.getNodeFromInstance(this);\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 radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? false ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\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/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar React = __webpack_require__(17);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMSelect = __webpack_require__(62);\n\nvar warning = __webpack_require__(1);\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n false ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function mountWrapper(inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value 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 var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function getHostProps(inst, props) {\n var hostProps = _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 hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar getNodeForCharacterOffset = __webpack_require__(171);\nvar getTextContentAccessor = __webpack_require__(73);\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 (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 programmatically 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 = 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/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar DOMChildrenOperations = __webpack_require__(33);\nvar DOMLazyTree = __webpack_require__(14);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar escapeTextContentForBrowser = __webpack_require__(29);\nvar invariant = __webpack_require__(0);\nvar validateDOMNesting = __webpack_require__(48);\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 between comment nodes so that they\n * can undergo 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 ReactDOMTextComponent(text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n if (false) {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\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 receiveComponent(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 commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function getHostNode() {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? false ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function unmountComponent() {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar LinkedValueUtils = __webpack_require__(38);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\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> host 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 getHostProps: function getHostProps(inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? false ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\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 (false) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? false ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? false ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\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 var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\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/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? false ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? false ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? false ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\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 * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactUpdates = __webpack_require__(9);\nvar Transaction = __webpack_require__(28);\n\nvar emptyFunction = __webpack_require__(6);\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function close() {\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\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\n getTransactionWrappers: function getTransactionWrappers() {\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 batchedUpdates(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 return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ARIADOMPropertyConfig = __webpack_require__(112);\nvar BeforeInputEventPlugin = __webpack_require__(114);\nvar ChangeEventPlugin = __webpack_require__(116);\nvar DefaultEventPluginOrder = __webpack_require__(118);\nvar EnterLeaveEventPlugin = __webpack_require__(119);\nvar HTMLDOMPropertyConfig = __webpack_require__(121);\nvar ReactComponentBrowserEnvironment = __webpack_require__(123);\nvar ReactDOMComponent = __webpack_require__(126);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMEmptyComponent = __webpack_require__(128);\nvar ReactDOMTreeTraversal = __webpack_require__(136);\nvar ReactDOMTextComponent = __webpack_require__(134);\nvar ReactDefaultBatchingStrategy = __webpack_require__(137);\nvar ReactEventListener = __webpack_require__(141);\nvar ReactInjection = __webpack_require__(142);\nvar ReactReconcileTransaction = __webpack_require__(147);\nvar SVGDOMPropertyConfig = __webpack_require__(152);\nvar SelectEventPlugin = __webpack_require__(153);\nvar SimpleEventPlugin = __webpack_require__(154);\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.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\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.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\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 handleTopLevel: function handleTopLevel(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar EventListener = __webpack_require__(53);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar PooledClass = __webpack_require__(12);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar getEventTarget = __webpack_require__(45);\nvar getUnboundedScrollPosition = __webpack_require__(103);\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\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 while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\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}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function destructor() {\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 var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\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 = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, 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 setHandleTopLevel(handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function setEnabled(enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function isEnabled() {\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} element 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 trapBubbledEvent(topLevelType, handlerBaseName, element) {\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} element 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 trapCapturedEvent(topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function monitorScrollValue(refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function dispatchEvent(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/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(15);\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginUtils = __webpack_require__(36);\nvar ReactComponentEnvironment = __webpack_require__(39);\nvar ReactEmptyComponent = __webpack_require__(63);\nvar ReactBrowserEventEmitter = __webpack_require__(26);\nvar ReactHostComponent = __webpack_require__(65);\nvar ReactUpdates = __webpack_require__(9);\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar adler32 = __webpack_require__(165);\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\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 addChecksumToMarkup(markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\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 canReuseMarkup(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/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactComponentEnvironment = __webpack_require__(39);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(7);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactReconciler = __webpack_require__(16);\nvar ReactChildReconciler = __webpack_require__(122);\n\nvar emptyFunction = __webpack_require__(6);\nvar flattenChildren = __webpack_require__(168);\nvar invariant = __webpack_require__(0);\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (false) {\n var getDebugID = function getDebugID(inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function setChildrenForInstrumentation(children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\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 _reconcilerInstantiateChildren(nestedChildren, transaction, context) {\n if (false) {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function _reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (false) {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\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 mountChildren(nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (false) {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (false) {\n setChildrenForInstrumentation.call(this, children);\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 updateTextContent(nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? false ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\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 updateMarkup(nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? false ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\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 updateChildren(nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function _updateChildren(nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\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 nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\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 updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, 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 // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (false) {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function unmountChildren(safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\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 moveChild(child, afterNode, 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 return makeMove(child, afterNode, 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 createChild(child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function removeChild(child, node) {\n return makeRemove(child, node);\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 _mountChildAtIndex: function _mountChildAtIndex(child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, 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 _unmountChild(child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\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 * 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 addComponentAsRefTo(component, ref, owner) {\n !isValidOwner(owner) ? false ? 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).') : _prodInvariant('119') : void 0;\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 removeComponentAsRefFrom(component, ref, owner) {\n !isValidOwner(owner) ? false ? 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).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar CallbackQueue = __webpack_require__(59);\nvar PooledClass = __webpack_require__(12);\nvar ReactBrowserEventEmitter = __webpack_require__(26);\nvar ReactInputSelection = __webpack_require__(66);\nvar ReactInstrumentation = __webpack_require__(7);\nvar Transaction = __webpack_require__(28);\nvar ReactUpdateQueue = __webpack_require__(41);\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 initialize() {\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 close(previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function initialize() {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function close() {\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\nif (false) {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\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(useCreateElement) {\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 // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = 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 getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function getUpdateQueue() {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function checkpoint() {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function rollback(checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactOwner = __webpack_require__(145);\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 || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') {\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 prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && (typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement)) === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && (typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement)) === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') {\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/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\nvar Transaction = __webpack_require__(28);\nvar ReactInstrumentation = __webpack_require__(7);\nvar ReactServerUpdateQueue = __webpack_require__(150);\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 = [];\n\nif (false) {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function enqueue() {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\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 getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function getUpdateQueue() {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {},\n\n checkpoint: function checkpoint() {},\n\n rollback: function rollback() {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar ReactUpdateQueue = __webpack_require__(41);\n\nvar warning = __webpack_require__(1);\n\nfunction warnNoop(publicInstance, callerName) {\n if (false) {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\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\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(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\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\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 {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\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|function} completeState Next state.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\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|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nmodule.exports = '15.5.4';\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\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 xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\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};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInputSelection = __webpack_require__(66);\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getActiveElement = __webpack_require__(55);\nvar isTextInputElement = __webpack_require__(75);\nvar shallowEqual = __webpack_require__(32);\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = 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. See #3639.\nvar hasListener = false;\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, activeElementInst, 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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = 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 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case '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 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function didPutListener(inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar EventListener = __webpack_require__(53);\nvar EventPropagators = __webpack_require__(22);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar SyntheticAnimationEvent = __webpack_require__(155);\nvar SyntheticClipboardEvent = __webpack_require__(156);\nvar SyntheticEvent = __webpack_require__(10);\nvar SyntheticFocusEvent = __webpack_require__(159);\nvar SyntheticKeyboardEvent = __webpack_require__(161);\nvar SyntheticMouseEvent = __webpack_require__(27);\nvar SyntheticDragEvent = __webpack_require__(158);\nvar SyntheticTouchEvent = __webpack_require__(162);\nvar SyntheticTransitionEvent = __webpack_require__(163);\nvar SyntheticUIEvent = __webpack_require__(24);\nvar SyntheticWheelEvent = __webpack_require__(164);\n\nvar emptyFunction = __webpack_require__(6);\nvar getEventCharCode = __webpack_require__(43);\nvar invariant = __webpack_require__(0);\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case '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 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case '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 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? false ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function didPutListener(inst, 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 // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function willDeleteListener(inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function clipboardData(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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticMouseEvent = __webpack_require__(27);\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\n\nvar getEventCharCode = __webpack_require__(43);\nvar getEventKey = __webpack_require__(169);\nvar getEventModifierState = __webpack_require__(44);\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 charCode(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 keyCode(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 which(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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\n\nvar getEventModifierState = __webpack_require__(44);\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticMouseEvent = __webpack_require__(27);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function deltaX(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 deltaY(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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 var n = Math.min(i + 4096, m);\n for (; i < n; 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/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar CSSProperty = __webpack_require__(58);\nvar warning = __webpack_require__(1);\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\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 * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\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 if (false) {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstanceMap = __webpack_require__(23);\n\nvar getHostComponentFromComposite = __webpack_require__(72);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (false) {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing 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') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n true ? false ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n true ? false ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar KeyEscapeUtils = __webpack_require__(37);\nvar traverseAllChildren = __webpack_require__(77);\nvar warning = __webpack_require__(1);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"production\" === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(78);\n}\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 * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && (typeof traverseContext === 'undefined' ? 'undefined' : _typeof(traverseContext)) === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (false) {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\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, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (false) {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56)))\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar getEventCharCode = __webpack_require__(43);\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/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/* global Symbol */\n\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/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\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/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar escapeTextContentForBrowser = __webpack_require__(29);\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/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactMount = __webpack_require__(67);\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(19);\n\nvar invariant = __webpack_require__(0);\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 oneArgumentPooler(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 twoArgumentPooler(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 threeArgumentPooler(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 fourArgumentPooler(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 standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n !(instance instanceof Klass) ? false ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\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.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar PooledClass = __webpack_require__(176);\nvar ReactElement = __webpack_require__(18);\n\nvar emptyFunction = __webpack_require__(6);\nvar traverseAllChildren = __webpack_require__(187);\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 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\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 keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n 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.key && (!child || child.key !== mappedChild.key) ? 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\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 *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\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/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(19),\n _assign = __webpack_require__(3);\n\nvar ReactComponent = __webpack_require__(49);\nvar ReactElement = __webpack_require__(18);\nvar ReactPropTypeLocationNames = __webpack_require__(180);\nvar ReactNoopUpdateQueue = __webpack_require__(50);\n\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host 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: '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: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: '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: '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: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: '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 * @required\n */\n render: '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: '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: '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: '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: '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: '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: '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: '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: '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 displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(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 childContextTypes(Constructor, _childContextTypes) {\n if (false) {\n validateTypeDef(Constructor, _childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (false) {\n validateTypeDef(Constructor, _contextTypes, '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 getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (false) {\n validateTypeDef(Constructor, _propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {} };\n\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 only in __DEV__\n false ? 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) : void 0;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, 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 === 'OVERRIDE_BASE') ? false ? 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) : _prodInvariant('73', name) : void 0;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? false ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (false) {\n var typeofSpec = typeof spec === 'undefined' ? 'undefined' : _typeof(spec);\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? false ? invariant(false, 'ReactClass: You\\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;\n !!ReactElement.isValidElement(spec) ? false ? invariant(false, 'ReactClass: You\\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\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 var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, 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 isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(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 === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? false ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;\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 === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (false) {\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 ? false ? 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) : _prodInvariant('78', name) : void 0;\n\n var isInherited = name in Constructor;\n !!isInherited ? false ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;\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 === 'undefined' ? 'undefined' : _typeof(one)) === 'object' && (typeof two === 'undefined' ? 'undefined' : _typeof(two)) === 'object') ? false ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n !(one[key] === undefined) ? false ? 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) : _prodInvariant('81', key) : void 0;\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 (false) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\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) : void 0;\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) : void 0;\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 };\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 var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\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 replaceState(newState, callback) {\n this.updater.enqueueReplaceState(this, newState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'replaceState');\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 isMounted() {\n return this.updater.isMounted(this);\n }\n};\n\nvar ReactClassComponent = function ReactClassComponent() {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\nvar didWarnDeprecated = false;\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function createClass(spec) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;\n didWarnDeprecated = true;\n }\n\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (false) {\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') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\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 (false) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (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 === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? false ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\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 (false) {\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 ? false ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;\n\n if (false) {\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') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\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 injectMixin(mixin) {\n injectedMixins.push(mixin);\n }\n }\n\n};\n\nmodule.exports = ReactClass;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactElement = __webpack_require__(18);\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (false) {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\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 = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactPropTypeLocationNames = {};\n\nif (false) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _require = __webpack_require__(18),\n isValidElement = _require.isValidElement;\n\nvar factory = __webpack_require__(57);\n\nmodule.exports = factory(isValidElement);\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactComponent = __webpack_require__(49);\nvar ReactNoopUpdateQueue = __webpack_require__(50);\n\nvar emptyObject = __webpack_require__(20);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\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\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nmodule.exports = '15.5.4';\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/* global Symbol */\n\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/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\nvar _prodInvariant = __webpack_require__(19);\n\nvar ReactElement = __webpack_require__(18);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? false ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(19);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar REACT_ELEMENT_TYPE = __webpack_require__(79);\n\nvar getIteratorFn = __webpack_require__(184);\nvar invariant = __webpack_require__(0);\nvar KeyEscapeUtils = __webpack_require__(175);\nvar warning = __webpack_require__(1);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && (typeof component === 'undefined' ? 'undefined' : _typeof(component)) === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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 === 'undefined' ? 'undefined' : _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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 (false) {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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 (false) {\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 true ? false ? 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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n return bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]];\n}\n\nmodule.exports = bytesToUuid;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\n// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\nvar rng;\n\nvar crypto = global.crypto || global.msCrypto; // for IE 11\nif (crypto && crypto.getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16);\n rng = function whatwgRNG() {\n crypto.getRandomValues(rnds8);\n return rnds8;\n };\n}\n\nif (!rng) {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n rng = function rng() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n\nmodule.exports = rng;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(191)))\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar rng = __webpack_require__(189);\nvar bytesToUuid = __webpack_require__(188);\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options == 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _HelpResult = __webpack_require__(87);\n\nvar _HelpResult2 = _interopRequireDefault(_HelpResult);\n\nvar _AboutResult = __webpack_require__(84);\n\nvar _AboutResult2 = _interopRequireDefault(_AboutResult);\n\nvar _UnknownCommandResult = __webpack_require__(89);\n\nvar _UnknownCommandResult2 = _interopRequireDefault(_UnknownCommandResult);\n\nvar _HelpResultView = __webpack_require__(196);\n\nvar _HelpResultView2 = _interopRequireDefault(_HelpResultView);\n\nvar _AboutResultView = __webpack_require__(193);\n\nvar _AboutResultView2 = _interopRequireDefault(_AboutResultView);\n\nvar _ExpressionResult = __webpack_require__(86);\n\nvar _ExpressionResult2 = _interopRequireDefault(_ExpressionResult);\n\nvar _BitwiseOperationExpressionView = __webpack_require__(195);\n\nvar _BitwiseOperationExpressionView2 = _interopRequireDefault(_BitwiseOperationExpressionView);\n\nvar _WhatsnewResult = __webpack_require__(90);\n\nvar _WhatsnewResult2 = _interopRequireDefault(_WhatsnewResult);\n\nvar _WhatsnewResultView = __webpack_require__(197);\n\nvar _WhatsnewResultView2 = _interopRequireDefault(_WhatsnewResultView);\n\nvar _ErrorResult = __webpack_require__(85);\n\nvar _ErrorResult2 = _interopRequireDefault(_ErrorResult);\n\nvar _StringResult = __webpack_require__(88);\n\nvar _StringResult2 = _interopRequireDefault(_StringResult);\n\nvar _expression = __webpack_require__(31);\n\nvar expression = _interopRequireWildcard(_expression);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DisplayResult = function (_React$Component) {\n _inherits(DisplayResult, _React$Component);\n\n function DisplayResult() {\n _classCallCheck(this, DisplayResult);\n\n return _possibleConstructorReturn(this, (DisplayResult.__proto__ || Object.getPrototypeOf(DisplayResult)).apply(this, arguments));\n }\n\n _createClass(DisplayResult, [{\n key: 'render',\n value: function render() {\n\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'input mono' },\n _react2.default.createElement(\n 'span',\n { className: 'cur' },\n '>'\n ),\n this.props.content.input,\n _react2.default.createElement(\n 'a',\n { className: 'hashLink', title: 'Link for this expression', href: window.location.pathname + '#' + this.props.inputHash },\n '#'\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'content' },\n this.findResultComponent(this.props.content)\n )\n );\n }\n }, {\n key: 'findResultComponent',\n value: function findResultComponent(result) {\n if (result instanceof _HelpResult2.default) {\n return _react2.default.createElement(_HelpResultView2.default, { content: result });\n }\n\n if (result instanceof _AboutResult2.default) {\n return _react2.default.createElement(_AboutResultView2.default, null);\n }\n\n if (result instanceof _ExpressionResult2.default) {\n return _react2.default.createElement(_BitwiseOperationExpressionView2.default, { expression: result.expression, emphasizeBytes: this.props.appState.emphasizeBytes });\n }\n\n if (result instanceof _WhatsnewResult2.default) {\n return _react2.default.createElement(_WhatsnewResultView2.default, null);\n }\n\n if (result instanceof _StringResult2.default) {\n return _react2.default.createElement(\n 'p',\n null,\n result.value\n );\n }\n\n if (result instanceof _ErrorResult2.default) {\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'error' },\n '(X_X) Ooops.. Something ain\\' right: ',\n _react2.default.createElement(\n 'strong',\n null,\n result.error.message\n )\n )\n );\n }\n\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'error' },\n '\\xAF\\\\_(\\u30C4)_/\\xAF Sorry, i don\\u2032t know what ',\n _react2.default.createElement(\n 'strong',\n null,\n this.props.input\n ),\n ' is'\n )\n );\n }\n }]);\n\n return DisplayResult;\n}(_react2.default.Component);\n\nexports.default = DisplayResult;\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AboutResultView = function (_React$Component) {\n _inherits(AboutResultView, _React$Component);\n\n function AboutResultView() {\n _classCallCheck(this, AboutResultView);\n\n return _possibleConstructorReturn(this, (AboutResultView.__proto__ || Object.getPrototypeOf(AboutResultView)).apply(this, arguments));\n }\n\n _createClass(AboutResultView, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(\n \"div\",\n { className: \"aboutTpl\" },\n _react2.default.createElement(\n \"p\",\n null,\n \" Created by \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://boryslevytskyi.github.io/\" },\n \"Borys Levytskyi\"\n ),\n \". Please give it a like if BitwiseCmd has helped you in your work.\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"If you have an idea, suggestion or you've spotted a bug here, please send it to \",\n _react2.default.createElement(\n \"a\",\n { href: \"mailto:bitwisecmd@gmail.com?subject=Feedback\" },\n \"bitwisecmd@gmail.com\"\n ),\n \" or tweet on \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://twitter.com/BitwiseCmd\" },\n \"@BitwiseCmd\"\n ),\n \". Your feedback is greatly appreciated.\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n _react2.default.createElement(\n \"a\",\n { href: \"https://github.com/BorisLevitskiy/BitwiseCmd\" },\n \"Project on \",\n _react2.default.createElement(\n \"strong\",\n null,\n \"GitHub\"\n )\n )\n )\n );\n }\n }]);\n\n return AboutResultView;\n}(_react2.default.Component);\n\nexports.default = AboutResultView;\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BinaryStringView = function (_React$Component) {\n _inherits(BinaryStringView, _React$Component);\n\n function BinaryStringView() {\n _classCallCheck(this, BinaryStringView);\n\n return _possibleConstructorReturn(this, (BinaryStringView.__proto__ || Object.getPrototypeOf(BinaryStringView)).apply(this, arguments));\n }\n\n _createClass(BinaryStringView, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'span',\n null,\n this.getChildren()\n );\n }\n }, {\n key: 'onBitClick',\n value: function onBitClick(index, e) {\n if (!this.props.allowFlipBits) {\n return;\n }\n\n if (this.props.onFlipBit) {\n this.props.onFlipBit({ index: index, binaryString: this.props.binaryString, $event: e });\n }\n }\n }, {\n key: 'getChildren',\n value: function getChildren() {\n var bits = this.createBits(this.props.binaryString.split(''));\n\n if (this.props.emphasizeBytes) {\n return this.splitIntoBytes(bits);\n }\n\n return bits;\n }\n }, {\n key: 'createBits',\n value: function createBits(bitChars) {\n var _this2 = this;\n\n var allowFlipBits = this.props.allowFlipBits || false;\n var css = allowFlipBits ? ' flipable' : '';\n var classNames = { '0': 'zero' + css, '1': 'one ' + css };\n return bitChars.map(function (c, i) {\n return _react2.default.createElement(\n 'span',\n { className: classNames[c], key: i, onClick: function onClick(e) {\n return _this2.onBitClick(i, e);\n } },\n c\n );\n });\n }\n }, {\n key: 'splitIntoBytes',\n value: function splitIntoBytes(bits) {\n var bytes = [];\n\n var key = 0;\n while (bits.length > 0) {\n bytes.push(_react2.default.createElement(\n 'span',\n { key: key++, className: 'byte' },\n bits.splice(0, 8)\n ));\n }\n\n return bytes;\n }\n }]);\n\n return BinaryStringView;\n}(_react2.default.Component);\n\nexports.default = BinaryStringView;\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _expression = __webpack_require__(31);\n\nvar _formatter = __webpack_require__(203);\n\nvar _formatter2 = _interopRequireDefault(_formatter);\n\nvar _BinaryStringView = __webpack_require__(194);\n\nvar _BinaryStringView2 = _interopRequireDefault(_BinaryStringView);\n\nvar _BitwiseExpressionViewModel = __webpack_require__(198);\n\nvar _BitwiseExpressionViewModel2 = _interopRequireDefault(_BitwiseExpressionViewModel);\n\nvar _loglevel = __webpack_require__(51);\n\nvar _loglevel2 = _interopRequireDefault(_loglevel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BitwiseOperationEpxressionView = function (_React$Component) {\n _inherits(BitwiseOperationEpxressionView, _React$Component);\n\n function BitwiseOperationEpxressionView() {\n _classCallCheck(this, BitwiseOperationEpxressionView);\n\n var _this = _possibleConstructorReturn(this, (BitwiseOperationEpxressionView.__proto__ || Object.getPrototypeOf(BitwiseOperationEpxressionView)).call(this));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(BitwiseOperationEpxressionView, [{\n key: 'render',\n value: function render() {\n var rows = this.getRows();\n if (!rows) {\n return null;\n }\n\n return _react2.default.createElement(\n 'table',\n { className: 'expression' },\n _react2.default.createElement(\n 'tbody',\n null,\n rows\n )\n );\n }\n }, {\n key: 'getRows',\n value: function getRows() {\n var _this2 = this;\n\n var expr = this.props.expression;\n var model = null;\n\n if (expr instanceof _expression.ListOfNumbersExpression) {\n model = _BitwiseExpressionViewModel2.default.buildListOfNumbers(expr, {\n emphasizeBytes: this.props.emphasizeBytes,\n allowFlipBits: true\n });\n }\n\n if (expr instanceof _expression.MultipleOperandsExpression) {\n model = _BitwiseExpressionViewModel2.default.buildMultiple(expr, {\n emphasizeBytes: this.props.emphasizeBytes,\n allowFlipBits: false\n });\n }\n\n _loglevel2.default.info('Render model', model);\n\n return model.items.map(function (itm, i) {\n return _react2.default.createElement(ExpressionRow, _extends({\n key: i\n }, itm, {\n emphasizeBytes: _this2.props.emphasizeBytes,\n maxNumberOfBits: model.maxNumberOfBits,\n onBitFlipped: function onBitFlipped() {\n return _this2.onBitFlipped();\n } }));\n });\n }\n }, {\n key: 'onBitFlipped',\n value: function onBitFlipped() {\n console.log('bit flipped');\n this.setState({ d: new Date() });\n }\n }]);\n\n return BitwiseOperationEpxressionView;\n}(_react2.default.Component);\n\nexports.default = BitwiseOperationEpxressionView;\n\nvar ExpressionRow = function (_React$Component2) {\n _inherits(ExpressionRow, _React$Component2);\n\n function ExpressionRow() {\n _classCallCheck(this, ExpressionRow);\n\n var _this3 = _possibleConstructorReturn(this, (ExpressionRow.__proto__ || Object.getPrototypeOf(ExpressionRow)).call(this));\n\n _this3.state = { operand: null };\n return _this3;\n }\n\n _createClass(ExpressionRow, [{\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props,\n sign = _props.sign,\n css = _props.css,\n maxNumberOfBits = _props.maxNumberOfBits,\n emphasizeBytes = _props.emphasizeBytes,\n allowFlipBits = _props.allowFlipBits,\n operand = _props.operand;\n\n\n return _react2.default.createElement(\n 'tr',\n { className: css },\n _react2.default.createElement(\n 'td',\n { className: 'sign' },\n sign\n ),\n _react2.default.createElement(\n 'td',\n { className: 'label' },\n this.getLabel(operand)\n ),\n _react2.default.createElement(\n 'td',\n { className: 'bin' },\n _react2.default.createElement(_BinaryStringView2.default, {\n emphasizeBytes: emphasizeBytes,\n binaryString: _formatter2.default.padLeft(operand.apply().toBinaryString(), maxNumberOfBits, '0'),\n allowFlipBits: allowFlipBits,\n onFlipBit: function onFlipBit(idx) {\n return _this4.flipBit(idx);\n } })\n ),\n _react2.default.createElement(\n 'td',\n { className: 'other' },\n this.getOther(operand)\n )\n );;\n }\n }, {\n key: 'getLabel',\n value: function getLabel(op) {\n if (op.isExpression) {\n return op.toString();\n }\n return op.toString(op.kind == 'bin' ? 'dec' : op.kind);\n }\n }, {\n key: 'getOther',\n value: function getOther(op) {\n if (op.isExpression) {\n return op.apply().toString();\n }\n return op.toString(op.getOtherKind());\n }\n }, {\n key: 'flipBit',\n value: function flipBit(args) {\n\n var op = this.props.operand;\n var index = args.index,\n binaryString = args.binaryString;\n\n\n var arr = binaryString.split('');\n arr[index] = arr[index] == '0' ? '1' : '0';\n var bin = arr.join('');\n\n var newValue = parseInt(bin, 2);\n console.log('flipped \\n%s to \\n%s from \\n%s to \\n%s', binaryString, bin, op.value, newValue);\n op.setValue(newValue);\n\n this.props.onBitFlipped();\n }\n }]);\n\n return ExpressionRow;\n}(_react2.default.Component);\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _cmd = __webpack_require__(25);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nvar _CommandLink = __webpack_require__(81);\n\nvar _CommandLink2 = _interopRequireDefault(_CommandLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HelpResultView = function (_React$Component) {\n _inherits(HelpResultView, _React$Component);\n\n function HelpResultView() {\n _classCallCheck(this, HelpResultView);\n\n return _possibleConstructorReturn(this, (HelpResultView.__proto__ || Object.getPrototypeOf(HelpResultView)).apply(this, arguments));\n }\n\n _createClass(HelpResultView, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'help helpResultTpl' },\n _react2.default.createElement(\n 'div',\n { style: { overflow: \"hidden\" } },\n _react2.default.createElement(\n 'div',\n { style: { float: \"left\", \"marginRight\": \"20px\" } },\n _react2.default.createElement(\n 'div',\n { className: 'section' },\n _react2.default.createElement(\n 'strong',\n null,\n 'Supported Commands'\n ),\n _react2.default.createElement(\n 'ul',\n null,\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: '23 | 34' })\n ),\n ' \\u2014 type bitwise expression to see result in binary (only positive integers are supported now)'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: '23 34' })\n ),\n ' \\u2014 type one or more numbers to see their binary representations'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'clear' })\n ),\n ' \\u2014 clear output pane'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'help' })\n ),\n ' \\u2014 display this help'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'whatsnew' })\n ),\n ' \\u2014 display changelog'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'em' })\n ),\n ' \\u2014 turn On/Off Emphasize Bytes'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'light' })\n ),\n ' \\u2014 set Dark theme'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'dark' })\n ),\n ' \\u2014 set Light theme'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'midnight' })\n ),\n ' \\u2014 set Midnight theme'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'about' })\n ),\n ' \\u2014 about the app'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'guid' })\n ),\n ' \\u2014 generate ',\n _react2.default.createElement(\n 'a',\n { href: 'https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29' },\n 'v4'\n ),\n ' GUID'\n )\n )\n )\n ),\n _react2.default.createElement(\n 'div',\n { style: { \"float\": \"left\" } },\n _react2.default.createElement(\n 'div',\n { className: 'section' },\n _react2.default.createElement(\n 'strong',\n null,\n 'Supported Bitwise Operations'\n ),\n _react2.default.createElement('br', null),\n _react2.default.createElement(\n 'small',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators' },\n 'as implemented in JavaScript engine'\n )\n ),\n _react2.default.createElement(\n 'ul',\n null,\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '&'\n ),\n ' \\u2014 bitwise AND'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '|'\n ),\n ' \\u2014 bitwise inclusive OR'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '^'\n ),\n ' \\u2014 bitwise exclusive XOR'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '~'\n ),\n ' \\u2014 bitwise NOT'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '<<'\n ),\n ' \\u2014 left shift'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '>>'\n ),\n ' \\u2014 sign propagating right shift'\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'code',\n null,\n '>>>'\n ),\n ' \\u2014 zero-fill right shift'\n )\n )\n )\n )\n )\n );\n }\n }]);\n\n return HelpResultView;\n}(_react2.default.Component);\n\nexports.default = HelpResultView;\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _CommandLink = __webpack_require__(81);\n\nvar _CommandLink2 = _interopRequireDefault(_CommandLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar WhatsnewResultView = function (_React$Component) {\n _inherits(WhatsnewResultView, _React$Component);\n\n function WhatsnewResultView() {\n _classCallCheck(this, WhatsnewResultView);\n\n return _possibleConstructorReturn(this, (WhatsnewResultView.__proto__ || Object.getPrototypeOf(WhatsnewResultView)).apply(this, arguments));\n }\n\n _createClass(WhatsnewResultView, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'changelog' },\n _react2.default.createElement(\n 'h3',\n null,\n 'Changelog'\n ),\n _react2.default.createElement(\n 'div',\n { className: 'item item-new' },\n _react2.default.createElement(\n 'p',\n null,\n _react2.default.createElement(\n 'span',\n { className: 'soft date' },\n 'Jun 6th, 2017'\n ),\n ' ',\n _react2.default.createElement('br', null),\n 'Added ',\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: 'guid' })\n ),\n ' command. Use it for generating v4 GUIDs '\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'item' },\n _react2.default.createElement(\n 'p',\n null,\n _react2.default.createElement(\n 'span',\n { className: 'soft date' },\n 'May 27th, 2017'\n ),\n ' ',\n _react2.default.createElement('br', null),\n 'Added support of binary number notation (e.g. ',\n _react2.default.createElement(\n 'code',\n null,\n _react2.default.createElement(_CommandLink2.default, { text: '0b10101' })\n ),\n '). '\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'item' },\n _react2.default.createElement(\n 'p',\n null,\n _react2.default.createElement(\n 'span',\n { className: 'soft' },\n 'May 20th, 2017'\n ),\n ' ',\n _react2.default.createElement('br', null),\n 'New ',\n _react2.default.createElement(_CommandLink2.default, { text: 'Midnight' }),\n ' theme added. '\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'item' },\n _react2.default.createElement(\n 'p',\n null,\n _react2.default.createElement(\n 'span',\n { className: 'soft' },\n 'May 16th, 2017'\n ),\n ' ',\n _react2.default.createElement('br', null),\n 'Complete rewrite using React. Old implementation is available at ',\n _react2.default.createElement(\n 'a',\n { href: 'http://bitwisecmd.com/old' },\n 'http://bitwisecmd.com/old'\n ),\n '. Please let me know if you have problems with this release by ',\n _react2.default.createElement(\n 'a',\n { href: 'https://github.com/BorysLevytskyi/BitwiseCmd/issues' },\n 'creating issue'\n ),\n ' in Github Repo.'\n )\n )\n );\n }\n }]);\n\n return WhatsnewResultView;\n}(_react2.default.Component);\n\nexports.default = WhatsnewResultView;\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _expression = __webpack_require__(31);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BitwiseExpressionViewModel = function () {\n function BitwiseExpressionViewModel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$emphasizeBytes = _ref.emphasizeBytes,\n emphasizeBytes = _ref$emphasizeBytes === undefined ? false : _ref$emphasizeBytes,\n _ref$allowFlipBits = _ref.allowFlipBits,\n allowFlipBits = _ref$allowFlipBits === undefined ? false : _ref$allowFlipBits;\n\n _classCallCheck(this, BitwiseExpressionViewModel);\n\n this.emphasizeBytes = emphasizeBytes;\n this.items = [];\n this.maxNumberOfBits = 0;\n this.allowFlipBits = allowFlipBits === true;\n }\n\n _createClass(BitwiseExpressionViewModel, [{\n key: 'addOperand',\n value: function addOperand(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: '',\n css: '',\n operand: operand,\n allowFlipBits: this.allowFlipBits\n });\n }\n }, {\n key: 'addExpression',\n value: function addExpression(expression) {\n this.maxNumberOfBits = Math.max(expression.operand.apply().getLengthInBits(), this.maxNumberOfBits);\n\n this.items.push({\n sign: expression.sign,\n label: this.getLabel(expression.operand),\n operand: expression.operand,\n allowFlipBits: this.allowFlipBits\n });\n }\n }, {\n key: 'addShiftExpressionResult',\n value: function addShiftExpressionResult(expression, resultOperand) {\n this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: expression.sign + expression.operand.toString(),\n css: 'expression-result',\n operand: resultOperand,\n allowFlipBits: false\n });\n }\n }, {\n key: 'addExpressionResult',\n value: function addExpressionResult(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: '=',\n css: 'expression-result',\n operand: operand,\n allowFlipBits: false\n });\n }\n }, {\n key: 'getLabel',\n value: function getLabel(op) {\n\n if (op.kind == 'bin') {\n return op.dec;\n }\n\n return op.toString();\n }\n\n // TODO: move this method elsewhere. It is also used in LisOfNumbersExpressionView.js\n\n }], [{\n key: 'buildListOfNumbers',\n value: function buildListOfNumbers(expr, config) {\n var model = new BitwiseExpressionViewModel(config);\n expr.numbers.forEach(function (op) {\n return model.addOperand(op);\n });\n model.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(model.maxNumberOfBits, model.emphasizeBytes);\n return model;\n }\n }, {\n key: 'buildMultiple',\n value: function buildMultiple(expr, config) {\n // console.log('build: ', expr);\n var op = expr.expressions[0],\n i = 0,\n l = expr.expressions.length,\n ex,\n m = new BitwiseExpressionViewModel(config);\n\n var cur = null;\n for (; i < l; i++) {\n var ex = expr.expressions[i];\n if (ex instanceof _expression.Operand) {\n m.addOperand(ex);\n cur = ex;\n // console.log('cur is ', cur)\n continue;\n }\n\n // If it a single NOT expression\n if (ex.isNotExpression) {\n m.addExpression(ex);\n var notResult = ex.apply();\n m.addExpressionResult(notResult);\n cur = notResult;\n } else if (ex.isShiftExpression) {\n // console.log('cur is ', cur)\n cur = ex.apply(cur);\n m.addShiftExpressionResult(ex, cur);\n } else {\n\n cur = ex.apply(cur);\n m.addExpression(ex);\n m.addExpressionResult(cur);\n }\n }\n\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n }\n }, {\n key: 'buildNot',\n value: function buildNot(expression, config) {\n\n var m = new BitwiseExpressionViewModel(config);\n m.addExpression(expression);\n m.addExpressionResult(expression.apply());\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n }\n }]);\n\n return BitwiseExpressionViewModel;\n}();\n\nBitwiseExpressionViewModel.getNumberOfBits = function (bits, emphasizeBytes) {\n if (emphasizeBytes && bits % 8 != 0) {\n if (bits < 8) {\n return 8;\n }\n\n var n = bits - bits % 8;\n return n + 8;\n }\n\n return bits;\n};\n\nexports.default = BitwiseExpressionViewModel;\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _Operand = __webpack_require__(83);\n\nvar _Operand2 = _interopRequireDefault(_Operand);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ExpressionOperand = function () {\n function ExpressionOperand(expressionString, operand, sign) {\n _classCallCheck(this, ExpressionOperand);\n\n this.expressionString = expressionString;\n this.operand = operand;\n this.sign = sign;\n this.isExpression = true;\n this.isShiftExpression = this.sign.indexOf('<') >= 0 || this.sign.indexOf('>') >= 0;\n this.isNotExpression = this.sign == '~';\n }\n\n _createClass(ExpressionOperand, [{\n key: 'apply',\n value: function apply(operand) {\n if (operand instanceof ExpressionOperand) {\n console.error(\"value shouldnt be expression\", value);\n throw new Error('value shouldnt be expression');\n }\n\n // console.log('operand', operand);\n\n var str = '';\n if (this.sign == '~') {\n str = '~' + this.operand.apply().value;\n } else {\n str = operand.value + this.sign + this.operand.apply().value;\n }\n\n // console.log('eval:' + str, this); \n var resultValue = eval(str);\n var resultOp = _Operand2.default.create(eval(str), this.operand.kind || this.operand.operand.kind);\n // console.log(resultValue, resultOp);\n\n return resultOp;\n }\n }, {\n key: 'toString',\n value: function toString() {\n return this.sign + this.operand.toString();\n }\n }]);\n\n return ExpressionOperand;\n}();\n\nexports.default = ExpressionOperand;\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ListOfNumbersExpression = function () {\n function ListOfNumbersExpression(expressionString, numbers) {\n _classCallCheck(this, ListOfNumbersExpression);\n\n this.expressionString = expressionString;\n this.numbers = numbers;\n this.maxBitsLegnth = numbers.map(function (n) {\n return n.lengthInBits;\n }).reduce(function (n, c) {\n return n >= c ? n : c;\n }, 0);\n }\n\n _createClass(ListOfNumbersExpression, [{\n key: 'toString',\n value: function toString() {\n return this.numbers.map(function (n) {\n return n.value.toString();\n }).join(' ');\n }\n }]);\n\n return ListOfNumbersExpression;\n}();\n\nexports.default = ListOfNumbersExpression;\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MultipleOperandsExpression = function MultipleOperandsExpression(expressionString, expressions) {\n _classCallCheck(this, MultipleOperandsExpression);\n\n this.expressionString = expressionString;\n this.expressions = expressions;\n};\n\nexports.default = MultipleOperandsExpression;\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar decimalRegex = /^-?\\d+$/;\nvar hexRegex = /^-?0x[0-9,a-f]+$/i;\nvar binRegex = /^-?0b[0-1]+$/i;\nvar operatorRegex = /^<<|>>|<<<|\\&|\\|\\^|~$/;\n\nvar parsers = [{ regex: decimalRegex, radix: 10, kind: 'dec', prefix: '^$' }, { regex: hexRegex, radix: 16, kind: 'hex', prefix: /0x/i }, { regex: binRegex, radix: 2, kind: 'bin', prefix: /0b/i }];\n\nfunction applyParser(parser, rawInput) {\n\n if (!parser.regex.test(rawInput)) {\n return null;\n }\n\n var value = parseInt(rawInput.replace(parser.prefix, ''), parser.radix);\n\n return {\n value: value,\n kind: parser.kind,\n input: rawInput\n };\n}\n\nvar parser = {\n parse: function parse(input) {\n return parsers.map(function (p) {\n return applyParser(p, input);\n }).reduce(function (c, n) {\n return c || n;\n });\n },\n\n parseOperator: function parseOperator(input) {\n var m = input.match(input);\n if (m.length == 0) {\n return null;\n }\n\n return m[0];\n }\n};\n\nexports.default = parser;\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n formatString: function formatString(num, kind) {\n return num.toString(getBase(kind || \"bin\"));\n },\n padLeft: function padLeft(str, length, symbol) {\n var sb = Array.prototype.slice.call(str),\n symbol = symbol || \"0\";\n\n if (length == null) {\n return str;\n }\n\n while (length > sb.length) {\n sb.unshift(symbol);\n }\n\n return sb.join('');\n }\n};\n\n\nfunction getBase(kind) {\n switch (kind) {\n case 'bin':\n return 2;\n case 'hex':\n return 16;\n case 'dec':\n return 10;\n }\n}\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(91);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _InputBox = __webpack_require__(52);\n\nvar _InputBox2 = _interopRequireDefault(_InputBox);\n\nvar _AppState = __webpack_require__(92);\n\nvar _AppState2 = _interopRequireDefault(_AppState);\n\nvar _appStateStore = __webpack_require__(93);\n\nvar _appStateStore2 = _interopRequireDefault(_appStateStore);\n\nvar _cmd = __webpack_require__(25);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nvar _commands = __webpack_require__(94);\n\nvar _commands2 = _interopRequireDefault(_commands);\n\nvar _AppRoot = __webpack_require__(95);\n\nvar _AppRoot2 = _interopRequireDefault(_AppRoot);\n\nvar _hash = __webpack_require__(96);\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _loglevel = __webpack_require__(51);\n\nvar _loglevel2 = _interopRequireDefault(_loglevel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nsetupLogger();\n\nvar appState = createAppState();\n\n_commands2.default.initialize(_cmd2.default, appState);\n\nexecuteStartupCommands();\n\nvar root = _react2.default.createElement(_AppRoot2.default, { appState: appState });\n_reactDom2.default.render(root, document.getElementById('root'));\n\n_loglevel2.default.debug(\"started\");\n\nfunction createAppState() {\n var stateData = _appStateStore2.default.getPersistedData();\n var appState = new _AppState2.default(stateData);\n _appStateStore2.default.watch(appState);\n _loglevel2.default.debug(\"appState\", appState);\n return appState;\n}\n\nfunction setupLogger() {\n if (window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-debug') > -1) {\n _loglevel2.default.setLevel(\"trace\");\n } else {\n _loglevel2.default.setLevel(\"warn\");\n }\n}\n\nfunction executeStartupCommands() {\n var hashArgs = _hash2.default.getArgs(window.location.hash);\n\n var startupCommands = ['help', '1|2&6', '1 2 4 8 16 32 0b1000000 0x80'];\n\n if (appState.wasOldVersion) {\n startupCommands = [\"whatsnew\"];\n }\n\n if (hashArgs.commands.length > 0) {\n startupCommands = hashArgs.commands;\n }\n\n startupCommands.forEach(_cmd2.default.execute.bind(_cmd2.default));\n}\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = {\n plainObject: function plainObject(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) == \"object\" && obj instanceof Object;\n },\n\n aFunction: function aFunction(obj) {\n return typeof obj == \"function\";\n },\n\n string: function string(obj) {\n return typeof obj == \"string\";\n },\n\n regex: function regex(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) == \"object\" && this.constructedFrom(RegExp);\n },\n\n constructedFrom: function constructedFrom(obj, ctor) {\n return obj instanceof ctor;\n },\n\n htmlElement: function htmlElement(obj) {\n return obj instanceof HtmlElement;\n },\n\n array: function array(obj) {\n return obj instanceof Array;\n },\n\n number: function number(num) {\n return typeof num == \"number\" && !isNaN(num);\n }\n};\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// bundle.js"," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"http://localhost:8080/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 204);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 5f8c5a02f34ad3f80b23","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\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(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/invariant.js","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\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 (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var 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 warning = function warning(condition, format) {\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 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/warning.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/reactProdInvariant.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/object-assign/index.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponentTree.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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// ./~/fbjs/lib/ExecutionEnvironment.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nvar emptyFunction = function 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// ./~/fbjs/lib/emptyFunction.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactInstrumentation.js","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n// WEBPACK FOOTER //\n// ./~/react/react.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\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') : _prodInvariant('123') : void 0;\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(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\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.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 return 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) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\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 // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\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 var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\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};\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 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 if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\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 whereupdates are not being batched.') : _prodInvariant('125') : void 0;\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') : _prodInvariant('126') : void 0;\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') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\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-dom/lib/ReactUpdates.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: 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 {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\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 return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\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 if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\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 E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\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 * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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 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.') : _prodInvariant('25') : void 0;\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.\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 // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/PooledClass.js","export default class CommandResult {\n constructor(input) {\n this.input = input;\n this.inputHash = this.encodeHash(input);\n }\n\n encodeHash (string) {\n return encodeURI(string.trim().replace(/\\s/g,','));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/CommandResult.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some <object> plugins (like Flash Player) will read\n // <param> nodes immediately upon insertion into the DOM, so <object>\n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMLazyTree.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\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) : _prodInvariant('48', propName) : void 0;\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 mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\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 !(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) : _prodInvariant('50', propName) : void 0;\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};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\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 ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\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 * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\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 *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : 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 injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMProperty.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\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 if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\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 if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\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, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactReconciler.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactPureComponent = require('./ReactPureComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar onlyChild = require('./onlyChild');\nvar warning = require('fbjs/lib/warning');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (process.env.NODE_ENV !== 'production') {\n var warned = false;\n __spread = function () {\n process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;\n warned = true;\n return _assign.apply(null, arguments);\n };\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 PureComponent: ReactPureComponent,\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 // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\n// TODO: Fix tests so that this deprecation warning doesn't cause failures.\nif (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n }\n}\n\nmodule.exports = React;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/React.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\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 if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\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 if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\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 (hasOwnProperty.call(config, 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 if (process.env.NODE_ENV !== 'production') {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\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 (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\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\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\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 (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\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 * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\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 * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/reactProdInvariant.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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// ./~/fbjs/lib/emptyObject.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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');\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\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\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 {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 /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, 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) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, 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, targetInst, 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.') : _prodInvariant('95') : void 0;\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-dom/lib/EventPluginHub.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\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(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, 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(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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 EventPluginUtils.traverseTwoPhase(event._targetInst, 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 var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, 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(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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._targetInst, 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, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, 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-dom/lib/EventPropagators.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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();\n\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-dom/lib/ReactInstanceMap.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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.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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticUIEvent.js","import is from './is';\n \n var handlers = [];\n\nvar config = {\n errorHandler: (input, err) => logError(err)\n}\n\nvar cmd = {\n debugMode: false,\n execute: function(rawInput) {\n var input = rawInput.trim().toLowerCase();\n var handler = findHandler(input);\n\n if(handler != null) {\n if(this.debugMode) {\n invokeHandler(input, handler);\n } else {\n try {\n invokeHandler(input, handler);\n } catch (e) {\n config.errorHandler(input, e);\n }\n }\n }\n else {\n logError(input, new Error(\"Unsupported expression: \" + input.trim()));\n }\n },\n commands: function(catalog) {\n for(var key in catalog) {\n if(catalog.hasOwnProperty(key)) {\n this.command(key, catalog[key]);\n }\n }\n },\n command: function(cmd, handler) {\n var h = createHandler(cmd, handler);\n if(h == null){\n console.warn('unexpected set of arguments: ', Array.prototype.splice.call(arguments));\n return;\n }\n\n if(!is.aFunction(h.canHandle)) {\n console.warn('handler is missing \"canHandle\" function. registration denied.');\n return;\n }\n\n if(!is.aFunction(h.handle)) {\n console.warn('handler is missing \"handle\" function. registration denied.');\n return;\n }\n\n handlers.push(h);\n },\n clear: function() {\n console.log('clear');\n },\n onError: function(handler) {\n config.errorHandler = handler;\n }\n };\n\n function logError(err) {\n console.error(err)\n }\n\n function invokeHandler (input, handler) {\n\n var cmdResult = handler.handle({ input: input});\n if(cmdResult != null) {\n console.log(cmdResult);\n }\n }\n\n function createHandler (cmd, handler) {\n if(is.plainObject(cmd)) {\n return cmd;\n }\n\n if(is.string(cmd)) {\n return { canHandle: function (input) { return input === cmd; }, handle: handler };\n }\n\n return null;\n }\n\n function findHandler (input) {\n var i= 0;\n for(i;i<handlers.length; i++) {\n if(handlers[i].canHandle(input)) {\n return handlers[i];\n }\n }\n };\n\nexport default cmd;\n\n\n// WEBPACK FOOTER //\n// ./src/app/cmd.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\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 hasEventPageXY;\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 topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\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 topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\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 * EventPluginHub.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 for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('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('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('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('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.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 * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\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 * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\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 (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactBrowserEventEmitter.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticMouseEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar OBSERVED_ERROR = {};\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 TransactionImpl = {\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.') : _prodInvariant('27') : void 0;\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] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === 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.') : _prodInvariant('28') : void 0;\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 !== 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\nmodule.exports = TransactionImpl;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/Transaction.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\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 if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/escapeTextContentForBrowser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\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 = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\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 testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/setInnerHTML.js","import Operand from './expression/Operand';\nimport ExpressionOperand from './expression/ExpressionOperand'\nimport ListOfNumbersExpression from './expression/ListOfNumbersExpression';\nimport MultipleOperandsExpression from './expression/MultipleOperandsExpression';\n\nexport { default as Operand } from './expression/Operand';\nexport { default as ExpressionError } from './expression/ExpressionError';\nexport { default as ExpressionOperand } from './expression/ExpressionOperand';\nexport { default as ListOfNumbersExpression } from './expression/ListOfNumbersExpression';\nexport { default as MultipleOperandsExpression } from './expression/MultipleOperandsExpression';\n\nvar expression = {\n factories:[],\n canParse: function(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = this.factories.length-1;\n for(;i>=0;i--) {\n if(this.factories[i].canCreate(trimmed) === true){\n return true;\n }\n }\n return false;\n },\n parse: function(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = 0, l = this.factories.length, factory;\n\n for(;i<l;i++) {\n factory = this.factories[i];\n\n if(factory.canCreate(trimmed) == true){\n return factory.create(trimmed);\n }\n }\n\n return null;\n },\n parseOperand: function(input) {\n return Operand.parse(input);\n },\n createOperand: function(number, kind) {\n return Operand.create(number, kind);\n },\n addFactory: function(factory) {\n this.factories.push(factory);\n }\n };\n\n // List of numbers\n expression.addFactory({\n regex: /^(-?(?:\\d+|0x[\\d,a-f]+|0b[0-1])\\s?)+$/,\n canCreate: function(string) {\n return this.regex.test(string);\n },\n create: function (string) {\n var matches = this.regex.exec(string),\n numbers = [],\n input = matches.input;\n\n input.split(' ').forEach(function(n){\n if(n.trim().length > 0) {\n numbers.push(Operand.parse(n.trim()));\n }\n });\n\n return new ListOfNumbersExpression(input, numbers);\n }\n });\n\n // Multiple operands expression\n expression.addFactory({\n fullRegex: /^((<<|>>|>>>|\\||\\&|\\^)?(~?-?([b,x,a-f,0-9]+)))+$/,\n regex: /(<<|>>|>>>|\\||\\&|\\^)?(~?-?(?:[b,x,a-f,0-9]+))/g,\n canCreate: function(string) {\n this.fullRegex.lastIndex = 0;\n return this.fullRegex.test(this.normalizeString(string));\n },\n create: function (string) {\n var m, operands = [],\n normalizedString = this.normalizeString(string);\n\n while ((m = this.regex.exec(normalizedString)) != null) {\n operands.push(this.parseMatch(m));\n }\n\n return new MultipleOperandsExpression(normalizedString, operands)\n },\n parseMatch: function (m) {\n // console.log('match');\n // console.log(m);\n var input = m[0],\n sign = m[1],\n num = m[2];\n\n var op = null;\n if(num.indexOf('~') == '0') {\n op = new ExpressionOperand(input, Operand.parse(num.substring(1)), '~');\n }\n else {\n op = Operand.parse(num);\n }\n\n if(sign == null) {\n return op;\n } else {\n return new ExpressionOperand(input, op, sign);\n }\n },\n normalizeString: function (string) {\n return string.replace(/\\s+/g,'');\n }\n });\n\n\nexport var parser = expression;\n\nexport class Parser {\n constructor(input, pos) {\n this.input = input;\n this.pos = pos || 0;\n this.buffer = [];\n }\n\n parse() {\n console.log(this.input.length);\n while(this.pos<this.input.length) {\n this.buffer.push(this.input[this.pos]);\n this.pos++;\n }\n console.log('exit');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\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 (is(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 for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(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// ./~/fbjs/lib/shallowEqual.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\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 */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\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 * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: { toIndex: update.toIndex, content: update.content.toString() }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMChildrenOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMNamespaces.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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) : _prodInvariant('96', pluginName) : void 0;\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) : _prodInvariant('97', pluginName) : void 0;\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) : _prodInvariant('98', eventName, pluginName) : void 0;\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) : _prodInvariant('99', eventName) : void 0;\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) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\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 * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\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.') : _prodInvariant('101') : void 0;\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) : _prodInvariant('102', pluginName) : void 0;\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 if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\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 if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EventPluginRegistry.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\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 * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\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 {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\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 dispatchInstances = event._dispatchInstances;\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 Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = 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 dispatchInstances = event._dispatchInstances;\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 Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = 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 dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = 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 getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EventPluginUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/KeyEscapeUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\nvar propTypesFactory = require('prop-types/factory');\n\nvar React = require('react/lib/React');\nvar PropTypes = propTypesFactory(React.isValidElement);\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.') : _prodInvariant('87') : void 0;\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.') : _prodInvariant('88') : void 0;\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') : _prodInvariant('89') : void 0;\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: PropTypes.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, 'prop', null, ReactPropTypesSecret);\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) : void 0;\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-dom/lib/LinkedValueUtils.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: 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.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactComponentEnvironment.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\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 document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactErrorUtils.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\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` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\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') : void 0;\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 * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\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 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, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\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 if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\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 enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactUpdateQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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-dom/lib/getEventCharCode.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getEventModifierState.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\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-dom/lib/getEventTarget.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/isEventSupported.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/shouldUpdateReactComponent.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\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 current: 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.current = 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 case '#document':\n return tag === 'html';\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 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\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 case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\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 do {\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, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\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 var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\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>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\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-dom/lib/validateDOMNesting.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\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.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\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, 'forceUpdate');\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 isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\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]) : void 0;\n return undefined;\n }\n });\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 * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\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, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\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 warnNoop(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 warnNoop(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 warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactNoopUpdateQueue.js","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n var noop = function() {};\n var undefinedType = \"undefined\";\n\n function realMethod(methodName) {\n if (typeof console === undefinedType) {\n return false; // We can't build a real method without a console to log to\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // these private functions always need `this` to be set properly\n\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n }\n\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n /*\n *\n * Public API\n *\n */\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Package-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n return defaultLogger;\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./~/loglevel/lib/loglevel.js","import React from 'react';\nimport cmd from '../cmd';\n\nexport default class InputBox extends React.Component {\n constructor() {\n super();\n this.history = [];\n this.historyIndex = -1;\n }\n\n componentDidMount(){\n this.nameInput.focus();\n }\n\n render() {\n return <input id=\"in\" type=\"text\"\n ref={(input) => { this.nameInput = input; }} \n onKeyUp={e => this.onKeyUp(e)}\n onKeyDown={e => this.onKeyDown(e)}\n className=\"expressionInput mono\"\n placeholder=\"type expression like '1>>2' or 'help' \"/>;\n }\n\n onKeyUp(e) {\n var input = e.target;\n if (e.keyCode != 13 || input.value.trim().length == 0) {\n return;\n }\n\n var value = input.value;\n this.history.unshift(value);\n this.historyIndex = -1;\n\n input.value = ''; \n cmd.execute(value);\n }\n\n onKeyDown(args) {\n\n if(args.keyCode == 38) {\n var newIndex = this.historyIndex+1;\n\n if (this.history.length > newIndex) { // up\n args.target.value = this.history[newIndex];\n this.historyIndex = newIndex;\n }\n\n args.preventDefault();\n return;\n }\n\n if(args.keyCode == 40) {\n if(this.historyIndex > 0) { // down\n args.target.value = this.history[--this.historyIndex];\n }\n\n args.preventDefault();\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/InputBox.jsx","'use strict';\n\n/**\n * Copyright (c) 2013-present, 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 * @typechecks\n */\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 listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\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 capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\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 registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/EventListener.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\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// ./~/fbjs/lib/focusNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\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\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/getActiveElement.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\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// ./~/process/browser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/factory.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: 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 gridRow: true,\n gridColumn: 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 floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: 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-dom/lib/CSSProperty.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PooledClass = require('./PooledClass');\n\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 */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\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\n\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\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\n\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/CallbackQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\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) : void 0;\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\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 createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\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 }\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 return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\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 }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\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 if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\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.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMPropertyOperations.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponentFlags.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\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, Boolean(props.multiple), 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 if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\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 = ReactDOMComponentTree.getNodeFromInstance(inst).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> host 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 getHostProps: function (inst, props) {\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 listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\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 // this 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 if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMSelect.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactEmptyComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactFeatureFlags.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\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};\n\n/**\n * Get a host 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) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\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 ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactHostComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 (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-dom/lib/ReactInputSelection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar React = require('react/lib/React');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\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\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.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\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(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, 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, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\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(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : 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 topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\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 /**\n * Used by devtools. The keys are not important.\n */\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, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\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') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\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, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\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 && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\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.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\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.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\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.') : void 0;\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.') : void 0;\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, nextContext)._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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\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 * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\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') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\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 isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\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.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, 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) : _prodInvariant('42', difference) : void 0;\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) : void 0;\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.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactMount.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar React = require('react/lib/React');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactNodeTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/ViewportMetrics.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\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.') : _prodInvariant('30') : void 0;\n\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 if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\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-dom/lib/accumulateInto.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 */\n\nfunction forEachAccumulated(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-dom/lib/forEachAccumulated.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/getHostComponentFromComposite.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getTextContentAccessor.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\n\nvar getNextDebugID = require('react/lib/getNextDebugID');\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 (element) {\n this.construct(element);\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 * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (process.env.NODE_ENV !== 'production') {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + 'it\\'s defined in.';\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n !false ? 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', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.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\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\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._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\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\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/instantiateReactComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 */\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\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/isTextInputElement.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/setTextContent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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-dom/lib/traverseAllChildren.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty)\n // Strip regex characters so we can use it for regex\n .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n // Remove hasOwnProperty from the template to make it generic\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function (id, item) {\n itemMap.set(id, item);\n };\n getItem = function (id) {\n return itemMap.get(id);\n };\n removeItem = function (id) {\n itemMap['delete'](id);\n };\n getItemIDs = function () {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function (id) {\n rootIDSet.add(id);\n };\n removeRoot = function (id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function () {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function (id) {\n return '.' + id;\n };\n var getIDFromKey = function (key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function (id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function (id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function (id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function () {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function (id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function (id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function () {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function (id, nextChildIDs) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function (id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function (id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function (id) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function (id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function (id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function (id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var name = getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return getDisplayName(element);\n },\n getElement: function (id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function (id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function (id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactComponentTreeHook.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactElementSymbol.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/canDefineProperty.js","import React from 'react';\nimport cmd from '../../cmd';\n\nexport default class CommandLink extends React.Component {\n render() {\n return <a href=\"javascript:void(0)\" onClick={e => cmd.execute(this.props.command || this.props.text)}>{this.props.text}</a>\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/misc/CommandLink.jsx","export default class ExpressionError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/ExpressionError.js","import numberParser from './numberParser';\nimport ExpressionError from './ExpressionError';\n\nvar id = 1;\n\n// Represents numeric value\nexport default class Operand {\n constructor(cfg) {\n this.id = id++;\n this.value = cfg.value;\n this.kind = cfg.kind;\n this.lengthInBits = Operand.getBitLength(this.value);\n this.isExpression = false;\n }\n \n getLengthInBits() {\n if(this.value < 0) {\n return 32;\n }\n return Math.floor(Math.log(this.value) / Math.log(2)) + 1;\n };\n\n getOtherKind(kind) {\n switch(kind || this.kind) {\n case 'dec': \n case 'bin':\n return 'hex';\n case 'hex': return 'dec';\n default : throw new Error(kind + \" kind doesn't have opposite kind\")\n }\n };\n\n toString(kind) {\n return Operand.toKindString(this.value, kind || this.kind);\n }\n\n toOtherKindString() {\n return this.toString(this.getOtherKind());\n }\n\n toDecimalString() {\n return this.toString('dec');\n }\n\n toHexString() {\n return this.toString('hex');\n }\n\n toBinaryString() {\n return this.toString('bin');\n }\n\n setValue(value) {\n console.log('Operand:%s.setValue: %s', this.id, this.value);\n this.value = value;\n }\n\n apply() {\n return this;\n }\n \n static getBitLength(num) {\n return Math.floor(Math.log(num) / Math.log(2)) + 1;\n } \n \n static getBase(kind){\n switch (kind){\n case 'bin': return 2;\n case 'hex': return 16;\n case 'dec': return 10;\n }\n };\n\n static create(value, kind) {\n\n return new Operand({\n value: value,\n kind: kind,\n input: Operand.toKindString(value, kind),\n });\n };\n\n static parse(input) {\n \n var parsed = numberParser.parse(input);\n\n if(!parsed) {\n throw new ExpressionError(input + \" is not a valid number\");\n }\n\n return new Operand(parsed);\n }\n\n static toKindString(value, kind) {\n switch(kind) {\n case 'hex':\n var hexVal = Math.abs(value).toString(16);\n return value >= 0 ? '0x' + hexVal : '-0x' + hexVal;\n case 'bin':\n return (value>>>0).toString(2);\n case 'dec':\n return value.toString(10);\n default:\n throw new Error(\"Unexpected kind: \" + kind)\n }\n };\n\n static toHexString (hex) {\n return hex.indexOf('-') == 0 ? '-0x' + hex.substr(1) : '0x' + hex;\n };\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/Operand.js","import CommandResult from './CommandResult';\n\nexport default class AboutResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/AboutResult.js","import CommandResult from './CommandResult';\n\nexport default class ErrorResult extends CommandResult {\n constructor(input, error) {\n super(input);\n this.error = error;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/ErrorResult.js","import CommandResult from './CommandResult';\r\n\r\nexport default class ExpressionResult extends CommandResult {\r\n constructor(input, expression) {\r\n super(input);\r\n this.expression = expression;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/ExpressionResult.js","import CommandResult from './CommandResult';\n\nexport default class HelpResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/HelpResult.js","import CommandResult from './CommandResult';\n\nexport default class StringResult extends CommandResult {\n constructor(input, text) {\n super(input);\n this.value = text;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/StringResult.js","import CommandResult from './CommandResult';\n\nexport default class UnknownCommandResult extends CommandResult {\n constructor(input) {\n super(input);\n this.message = `Sorry, i don''t know what ${input} is :(`;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/UnknownCommandResult.js","import CommandResult from './CommandResult';\n\nexport default class WhatsnewResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/WhatsnewResult.js","'use strict';\n\nmodule.exports = require('./lib/ReactDOM');\n\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/index.js","export default class AppState {\n constructor(persistData) {\n this.emphasizeBytes = persistData.emphasizeBytes || true;\n this.commandResults = [];\n this.handlers = [];\n this.uiTheme = persistData.uiTheme || 'dark';\n this.debugMode = false;\n\n this.version = 4;\n this.persistedVersion = persistData.version || 0.1;\n this.wasOldVersion = persistData.version && this.version > this.persistedVersion;\n }\n\n addCommandResult(result) {\n this.commandResults.unshift(result);\n this.triggerChanged();\n }\n\n clearCommmandResults() {\n this.commandResults = [];\n this.triggerChanged();\n }\n\n toggleEmphasizeBytes() {\n this.emphasizeBytes = !this.emphasizeBytes;\n this.triggerChanged();\n }\n\n onChange(handler) {\n this.handlers.push(handler);\n }\n\n triggerChanged() {\n for(var h of this.handlers) {\n h();\n }\n }\n\n setUiTheme(theme) {\n this.uiTheme = theme;\n this.triggerChanged(); \n }\n\n getPersistData() {\n return {\n emphasizeBytes: this.emphasizeBytes,\n uiTheme: this.uiTheme,\n version: this.version\n }\n }\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/AppState.js","const storeKey = 'AppState';\n\nexport default {\n getPersistedData() {\n var json = window.localStorage.getItem(storeKey);\n if(!json) {\n return {};\n }\n\n try {\n return JSON.parse(json);\n }\n catch(ex) {\n console.error('Failed to parse AppState json. Json Value: \\n' + json, ex);\n return {};\n }\n },\n\n watch (appState) {\n appState.onChange(() => this.persistData(appState));\n },\n\n persistData(appState) {\n localStorage.setItem(storeKey, JSON.stringify(appState.getPersistData()));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/appStateStore.js","import HelpResult from './models/HelpResult';\nimport AboutResult from './models/AboutResult';\nimport UnknownCommandResult from './models/UnknownCommandResult';\nimport ExpressionResult from './models/ExpressionResult';\nimport ErrorResult from './models/ErrorResult';\nimport WahtsnewResult from './models/WhatsnewResult';\nimport StringResult from './models/StringResult';\nimport * as expression from './expression';\nimport uuid from 'uuid/v4';\n\nconsole.log(uuid);\n\nvar cmdConfig = {};\n\nexport default {\n initialize (cmd, appState) {\n\n cmd.commands({\n 'help': function(c) {\n appState.addCommandResult(new HelpResult(c.input)); \n },\n 'clear': function() {\n appState.clearCommmandResults();\n },\n 'em': function() {\n appState.toggleEmphasizeBytes();\n },\n 'dark': function() {\n appState.setUiTheme('dark');\n },\n 'light': function () {\n appState.setUiTheme('light');\n },\n 'midnight': function() {\n appState.setUiTheme('midnight');\n },\n 'about': function(c) {\n appState.addCommandResult(new AboutResult(c.input));\n },\n 'whatsnew': function(c) {\n appState.addCommandResult(new WahtsnewResult(c.input));\n },\n 'guid': function(c) {\n appState.addCommandResult(new StringResult(c.input, uuid()))\n },\n '-notrack': function () {}, \n '-debug': function() {\n console.log('Debug mode on')\n cmd.debugMode = true;\n }\n });\n\n cmd.command({\n canHandle: (input) => expression.parser.canParse(input),\n handle: function(c) {\n var expr = expression.parser.parse(c.input);\n appState.addCommandResult(new ExpressionResult(c.input, expr));\n } \n })\n\n // Last command handler reports that input is unknown\n cmd.command({\n canHandle: () => true,\n handle: (c) => appState.addCommandResult(new UnknownCommandResult(c.input))\n });\n\n cmd.onError((input, err) => appState.addCommandResult(new ErrorResult(input, err)));\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/app/commands.js","import React from 'react';\nimport InputBox from './InputBox';\nimport DisplayResultView from './DisplayResultView';\n\nexport default class AppRoot extends React.Component {\n componentWillMount() {\n this.refresh();\n this.props.appState.onChange(() => this.refresh());\n }\n refresh() {\n this.setState(this.props.appState);\n }\n \n getIndicator(value) {\n return value === true ? 'on' : 'off';\n }\n\n getResultViews() {\n var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input={r.input} inputHash={r.inputHash} appState={this.props.appState} />);\n return results;\n }\n\n toggleEmphasizeBytes() {\n console.log(this.props.appState);\n this.props.appState.toggleEmphasizeBytes();\n }\n\n render() {\n return <div className={`app-root ${this.state.uiTheme}`}>\n <div className=\"header\">\n <h1>Bitwise<span className=\"header-cmd\">Cmd</span></h1>\n <ul className=\"top-links\">\n <li>\n <a href=\"https://github.com/BorisLevitskiy/BitwiseCmd\"><i className=\"icon github\"> </i><span className=\"link-text\">Project on GitHub</span></a>\n </li>\n <li>\n <a href=\"https://twitter.com/BitwiseCmd\"><i className=\"icon twitter\"> </i><span className=\"link-text\">Twitter</span></a>\n </li>\n <li>\n <a href=\"mailto:bitwisecmd@gmail.com?subject=Feedback\"><i className=\"icon feedback\"> </i><span className=\"link-text\">Send Feedback</span></a>\n </li>\n </ul>\n </div>\n\n <div className=\"expressionInput-container\">\n <InputBox />\n\n <span className=\"configPnl\">\n <span id=\"emphasizeBytes\" data-cmd=\"em\" className={\"indicator \" + this.getIndicator(this.state.emphasizeBytes)} title=\"Toggle Emphasize Bytes\" onClick={e => this.toggleEmphasizeBytes()}>[em]</span>\n </span>\n </div>\n\n <div id=\"output\">\n {this.getResultViews()}\n </div>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/AppRoot.jsx","export default {\n encodeHash: function(string) {\n return encodeURI(string.trim().replace(/\\s/g,','));\n },\n decodeHash: function(hashValue) {\n return decodeURI(hashValue).replace(/^\\#/, '').replace(/,/g,' ');\n },\n getArgs: function (hashValue) {\n\n var decodedHash = this.decodeHash(hashValue),\n args = { commands: [] };\n\n splitHashList(decodedHash).forEach(function(value) {\n args.commands.push(value);\n });\n\n return Object.freeze(args);\n }\n };\n\nfunction splitHashList(str) {\n var values = [];\n\n if(str.indexOf('||')) {\n str.split('||').forEach(function (v) {\n if (v.length > 0) {\n values.push(v);\n }\n });\n } else {\n values.push(str);\n }\n\n return values;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/hash.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/camelize.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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// ./~/fbjs/lib/camelizeStyleName.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nfunction containsNode(outerNode, innerNode) {\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 return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/containsNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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 browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in 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) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\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\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// ./~/fbjs/lib/createArrayFromMixed.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\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) : void 0;\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) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(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// ./~/fbjs/lib/createNodesFromMarkup.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\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) : void 0;\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// ./~/fbjs/lib/getMarkupWrap.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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 */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.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// ./~/fbjs/lib/getUnboundedScrollPosition.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/hyphenate.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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// ./~/fbjs/lib/hyphenateStyleName.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/isNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/isTextNode.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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\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// ./~/fbjs/lib/memoizeStringOnly.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\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 invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n 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', location, typeSpecName, typeof error);\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 stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/checkPropTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var 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 */\n function 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\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\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var 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 symbol: createPrimitiveTypeChecker('symbol'),\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\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\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\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\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 PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + 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 + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\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 (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\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, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 || 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 function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function 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 if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\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 a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/factoryWithTypeCheckers.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/lib/ReactPropTypesSecret.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ARIADOMPropertyConfig.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/AutoFocusUtils.js","/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\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\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', '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 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case '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 === '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 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case '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 'topKeyPress':\n case 'topMouseDown':\n case '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 * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, 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(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, 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 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case '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 '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 composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && 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 '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 '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 '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 * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, 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, targetInst, 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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/BeforeInputEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\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 var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\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?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\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?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\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.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (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 * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\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 * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\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, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\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 * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\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], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\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\nmodule.exports = CSSPropertyOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/CSSPropertyOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = 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') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === '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(target, targetInst);\n } else if (topLevelType === '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 // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) 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 IE <=11) 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) 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\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) 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 getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === '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 targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === '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-11, 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(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === '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 activeElementInst;\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 getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return targetInst;\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ChangeEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\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.') : _prodInvariant('56') : void 0;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== '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().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/Danger.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\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 */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DefaultEventPluginOrder.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.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 if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EnterLeaveEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\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\n_assign(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-dom/lib/FallbackCompositionState.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\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 HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function (node, value) {\n if (value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/HTMLDOMPropertyConfig.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\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, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\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, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\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;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n 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 removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\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 prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\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 * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactChildReconciler.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\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 replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactComponentBrowserEnvironment.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactReconciler = require('./ReactReconciler');\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\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 ReactCompositeComponent = {\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 = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\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`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\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 = updateQueue;\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 || inst.state, '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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\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 var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\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 = 0;\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 Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var 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._checkContextTypes(Component.contextTypes, maskedContext, '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;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\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') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\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) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\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, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\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 !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\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 if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\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 _this2 = this;\n\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 if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\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 if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\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\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\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.') : _prodInvariant('110') : void 0;\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 || component._compositeType !== CompositeTypes.StatelessFunctional, '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()) : void 0;\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 (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactCompositeComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.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.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\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 // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\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\" />') : void 0;\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.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOM.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.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 = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\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\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 because 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)) : void 0;\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 (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\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`.') : _prodInvariant('60') : void 0;\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.') : _prodInvariant('61') : void 0;\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`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !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.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\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)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\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') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\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') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('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(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\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-case 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\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) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\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(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\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(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\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, 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, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\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 if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\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 if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\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, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, 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 // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, 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 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 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\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 {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\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, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\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, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently 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 CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\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 if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\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 (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\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 '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) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMContainerInfo.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMEmptyComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMFeatureFlags.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\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 * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMIDOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host 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 getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, 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 hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n // eslint-disable-next-line\n if (value != valueAsNumber) {\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 node.value = '' + value;\n }\n // eslint-disable-next-line\n } else if (value != node.value) {\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 node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\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 = ReactDOMComponentTree.getNodeFromInstance(this);\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 radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\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-dom/lib/ReactDOMInput.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\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>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value 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 var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _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 hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMOption.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 (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 programmatically 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 = 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-dom/lib/ReactDOMSelection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\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 between comment nodes so that they\n * can undergo 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 (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\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 commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMTextComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\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> host 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 getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\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>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\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 var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\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-dom/lib/ReactDOMTextarea.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\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 * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMTreeTraversal.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\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\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\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 return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDefaultBatchingStrategy.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = require('./ARIADOMPropertyConfig');\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\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.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\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.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDefaultInjection.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactElementSymbol.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactEventEmitterMixin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\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 while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\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}\n_assign(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 var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\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 = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, 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} element 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, element) {\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} element 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, element) {\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-dom/lib/ReactEventListener.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactInjection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\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, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\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-dom/lib/ReactMarkupChecksum.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\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 var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\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\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\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 var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\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 var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\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 // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\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 removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\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 nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\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 updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, 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 // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\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, afterNode, 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 return makeMove(child, afterNode, 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, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, 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, node) {\n return makeRemove(child, node);\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 _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, 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, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactMultiChild.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\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 * 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 !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).') : _prodInvariant('119') : void 0;\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 !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).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactOwner.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactPropTypesSecret.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\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 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\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\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(useCreateElement) {\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 // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = 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 * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\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\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactReconcileTransaction.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 || typeof element !== 'object') {\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 prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && typeof prevElement === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && typeof nextElement === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\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-dom/lib/ReactRef.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\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 = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\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 noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\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\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactServerRenderingTransaction.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\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\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(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\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\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 {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\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|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\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|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactServerUpdateQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.5.4';\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactVersion.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\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 xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\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};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SVGDOMPropertyConfig.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = 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. See #3639.\nvar hasListener = false;\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, activeElementInst, 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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = 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 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case '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 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SelectEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\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 SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\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');\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case '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 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case '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 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, 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 // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SimpleEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticAnimationEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticClipboardEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticCompositionEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticDragEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticFocusEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticInputEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticKeyboardEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticTouchEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticTransitionEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticWheelEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 var n = Math.min(i + 4096, m);\n for (; i < n; 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-dom/lib/adler32.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\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 * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\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 if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/dangerousStyleValue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\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 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') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/findDOMNode.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\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 * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\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, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/flattenChildren.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getEventKey.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\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-dom/lib/getIteratorFn.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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-dom/lib/getNodeForCharacterOffset.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/getVendorPrefixedEventName.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/quoteAttributeValueForBrowser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/renderSubtreeIntoContainer.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/KeyEscapeUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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 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.') : _prodInvariant('25') : void 0;\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.\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 // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/PooledClass.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\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 keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\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.key && (!child || child.key !== mappedChild.key) ? 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\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 *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host 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: '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: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: '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: '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: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: '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 * @required\n */\n render: '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: '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: '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: '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: '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: '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: '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: '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: '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, '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, '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, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\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 only 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) : void 0;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, 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 === '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) : _prodInvariant('73', name) : void 0;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === 'DEFINE_MANY' || 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) : _prodInvariant('74', name) : void 0;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;\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.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\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 var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, 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 isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(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 === 'DEFINE_MANY_MERGED' || 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) : _prodInvariant('77', specPolicy, name) : void 0;\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 === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (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) : _prodInvariant('78', name) : void 0;\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) : _prodInvariant('79', name) : void 0;\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.') : _prodInvariant('80') : void 0;\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) : _prodInvariant('81', key) : void 0;\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 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) : void 0;\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) : void 0;\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 };\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 var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\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, 'replaceState');\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\nvar ReactClassComponent = function () {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\nvar didWarnDeprecated = false;\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\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 if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;\n didWarnDeprecated = true;\n }\n\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets 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') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\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 (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') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\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.') : _prodInvariant('83') : void 0;\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') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\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 = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactDOMFactories.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactElement'),\n isValidElement = _require.isValidElement;\n\nvar factory = require('prop-types/factory');\n\nmodule.exports = factory(isValidElement);\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactPropTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\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\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactPureComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.5.4';\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactVersion.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/getNextDebugID.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/onlyChild.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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 * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n return bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]];\n}\n\nmodule.exports = bytesToUuid;\n\n\n\n// WEBPACK FOOTER //\n// ./~/uuid/lib/bytesToUuid.js","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\nvar rng;\n\nvar crypto = global.crypto || global.msCrypto; // for IE 11\nif (crypto && crypto.getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16);\n rng = function whatwgRNG() {\n crypto.getRandomValues(rnds8);\n return rnds8;\n };\n}\n\nif (!rng) {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n rng = function() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n\nmodule.exports = rng;\n\n\n\n// WEBPACK FOOTER //\n// ./~/uuid/lib/rng-browser.js","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options == 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n\n\n\n// WEBPACK FOOTER //\n// ./~/uuid/v4.js","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","import React from 'react';\nimport HelpResult from '../models/HelpResult';\nimport AboutResult from '../models/AboutResult';\nimport UnknownCommandResult from '../models/UnknownCommandResult';\nimport HelpResultView from './results/HelpResultView';\nimport AboutResultView from './results/AboutResultView';\nimport ExpressionResult from '../models/ExpressionResult';\nimport BitwiseOperationExpressionView from './results/BitwiseOperationExpressionView';\nimport WhatsnewResult from '../models/WhatsnewResult';\nimport WhatsnewResultView from './results/WhatsnewResultView';\nimport ErrorResult from '../models/ErrorResult';\nimport StringResult from '../models/StringResult';\n\nimport * as expression from '../expression';\n\nexport default class DisplayResult extends React.Component {\n render() {\n\n return <div className=\"result\">\n <div className=\"input mono\"><span className=\"cur\">></span>{this.props.content.input}<a className=\"hashLink\" title=\"Link for this expression\" href={window.location.pathname + '#' + this.props.inputHash}>#</a></div>\n <div className=\"content\">\n {this.findResultComponent(this.props.content)}\n </div>\n </div>;\n }\n\n findResultComponent(result) {\n if(result instanceof HelpResult) {\n return <HelpResultView content={result} />\n }\n\n if(result instanceof AboutResult) {\n return <AboutResultView />\n }\n\n if(result instanceof ExpressionResult) {\n return <BitwiseOperationExpressionView expression={result.expression} emphasizeBytes={this.props.appState.emphasizeBytes} /> \n }\n\n if(result instanceof WhatsnewResult) {\n return <WhatsnewResultView />\n }\n\n if(result instanceof StringResult) {\n return <p>{result.value}</p>\n }\n\n if (result instanceof ErrorResult) {\n return <div className=\"result\">\n <div className=\"error\">(X_X) Ooops.. Something ain' right: <strong>{result.error.message}</strong></div>\n </div>\n }\n\n return <div className=\"result\">\n <div className=\"error\">¯\\_(ツ)_/¯ Sorry, i don′t know what <strong>{this.props.input}</strong> is</div>\n </div>\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/DisplayResultView.jsx","import React from 'react'\n\nexport default class AboutResultView extends React.Component {\n render() {\n return <div className=\"aboutTpl\">\n <p> Created by <a href=\"http://boryslevytskyi.github.io/\">Borys Levytskyi</a>. Please give it a like if BitwiseCmd has helped you in your work.</p>\n <p>If you have an idea, suggestion or you've spotted a bug here, please send it to <a href=\"mailto:bitwisecmd@gmail.com?subject=Feedback\">bitwisecmd@gmail.com</a> or tweet on <a href=\"http://twitter.com/BitwiseCmd\">@BitwiseCmd</a>. Your feedback is greatly appreciated.</p>\n <p><a href=\"https://github.com/BorisLevitskiy/BitwiseCmd\">Project on <strong>GitHub</strong></a></p>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/AboutResultView.jsx","import React from 'react';\n\nexport default class BinaryStringView extends React.Component {\n render() {\n return <span>{this.getChildren()}</span>\n }\n\n onBitClick(index, e) {\n if(!this.props.allowFlipBits) {\n return;\n }\n\n if(this.props.onFlipBit) {\n this.props.onFlipBit({ index: index, binaryString: this.props.binaryString, $event: e });\n }\n }\n\n getChildren() {\n var bits = this.createBits(this.props.binaryString.split(''));\n \n if(this.props.emphasizeBytes) {\n return this.splitIntoBytes(bits);\n }\n\n return bits;\n }\n\n createBits(bitChars) {\n const allowFlipBits = this.props.allowFlipBits || false;\n const css = allowFlipBits ? ' flipable' : ''\n const classNames = { '0': `zero${css}`, '1' : `one ${css}` };\n return bitChars.map((c, i) => <span className={classNames[c]} key={i} onClick={e => this.onBitClick(i, e)}>{c}</span>);\n }\n\n splitIntoBytes(bits) {\n const bytes = [];\n\n var key = 0;\n while(bits.length > 0) {\n bytes.push(<span key={key++} className=\"byte\">{bits.splice(0, 8)}</span>);\n }\n \n return bytes;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/BinaryStringView.jsx","import React from 'react';\nimport { Operand, ListOfNumbersExpression, ExpressionOperand, MultipleOperandsExpression } from '../../expression';\nimport formatter from '../../formatter';\nimport BinaryStringView from './BinaryStringView';\nimport BitwiseExpressionViewModel from './models/BitwiseExpressionViewModel';\nimport log from 'loglevel';\n\nexport default class BitwiseOperationEpxressionView extends React.Component {\n constructor() {\n super();\n this.state = {};\n }\n render() {\n var rows = this.getRows();\n if(!rows) {\n return null;\n }\n\n return <table className=\"expression\">\n <tbody>\n {rows}\n </tbody>\n </table>\n }\n\n getRows() {\n const expr = this.props.expression;\n var model = null;\n\n if(expr instanceof ListOfNumbersExpression) {\n model = BitwiseExpressionViewModel.buildListOfNumbers(expr, { \n emphasizeBytes: this.props.emphasizeBytes, \n allowFlipBits: true \n });\n }\n\n if(expr instanceof MultipleOperandsExpression) {\n model = BitwiseExpressionViewModel.buildMultiple(expr, { \n emphasizeBytes: this.props.emphasizeBytes,\n allowFlipBits: false \n });\n }\n\n log.info('Render model', model);\n\n return model.items.map((itm, i) => \n <ExpressionRow \n key={i} \n {...itm} \n emphasizeBytes={this.props.emphasizeBytes} \n maxNumberOfBits={model.maxNumberOfBits} \n onBitFlipped={() => this.onBitFlipped()} />);\n }\n\n onBitFlipped() {\n console.log('bit flipped');\n this.setState({d:new Date()});\n }\n}\n\nclass ExpressionRow extends React.Component {\n constructor() {\n super();\n this.state = { operand: null };\n }\n render() {\n const { sign, css, maxNumberOfBits, emphasizeBytes, allowFlipBits, operand } = this.props;\n \n return <tr className={css}>\n <td className=\"sign\">{sign}</td>\n <td className=\"label\">{this.getLabel(operand)}</td>\n <td className=\"bin\">\n <BinaryStringView \n emphasizeBytes={emphasizeBytes} \n binaryString={formatter.padLeft(operand.apply().toBinaryString(), maxNumberOfBits, '0')} \n allowFlipBits={allowFlipBits} \n onFlipBit={idx => this.flipBit(idx)}/>\n </td>\n <td className=\"other\">{this.getOther(operand)}</td>\n </tr>;;\n }\n\n getLabel(op) {\n if(op.isExpression) {\n return op.toString();\n }\n return op.toString(op.kind == 'bin' ? 'dec' : op.kind);\n }\n\n getOther(op) {\n if(op.isExpression) {\n return op.apply().toString();\n }\n return op.toString(op.getOtherKind());\n }\n\n flipBit(args) { \n\n const op = this.props.operand;\n const { index, binaryString } = args;\n\n var arr = binaryString.split('');\n arr[index] = arr[index] == '0' ? '1' : '0';\n var bin = arr.join('');\n\n var newValue = parseInt(bin, 2);\n console.log('flipped \\n%s to \\n%s from \\n%s to \\n%s', binaryString, bin, op.value, newValue);\n op.setValue(newValue);\n\n this.props.onBitFlipped();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/BitwiseOperationExpressionView.jsx","import React from 'react';\nimport cmd from '../../cmd';\nimport CommandLink from '../misc/CommandLink';\n\nexport default class HelpResultView extends React.Component {\n render() {\n return <div className=\"help helpResultTpl\">\n <div style={{overflow: \"hidden\"}}>\n <div style={{float: \"left\", \"marginRight\": \"20px\"}}>\n <div className=\"section\">\n <strong>Supported Commands</strong>\n <ul>\n <li><code><CommandLink text=\"23 | 34\" /></code> — type bitwise expression to see result in binary (only positive integers are supported now)</li>\n <li><code><CommandLink text=\"23 34\" /></code> — type one or more numbers to see their binary representations</li>\n <li><code><CommandLink text=\"clear\" /></code> — clear output pane</li>\n <li><code><CommandLink text=\"help\" /></code> — display this help</li>\n <li><code><CommandLink text=\"whatsnew\" /></code> — display changelog</li>\n <li><code><CommandLink text=\"em\" /></code> — turn On/Off Emphasize Bytes</li>\n <li><code><CommandLink text=\"light\" /></code> — set Dark theme</li>\n <li><code><CommandLink text=\"dark\" /></code> — set Light theme</li>\n <li><code><CommandLink text=\"midnight\" /></code> — set Midnight theme</li>\n <li><code><CommandLink text=\"about\" /></code> — about the app</li>\n <li><code><CommandLink text=\"guid\" /></code> — generate <a href=\"https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29\">v4</a> GUID</li>\n </ul>\n </div>\n </div>\n <div style={{\"float\":\"left\"}}>\n <div className=\"section\">\n <strong>Supported Bitwise Operations</strong><br/>\n <small>\n <a href=\"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators\">\n as implemented in JavaScript engine\n </a>\n </small>\n <ul>\n <li><code>&</code> — bitwise AND</li>\n <li><code>|</code> — bitwise inclusive OR</li>\n <li><code>^</code> — bitwise exclusive XOR</li>\n <li><code>~</code> — bitwise NOT</li>\n <li><code><<</code> — left shift</li>\n <li><code>>></code> — sign propagating right shift</li>\n <li><code>>>></code> — zero-fill right shift</li>\n </ul>\n </div>\n </div>\n </div>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/HelpResultView.jsx","import React from 'react'\nimport CommandLink from '../misc/CommandLink'\n\nexport default class WhatsnewResultView extends React.Component {\n render() {\n return <div className=\"changelog\">\n <h3>Changelog</h3>\n <div className=\"item item-new\">\n <p><span className=\"soft date\">Jun 6th, 2017</span> <br/>\n Added <code><CommandLink text=\"guid\" /></code> command. Use it for generating v4 GUIDs </p>\n </div>\n <div className=\"item\">\n <p><span className=\"soft date\">May 27th, 2017</span> <br/>\n Added support of binary number notation (e.g. <code><CommandLink text=\"0b10101\" /></code>). </p>\n </div> \n <div className=\"item\">\n <p><span className=\"soft\">May 20th, 2017</span> <br/>\n New <CommandLink text=\"Midnight\" /> theme added. </p>\n </div> \n <div className=\"item\">\n <p><span className=\"soft\">May 16th, 2017</span> <br/>\n Complete rewrite using React. Old implementation is available at <a href=\"http://bitwisecmd.com/old\">http://bitwisecmd.com/old</a>. Please let me know if you have problems with this release by <a href=\"https://github.com/BorysLevytskyi/BitwiseCmd/issues\">creating issue</a> in Github Repo.</p>\n </div> \n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/WhatsnewResultView.jsx","import { Operand, ExpressionOperand } from '../../../expression';\n\nexport default class BitwiseExpressionViewModel {\n\n constructor({ emphasizeBytes = false, allowFlipBits = false } = {}) {\n this.emphasizeBytes = emphasizeBytes;\n this.items = [];\n this.maxNumberOfBits = 0;\n this.allowFlipBits = allowFlipBits === true;\n }\n\n static buildListOfNumbers(expr, config) {\n var model = new BitwiseExpressionViewModel(config);\n expr.numbers.forEach(op => model.addOperand(op));\n model.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(model.maxNumberOfBits, model.emphasizeBytes);\n return model;\n }\n\n static buildMultiple (expr, config) {\n // console.log('build: ', expr);\n var op = expr.expressions[0],\n i = 0, l = expr.expressions.length,\n ex, m = new BitwiseExpressionViewModel(config);\n\n var cur = null;\n for (;i<l;i++) {\n var ex = expr.expressions[i];\n if(ex instanceof Operand) {\n m.addOperand(ex);\n cur = ex;\n // console.log('cur is ', cur)\n continue;\n }\n\n // If it a single NOT expression\n if(ex.isNotExpression) {\n m.addExpression(ex);\n var notResult = ex.apply();\n m.addExpressionResult(notResult);\n cur = notResult;\n }\n else if(ex.isShiftExpression){\n // console.log('cur is ', cur)\n cur = ex.apply(cur);\n m.addShiftExpressionResult(ex, cur);\n } else {\n\n cur = ex.apply(cur);\n m.addExpression(ex);\n m.addExpressionResult(cur);\n }\n }\n\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n };\n\n static buildNot (expression, config) {\n \n var m = new BitwiseExpressionViewModel(config);\n m.addExpression(expression);\n m.addExpressionResult(expression.apply());\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n };\n\n addOperand(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ \n sign:'', \n css: '',\n operand: operand,\n allowFlipBits: this.allowFlipBits\n });\n };\n\n addExpression(expression) {\n this.maxNumberOfBits = Math.max(expression.operand.apply().getLengthInBits(), this.maxNumberOfBits);\n \n this.items.push({ \n sign: expression.sign, \n label: this.getLabel(expression.operand),\n operand: expression.operand,\n allowFlipBits: this.allowFlipBits\n });\n };\n\n addShiftExpressionResult(expression, resultOperand) {\n this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: expression.sign + expression.operand.toString(),\n css: 'expression-result',\n operand: resultOperand,\n allowFlipBits: false\n });\n };\n\n addExpressionResult(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ \n sign:'=', \n css: 'expression-result',\n operand: operand, \n allowFlipBits: false\n });\n };\n\n getLabel (op) {\n \n if(op.kind == 'bin') {\n return op.dec;\n }\n\n return op.toString();\n }\n\n // TODO: move this method elsewhere. It is also used in LisOfNumbersExpressionView.js\n static getNumberOfBits = function (bits, emphasizeBytes) {\n if(emphasizeBytes && bits % 8 != 0) {\n if(bits < 8) {\n return 8;\n }\n\n var n = bits - (bits % 8);\n return n + 8;\n }\n\n return bits;\n };\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/models/BitwiseExpressionViewModel.js","import Operand from './Operand';\n\nexport default class ExpressionOperand {\n constructor(expressionString, operand, sign) {\n this.expressionString = expressionString;\n this.operand = operand;\n this.sign = sign;\n this.isExpression = true;\n this.isShiftExpression = this.sign.indexOf('<') >= 0 || this.sign.indexOf('>')>= 0;\n this.isNotExpression = this.sign == '~';\n }\n \n apply(operand) {\n if (operand instanceof ExpressionOperand) {\n console.error(\"value shouldnt be expression\", value);\n throw new Error('value shouldnt be expression'); \n }\n\n // console.log('operand', operand);\n\n var str = '';\n if(this.sign == '~'){\n str = '~' + this.operand.apply().value;\n } else {\n str = operand.value + this.sign + this.operand.apply().value;\n }\n\n // console.log('eval:' + str, this); \n const resultValue = eval(str);\n var resultOp = Operand.create(eval(str), this.operand.kind || this.operand.operand.kind);\n // console.log(resultValue, resultOp);\n\n return resultOp;\n };\n\n toString() {\n return this.sign + this.operand.toString();\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/ExpressionOperand.js","export default class ListOfNumbersExpression {\n constructor(expressionString, numbers) {\n this.expressionString = expressionString;\n this.numbers = numbers;\n this.maxBitsLegnth = numbers.map(n => n.lengthInBits).reduce((n , c) => n >= c ? n : c, 0);\n }\n\n toString() {\n return this.numbers.map(n => n.value.toString()).join(' ');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/ListOfNumbersExpression.js","export default class MultipleOperandsExpression {\n constructor(expressionString, expressions) {\n this.expressionString = expressionString;\n this.expressions = expressions;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/MultipleOperandsExpression.js","var decimalRegex = /^-?\\d+$/;\nvar hexRegex = /^-?0x[0-9,a-f]+$/i;\nvar binRegex = /^-?0b[0-1]+$/i;\nvar operatorRegex = /^<<|>>|<<<|\\&|\\|\\^|~$/;\n\nvar parsers = [\n { regex: decimalRegex, radix: 10, kind: 'dec', prefix: '^$' },\n { regex: hexRegex, radix: 16, kind: 'hex', prefix:/0x/i },\n { regex: binRegex, radix: 2, kind: 'bin', prefix:/0b/i }];\n\nfunction applyParser(parser, rawInput) {\n \n if(!parser.regex.test(rawInput)) {\n return null;\n }\n \n var value = parseInt(rawInput.replace(parser.prefix, ''), parser.radix);\n\n return {\n value: value,\n kind: parser.kind,\n input: rawInput\n } \n}\n\nvar parser = {\n parse: function(input) {\n return parsers.map(p => applyParser(p, input)).reduce((c, n) => c || n);\n },\n\n parseOperator: function(input) {\n var m = input.match(input);\n if(m.length == 0) {\n return null;\n }\n\n return m[0];\n }\n}\n\nexport default parser;\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression/numberParser.js","export default {\n formatString: function(num, kind) {\n return num.toString(getBase(kind || \"bin\"));\n },\n padLeft: function (str, length, symbol) {\n var sb = Array.prototype.slice.call(str), symbol = symbol || \"0\";\n\n if(length == null) {\n return str;\n }\n\n while(length > sb.length) {\n sb.unshift(symbol);\n }\n\n return sb.join('');\n }\n };\n\n function getBase(kind) {\n switch (kind){\n case 'bin': return 2;\n case 'hex': return 16;\n case 'dec': return 10;\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/app/formatter.js","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport InputBox from './components/InputBox.jsx';\nimport AppState from './AppState';\nimport appStateStore from './appStateStore';\nimport cmd from './cmd';\nimport commands from './commands';\nimport AppRoot from './components/AppRoot';\nimport hash from './hash';\nimport log from 'loglevel';\n\nsetupLogger();\n\nconst appState = createAppState();\n\ncommands.initialize(cmd, appState);\n\nexecuteStartupCommands();\n\nvar root = <AppRoot appState={appState} />;\nReactDOM.render(root, document.getElementById('root'));\n\nlog.debug(\"started\");\n\nfunction createAppState() {\n var stateData = appStateStore.getPersistedData();\n const appState = new AppState(stateData);\n appStateStore.watch(appState);\n log.debug(\"appState\", appState);\n return appState;\n}\n\nfunction setupLogger() {\n if(window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-debug') > -1) {\n log.setLevel(\"trace\");\n } else {\n log.setLevel(\"warn\");\n }\n}\n\nfunction executeStartupCommands() {\n var hashArgs = hash.getArgs(window.location.hash);\n\n var startupCommands = ['help', '1|2&6','1 2 4 8 16 32 0b1000000 0x80'];\n\n if(appState.wasOldVersion) {\n startupCommands = [\"whatsnew\"];\n }\n\n if(hashArgs.commands.length > 0) {\n startupCommands = hashArgs.commands;\n }\n\n startupCommands.forEach(cmd.execute.bind(cmd));\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/index.jsx","export default {\n plainObject: function(obj) {\n return typeof obj == \"object\" && obj instanceof Object;\n },\n\n aFunction: function (obj) {\n return typeof obj == \"function\";\n },\n\n string: function (obj) {\n return typeof obj == \"string\";\n },\n\n regex: function (obj) {\n return typeof obj == \"object\" && this.constructedFrom(RegExp);\n },\n\n constructedFrom: function (obj, ctor) {\n return obj instanceof ctor;\n },\n\n htmlElement: function(obj) {\n return obj instanceof HtmlElement;\n },\n\n array: function(obj) {\n return obj instanceof Array;\n },\n\n number: function(num) {\n return typeof num == \"number\" && !isNaN(num)\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/is.js"],"sourceRoot":""} \ No newline at end of file diff --git a/css/styles.css b/css/styles.css deleted file mode 100644 index 1eea277..0000000 --- a/css/styles.css +++ /dev/null @@ -1,139 +0,0 @@ -body { padding:0; margin:0; height: 100%; overflow: hidden; } -html { height: 100% } - -.app-root { font-family: Verdana; font-size: 0.8em; margin: 0; padding: 20px 100px 0 100px; height: 100%; overflow: auto; } -code { font-size: 1.2em; font-weight: bold; } - -.header-cmd { color: #c5c5c5 } - -.top-links { position: absolute; right: 10px; top: 10px; list-style-type: none; margin: 0 } -.top-links li { float: left; } -.top-links a { display: inline-block; padding: 10px 15px} -.top-links .icon { margin-right: 5px; } - -.mono { font-family: monospace; font-size: 1.3em } -.expressionInput { width: 500px; padding: 3px; border: solid 1px lightgray; } - -.result { margin: 10px 10px 30px; } -.result .input { margin-bottom: 10px; } -.result .content { padding-left: 10px} -.result .cur { margin-right: 5px; } - -.hashLink { text-decoration: none; margin-left: 5px; visibility: hidden } -.hashLink:hover { text-decoration: underline; margin-left: 5px; } -.result:hover .hashLink { visibility: visible } - -.expression .label { font-weight: bold; padding-right: 5px; text-align: right; } -.expression .bin { letter-spacing: 3px; } -.expression .flipable { cursor: pointer; opacity: 1 } -.expression .flipable:hover { opacity: 0.8 } -.expression .byte { margin: 0 3px; } -.expression .flipable { cursor: pointer; opacity: 1 } -.expression .flipable:hover { opacity: 0.8 } -.expression-result td { border-top: dotted 1px gray; } -.expression { font-size: 1.5em; font-family: monospace } -.expression .prefix { font-weight: normal; display: none; font-size: 0.9em } -.expression .other { font-size: 0.9em} -.expression .sign { text-align: right} - -.hex .prefix { display: inline; } - -.help { padding: 10px; } -.help ul { list-style-type: none; margin: 0; padding: 0; } -.help p { margin-top: 0 } - -.indicator { padding: 2px 5px; font-family: monospace; font-size: 1.3em; background: transparent; border: none; cursor: pointer } -.error { color: maroon; } - -.soft { opacity: 0.7 } - -.changelog .item { margin-top: 2em; } - -#view { padding: 10px} - -.cur { color: lightgray; } - -.icon { width: 16px; height: 16px; display: inline-block; } -.light .twitter { background: url('../img/twitter-light.png') } -.dark .twitter { background: url('../img/twitter-dark.png') } -.midnight .twitter { background: url('../img/twitter-dark.png') } - -.light .feedback { background: url('../img/feedback-light.png') } -.dark .feedback { background: url('../img/feedback-dark.png') } -.midnight .feedback { background: url('../img/feedback-dark.png') } - -.light .github { background: url('../img/github-light.png') } -.dark .github { background: url('../img/github-dark.png') } -.midnight .github { background: url('../img/github-dark.png') } - -/* Light */ -.light { background: #fafafa; } -.light a, .light a:visited { color: #222; } -.light .one { color: black; } -.light .zero { color: #888; } -.light .indicator { color: #ddd; } -.light .on { color: #121212; } -.light .prefix { color: #888} -.light .other { color: #bbb } -.light .hashLink, .light .hashLink:visited { color: #ddd } -.light .hashLink:hover { color: #888 } -.light ul.top-links li:hover { background: #ddd } -.light .error { color: #da586d } - -/* Dark */ -.dark { background: #121212; color: white;} -.dark .expression { color: white;} -.dark .expressionInput { background: #121212; color: white; } -.dark a, .dark a:visited { color: white; } -.dark .indicator { color: #555; } -.dark .on { color: white; } -.dark .zero { color: #999;} -.dark .prefix { color: #999} -.dark .other { color: #444;} -.dark .hashLink, .dark .hashLink:visited { color: #333 } -.dark .hashLink:hover { color: #999 } -.dark ul.top-links li:hover { background: #333 } -.dark .error { color: #da586d} - -/* - Midnight Theme -*/ -.midnight .header-cmd { color: #85a0ad } -.midnight { background: #2c3e50; color: white } -.midnight .expression { color: white;} -.midnight .expressionInput { background: #2c3e50; color: white; border-color: #85a0ad } -.midnight a, .dark a:visited { color: white; } -.midnight .indicator { color: #85a0ad; } -.midnight .on { color: white; } -.midnight .zero { color: #85a0ad;} -.midnight .prefix { color: #85a0ad} -.midnight .other { color: #9FBAC7;} -.midnight .hashLink, .dark .hashLink:visited { color: #85a0ad } -.midnight .hashLink:hover { color: #9FBAC7 } -.midnight ul.top-links li:hover { background: #132537 } -.midnight .error { color:#da586d} -.midnight .changelog .item-new .date { font-weight: bold } - -/* Top Links Shrink */ -@media (max-width: 800px) { - - .top-links .link-text { display: none } -} - -.social-container{ position:fixed; bottom:10px; right:10px } - -/* Remove margin space on body. Inline top links with header */ -@media (max-width: 700px) { - body { padding: 10px; } - .expressionInput { width: 500px; } -} - -/* Further shrink */ -@media (max-width: 500px) { - .expressionInput { width: 350px; } - .top-links a { display: inline-block; padding: 5px 10px} -} - -@media (max-width: 350px) { - .expressionInput { width: 200px; } -} diff --git a/img/feedback-dark.png b/img/feedback-dark.png deleted file mode 100644 index c693b65b7bcab34a92c9886b081ed1a5614b264c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe7{Je; zKl}gu`E!#L4Aip{?Dii&e)xR*_KoZB-@p6+6A6H7FMs*+MGR<&4a2{G|Na6QNk9RR zA$tj#0aSDG^XJbZzkdC40qXtA0MY<6<im##TtIK&Gz6&mJhEnxUa$d3hNQfI{~lz> zZjcx<z@`}_4>thBfw~045Rm4tU%v{$oDEV711JW71Yw2%y~6?2xE+X3<I)ULk6{3^ zAunFMV0!xWDGN56LFzyNs{tShkV}9XGk`JV1!R8(iD3gc4Zx-tn;7K=K$GulAWaUw bKk!*m<=#aT*SJslAeVT$`njxgN@xNA;o{*p diff --git a/img/feedback-light.png b/img/feedback-light.png deleted file mode 100644 index 83779293c22482b2305e7766fb48ea429d33480c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe7yu6s zPd_Uw>rGNHP|r%R+XVy!d?Y0$xmZ|O_5%g}6N8zVnJ<fri;MB`@!5b3`OD4Cog^b8 z12SYUAp?M#FG@&AhyeAtFfuZJ1sMRc6>Nxtf&v%N8#oOCYCeyq8Kf8PY>*)-N=ix~ zLv|yHgS~}AGl~H)mtYtI(hT&o5R$XOhC(fYy8tE#a|s8~CEJ0TPvg;y;Q|yxjE#+% z%*@PKaM%n}i{S#81jr>Bz^L+qhBizboyKVZx<Xuh3JqXmV*@4O*JR@RpmZ>>ApYG7 U*&lb8a)4an>FVdQ&MBb@0P&2tsQ>@~ diff --git a/img/github-dark.png b/img/github-dark.png deleted file mode 100644 index 07ecd24763f7c65802598086ab0743c407b615d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10aHmtK~y-6jgq@AL}3(#zZpS-2T&nlByO2rR7B-cDV1Jg9>T<A zCd3;kr_s2zViJj<a0vw!$`MhRe42eY#%*@;XP>OS_S*Yj=ZB_HC)AR9u0F>(SJ%|> zW`4S{Q(adZ>XBMdm*Nxxds8cF$4|`%>Z3aM$B?<;?0*qaH=;18cKx&EP;kot8Fd0U z0TzJ^;1bvZwt)el4Y&m+ffZm1=mn}ko-pSqCXD!hOa`~67PG)?r~yp>>hfpIM6Lp} zS)dQN3UIjvfrN7n^k)HqOn^Nt2y{oz0A_)EAQ#|i3j$}6bHH6<VhupetMxw&d{w7{ zTT_du<MG1gqcE(N)r(Z)jk+1X9CaajMhT#jJfvh#btffooWci#TOtK^sC!XJHhD-1 zG*XkF)Lpgxi!&ioj@1s;m!|t4My>R%xk+eDEvjc>Xg$7HKkl50cT3U8&P_aB7XSbN M07*qoM6N<$g6Dg>-2eap diff --git a/img/github-light.png b/img/github-light.png deleted file mode 100644 index 8df17f1cc321a1b65b1323d3d223376b784aa8d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006cNkl<ZIE{r< zziSjh7=7P2v)M~-=Wh4*ju@~L1Pj43YBXXQu&@y<QrPA{u(1^E6fHyrixj31v9T3R z6bl={T7xJgCbze{M_99$`C*aUumtp8_02c$z3<HoLpX*o3@<bDO(MEV&dmXUBieG# zy|vc9$g*s`&Zk-}x>598NV$C6v<{>7YClbH0Wfs~5y$a{WIq2taRqJdrzA-(0Wbmp zx>2+$g;>&Bua^f0HwJ0C#X_89qFv`);(%bc-@jdsMt7z>@3a(RVcPdk75n?Ipp=@Q z?e*Mjuje|Q&g1cr0KiObXi%l?bUKeKzEWzQeJNLtqG|nXT<!rVY6g1%8~_+&)~cp2 z<qCs&0RW7(BO*#Bou7y{jkP5JfO&xd%#C-p^E}_2WRPXq4-owxFXy<52A~aqCm8@> zI2Vp<#}4=j0D`C;$MLmE>M#tK1ak|AlYg-QHmq~l>GzG*`ehUZ7yl)Wl)4~=cv@?{ z<5KHKqw)aGIg<^C!@MXyFms`lny*;C?_Xi&-Kj?7qhLN!^{urJInVPip6@-G?e(TY zDHof~=CTTc&&<42GuUgjTHSgYZSDOuO}`%fg*b}d6Z2VP?Kx}hFwgU>##h}q-WJR= z0AP%H-5(6DAKvH~Nt!N#XiYGG_oV!W>Uj^*ti)RDyOkIKL_Jnf6mO;*jeQVxJ<nS$ r%kmEZwA*cuoI7KI2gzV?udewEO9s{W8@M$;00000NkvXXu0mjfB(D<A diff --git a/img/social-avatar.png b/img/social-avatar.png deleted file mode 100644 index 3d50a6daeb1bc27fc6c6f267c9d5d7aa2e2587a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6513 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 QXA&X}RUMTo<>zny4H#{L)&Kwi diff --git a/img/twitter-dark.png b/img/twitter-dark.png deleted file mode 100644 index e0d2f6faa35244270c5cb443b844a17606076713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6u^fM zAGm(}_!05#+c&?fSFbW*bu&;>>DjYqEa;NYpFd~%^XJdjfB*jd{q^hD;?JKy^P#H& z^MC*TUGVqs-^W13bzi=G5rHWJil_ZY0w6U%fBsa1$-`-&Gx>m;FM`wpZTk$=SoQMd zOE#c}`$+o1OrY3dxJDQQXe%GcbY#Uq{$*r7j19ElKhPB^-@ktkfawR*KmiA!rq3{i z_-LTI*T8_SK`{X2H=x8ppbbCqX$H9f7@#R%zkZcKF#yB?#)cG7!Eby904+g;!J9X4 zWYA3kx@0;o1AvBq2g)14^?*3Q5MK_Afkq&11)6>u<V0)$DE<}bbU(Oe7y}r13P8>4 zfeQZO(D)lDzZMv1nDGxY1Vn>UBhWP&K*bY*crFlk1Nm`S0}EN>fU?(HA2)c)I;|Vz N2v1i(mvv4FO#q_j*AxH% diff --git a/img/twitter-light.png b/img/twitter-light.png deleted file mode 100644 index ee35e405f7a35f2da73ef190f3a49db989cc0c37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6o7() z0+*1GP=u(cs9$VsEE85Yi;IgZSy))Gpi5d=SuwG)vTkK$Wc<s`&AnJgMurbv4Vcft z!BN1>%>0<0oxM&%LP7+lh?A2u4aoiv!%R#}kNNre)nM{)T3K0{4`|axkV2qspMeHe znV6Wc0S&zm(+s0oSXd6jHNqIu($ah&7r+#OXrO_Yk@?7M9v+?)K|#R)pcn!G1ss5e zd<KfZos5eObj53+`Wl38APeL-pu|C-KY!xV2onbeXbLdkB~T0iae#tSz%T%%Fr2Oc zdJPc<IyyQs=%xVuHyxJ&K*PWD@$nhK^#J{01Pt-zKvNsp*w|WuUO0_M^H-qL{otBm z3}7l#02;6!$p4E?GssIo`L#gHFykL)2#5wIRVAQnGJr0b2ux6OfttF32`NreQW7(; ckTnh{yOKNQ<FP$=*+Gu*boFyt=akR{0K;8%C;$Ke diff --git a/index.html b/index.html index 309021a..e0864b9 100644 --- a/index.html +++ b/index.html @@ -1,39 +1 @@ -<!DOCTYPE> -<html> - <head> - <meta charset="UTF-8"> - <meta name="description" content="Free Text Online Bitwise Calculator"> - - <title>BitwiseCmd - - - - - - - - - - -

-

Ooops... Something went wrong.

-

Either you have an old browser or I screwed something up ¯\_(ツ)_/¯

-

No worries! There is a still old version avaliable at http://bitwisecmd.com/old.

-
- - - -
- - - - - \ No newline at end of file +BitwiseCmd
\ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..861e94a --- /dev/null +++ b/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "BitwiseCmd", + "name": "BitwiseCmd", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/old/css/styles.css b/old/css/styles.css deleted file mode 100644 index 19e3144..0000000 --- a/old/css/styles.css +++ /dev/null @@ -1 +0,0 @@ -.help ul,.top-links{list-style-type:none}body{font-family:Verdana;font-size:.8em;margin:0;padding:20px 100px 0}.expression,.indicator,.mono{font-family:monospace}code{font-size:1.2em;font-weight:700}.social-container{position:fixed;bottom:10px;right:10px}.top-links{position:absolute;right:10px;top:10px;margin:0}.top-links li{float:left}.top-links a{display:inline-block;padding:10px 15px}.top-links .icon{margin-right:5px}.mono{font-size:1.3em}.expressionInput{width:500px;padding:3px;border:1px solid #d3d3d3}.result{margin:10px 10px 30px}.result .input{margin-bottom:10px}.result .content{padding-left:10px}.result .cur{margin-right:5px}.hashLink{text-decoration:none;margin-left:5px;visibility:hidden}.hashLink:hover{text-decoration:underline;margin-left:5px}.input:hover .hashLink{visibility:visible}.expression .label{font-weight:700;padding-right:5px;text-align:right}.expression .bin{letter-spacing:3px}.expression .byte{margin:0 3px}.expression .flipable{cursor:pointer;opacity:1}.expression .flipable:hover{opacity:.8}.expression-result td{border-top:dotted 1px gray}.expression{font-size:1.5em}.expression .prefix{font-weight:400;display:none;font-size:.9em}.expression .other{font-size:.9em}.expression .sign{text-align:right}.hex .prefix{display:inline}.help{padding:10px}.help ul{margin:0;padding:0}.help p{margin-top:0}.indicator{padding:2px 5px;font-size:1.3em;background:0 0;border:none;cursor:pointer}.error{color:maroon}#view{padding:10px}.cur{color:#d3d3d3}.icon{width:16px;height:16px;display:inline-block}.light .twitter{background:url(../img/twitter-light.png)}.dark .twitter{background:url(../img/twitter-dark.png)}.light .feedback{background:url(../img/feedback-light.png)}.dark .feedback{background:url(../img/feedback-dark.png)}.dark .github{background:url(../img/github-dark.png)}.light .github{background:url(../img/github-light.png)}.light{background:#fafafa}.light a,.light a:visited{color:#222}.light .one{color:#000}.light .zero{color:#888}.light .indicator{color:#ddd}.light .on{color:#121212}.light .prefix{color:#888}.light .other{color:#bbb}.light .hashLink,.light .hashLink:visited{color:#ddd}.light .hashLink:hover{color:#888}.light ul.top-links li:hover{background:#ddd}.dark,.dark .expressionInput{background:#121212;color:#fff}.dark a,.dark a:visited{color:#fff}.dark .indicator{color:#555}.dark .on{color:#fff}.dark .prefix,.dark .zero{color:#999}.dark .other{color:#444}.dark .hashLink,.dark .hashLink:visited{color:#333}.dark .hashLink:hover{color:#999}.dark ul.top-links li:hover{background:#333}@media (max-width:800px){.top-links .link-text{display:none}}@media (max-width:700px){body{padding:10px}.expressionInput{width:500px}}@media (max-width:500px){.expressionInput{width:350px}.top-links a{display:inline-block;padding:5px 10px}}@media (max-width:350px){.expressionInput{width:200px}} \ No newline at end of file diff --git a/old/favicon.ico b/old/favicon.ico deleted file mode 100644 index f3e80ddac957b117bca96780ef089daac725d952..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmc(eK?=h#31r93Jj==<%22IL0M(BYfFZhZT{@L`8w=% zGrN2C@CfSg*sizP(`$p(o%?&7=erZRpVrz}Z)gIuE^_7Yg6LIO@%X?>SMm73N*6qH zp$WtXRysVRxw3brqqd6GIkUO+tZI*}Lj&eo zZjcxthBfw~045Rm4tU%v{$oDEV711JW71Yw2%y~6?2xE+X3rGNHP|r%R+XVy!d?Y0$xmZ|O_5%g}6N8zVnJNxtf&v%N8#oOCYCeyq8Kf8PY>*)-N=ix~ zLv|yHgS~}AGl~H)mtYtI(hT&o5R$XOhC(fYy8tE#a|s8~CEJ0TPvg;y;Q|yxjE#+% z%*@PKaM%n}i{S#81jr>Bz^L+qhBizboyKVZx>ApYG7 U*&lb8a)4an>FVdQ&MBb@0P&2tsQ>@~ diff --git a/old/img/github-dark.png b/old/img/github-dark.png deleted file mode 100644 index 07ecd24763f7c65802598086ab0743c407b615d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)TOS_S*Yj=ZB_HC)AR9u0F>(SJ%|> zW`4S{Q(adZ>XBMdm*Nxxds8cF$4|`%>Z3aM$B?<;?0*qaH=;18cKx&EP;kot8Fd0U z0TzJ^;1bvZwt)el4Y&m+ffZm1=mn}ko-pSqCXD!hOa`~67PG)?r~yp>>hfpIM6Lp} zS)dQN3UIjvfrN7n^k)HqOn^Nt2y{oz0A_)EAQ#|i3j$}6bHH6R%xk+eDEvjc>Xg$7HKkl50cT3U8&P_aB7XSbN M07*qoM6N<$g6Dg>-2eap diff --git a/old/img/github-light.png b/old/img/github-light.png deleted file mode 100644 index 8df17f1cc321a1b65b1323d3d223376b784aa8d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 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 Bb-e%p diff --git a/old/img/twitter-dark.png b/old/img/twitter-dark.png deleted file mode 100644 index e0d2f6faa35244270c5cb443b844a17606076713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6u^fM zAGm(}_!05#+c&?fSFbW*bu&;>>DjYqEa;NYpFd~%^XJdjfB*jd{q^hD;?JKy^P#H& z^MC*TUGVqs-^W13bzi=G5rHWJil_ZY0w6U%fBsa1$-`-&Gx>m;FM`wpZTk$=SoQMd zOE#c}`$+o1OrY3dxJDQQXe%GcbY#Uq{$*r7j19ElKhPB^-@ktkfawR*KmiA!rq3{i z_-LTI*T8_SK`{X2H=x8ppbbCqX$H9f7@#R%zkZcKF#yB?#)cG7!Eby904+g;!J9X4 zWYA3kx@0;o1AvBq2g)14^?*3Q5MK_Afkq&11)6>u4 zfeQZO(D)lDzZMv1nDGxY1Vn>UBhWP&K*bY*crFlk1Nm`S0}EN>fU?(HA2)c)I;|Vz N2v1i(mvv4FO#q_j*AxH% diff --git a/old/img/twitter-light.png b/old/img/twitter-light.png deleted file mode 100644 index ee35e405f7a35f2da73ef190f3a49db989cc0c37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6o7() z0+*1GP=u(cs9$VsEE85Yi;IgZSy))Gpi5d=SuwG)vTkK$Wc%>0<0oxM&%LP7+lh?A2u4aoiv!%R#}kNNre)nM{)T3K0{4`|axkV2qspMeHe znV6Wc0S&zm(+s0oSXd6jHNqIu($ah&7r+#OXrO_Yk@?7M9v+?)K|#R)pcn!G1ss5e zd - - - - - - BitwiseCmd - - - - - - - - - - - - - - -
- - -
- - - - [em] - -
-
- -
-
- - - - - - - - - - - - - - - -
- - - - - - diff --git a/old/js/analytics.js b/old/js/analytics.js deleted file mode 100644 index 63758f4..0000000 --- a/old/js/analytics.js +++ /dev/null @@ -1,14 +0,0 @@ -(function() { - - if(window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-notrack') > -1) { - return; - } - - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-61569164-1', 'auto'); - ga('send', 'pageview'); -})(); \ No newline at end of file diff --git a/old/js/bitwisecmd.js b/old/js/bitwisecmd.js deleted file mode 100644 index 9542d63..0000000 --- a/old/js/bitwisecmd.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! BitwiseCmd 2015-12-20 */ -"use strict";window.core={},function(){window.core.is={plainObject:function(a){return"object"==typeof a&&a instanceof Object},aFunction:function(a){return"function"==typeof a},string:function(a){return"string"==typeof a},regex:function(a){return"object"==typeof a&&this.constructedFrom(RegExp)},constructedFrom:function(a,b){return a instanceof b},htmlElement:function(a){return a instanceof HtmlElement},array:function(a){return a instanceof Array},number:function(a){return"number"==typeof a&&!isNaN(a)}}}(),function(){function a(a,b){return"string"==typeof a?a+" "+b:b}var b=window.core.is;window.core.should={beNumber:function(c,d){this.check(b.number(c),c+" is not a number"),this.check(isFinite(c),a(d,"is an infinite number"))},bePositiveInteger:function(b,c){this.beNumber(b),this.check(b>=0,a(c,"should be positive integer"))},notBeNull:function(b,c){this.check(null!=b,a(c,"is null or undefined"))},beString:function(a,b){this.check("string"==typeof a,"should be a string")},check:function(a,b){if(a!==!0)throw new Error(b)}}}(),function(a){function b(a){this.store=a||{},this.resolutionStack=[]}function c(a){if(e(this.resolutionStack,a))throw new Error("Failed to resolve dependency: "+a+". Circular reference: "+this.resolutionStack.join(" < "));this.resolutionStack.unshift(a);var b=this.store[a];if(null==b)throw new Error(a+" component is not registered");return null==b.resolved&&b.createInstance(),this.resolutionStack.shift(),b.resolved}function d(a){this.def=a,this.resolved=null}function e(a,b){for(var c=a.length;c-- >0;)if(a[c]===b)return!0;return!1}var f=a.is;b.prototype.register=function(a,b){var c;return null!=this.store[a]&&console.warn("Previous registration for [%1] has been replaced",a),c=b instanceof d?b:new d(b),c.name=a,this.store[a]=c,c},b.prototype.resolve=function(a){return c.call(this,a)},b.prototype.clone=function(){var a={};for(var c in this.store)a[c]=this.store[c];return new b(a)},d.prototype.createInstance=function(){var a=this.def;"function"==typeof a?this.resolved=a():this.resolved=a,f.aFunction(this.onFirstTimeResolve)&&this.onFirstTimeResolve(this.resolved)},b.Registration=d,a.Container=b}(window.core),function(){function a(a){this.models={},this.di=a,this.runList=[],this.compositionList=[]}function b(a){a.forEach(function(a){a()})}a.prototype.get=function(a){return this.di.resolve(a)},a.prototype.set=function(a,b){this.di.register(a,b)},a.prototype.run=function(a){this.runList.push(a)},a.prototype.compose=function(a){this.compositionList.push(a)},a.prototype.initialize=function(){b(this.compositionList),b(this.runList)},window.core.AppShell=a}(),function(core){function normalize(a){return a.replace(/(\r|\n)+/g,"").replace("'","\\'")}function replaceToken(a,b){if(0==a.indexOf("each")){var c=/([\w\.]+)\sin\s([\w\.]+)/g,d=c.exec(a),e=d[1],f=d[2];return"var "+e+"_list = "+f+".slice(), "+e+";\r\nwhile(("+e+"="+e+"_list.splice(0,1)[0])!==undefined)\r\n{"}return"/"==a?"}":" html.push("+a+");"}var html={},should=core.should;html.element=function(a,b){var c=document.createElement("div");return c.innerHTML=html.template(a,b),c.children[0]},html.template=function(a,b){should.beString(a,"template");var c,d=/(?:{([^}]+)})/g;return c=null==b?a:a.replace(d,function(a,c){return html.escapeHtml(b[c])})},html.compileTemplate=function(template){var regex=/(?:{([^}]+)})/g,sb=[];sb.push("(function() {"),sb.push("return function (m) { "),sb.push(" var html = [];");for(var m,index=0;null!==(m=regex.exec(template));)m.index>index&&sb.push(" html.push('"+normalize(template.substr(index,m.index-index))+"');"),sb.push(replaceToken(m[1])),index=m.index+m[0].length;return index/g,">").replace(/"/g,""").replace(/'/g,"'"))},core.html=html}(window.core),function(a){function b(){this.$store={},this.$executionHandlers=[]}var c=a.is;b.create=function(a){var c=new b;for(var d in a)a.hasOwnProperty(d)&&(Object.defineProperty(c,d,{get:b.createGetter(d),set:b.createSetter(d)}),c[d]=a[d]);return Object.seal(c)},b.createGetter=function(a,b){return function(){return this.$store[a]}},b.createSetter=function(a,b){return function(b){this.$store[a]=b,this.notifyPropertyChanged(a,b)}},b.prototype.observe=function(a,b){var d;if(c.aFunction(a))d=a;else{if(!c.string(a)||!c.aFunction(b))return void console.warn("Unsupported set of arguments: ",arguments);d=function(c,d){c===a&&b(d)}}var e=this.$executionHandlers,f=e.push(d);return function(){e.splice(1,f)}},b.prototype.notifyPropertyChanged=function(a,b){this.$executionHandlers.forEach(function(c){c(a,b)})},b.prototype.store=function(){return this.$store},b.prototype.keys=function(){return Object.keys(this.$store)},a.ObservableObject=b}(window.core),function(a){var b=new a.Container,c=new a.AppShell(b);c.set("cmdConfig",a.ObservableObject.create({emphasizeBytes:!0,theme:"dark"})),c.debugMode=!1,c.bootstrap=function(a){this.rootViewElement=a,this.set("rootView",a),this.initialize()},window.app=c}(window.core),function(a,b){function c(a){a.attachView=function(b){this.viewElement=b,"function"==typeof a.onViewAttached&&a.onViewAttached(b)},a.detachView=function(){this.viewElement=null,"function"==typeof a.onViewDetached&&a.onViewDetached(viewElement)}}function d(b){for(var c,d,e,f=b.querySelectorAll("[data-controller]"),g=0,h=f.length;h>g;g++)e=f[g],c=e.getAttribute("data-controller"),d=a.controller(c),null!=d?(d.attachView(e),"function"==typeof d.detachView&&e.addEventListener("DOMNodeRemoved",function(a){e===a.target&&d.detachView()})):console.warn(c+" controller wasn't found")}var e=b.should;a.controller=function(a,d){if(e.beString(a,"name"),null==d)return this.get(a);var f=new b.Container.Registration(d);f.onFirstTimeResolve=function(a){c(a)},this.set(a,f)},a.run(function(){d(a.get("rootView"),a.di)})}(window.app,window.core),function(a){function b(a,b){this.html=a,this.isCompiled=b===!0}function c(c){var d=c.querySelectorAll("[data-template]"),e=a.templates;Array.prototype.forEach.call(d,function(c){var d=c.getAttribute("data-template");if(e[d]instanceof b)return void console.warn(d+" templates already registered");var f=new b(c.innerHTML);e[d]=f,c.hasAttribute("data-compiled")&&(f.process=a.get("html").compileTemplate(f.html),f.isCompiled=!0)})}b.prototype.render=function(b){return this.isCompiled?a.get("html").element(this.process(b)):a.get("html").element(this.html,b)},a.templates=[],a.template=function(a){var b=this.templates[a];if(null==b)throw new Error(a+" template is not found");return b},a.run(function(){c(a.get("rootView"))})}(window.app),function(a,b){function c(a){return d(a)+"ViewBuilder"}function d(a){var b=a.toString();return b.substr(8,b.indexOf("(")-8).trim()}a.modelView=function(b,d){var e=c(b);a.di.register(e,d)},a.buildViewFor=function(a){var b=c(a.constructor),d=this.di.resolve(b);return d.renderView(a)}}(window.app,window.is),app.set("calc",function(){var should=app.get("should");return{numberOfBits:function(a){return 0>a?32:(should.bePositiveInteger(a),Math.floor(Math.log(a)/Math.log(2))+1)},maxNumberOfBits:function(a){for(var b,c=[],d=0;d>>0).toString(2):this.value.toString(2),this.kind=this.input.indexOf("0x")>-1?"hex":"dec",this.other="dec"==this.kind?this.hex:this.dec}function SingleOperandExpression(a,b,c){this.expressionString=a,this.operand1=b,this.sign=c}function TwoOperandExpression(a,b,c,d){this.expressionString=a,this.operand1=b,this.operand2=c,this.sign=d}function MultipleOperandsExpression(a,b){this.expressionString=a,this.expressions=b}function ListOfNumbersExpression(a,b){this.expressionString=a,this.numbers=b}function Expression(){}var expression={factories:[],canParse:function(a){for(var b=a.replace(/^\s+|\s+$/,""),c=this.factories.length-1;c>=0;c--)if(this.factories[c].canCreate(b)===!0)return!0;return!1},parse:function(a){for(var b,c=a.replace(/^\s+|\s+$/,""),d=0,e=this.factories.length;e>d;d++)if(b=this.factories[d],1==b.canCreate(c))return b.create(c);return null},parseOperand:function(a){return new Operand(a)},createOperand:function(a,b){return Operand.create(a,b)},addFactory:function(a){this.factories.push(a)},Operand:Operand,TwoOperandExpression:TwoOperandExpression,SingleOperandExpression:SingleOperandExpression,ListOfNumbersExpression:ListOfNumbersExpression,MultipleOperandsExpression:MultipleOperandsExpression};return expression.addFactory({regex:/^(-?(?:\d+|0x[\d,a-f]+)\s?)+$/,canCreate:function(a){return this.regex.test(a)},create:function(a){var b=this.regex.exec(a),c=[],d=b.input;return d.split(" ").forEach(function(a){a.trim().length>0&&c.push(new Operand(a.trim()))}),new ListOfNumbersExpression(d,c)}}),expression.addFactory({regex:/^(~)(-?(?:\d+|0x[\d,a-f]+))$/,canCreate:function(a){return this.regex.test(a)},create:function(a){var b=this.regex.exec(a),c=new Operand(b[2]);return new SingleOperandExpression(b.input,c,b[1])}}),expression.addFactory({fullRegex:/^((<<|>>|>>>|\||\&|\^)?(-?((?:\d+(?!x))|(?:0x[\d,a-f]+))))+$/,regex:/(<<|>>|>>>|\||\&|\^)?(-?((?:\d+(?!x))|(?:0x[\d,a-f]+)))/g,canCreate:function(a){return this.fullRegex.lastIndex=0,this.fullRegex.test(this.normalizeString(a))},create:function(a){for(var b,c=[],d=this.normalizeString(a);null!=(b=this.regex.exec(d));)c.push(this.parseMatch(b));return new MultipleOperandsExpression(d,c)},parseMatch:function(a){var b=a[0],c=a[1],d=a[2];return null==c?new Operand(d):new SingleOperandExpression(b,new Operand(d),c)},normalizeString:function(a){return a.replace(/\s+/g,"")}}),Operand.toHexString=function(a){return 0==a.indexOf("-")?"-0x"+a.substr(1):"0x"+a},Operand.create=function(a,b){var c=a.toString(Operand.getBase(b));return"hex"==b&&(c=Operand.toHexString(c)),new Operand(c)},Operand.prototype.getLengthInBits=function(){return this.value<0?32:Math.floor(Math.log(this.value)/Math.log(2))+1},Operand.getBase=function(a){switch(a){case"bin":return 2;case"hex":return 16;case"dec":return 10}},SingleOperandExpression.prototype.apply=function(value){var str="";return str="~"==this.sign?"~"+this.operand1.value:value+this.sign+this.operand1.value,Operand.create(eval(str),this.operand1.kind)},SingleOperandExpression.prototype.isShiftExpression=function(){return this.sign.indexOf("<")>=0||this.sign.indexOf(">")>=0},Expression.prototype.toString=function(){return this.expressionString?"Expression: "+this.expressionString:this.toString()},Operand.prototype.toString=function(){return this.input},SingleOperandExpression.prototype.toString=function(){return this.sign+this.operand1.toString()},Operand.toKindString=function(a,b){switch(b){case"hex":var c=Math.abs(a).toString(16);return a>=0?"0x"+c:"-0x"+c;case"bin":return(a>>>0).toString(2);case"dec":return a.toString(10);default:throw new Error("Unexpected kind: "+b)}},Operand.getOtherKind=function(a){switch(a){case"dec":return"hex";case"hex":return"dec";default:throw new Error(a+" kind doesn't have opposite kind")}},expression}),app.set("formatter",function(){function a(a){switch(a){case"bin":return 2;case"hex":return 16;case"dec":return 10}}app.get("should"),app.get("is");return{formatString:function(b,c){return b.toString(a(c||"bin"))},padLeft:function(a,b,c){var d=Array.prototype.slice.call(a),c=c||"0";if(null==b)return a;for(;b>d.length;)d.unshift(c);return d.join("")}}}),app.set("cmd",function(){function a(a,b){var c=new app.models.ErrorResult(b);g.display(new app.models.DisplayResult(a,c))}function b(a,b){var c=b.handle(a);if(null!=c){var d=new app.models.DisplayResult(a,c);g.display(d)}}function c(a,b){return f.plainObject(a)?a:f.string(a)?{canHandle:function(b){return b===a},handle:b}:null}function d(a){var b=0;for(b;bb.historyIndex&&(a.target.value=b.history[b.historyIndex++]),void a.preventDefault()):void(40==a.keyCode&&(b.historyIndex>0&&(a.target.value=b.history[--b.historyIndex]),a.preventDefault()))})}}}),app.controller("cmdController",function(){app.get("html"),app.get("rootView");return{clear:function(){this.viewElement.innerHTML=""},display:function(a){var b=app.buildViewFor(a),c=this.viewElement;0==c.childNodes.length?c.appendChild(b):c.insertBefore(b,c.childNodes[0])}}}),app.controller("configPanelCtrl",{onViewAttached:function(){var a=this,b=app.get("cmdConfig");a.update(b),b.observe(function(){a.update(b)})},update:function(a){var b=this.viewElement.querySelector("#emphasizeBytes");a.emphasizeBytes?b.classList.add("on"):b.classList.remove("on")}}),app.compose(function(){function a(a){var b=f.maxNumberOfBits(a);if(h.emphasizeBytes&&b%8!=0){if(8>b)return 8;var c=b-b%8;return c+8}return b}function b(a){var b=a.querySelectorAll(".bin");return Array.prototype.forEach.call(b,function(a){var b=a.textContent;h.emphasizeBytes&&(b=b.replace(/(\d{8})/g,'$1')),a.innerHTML=b.replace(/0/g,'0').replace(/1/g,'1')}),a}function c(a){var b=a.target,c=b.textContent;"0"==c?(b.innerHTML="1",b.classList.remove("zero"),b.classList.add("one")):(b.innerHTML="0",b.classList.add("zero"),b.classList.remove("one"));var e=d(b,"TR"),f=parseInt(e.cells[1].textContent,2),g=e.dataset.kind;e.cells[0].innerHTML=i.Operand.toKindString(f,g),e.cells[2].innerHTML=i.Operand.toKindString(f,i.Operand.getOtherKind(g))}function d(a,b){for(var c=a.parentNode;c.tagName!=b;)c=c.parentNode;return c}var e=app.get("formatter"),f=app.get("calc"),g=app.get("html"),h=app.get("cmdConfig"),i=app.get("expression");String.prototype.padLeft=function(a,b){return e.padLeft(this,a,b)},app.modelView(app.models.BitwiseExpressionViewModel,{renderView:function(a){var c=app.template("bitwiseExpressionView");return b(c.render(a))}}),app.modelView(app.models.BitwiseNumbersViewModel,{renderView:function(d){d.bitsSize=a(d.numbers);var e=b(app.template("numbersList").render(d)),f=e.querySelectorAll(".bit");return Array.prototype.forEach.call(f,function(a){a.classList.add("flipable"),a.setAttribute("title","Click to flip this bit"),a.addEventListener("click",c)}),e}}),app.modelView(app.models.ViewResult,{renderView:function(a){var b=app.template(a.template);return b.render()}}),app.modelView(app.models.ErrorResult,{renderView:function(a){return g.element('
{message}
',a)}}),app.modelView(app.models.DisplayResult,{renderView:function(a){var b=app.template("resultView").render(a),c=app.buildViewFor(a.content);return b.querySelector(".content").appendChild(c),b}})}),function(a){function b(a){this.expression=a,this.operands=a.numbers;var b=this.numbers=[];a.numbers.forEach(function(a){b.push(a.value)})}function c(){this.items=[],this.maxNumberOfBits=0}function d(a){this.message=a}function e(a){this.template=a}function f(b,c){this.input=b,this.inputHash=a.get("hash").encodeHash(b),this.content=c}c.buildMultiple=function(a){var b,d=a.expressions[0],e=1,f=a.expressions.length,g=new c;for(g.addOperand(d);f>e;e++)b=a.expressions[e],d=b.apply(d.value),b.isShiftExpression()?g.addShiftExpressionResult(b,d):(g.addExpression(b),g.addExpressionResult(d));return g.maxNumberOfBits=g.emphasizeBytes(g.maxNumberOfBits),g},c.buildNot=function(a){var b=new c;return b.addExpression(a),b.addExpressionResult(a.apply()),b.maxNumberOfBits=b.emphasizeBytes(b.maxNumberOfBits),b},c.prototype.addOperand=function(a){this.maxNumberOfBits=Math.max(a.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"",label:a.toString(),bin:a.bin,other:a.other,css:""})},c.prototype.addExpression=function(a){this.maxNumberOfBits=Math.max(a.operand1.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:a.sign,label:a.operand1.input,bin:a.operand1.bin,other:a.operand1.other,css:""})},c.prototype.addShiftExpressionResult=function(a,b){this.maxNumberOfBits=Math.max(b.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:a.sign+a.operand1.input,label:b,bin:b.bin,other:b.other,css:"expression-result"})},c.prototype.addExpressionResult=function(a){this.maxNumberOfBits=Math.max(a.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"=",label:a.toString(),bin:a.bin,other:a.other,css:"expression-result"})},c.prototype.emphasizeBytes=function(b){var c=a.get("cmdConfig");if(c.emphasizeBytes&&b%8!=0){if(8>b)return 8;var d=b-b%8;return d+8}return b},a.models.BitwiseExpressionViewModel=c,a.models.BitwiseNumbersViewModel=b,a.models.ErrorResult=d,a.models.ViewResult=e,a.models.DisplayResult=f}(window.app),app.run(function(){var a=app.get("rootView"),b=app.get("cmdConfig");b.observe("theme",function(b){var c="dark"==b?"light":"dark";a.classList.contains(b)||(a.classList.remove(c),a.classList.add(b))})}),app.run(function(){function a(){localStorage.setItem(d,JSON.stringify(c.store()))}function b(){var a,b=localStorage.getItem(d);if(core.is.string(b)){a=JSON.parse(b);for(var e in a)c[e]=a[e]}}var c=app.get("cmdConfig"),d="cmdConfig";b(),c.observe(function(b,c){a()})}),app.run(function(){var a=app.get("rootView").querySelectorAll("[data-cmd]");Array.prototype.forEach.call(a,function(a){a.addEventListener("click",function(a){app.get("cmd").execute(a.target.getAttribute("data-cmd"))})})}),function(a,b){a.set("html",b.html),a.set("is",b.is),a.set("should",b.should),a.set("bindr",b.bindr),a.set("hash",function(){function a(a){var b=[];return a.indexOf("||")?a.split("||").forEach(function(a){a.length>0&&b.push(a)}):b.push(a),b}return{encodeHash:function(a){return encodeURI(a.trim().replace(/\s/g,","))},decodeHash:function(a){return decodeURI(a).replace(/^\#/,"").replace(/,/g," ")},getArgs:function(c){b.should.beString(c,"hashValue");var d=this.decodeHash(c),e={commands:[]};return a(d).forEach(function(a){return/^\-[a-zA-Z]+$/.test(a)?void(e[a.substr(1)]=!0):void e.commands.push(a)}),Object.freeze(e)}}}),a.set("hashArgs",function(){return a.get("hash").getArgs(window.location.hash)})}(window.app,window.core); \ No newline at end of file diff --git a/precache-manifest.306a719117545e31b16fdffd84fad1d1.js b/precache-manifest.306a719117545e31b16fdffd84fad1d1.js new file mode 100644 index 0000000..f4bf64a --- /dev/null +++ b/precache-manifest.306a719117545e31b16fdffd84fad1d1.js @@ -0,0 +1,22 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "493cfffd1b1c626477acabbae6ae9a22", + "url": "/index.html" + }, + { + "revision": "8744c5f159badd11c19c", + "url": "/static/css/main.c7a8b155.chunk.css" + }, + { + "revision": "188ceeb367d409ad29db", + "url": "/static/js/2.5133f82a.chunk.js" + }, + { + "revision": "8744c5f159badd11c19c", + "url": "/static/js/main.ff2608fb.chunk.js" + }, + { + "revision": "42ac5946195a7306e2a5", + "url": "/static/js/runtime~main.a8a9905a.js" + } +]); \ No newline at end of file diff --git a/react/analytics.js b/react/analytics.js deleted file mode 100644 index 82d9879..0000000 --- a/react/analytics.js +++ /dev/null @@ -1,15 +0,0 @@ -(function() { - - if(window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-notrack') > -1) { - console.log("Analytics not tracked") - return; - } - - (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - - ga('create', 'UA-61569164-1', 'auto'); - ga('send', 'pageview'); -})(); \ No newline at end of file diff --git a/react/bundle.js b/react/bundle.js deleted file mode 100644 index f5b3167..0000000 --- a/react/bundle.js +++ /dev/null @@ -1,21 +0,0 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="http://localhost:8080/",t(t.s=194)}([function(e,t,n){"use strict";function r(e,t,n,r,i,a,u,s){if(o(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,a,u,s],p=0;l=new Error(t.replace(/%s/g,function(){return c[p++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var o=function(e){};e.exports=r},function(e,t,n){"use strict";var r=n(7),o=r;e.exports=o},function(e,t,n){"use strict";function r(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r1){for(var h=Array(d),m=0;m1){for(var v=Array(y),g=0;g]/;e.exports=o},function(e,t,n){"use strict";var r,o=n(5),i=n(32),a=/^[ \r\n\t\f]/,u=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,s=n(40),l=s(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&u.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!==(void 0===e?"undefined":i(e))||null===e||"object"!==(void 0===t?"undefined":i(t))||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var u=0;u-1||a("96",e),!l.plugins[n]){t.extractEvents||a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)o(r[i],t,i)||a("98",i,e)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&a("99",n),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];i(u,t,n)}return!0}return!!e.registrationName&&(i(e.registrationName,t,n),!0)}function i(e,t,n){l.registrationNameModules[e]&&a("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(2),u=(n(0),null),s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){u&&a("101"),u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]&&a("102",n),s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function i(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(o,n,e):m.invokeGuardedCallback(o,n,e),e.currentTarget=null}function u(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function i(e,t){var n=s.get(e);if(!n){return null}return n}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=(n(11),n(23)),l=(n(8),n(9)),c=(n(0),n(1),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var o=i(e);if(!o)return null;o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],r(o)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=i(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){(n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&u("122",t,o(e))}});e.exports=c},function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};e.exports=r},function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}e.exports=r},function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=o},function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=r},function(e,t,n){"use strict";/** - * Checks if an event is supported in the current execution environment. - * - * NOTE: This will not work correctly for non-generic events such as `change`, - * `reset`, `load`, `error`, and `select`. - * - * Borrows from Modernizr. - * - * @param {string} eventNameSuffix Event name, e.g. "click". - * @param {?boolean} capture Check if the capture phase is supported. - * @return {boolean} True if the event is supported. - * @internal - * @license Modernizr 3.0.0pre (Custom Build) | MIT - */ -function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=n(5);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var i=void 0===e?"undefined":o(e),a=void 0===t?"undefined":o(t);return"string"===i||"number"===i?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,n){"use strict";var r=(n(3),n(7)),o=(n(1),r);e.exports=o},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=u,this.updater=n||a}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(18),a=n(48),u=(n(80),n(20));n(0),n(1);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!==(void 0===e?"undefined":o(e))&&"function"!=typeof e&&null!=e&&i("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};e.exports=r},function(e,t,n){"use strict";var r=(n(1),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}});e.exports=r},function(module,exports,__webpack_require__){"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function e(e,t){for(var n=0;n=0;n--)if(!0===this.factories[n].canCreate(t))return!0;return!1},parse:function(e){for(var t,n=e.replace(/^\s+|\s+$/,""),r=0,o=this.factories.length;r0&&n.push(new Operand(e.trim()))}),new ListOfNumbersExpression(r,n)}}),expression.addFactory({regex:/^(~)(-?(?:\d+|0x[\d,a-f]+))$/,canCreate:function(e){return this.regex.test(e)},create:function(e){var t=this.regex.exec(e),n=new Operand(t[2]);return new SingleOperandExpression(t.input,n,t[1])}}),expression.addFactory({fullRegex:/^((<<|>>|>>>|\||\&|\^)?(-?((?:\d+(?!x))|(?:0x[\d,a-f]+))))+$/,regex:/(<<|>>|>>>|\||\&|\^)?(-?((?:\d+(?!x))|(?:0x[\d,a-f]+)))/g,canCreate:function(e){return this.fullRegex.lastIndex=0,this.fullRegex.test(this.normalizeString(e))},create:function(e){for(var t,n=[],r=this.normalizeString(e);null!=(t=this.regex.exec(r));)n.push(this.parseMatch(t));return new MultipleOperandsExpression(r,n)},parseMatch:function(e){var t=e[0],n=e[1],r=e[2];return null==n?new Operand(r):new SingleOperandExpression(t,new Operand(r),n)},normalizeString:function(e){return e.replace(/\s+/g,"")}});var Operand=exports.Operand=function(){function e(t){_classCallCheck(this,e),this.input=t,this.value=parseInt(t),this.hex=e.toHexString(this.value.toString(16)),this.dec=this.value.toString(10),this.bin=this.value<0?(this.value>>>0).toString(2):this.value.toString(2),this.kind=this.input.indexOf("0x")>-1?"hex":"dec",this.other="dec"==this.kind?this.hex:this.dec,this.lengthInBits=e.getBitLength(this.value)}return _createClass(e,[{key:"getLengthInBits",value:function(){return this.value<0?32:Math.floor(Math.log(this.value)/Math.log(2))+1}},{key:"getOtherKind",value:function(e){switch(e||this.kind){case"dec":return"hex";case"hex":return"dec";default:throw new Error(e+" kind doesn't have opposite kind")}}},{key:"toString",value:function(){return this.input}},{key:"setValue",value:function(t){console.log("Before "+t,this),this.value=t,this.bin=e.toKindString(this.value,"bin"),this.dec=e.toKindString(this.value,"dec"),this.hex=e.toKindString(this.value,"hex"),this.other=e.toKindString(this.value,this.getOtherKind()),this.input=e.toKindString(this.value,this.kind),console.log("After "+t,this)}}],[{key:"getBitLength",value:function(e){return Math.floor(Math.log(e)/Math.log(2))+1}},{key:"getBase",value:function(e){switch(e){case"bin":return 2;case"hex":return 16;case"dec":return 10}}},{key:"create",value:function(t,n){var r=t.toString(e.getBase(n));return"hex"==n&&(r=e.toHexString(r)),new e(r)}},{key:"toKindString",value:function(e,t){switch(t){case"hex":var n=Math.abs(e).toString(16);return e>=0?"0x"+n:"-0x"+n;case"bin":return(e>>>0).toString(2);case"dec":return e.toString(10);default:throw new Error("Unexpected kind: "+t)}}},{key:"toHexString",value:function(e){return 0==e.indexOf("-")?"-0x"+e.substr(1):"0x"+e}}]),e}(),SingleOperandExpression=exports.SingleOperandExpression=function(){function SingleOperandExpression(e,t,n){_classCallCheck(this,SingleOperandExpression),this.expressionString=e,this.operand1=t,this.sign=n}return _createClass(SingleOperandExpression,[{key:"apply",value:function apply(value){var str="";return str="~"==this.sign?"~"+this.operand1.value:value+this.sign+this.operand1.value,Operand.create(eval(str),this.operand1.kind)}},{key:"isShiftExpression",value:function(){return this.sign.indexOf("<")>=0||this.sign.indexOf(">")>=0}},{key:"toString",value:function(){return this.sign+this.operand1.toString()}}]),SingleOperandExpression}(),TwoOperandExpression=exports.TwoOperandExpression=function e(t,n,r,o){_classCallCheck(this,e),this.expressionString=t,this.operand1=n,this.operand2=r,this.sign=o},MultipleOperandsExpression=exports.MultipleOperandsExpression=function e(t,n){_classCallCheck(this,e),this.expressionString=t,this.expressions=n},ListOfNumbersExpression=exports.ListOfNumbersExpression=function(){function e(t,n){_classCallCheck(this,e),this.expressionString=t,this.numbers=n,this.maxBitsLegnth=n.map(function(e){return e.lengthInBits}).reduce(function(e,t){return e>=t?e:t},0)}return _createClass(e,[{key:"toString",value:function(){return this.numbers.map(function(e){return e.value.toString()}).join(" ")}}]),e}(),Expression=exports.Expression=function(){function e(){_classCallCheck(this,e)}return _createClass(e,[{key:"toString",value:function(){return this.expressionString?"Expression: "+this.expressionString:this.toString()}}]),e}(),parser=exports.parser=expression,Parser=exports.Parser=function(){function e(t,n){_classCallCheck(this,e),this.input=t,this.pos=n||0,this.buffer=[]}return _createClass(e,[{key:"parse",value:function(){for(console.log(this.input.length);this.pos=0&&t<=p.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(c=t,!1!==n&&a(t),r.call(p,t,e),("undefined"==typeof console?"undefined":i(console))===s&&t>2' or 'help' "})}},{key:"onKeyUp",value:function(e){var t=e.target;if(13==e.keyCode&&0!=t.value.trim().length){var n=t.value;this.history.unshift(n),this.historyIndex=-1,t.value="",p.default.execute(n),console.log(this.history)}}},{key:"onKeyDown",value:function(e){if(38==e.keyCode){var t=this.historyIndex+1;return this.history.length>t&&(e.target.value=this.history[t],this.historyIndex=t),void e.preventDefault()}40==e.keyCode&&(this.historyIndex>0&&(e.target.value=this.history[--this.historyIndex]),e.preventDefault())}}]),t}(l.default.Component);t.default=f},function(e,t,n){"use strict";var r=n(7),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";function r(e){try{e.focus()}catch(e){}}e.exports=r},function(e,t,n){"use strict";function r(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=r},function(e,t,n){"use strict";function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function i(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function a(e){if(f===clearTimeout)return clearTimeout(e);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function u(){y&&h&&(y=!1,h.length?m=h.concat(m):v=-1,m.length&&s())}function s(){if(!y){var e=i(u);y=!0;for(var t=m.length;t;){for(h=m,m=[];++v1)for(var n=1;n.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,u=y.createElement(U,{child:t});if(e){var s=C.get(e);a=s._processChildContext(s._context)}else a=O;var c=f(n);if(c){var p=c._currentElement,h=p.props.child;if(N(h,t)){var m=c._renderedComponent.getPublicInstance(),v=r&&function(){r.call(m)};return B._updateRootComponent(c,u,a,n,v),m}B.unmountComponentAtNode(n)}var g=o(n),b=g&&!!i(g),_=l(n),E=b&&!c&&!_,w=B._renderNewRootComponent(u,n,E,a)._renderedComponent.getPublicInstance();return r&&r.call(w),w},render:function(e,t,n){return B._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)||d("40");var t=f(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(I);return!1}return delete j[t._instance.rootID],k.batchedUpdates(s,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(c(t)||d("41"),i){var u=o(t);if(w.canReuseMarkup(e,u))return void g.precacheNode(n,u);var s=u.getAttribute(w.CHECKSUM_ATTR_NAME);u.removeAttribute(w.CHECKSUM_ATTR_NAME);var l=u.outerHTML;u.setAttribute(w.CHECKSUM_ATTR_NAME,s);var p=e,f=r(p,l),m=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===A&&d("42",m)}if(t.nodeType===A&&d("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else T(t,e),g.precacheNode(n,t.firstChild)}};e.exports=B},function(e,t,n){"use strict";var r=n(2),o=n(16),i=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t&&o("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var o=n(2);n(0);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=r},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=n(68);e.exports=r},function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=n(5),i=null;e.exports=r},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function i(e,t){var n;if(null===e||!1===e)n=c.create(i);else if("object"===(void 0===e?"undefined":a(e))){var s=e,l=s.type;if("function"!=typeof l&&"string"!=typeof l){var d="";d+=r(s._owner),u("130",null==l?l:void 0===l?"undefined":a(l),d)}"string"==typeof s.type?n=p.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(s)}else"string"==typeof e||"number"==typeof e?n=p.createInstanceForText(e):u("131",void 0===e?"undefined":a(e));return n._mountIndex=0,n._mountImage=null,n}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=n(3),l=n(123),c=n(63),p=n(65),f=(n(184),n(0),n(1),function(e){this.construct(e)});s(f.prototype,l,{_instantiateReactComponent:i}),e.exports=i},function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=r},function(e,t,n){"use strict";var r=n(5),o=n(28),i=n(29),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){if(3===e.nodeType)return void(e.nodeValue=t);i(e,o(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"===(void 0===e?"undefined":a(e))&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var d=void 0===e?"undefined":a(e);if("undefined"!==d&&"boolean"!==d||(e=null),null===e||"string"===d||"number"===d||"object"===d&&e.$$typeof===s)return n(i,e,""===t?p+r(e,0):t),1;var h,m,y=0,v=""===t?p:t+f;if(Array.isArray(e))for(var g=0;g0;)t.push(s.default.createElement("span",{key:n++,className:"byte"},e.splice(0,8)));return t}}]),t}(s.default.Component);t.default=l},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{},n=t.emphasizeBytes,o=void 0!==n&&n;r(this,e),this.emphasizeBytes=o,this.items=[],this.maxNumberOfBits=0}return o(e,[{key:"addOperand",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"",label:e.toString(),bin:e.bin,other:e.other,css:""})}},{key:"addExpression",value:function(e){this.maxNumberOfBits=Math.max(e.operand1.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign,label:e.operand1.toString(),bin:e.operand1.bin,other:e.operand1.other,css:""})}},{key:"addShiftExpressionResult",value:function(e,t){this.maxNumberOfBits=Math.max(t.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:e.sign+e.operand1.input,label:t.toString(),bin:t.bin,other:t.other,css:"expression-result"})}},{key:"addExpressionResult",value:function(e){this.maxNumberOfBits=Math.max(e.getLengthInBits(),this.maxNumberOfBits),this.items.push({sign:"=",label:e.toString(),bin:e.bin,other:e.other,css:"expression-result"})}}],[{key:"buildMultiple",value:function(t,n){var r,o=t.expressions[0],i=1,a=t.expressions.length,u=new e(n);for(u.addOperand(o);ir.length;)r.unshift(n);return r.join("")}}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e,n){r(this,t);var i=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.error=n,i}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e,n){r(this,t);var i=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return i.expression=n,i}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.message="Sorry, i don''t know what "+e+" is :(",n}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=n(19),u=function(e){return e&&e.__esModule?e:{default:e}}(a),s=function(e){function t(e){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}return i(t,e),t}(u.default);t.default=s},function(e,t,n){"use strict";e.exports=n(124)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;nthis.persistedVersion}return o(e,[{key:"addCommandResult",value:function(e){this.commandResults.unshift(e),this.triggerChanged()}},{key:"clearCommmandResults",value:function(){this.commandResults=[],this.triggerChanged()}},{key:"toggleEmphasizeBytes",value:function(){this.emphasizeBytes=!this.emphasizeBytes,this.triggerChanged()}},{key:"onChange",value:function(e){this.handlers.push(e)}},{key:"triggerChanged",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,o=this.handlers[Symbol.iterator]();!(e=(r=o.next()).done);e=!0){(0,r.value)()}}catch(e){t=!0,n=e}finally{try{!e&&o.return&&o.return()}finally{if(t)throw n}}}},{key:"setUiTheme",value:function(e){this.uiTheme=e,this.triggerChanged()}},{key:"getPersistData",value:function(){return{emphasizeBytes:this.emphasizeBytes,uiTheme:this.uiTheme,version:this.version}}}]),e}();t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default={getPersistedData:function(){var e=window.localStorage.getItem("AppState");if(!e)return{};try{return JSON.parse(e)}catch(t){return console.error("Failed to parse AppState json. Json Value: \n"+e,t),{}}},watch:function(e){var t=this;e.onChange(function(){return t.persistData(e)})},persistData:function(e){localStorage.setItem("AppState",JSON.stringify(e.getPersistData()))}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(87),i=r(o),a=n(84),u=r(a),s=n(88),l=r(s),c=n(86),p=r(c),f=n(85),d=r(f),h=n(89),m=r(h),y=n(49),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(y);t.default={initialize:function(e,t){e.command({canHandle:function(e){return v.parser.canParse(e)},handle:function(e){var n=v.parser.parse(e.input);t.addCommandResult(new p.default(e.input,n))}}),e.commands({help:function(e){t.addCommandResult(new i.default(e.input))},clear:function(){t.clearCommmandResults()},em:function(){t.toggleEmphasizeBytes()},dark:function(){t.setUiTheme("dark")},light:function(){t.setUiTheme("light")},about:function(e){t.addCommandResult(new u.default(e.input))},whatsnew:function(e){t.addCommandResult(new m.default(e.input))},"-notrack":function(){}}),e.command({canHandle:function(){return!0},handle:function(e){return t.addCommandResult(new l.default(e.input))}}),e.onError(function(e,n){return t.addCommandResult(new d.default(e,n))})}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0&&t.push(e)}):t.push(e),t}Object.defineProperty(t,"__esModule",{value:!0}),t.default={encodeHash:function(e){return encodeURI(e.trim().replace(/\s/g,","))},decodeHash:function(e){return decodeURI(e).replace(/^\#/,"").replace(/,/g," ")},getArgs:function(e){var t=this.decodeHash(e),n={commands:[]};return r(t).forEach(function(e){if(/^\-[a-zA-Z]+$/.test(e))return void(n[e.substr(1)]=!0);n.commands.push(e)}),Object.freeze(n)}}},function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e.replace(i,"ms-"))}var o=n(96),i=/^-ms-/;e.exports=r},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=n(106);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.length;if((Array.isArray(e)||"object"!==(void 0===e?"undefined":a(e))&&"function"!=typeof e)&&u(!1),"number"!=typeof t&&u(!1),0===t||t-1 in e||u(!1),"function"==typeof e.callee&&u(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r":"<"+e+">",u[e]=!a.firstChild),u[e]?f[e]:null}var o=n(5),i=n(0),a=o.canUseDOM?document.createElement("div"):null,u={},s=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,'',""],f={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){f[e]=p,u[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=r},function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(103),i=/^ms-/;e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"===(void 0===e?"undefined":o(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(105);e.exports=r},function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o){}"function"==typeof Symbol&&Symbol.iterator;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(7),i=n(0),a=n(1),u=n(110),s=n(108);e.exports=function(e,t){function n(e){var t=e&&(S&&e[S]||e[k]);if("function"==typeof t)return t}function l(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function p(e){function n(n,r,o,a,s,l,p){if(a=a||O,l=l||o,p!==u)if(t)i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else;return null==r[o]?n?new c(null===r[o]?"The "+s+" `"+l+"` is marked as required in `"+a+"`, but its value is `null`.":"The "+s+" `"+l+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,o,a,s,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function f(e){function t(t,n,r,o,i,a){var u=t[n];if(E(u)!==e)return new c("Invalid "+o+" `"+i+"` of type `"+C(u)+"` supplied to `"+r+"`, expected `"+e+"`.");return null}return p(t)}function d(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a)){return new c("Invalid "+o+" `"+i+"` of type `"+E(a)+"` supplied to `"+r+"`, expected an array.")}for(var s=0;s8&&E<=11),x=32,S=String.fromCharCode(x),k={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},O=!1,P=null,T={eventTypes:k,extractEvents:function(e,t,n,r){return[s(e,t,n,r),p(e,t,n,r)]}};e.exports=T},function(e,t,n){"use strict";var r=n(58),o=n(5),i=(n(8),n(97),n(165)),a=n(104),u=n(107),s=(n(1),u(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=s(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var u=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=c),u)o[a]=u;else{var s=l&&r.shorthandPropertyExpansions[a];if(s)for(var p in s)o[p]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(P.change,N,e,S(e));_.accumulateTwoPhaseDispatches(t),w.batchedUpdates(i,t)}function i(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){T=e,N=t,T.attachEvent("onchange",o)}function u(){T&&(T.detachEvent("onchange",o),T=null,N=null)}function s(e,t){if("topChange"===e)return t}function l(e,t,n){"topFocus"===e?(u(),a(t,n)):"topBlur"===e&&u()}function c(e,t){T=e,N=t,M=e.value,I=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(T,"value",D),T.attachEvent?T.attachEvent("onpropertychange",f):T.addEventListener("propertychange",f,!1)}function p(){T&&(delete T.value,T.detachEvent?T.detachEvent("onpropertychange",f):T.removeEventListener("propertychange",f,!1),T=null,N=null,M=null,I=null)}function f(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==M&&(M=t,o(e))}}function d(e,t){if("topInput"===e)return t}function h(e,t,n){"topFocus"===e?(p(),c(t,n)):"topBlur"===e&&p()}function m(e,t){if(("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)&&T&&T.value!==M)return M=T.value,N}function y(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function v(e,t){if("topClick"===e)return t}function g(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var b=n(21),_=n(22),E=n(5),C=n(4),w=n(9),x=n(10),S=n(43),k=n(44),O=n(75),P={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},T=null,N=null,M=null,I=null,R=!1;E.canUseDOM&&(R=k("change")&&(!document.documentMode||document.documentMode>8));var A=!1;E.canUseDOM&&(A=k("input")&&(!document.documentMode||document.documentMode>11));var D={get:function(){return I.get.call(this)},set:function(e){M=""+e,I.set.call(this,e)}},j={eventTypes:P,extractEvents:function(e,t,n,o){var i,a,u=t?C.getNodeFromInstance(t):window;if(r(u)?R?i=s:a=l:O(u)?A?i=d:(i=m,a=h):y(u)&&(i=v),i){var c=i(e,t);if(c){var p=x.getPooled(P.change,c,n,o);return p.type="change",_.accumulateTwoPhaseDispatches(p),p}}a&&a(e,u,t),"topBlur"===e&&g(t,u)}};e.exports=j},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(5),a=n(100),u=n(7),s=(n(0),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,u)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=s},function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=r},function(e,t,n){"use strict";var r=n(22),o=n(4),i=n(26),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},u={eventTypes:a,extractEvents:function(e,t,n,u){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var s;if(u.window===u)s=u;else{var l=u.ownerDocument;s=l?l.defaultView||l.parentWindow:window}var c,p;if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else c=null,p=t;if(c===p)return null;var d=null==c?s:o.getNodeFromInstance(c),h=null==p?s:o.getNodeFromInstance(p),m=i.getPooled(a.mouseLeave,c,n,u);m.type="mouseleave",m.target=d,m.relatedTarget=h;var y=i.getPooled(a.mouseEnter,p,n,u);return y.type="mouseenter",y.target=h,y.relatedTarget=d,r.accumulateEnterLeaveDispatches(m,y,c,p),[m,y]}};e.exports=u},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(3),i=n(12),a=n(73);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(14),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,s=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:s,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";(function(t){function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(15),i=n(74),a=(n(35),n(45)),u=n(77);n(1);void 0!==t&&t.env;var s={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return u(e,r,i),i},updateChildren:function(e,t,n,r,u,s,l,c,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,m=t[f];if(null!=d&&a(h,m))o.receiveComponent(d,m,u,c),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var y=i(m,!0);t[f]=y;var v=o.mountComponent(y,u,s,l,c,p);n.push(v)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};e.exports=s}).call(t,n(56))},function(e,t,n){"use strict";var r=n(31),o=n(129),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function i(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=n(2),s=n(3),l=n(16),c=n(37),p=n(11),f=n(38),d=n(23),h=(n(8),n(68)),m=n(15),y=n(20),v=(n(0),n(30)),g=n(45),b=(n(1),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return t};var _=1,E={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,s){this._context=s,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var c,p=this._currentElement.props,f=this._processContext(s),h=this._currentElement.type,m=e.getUpdateQueue(),v=o(h),g=this._constructComponent(v,p,f,m);v||null!=g&&null!=g.render?i(h)?this._compositeType=b.PureClass:this._compositeType=b.ImpureClass:(c=g,null===g||!1===g||l.isValidElement(g)||u("105",h.displayName||h.name||"Component"),g=new r(h),this._compositeType=b.StatelessFunctional);g.props=p,g.context=f,g.refs=y,g.updater=m,this._instance=g,d.set(g,this);var E=g.state;void 0===E&&(g.state=E=null),("object"!==(void 0===E?"undefined":a(E))||Array.isArray(E))&&u("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var C;return C=g.unstable_handleError?this.performInitialMountWithErrorHandling(c,t,n,e,s):this.performInitialMount(c,t,n,e,s),g.componentDidMount&&e.getReactMountReady().enqueue(g.componentDidMount,g),C},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var u=h.getType(e);this._renderedNodeType=u;var s=this._instantiateReactComponent(e,u!==h.EMPTY);this._renderedComponent=s;var l=m.mountComponent(s,r,t,n,this._processChildContext(o),a);return l},getHostNode:function(){return m.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";f.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(m.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,d.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return y;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!==a(n.childContextTypes)&&u("107",this.getName()||"ReactCompositeComponent");for(var o in t)o in n.childContextTypes||u("108",this.getName()||"ReactCompositeComponent",o);return s({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?m.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i&&u("136",this.getName()||"ReactCompositeComponent");var a,s=!1;this._context===o?a=i.context:(a=this._processContext(o),s=!0);var l=t.props,c=n.props;t!==n&&(s=!0),s&&i.componentWillReceiveProps&&i.componentWillReceiveProps(c,a);var p=this._processPendingState(c,a),f=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?f=i.shouldComponentUpdate(c,p,a):this._compositeType===b.PureClass&&(f=!v(l,c)||!v(i.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,a,e,o)):(this._currentElement=n,this._context=o,i.props=c,i.state=p,i.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function h(e){var t=e.type;f(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y=n(2),v=n(3),g=n(112),b=n(114),_=n(13),E=n(32),C=n(14),w=n(60),x=n(21),S=n(33),k=n(25),O=n(61),P=n(4),T=n(130),N=n(131),M=n(62),I=n(134),R=(n(8),n(143)),A=n(148),D=(n(7),n(28)),j=(n(0),n(44),n(30),n(46),n(1),O),L=x.deleteListener,U=P.getNodeFromInstance,B=k.listenTo,F=S.registrationNameModules,V={string:!0,number:!0},H="__html",W={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},z=11,q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},K={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},X=v({menuitem:!0},K),G=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,$={},Q={}.hasOwnProperty,Z=1;h.displayName="ReactDOMComponent",h.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Z++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(c,this);break;case"input":T.mountWrapper(this,i,t),i=T.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"option":N.mountWrapper(this,i,t),i=N.getHostProps(this,i);break;case"select":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(c,this);break;case"textarea":I.mountWrapper(this,i,t),i=I.getHostProps(this,i),e.getReactMountReady().enqueue(c,this)}o(this,i);var a,p;null!=t?(a=t._namespaceURI,p=t._tag):n._tag&&(a=n._namespaceURI,p=n._tag),(null==a||a===E.svg&&"foreignobject"===p)&&(a=E.html),a===E.html&&("svg"===this._tag?a=E.svg:"math"===this._tag&&(a=E.mathml)),this._namespaceURI=a;var f;if(e.useCreateElement){var d,h=n._ownerDocument;if(a===E.html)if("script"===this._tag){var m=h.createElement("div"),y=this._currentElement.type;m.innerHTML="<"+y+">",d=m.removeChild(m.firstChild)}else d=i.is?h.createElement(this._currentElement.type,i.is):h.createElement(this._currentElement.type);else d=h.createElementNS(a,this._currentElement.type);P.precacheNode(this,d),this._flags|=j.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(d),this._updateDOMProperties(null,i,e);var v=_(d);this._createInitialChildren(e,i,r,v),f=v}else{var b=this._createOpenTagMarkupAndPutListeners(e,i),C=this._createContentMarkup(e,i,r);f=!C&&K[this._tag]?b+"/>":b+">"+C+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":case"button":i.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return f},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(F.hasOwnProperty(r))o&&i(this,r,o,e);else{"style"===r&&(o&&(o=this._previousStyleCopy=v({},t.style)),o=b.createMarkupForStyles(o,this));var a=null;null!=this._tag&&d(this._tag,t)?W.hasOwnProperty(r)||(a=w.createMarkupForCustomAttribute(r,o)):a=w.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=V[m(t.children)]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=D(i);else if(null!=a){var u=this.mountChildren(a,e,n);r=u.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&_.queueHTML(r,o.__html);else{var i=V[m(t.children)]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&_.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),s=0;st.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=l(e,o),s=l(e,i);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=n(5),l=n(170),c=n(73),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:i,setOffsets:p?a:u};e.exports=f},function(e,t,n){"use strict";var r=n(2),o=n(3),i=n(31),a=n(13),u=n(4),s=n(28),l=(n(0),n(46),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),f=a(l.createDocumentFragment());return a.queueChild(f,a(c)),this._stringText&&a.queueChild(f,a(l.createTextNode(this._stringText))),a.queueChild(f,a(p)),u.precacheNode(this,c),this._closingComment=p,f}var d=s(this._stringText);return e.renderToStaticMarkup?d:"\x3c!--"+i+"--\x3e"+d+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=u.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n&&r("67",this._domID),8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=u.executeOnChange(t,e);return l.asap(r,this),n}var i=n(2),a=n(3),u=n(36),s=n(4),l=n(9),c=(n(0),n(1),{getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&i("91"),a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=u.getValue(t),r=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&i("92"),Array.isArray(s)&&(s.length<=1||i("93"),s=s[0]),a=""+s),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e),r=u.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=s.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e||s("33"),"_hostNode"in t||s("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e||s("35"),"_hostNode"in t||s("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e||s("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(s[l],"captured",i)}var s=n(2);n(0);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:u}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(3),i=n(9),a=n(27),u=n(7),s={initialize:u,close:function(){f.isBatchingUpdates=!1}},l={initialize:u,close:i.flushBatchedUpdates.bind(i)},c=[l,s];o(r.prototype,a,{getTransactionWrappers:function(){return c}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,o,i):p.perform(e,null,t,n,r,o,i)}};e.exports=f},function(e,t,n){"use strict";function r(){w||(w=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginUtils.injectComponentTree(f),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:C,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:E,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(p),g.HostComponent.injectTextComponentClass(m),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(y),g.Component.injectEnvironment(c))}var o=n(111),i=n(113),a=n(115),u=n(117),s=n(118),l=n(120),c=n(122),p=n(125),f=n(4),d=n(127),h=n(135),m=n(133),y=n(136),v=n(140),g=n(141),b=n(146),_=n(151),E=n(152),C=n(153),w=!1;e.exports={inject:r}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(21),i={handleTopLevel:function(e,t,n,i){r(o.extractEvents(e,t,n,i))}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do{e.ancestors.push(o),o=o&&r(o)}while(o);for(var i=0;i/," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(i.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=i},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){p.processChildrenUpdates(e,t)}var c=n(2),p=n(37),f=(n(23),n(8),n(11),n(15)),d=n(121),h=(n(7),n(167)),m=(n(0),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,u=0;return a=h(t,u),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,u),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=0,l=f.mountComponent(u,t,this,this._hostContainerInfo,n,s);u._mountIndex=i++,o.push(l)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[u(e)])},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");l(this,[a(e)])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var u,c=null,p=0,d=0,h=0,m=null;for(u in a)if(a.hasOwnProperty(u)){var y=r&&r[u],v=a[u];y===v?(c=s(c,this.moveChild(y,m,p,d)),d=Math.max(y._mountIndex,d),y._mountIndex=p):(y&&(d=Math.max(y._mountIndex,d)),c=s(c,this._mountChildAtIndex(v,i[h],m,p,t,n)),h++),p++,m=f.getHostNode(v)}for(u in o)o.hasOwnProperty(u)&&(c=s(c,this._unmountChild(r[u],o[u])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(u[e])return u[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return u[e]=t[n];return""}var i=n(5),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},u={},s={};i.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(28);e.exports=r},function(e,t,n){"use strict";var r=n(67);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}var i={escape:r,unescape:o};e.exports=i},function(e,t,n){"use strict";var r=n(18),o=(n(0),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},u=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},s=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length"),this.props.content.input,c.default.createElement("a",{className:"hashLink",title:"Link for this expression",href:window.location.pathname+"#"+this.props.inputHash},"#")),c.default.createElement("div",{className:"content"},this.findResultComponent(this.props.content)))}},{key:"renderUnknown",value:function(){return c.default.createElement("div",{className:"result"},c.default.createElement("div",{className:"error"},"¯\\_(ツ)_/¯ Sorry, i don′t know what ",c.default.createElement("strong",null,this.props.input)," is"))}},{key:"renderError",value:function(e){return c.default.createElement("div",{className:"result"},c.default.createElement("div",{className:"error"},"(X_X) Error occurred: ",c.default.createElement("strong",null,e)))}},{key:"findResultComponent",value:function(e){return e instanceof f.default?c.default.createElement(g.default,{content:e}):e instanceof h.default?c.default.createElement(_.default,null):e instanceof C.default?c.default.createElement(x.default,{result:e,emphasizeBytes:this.props.appState.emphasizeBytes}):e instanceof k.default?c.default.createElement(P.default,null):(console.warn("Unknown result:",e),c.default.createElement("span",null,"Unknown result: ",void 0===e?"undefined":u(e)))}}]),t}(c.default.Component);t.default=M},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n>")," — sign propagating right shift"),s.default.createElement("li",null,s.default.createElement("code",null,">>>")," — zero-fill right shift"))))))}}]),t}(s.default.Component);t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n-1?C.default.setLevel("trace"):C.default.setLevel("warn")}();var w=function(){var e=f.default.getPersistedData(),t=new c.default(e);return f.default.watch(t),C.default.debug("appState",t),t}();y.default.initialize(h.default,w),function(){var e=_.default.getArgs(window.location.hash),t=["help","1|2&6","1<<0x2a","2 4 8 16 32"];w.wasOldVersion&&(t=["whatsnew"]),e.commands.length>0&&(t=e.commands),t.forEach(h.default.execute.bind(h.default))}();var x=i.default.createElement(g.default,{appState:w});u.default.render(x,document.getElementById("root")),C.default.debug("started")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={plainObject:function(e){return"object"==(void 0===e?"undefined":r(e))&&e instanceof Object},aFunction:function(e){return"function"==typeof e},string:function(e){return"string"==typeof e},regex:function(e){return"object"==(void 0===e?"undefined":r(e))&&this.constructedFrom(RegExp)},constructedFrom:function(e,t){return e instanceof t},htmlElement:function(e){return e instanceof HtmlElement},array:function(e){return e instanceof Array},number:function(e){return"number"==typeof e&&!isNaN(e)}}}]); -//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/react/bundle.js.map b/react/bundle.js.map deleted file mode 100644 index 404436d..0000000 --- a/react/bundle.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///bundle.js","webpack:///webpack/bootstrap a163340ecff7d28934d3","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/react-dom/lib/reactProdInvariant.js","webpack:///./~/object-assign/index.js","webpack:///./~/react-dom/lib/ReactDOMComponentTree.js","webpack:///./~/fbjs/lib/ExecutionEnvironment.js","webpack:///./~/react/react.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/react-dom/lib/ReactInstrumentation.js","webpack:///./~/react-dom/lib/ReactUpdates.js","webpack:///./~/react-dom/lib/SyntheticEvent.js","webpack:///./~/react/lib/ReactCurrentOwner.js","webpack:///./~/react-dom/lib/PooledClass.js","webpack:///./~/react-dom/lib/DOMLazyTree.js","webpack:///./~/react-dom/lib/DOMProperty.js","webpack:///./~/react-dom/lib/ReactReconciler.js","webpack:///./~/react/lib/React.js","webpack:///./~/react/lib/ReactElement.js","webpack:///./~/react/lib/reactProdInvariant.js","webpack:///./src/app/models/CommandResult.js","webpack:///./~/fbjs/lib/emptyObject.js","webpack:///./~/react-dom/lib/EventPluginHub.js","webpack:///./~/react-dom/lib/EventPropagators.js","webpack:///./~/react-dom/lib/ReactInstanceMap.js","webpack:///./~/react-dom/lib/SyntheticUIEvent.js","webpack:///./~/react-dom/lib/ReactBrowserEventEmitter.js","webpack:///./~/react-dom/lib/SyntheticMouseEvent.js","webpack:///./~/react-dom/lib/Transaction.js","webpack:///./~/react-dom/lib/escapeTextContentForBrowser.js","webpack:///./~/react-dom/lib/setInnerHTML.js","webpack:///./~/fbjs/lib/shallowEqual.js","webpack:///./~/react-dom/lib/DOMChildrenOperations.js","webpack:///./~/react-dom/lib/DOMNamespaces.js","webpack:///./~/react-dom/lib/EventPluginRegistry.js","webpack:///./~/react-dom/lib/EventPluginUtils.js","webpack:///./~/react-dom/lib/KeyEscapeUtils.js","webpack:///./~/react-dom/lib/LinkedValueUtils.js","webpack:///./~/react-dom/lib/ReactComponentEnvironment.js","webpack:///./~/react-dom/lib/ReactErrorUtils.js","webpack:///./~/react-dom/lib/ReactUpdateQueue.js","webpack:///./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","webpack:///./~/react-dom/lib/getEventCharCode.js","webpack:///./~/react-dom/lib/getEventModifierState.js","webpack:///./~/react-dom/lib/getEventTarget.js","webpack:///./~/react-dom/lib/isEventSupported.js","webpack:///./~/react-dom/lib/shouldUpdateReactComponent.js","webpack:///./~/react-dom/lib/validateDOMNesting.js","webpack:///./~/react/lib/ReactComponent.js","webpack:///./~/react/lib/ReactNoopUpdateQueue.js","webpack:///./src/app/expression.js","webpack:///./~/loglevel/lib/loglevel.js","webpack:///./src/app/cmd.js","webpack:///./src/app/components/InputBox.jsx","webpack:///./~/fbjs/lib/EventListener.js","webpack:///./~/fbjs/lib/focusNode.js","webpack:///./~/fbjs/lib/getActiveElement.js","webpack:///./~/process/browser.js","webpack:///./~/prop-types/factory.js","webpack:///./~/react-dom/lib/CSSProperty.js","webpack:///./~/react-dom/lib/CallbackQueue.js","webpack:///./~/react-dom/lib/DOMPropertyOperations.js","webpack:///./~/react-dom/lib/ReactDOMComponentFlags.js","webpack:///./~/react-dom/lib/ReactDOMSelect.js","webpack:///./~/react-dom/lib/ReactEmptyComponent.js","webpack:///./~/react-dom/lib/ReactFeatureFlags.js","webpack:///./~/react-dom/lib/ReactHostComponent.js","webpack:///./~/react-dom/lib/ReactInputSelection.js","webpack:///./~/react-dom/lib/ReactMount.js","webpack:///./~/react-dom/lib/ReactNodeTypes.js","webpack:///./~/react-dom/lib/ViewportMetrics.js","webpack:///./~/react-dom/lib/accumulateInto.js","webpack:///./~/react-dom/lib/forEachAccumulated.js","webpack:///./~/react-dom/lib/getHostComponentFromComposite.js","webpack:///./~/react-dom/lib/getTextContentAccessor.js","webpack:///./~/react-dom/lib/instantiateReactComponent.js","webpack:///./~/react-dom/lib/isTextInputElement.js","webpack:///./~/react-dom/lib/setTextContent.js","webpack:///./~/react-dom/lib/traverseAllChildren.js","webpack:///./~/react/lib/ReactComponentTreeHook.js","webpack:///./~/react/lib/ReactElementSymbol.js","webpack:///./~/react/lib/canDefineProperty.js","webpack:///./src/app/components/results/BinaryStringView.jsx","webpack:///./src/app/components/results/models/BitwiseExpressionViewModel.js","webpack:///./src/app/formatter.js","webpack:///./src/app/models/AboutResult.js","webpack:///./src/app/models/ErrorResult.js","webpack:///./src/app/models/ExpressionResult.js","webpack:///./src/app/models/HelpResult.js","webpack:///./src/app/models/UnknownCommandResult.js","webpack:///./src/app/models/WhatsnewResult.js","webpack:///./~/react-dom/index.js","webpack:///./src/app/AppState.js","webpack:///./src/app/appStateStore.js","webpack:///./src/app/commands.js","webpack:///./src/app/components/AppRoot.jsx","webpack:///./src/app/hash.js","webpack:///./~/fbjs/lib/camelize.js","webpack:///./~/fbjs/lib/camelizeStyleName.js","webpack:///./~/fbjs/lib/containsNode.js","webpack:///./~/fbjs/lib/createArrayFromMixed.js","webpack:///./~/fbjs/lib/createNodesFromMarkup.js","webpack:///./~/fbjs/lib/getMarkupWrap.js","webpack:///./~/fbjs/lib/getUnboundedScrollPosition.js","webpack:///./~/fbjs/lib/hyphenate.js","webpack:///./~/fbjs/lib/hyphenateStyleName.js","webpack:///./~/fbjs/lib/isNode.js","webpack:///./~/fbjs/lib/isTextNode.js","webpack:///./~/fbjs/lib/memoizeStringOnly.js","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/react-dom/lib/ARIADOMPropertyConfig.js","webpack:///./~/react-dom/lib/AutoFocusUtils.js","webpack:///./~/react-dom/lib/BeforeInputEventPlugin.js","webpack:///./~/react-dom/lib/CSSPropertyOperations.js","webpack:///./~/react-dom/lib/ChangeEventPlugin.js","webpack:///./~/react-dom/lib/Danger.js","webpack:///./~/react-dom/lib/DefaultEventPluginOrder.js","webpack:///./~/react-dom/lib/EnterLeaveEventPlugin.js","webpack:///./~/react-dom/lib/FallbackCompositionState.js","webpack:///./~/react-dom/lib/HTMLDOMPropertyConfig.js","webpack:///./~/react-dom/lib/ReactChildReconciler.js","webpack:///./~/react-dom/lib/ReactComponentBrowserEnvironment.js","webpack:///./~/react-dom/lib/ReactCompositeComponent.js","webpack:///./~/react-dom/lib/ReactDOM.js","webpack:///./~/react-dom/lib/ReactDOMComponent.js","webpack:///./~/react-dom/lib/ReactDOMContainerInfo.js","webpack:///./~/react-dom/lib/ReactDOMEmptyComponent.js","webpack:///./~/react-dom/lib/ReactDOMFeatureFlags.js","webpack:///./~/react-dom/lib/ReactDOMIDOperations.js","webpack:///./~/react-dom/lib/ReactDOMInput.js","webpack:///./~/react-dom/lib/ReactDOMOption.js","webpack:///./~/react-dom/lib/ReactDOMSelection.js","webpack:///./~/react-dom/lib/ReactDOMTextComponent.js","webpack:///./~/react-dom/lib/ReactDOMTextarea.js","webpack:///./~/react-dom/lib/ReactDOMTreeTraversal.js","webpack:///./~/react-dom/lib/ReactDefaultBatchingStrategy.js","webpack:///./~/react-dom/lib/ReactDefaultInjection.js","webpack:///./~/react-dom/lib/ReactElementSymbol.js","webpack:///./~/react-dom/lib/ReactEventEmitterMixin.js","webpack:///./~/react-dom/lib/ReactEventListener.js","webpack:///./~/react-dom/lib/ReactInjection.js","webpack:///./~/react-dom/lib/ReactMarkupChecksum.js","webpack:///./~/react-dom/lib/ReactMultiChild.js","webpack:///./~/react-dom/lib/ReactOwner.js","webpack:///./~/react-dom/lib/ReactPropTypesSecret.js","webpack:///./~/react-dom/lib/ReactReconcileTransaction.js","webpack:///./~/react-dom/lib/ReactRef.js","webpack:///./~/react-dom/lib/ReactServerRenderingTransaction.js","webpack:///./~/react-dom/lib/ReactServerUpdateQueue.js","webpack:///./~/react-dom/lib/ReactVersion.js","webpack:///./~/react-dom/lib/SVGDOMPropertyConfig.js","webpack:///./~/react-dom/lib/SelectEventPlugin.js","webpack:///./~/react-dom/lib/SimpleEventPlugin.js","webpack:///./~/react-dom/lib/SyntheticAnimationEvent.js","webpack:///./~/react-dom/lib/SyntheticClipboardEvent.js","webpack:///./~/react-dom/lib/SyntheticCompositionEvent.js","webpack:///./~/react-dom/lib/SyntheticDragEvent.js","webpack:///./~/react-dom/lib/SyntheticFocusEvent.js","webpack:///./~/react-dom/lib/SyntheticInputEvent.js","webpack:///./~/react-dom/lib/SyntheticKeyboardEvent.js","webpack:///./~/react-dom/lib/SyntheticTouchEvent.js","webpack:///./~/react-dom/lib/SyntheticTransitionEvent.js","webpack:///./~/react-dom/lib/SyntheticWheelEvent.js","webpack:///./~/react-dom/lib/adler32.js","webpack:///./~/react-dom/lib/dangerousStyleValue.js","webpack:///./~/react-dom/lib/findDOMNode.js","webpack:///./~/react-dom/lib/flattenChildren.js","webpack:///./~/react-dom/lib/getEventKey.js","webpack:///./~/react-dom/lib/getIteratorFn.js","webpack:///./~/react-dom/lib/getNodeForCharacterOffset.js","webpack:///./~/react-dom/lib/getVendorPrefixedEventName.js","webpack:///./~/react-dom/lib/quoteAttributeValueForBrowser.js","webpack:///./~/react-dom/lib/renderSubtreeIntoContainer.js","webpack:///./~/react/lib/KeyEscapeUtils.js","webpack:///./~/react/lib/PooledClass.js","webpack:///./~/react/lib/ReactChildren.js","webpack:///./~/react/lib/ReactClass.js","webpack:///./~/react/lib/ReactDOMFactories.js","webpack:///./~/react/lib/ReactPropTypeLocationNames.js","webpack:///./~/react/lib/ReactPropTypes.js","webpack:///./~/react/lib/ReactPureComponent.js","webpack:///./~/react/lib/ReactVersion.js","webpack:///./~/react/lib/getIteratorFn.js","webpack:///./~/react/lib/getNextDebugID.js","webpack:///./~/react/lib/onlyChild.js","webpack:///./~/react/lib/traverseAllChildren.js","webpack:///./src/app/components/DisplayResultView.jsx","webpack:///./src/app/components/results/AboutResultView.jsx","webpack:///./src/app/components/results/BitwiseOperationExpressionView.jsx","webpack:///./src/app/components/results/ExpressionResultView.jsx","webpack:///./src/app/components/results/HelpResultView.jsx","webpack:///./src/app/components/results/ListOfNumbersExpressionView.jsx","webpack:///./src/app/components/results/WhatsnewResultView.jsx","webpack:///./src/app/index.jsx","webpack:///./src/app/is.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","invariant","condition","format","a","b","e","f","validateFormat","error","undefined","Error","args","argIndex","replace","framesToPop","emptyFunction","warning","reactProdInvariant","code","argCount","arguments","length","message","argIdx","encodeURIComponent","toObject","val","TypeError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","keys","err","target","source","from","symbols","to","key","shouldPrecacheNode","node","nodeID","nodeType","getAttribute","ATTR_NAME","nodeValue","getRenderedHostOrTextFromComponent","component","rendered","_renderedComponent","precacheNode","inst","hostInst","_hostNode","internalInstanceKey","uncacheNode","precacheChildNodes","_flags","Flags","hasCachedChildNodes","children","_renderedChildren","childNode","firstChild","outer","childInst","childID","_domID","nextSibling","_prodInvariant","getClosestInstanceFromNode","parents","push","parentNode","closest","pop","getInstanceFromNode","getNodeFromInstance","_hostParent","DOMProperty","ReactDOMComponentFlags","ID_ATTRIBUTE_NAME","Math","random","toString","slice","ReactDOMComponentTree","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","makeEmptyFunction","arg","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","this","thatReturnsArgument","debugTool","ensureInjected","ReactUpdates","ReactReconcileTransaction","batchingStrategy","ReactUpdatesFlushTransaction","reinitializeTransaction","dirtyComponentsLength","callbackQueue","CallbackQueue","getPooled","reconcileTransaction","batchedUpdates","callback","mountOrderComparator","c1","c2","_mountOrder","runBatchedUpdates","transaction","len","dirtyComponents","sort","updateBatchNumber","callbacks","_pendingCallbacks","markerName","ReactFeatureFlags","logTopLevelRenders","namedComponent","_currentElement","type","isReactTopLevelWrapper","getName","console","time","ReactReconciler","performUpdateIfNecessary","timeEnd","j","enqueue","getPublicInstance","enqueueUpdate","isBatchingUpdates","_updateBatchNumber","asap","context","asapCallbackQueue","asapEnqueued","_assign","PooledClass","Transaction","NESTED_UPDATES","initialize","close","splice","flushBatchedUpdates","UPDATE_QUEUEING","reset","notifyAll","TRANSACTION_WRAPPERS","getTransactionWrappers","destructor","release","perform","method","scope","addPoolingTo","queue","ReactUpdatesInjection","injectReconcileTransaction","ReconcileTransaction","injectBatchingStrategy","_batchingStrategy","injection","SyntheticEvent","dispatchConfig","targetInst","nativeEvent","nativeEventTarget","_targetInst","Interface","constructor","propName","normalize","defaultPrevented","returnValue","isDefaultPrevented","isPropagationStopped","shouldBeReleasedProperties","EventInterface","currentTarget","eventPhase","bubbles","cancelable","timeStamp","event","Date","now","isTrusted","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","augmentClass","Class","Super","E","fourArgumentPooler","ReactCurrentOwner","current","oneArgumentPooler","copyFieldsFrom","Klass","instancePool","instance","twoArgumentPooler","a1","a2","threeArgumentPooler","a3","a4","standardReleaser","poolSize","DEFAULT_POOLER","CopyConstructor","pooler","NewKlass","insertTreeChildren","tree","enableLazy","insertTreeBefore","html","setInnerHTML","text","setTextContent","replaceChildWithTree","oldNode","newTree","replaceChild","queueChild","parentTree","childTree","appendChild","queueHTML","queueText","nodeName","DOMLazyTree","DOMNamespaces","createMicrosoftUnsafeLocalFunction","documentMode","navigator","userAgent","test","referenceNode","toLowerCase","namespaceURI","insertBefore","checkMask","bitmask","DOMPropertyInjection","MUST_USE_PROPERTY","HAS_BOOLEAN_VALUE","HAS_NUMERIC_VALUE","HAS_POSITIVE_NUMERIC_VALUE","HAS_OVERLOADED_BOOLEAN_VALUE","injectDOMPropertyConfig","domPropertyConfig","Injection","Properties","DOMAttributeNamespaces","DOMAttributeNames","DOMPropertyNames","DOMMutationMethods","isCustomAttribute","_isCustomAttributeFunctions","properties","lowerCased","propConfig","propertyInfo","attributeName","attributeNamespace","propertyName","mutationMethod","mustUseProperty","hasBooleanValue","hasNumericValue","hasPositiveNumericValue","hasOverloadedBooleanValue","ATTRIBUTE_NAME_START_CHAR","ROOT_ATTRIBUTE_NAME","ATTRIBUTE_NAME_CHAR","getPossibleStandardName","isCustomAttributeFn","attachRefs","ReactRef","mountComponent","internalInstance","hostParent","hostContainerInfo","parentDebugID","markup","ref","getReactMountReady","getHostNode","unmountComponent","safely","detachRefs","receiveComponent","nextElement","prevElement","_context","refsChanged","shouldUpdateRefs","ReactChildren","ReactComponent","ReactPureComponent","ReactClass","ReactDOMFactories","ReactElement","ReactPropTypes","ReactVersion","onlyChild","createFactory","cloneElement","__spread","React","Children","count","toArray","only","Component","PureComponent","isValidElement","PropTypes","createClass","createMixin","mixin","DOM","version","hasValidRef","config","hasValidKey","_typeof","Symbol","iterator","obj","REACT_ELEMENT_TYPE","RESERVED_PROPS","__self","__source","self","owner","props","element","$$typeof","_owner","childrenLength","childArray","Array","defaultProps","factory","bind","cloneAndReplaceKey","oldElement","newKey","_self","_source","_classCallCheck","Constructor","_createClass","defineProperties","descriptor","writable","protoProps","staticProps","CommandResult","input","inputHash","encodeHash","string","encodeURI","trim","default","emptyObject","isInteractive","tag","shouldPreventMouseEvent","disabled","EventPluginRegistry","EventPluginUtils","ReactErrorUtils","accumulateInto","forEachAccumulated","listenerBank","eventQueue","executeDispatchesAndRelease","simulated","executeDispatchesInOrder","executeDispatchesAndReleaseSimulated","executeDispatchesAndReleaseTopLevel","getDictionaryKey","_rootNodeID","EventPluginHub","injectEventPluginOrder","injectEventPluginsByName","putListener","registrationName","listener","PluginModule","registrationNameModules","didPutListener","getListener","bankForRegistrationName","deleteListener","willDeleteListener","deleteAllListeners","extractEvents","topLevelType","events","plugins","possiblePlugin","extractedEvents","enqueueEvents","processEventQueue","processingEventQueue","rethrowCaughtError","__purge","__getListenerBank","listenerAtPhase","propagationPhase","phasedRegistrationNames","accumulateDirectionalDispatches","phase","_dispatchListeners","_dispatchInstances","accumulateTwoPhaseDispatchesSingle","traverseTwoPhase","accumulateTwoPhaseDispatchesSingleSkipTarget","parentInst","getParentInstance","accumulateDispatches","ignoredDirection","accumulateDirectDispatchesSingle","accumulateTwoPhaseDispatches","accumulateTwoPhaseDispatchesSkipTarget","accumulateEnterLeaveDispatches","leave","enter","traverseEnterLeave","accumulateDirectDispatches","EventPropagators","ReactInstanceMap","remove","_reactInternalInstance","has","set","SyntheticUIEvent","dispatchMarker","getEventTarget","UIEventInterface","view","doc","ownerDocument","defaultView","parentWindow","detail","getListeningForDocument","mountAt","topListenersIDKey","reactTopListenersCounter","alreadyListeningTo","hasEventPageXY","ReactEventEmitterMixin","ViewportMetrics","getVendorPrefixedEventName","isEventSupported","isMonitoringScrollValue","topEventMapping","topAbort","topAnimationEnd","topAnimationIteration","topAnimationStart","topBlur","topCanPlay","topCanPlayThrough","topChange","topClick","topCompositionEnd","topCompositionStart","topCompositionUpdate","topContextMenu","topCopy","topCut","topDoubleClick","topDrag","topDragEnd","topDragEnter","topDragExit","topDragLeave","topDragOver","topDragStart","topDrop","topDurationChange","topEmptied","topEncrypted","topEnded","topError","topFocus","topInput","topKeyDown","topKeyPress","topKeyUp","topLoadedData","topLoadedMetadata","topLoadStart","topMouseDown","topMouseMove","topMouseOut","topMouseOver","topMouseUp","topPaste","topPause","topPlay","topPlaying","topProgress","topRateChange","topScroll","topSeeked","topSeeking","topSelectionChange","topStalled","topSuspend","topTextInput","topTimeUpdate","topTouchCancel","topTouchEnd","topTouchMove","topTouchStart","topTransitionEnd","topVolumeChange","topWaiting","topWheel","ReactBrowserEventEmitter","ReactEventListener","injectReactEventListener","setHandleTopLevel","handleTopLevel","setEnabled","enabled","isEnabled","listenTo","contentDocumentHandle","isListening","dependencies","registrationNameDependencies","dependency","trapBubbledEvent","trapCapturedEvent","WINDOW_HANDLE","handlerBaseName","handle","supportsEventPageXY","createEvent","ev","ensureScrollValueMonitoring","refresh","refreshScrollValues","monitorScrollValue","SyntheticMouseEvent","getEventModifierState","MouseEventInterface","screenX","screenY","clientX","clientY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","button","buttons","relatedTarget","fromElement","srcElement","toElement","pageX","currentScrollLeft","pageY","currentScrollTop","OBSERVED_ERROR","TransactionImpl","transactionWrappers","wrapperInitData","_isInTransaction","isInTransaction","errorThrown","ret","initializeAll","closeAll","startIndex","wrapper","initData","escapeHtml","str","match","matchHtmlRegExp","exec","escape","index","lastIndex","charCodeAt","substring","escapeTextContentForBrowser","reusableSVGContainer","WHITESPACE_TEST","NONVISIBLE_TEST","svg","innerHTML","svgNode","testElement","textNode","data","removeChild","deleteData","is","x","y","shallowEqual","objA","objB","keysA","keysB","getNodeAfter","isArray","insertLazyTreeChildAt","moveChild","moveDelimitedText","insertChildAt","closingComment","removeDelimitedText","openingComment","nextNode","startNode","replaceDelimitedText","stringText","nodeAfterComment","createTextNode","Danger","dangerouslyReplaceNodeWithMarkup","DOMChildrenOperations","processUpdates","updates","k","update","content","afterNode","fromNode","mathml","recomputePluginOrdering","eventPluginOrder","pluginName","namesToPlugins","pluginModule","pluginIndex","indexOf","publishedEvents","eventTypes","eventName","publishEventForPlugin","eventNameDispatchConfigs","phaseName","phasedRegistrationName","publishRegistrationName","possibleRegistrationNames","injectedEventPluginOrder","injectedNamesToPlugins","isOrderingDirty","getPluginModuleForEvent","_resetEventPlugins","isEndish","isMoveish","isStartish","executeDispatch","invokeGuardedCallbackWithCatch","invokeGuardedCallback","dispatchListeners","dispatchInstances","executeDispatchesInOrderStopAtTrueImpl","executeDispatchesInOrderStopAtTrue","executeDirectDispatch","dispatchListener","dispatchInstance","res","hasDispatches","ComponentTree","TreeTraversal","injectComponentTree","Injected","injectTreeTraversal","isAncestor","getLowestCommonAncestor","fn","argFrom","argTo","escaperLookup","=",":","unescape","unescaperLookup","=0","=2","KeyEscapeUtils","_assertSingleLink","inputProps","checkedLink","valueLink","_assertValueLink","onChange","_assertCheckedLink","checked","getDeclarationErrorAddendum","ReactPropTypesSecret","propTypesFactory","hasReadOnlyValue","checkbox","image","hidden","radio","submit","propTypes","componentName","readOnly","func","loggedTypeFailures","LinkedValueUtils","checkPropTypes","tagName","getValue","getChecked","executeOnChange","requestChange","injected","ReactComponentEnvironment","replaceNodeWithMarkup","processChildrenUpdates","injectEnvironment","environment","caughtError","formatUnexpectedArgument","displayName","getInternalInstanceReadyForUpdate","publicInstance","callerName","ReactUpdateQueue","isMounted","enqueueCallback","validateCallback","enqueueCallbackInternal","enqueueForceUpdate","_pendingForceUpdate","enqueueReplaceState","completeState","_pendingStateQueue","_pendingReplaceState","enqueueSetState","partialState","enqueueElementInternal","nextContext","_pendingElement","MSApp","execUnsafeLocalFunction","arg0","arg1","arg2","arg3","getEventCharCode","charCode","keyCode","modifierStateGetter","keyArg","syntheticEvent","keyProp","modifierKeyToProp","Alt","Control","Meta","Shift","correspondingUseElement","eventNameSuffix","capture","isSupported","setAttribute","useHasFeature","implementation","hasFeature","shouldUpdateReactComponent","prevEmpty","nextEmpty","prevType","nextType","validateDOMNesting","updater","refs","ReactNoopUpdateQueue","isReactComponent","setState","forceUpdate","expression","factories","canParse","trimmed","canCreate","parse","create","parseOperand","Operand","createOperand","number","kind","addFactory","regex","matches","numbers","ListOfNumbersExpression","operand","SingleOperandExpression","fullRegex","normalizeString","operands","normalizedString","parseMatch","MultipleOperandsExpression","sign","num","parseInt","hex","toHexString","dec","bin","other","lengthInBits","getBitLength","floor","log","toKindString","getOtherKind","getBase","hexVal","abs","substr","expressionString","operand1","apply","eval","TwoOperandExpression","operand2","expressions","maxBitsLegnth","reduce","Expression","parser","Parser","pos","buffer","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","root","definition","realMethod","methodName","undefinedType","bindMethod","noop","Function","enableLoggingWhenConsoleArrives","level","loggerName","replaceLoggingMethods","logMethods","methodFactory","defaultMethodFactory","Logger","defaultLevel","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","storageKey","ignore","cookie","getPersistedLevel","storedLevel","location","levels","currentLevel","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","setDefaultLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","logger","_log","noConflict","logError","invokeHandler","handler","cmdResult","createHandler","cmd","_is2","plainObject","canHandle","findHandler","handlers","_is","errorHandler","debugMode","execute","rawInput","commands","catalog","command","h","warn","aFunction","clear","onError","_interopRequireDefault","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_react","_react2","_cmd","_cmd2","InputBox","_React$Component","_this","getPrototypeOf","history","historyIndex","nameInput","focus","_this2","id","onKeyUp","onKeyDown","className","placeholder","unshift","newIndex","EventListener","listen","eventType","removeEventListener","detachEvent","registerDefault","focusNode","getActiveElement","activeElement","body","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","concat","queueIndex","drainQueue","timeout","run","Item","array","process","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","prefixKey","prefix","charAt","isUnitlessNumber","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridColumn","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","prefixes","prop","shorthandPropertyExpansions","background","backgroundAttachment","backgroundColor","backgroundImage","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundPosition","border","borderWidth","borderStyle","borderColor","borderBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeft","borderLeftWidth","borderLeftStyle","borderLeftColor","borderRight","borderRightWidth","borderRightStyle","borderRightColor","borderTop","borderTopWidth","borderTopStyle","borderTopColor","font","fontStyle","fontVariant","fontSize","fontFamily","outline","outlineWidth","outlineStyle","outlineColor","CSSProperty","_callbacks","_contexts","_arg","contexts","checkpoint","rollback","isAttributeNameSafe","validatedAttributeNameCache","illegalAttributeNameCache","VALID_ATTRIBUTE_NAME_REGEX","shouldIgnoreValue","isNaN","quoteAttributeValueForBrowser","RegExp","DOMPropertyOperations","createMarkupForID","setAttributeForID","createMarkupForRoot","setAttributeForRoot","createMarkupForProperty","createMarkupForCustomAttribute","setValueForProperty","deleteValueForProperty","namespace","setAttributeNS","setValueForAttribute","removeAttribute","deleteValueForAttribute","updateOptionsIfPendingUpdateAndMounted","_wrapperState","pendingUpdate","updateOptions","Boolean","multiple","propValue","selectedValue","options","selected","_handleChange","didWarnValueDefaultValue","ReactDOMSelect","getHostProps","mountWrapper","initialValue","defaultValue","wasMultiple","getSelectValueContext","postUpdateWrapper","emptyComponentFactory","ReactEmptyComponentInjection","injectEmptyComponentFactory","ReactEmptyComponent","instantiate","createInternalComponent","genericComponentClass","createInstanceForText","textComponentClass","isTextComponent","ReactHostComponentInjection","injectGenericComponentClass","componentClass","injectTextComponentClass","ReactHostComponent","isInDocument","containsNode","documentElement","ReactDOMSelection","ReactInputSelection","hasSelectionCapabilities","elem","contentEditable","getSelectionInformation","focusedElem","selectionRange","getSelection","restoreSelection","priorSelectionInformation","curFocusedElem","priorFocusedElem","priorSelectionRange","setSelection","selection","start","selectionStart","end","selectionEnd","range","createRange","parentElement","moveStart","moveEnd","getOffsets","offsets","min","createTextRange","collapse","select","setOffsets","firstDifferenceIndex","string1","string2","minLen","getReactRootElementInContainer","container","DOC_NODE_TYPE","internalGetID","mountComponentIntoNode","wrapperInstance","shouldReuseMarkup","wrappedElement","child","ReactDOMContainerInfo","_topLevelWrapper","ReactMount","_mountImageIntoNode","batchedMountComponentIntoNode","componentInstance","ReactDOMFeatureFlags","useCreateElement","unmountComponentFromNode","lastChild","hasNonRootReactChild","rootEl","isValidContainer","ELEMENT_NODE_TYPE","DOCUMENT_FRAGMENT_NODE_TYPE","getHostRootInstanceInContainer","prevHostInstance","getTopLevelWrapperInContainer","_hostContainerInfo","ReactMarkupChecksum","instantiateReactComponent","ROOT_ATTR_NAME","instancesByReactRootID","topLevelRootCounter","TopLevelWrapper","rootID","render","_instancesByReactRootID","scrollMonitor","renderCallback","_updateRootComponent","prevComponent","_renderNewRootComponent","wrapperID","_instance","renderSubtreeIntoContainer","parentComponent","_renderSubtreeIntoContainer","nextWrappedElement","_processChildContext","prevWrappedElement","publicInst","updatedCallback","unmountComponentAtNode","reactRootElement","containerHasReactMarkup","containerHasNonRootReactChild","hasAttribute","rootElement","canReuseMarkup","checksum","CHECKSUM_ATTR_NAME","rootMarkup","outerHTML","normalizedMarkup","diffIndex","difference","ReactNodeTypes","HOST","COMPOSITE","EMPTY","getType","scrollPosition","next","arr","cb","getHostComponentFromComposite","_renderedNodeType","getTextContentAccessor","contentKey","isInternalComponentType","shouldHaveDebugID","info","getNativeNode","ReactCompositeComponentWrapper","_mountIndex","_mountImage","ReactCompositeComponent","construct","_instantiateReactComponent","isTextInputElement","supportedInputTypes","color","date","datetime","datetime-local","email","month","password","search","tel","url","week","textContent","getComponentKey","traverseAllChildrenImpl","nameSoFar","traverseContext","SEPARATOR","nextName","subtreeCount","nextNamePrefix","SUBSEPARATOR","iteratorFn","getIteratorFn","step","entries","ii","done","entry","addendum","childrenString","traverseAllChildren","isNative","funcToString","reIsNative","purgeDeep","item","getItem","childIDs","removeItem","describeComponentFrame","ownerName","fileName","lineNumber","getDisplayName","describeID","ReactComponentTreeHook","getElement","ownerID","getOwnerID","setItem","getItemIDs","addRoot","removeRoot","getRootIDs","canUseCollections","Map","Set","itemMap","rootIDSet","add","itemByKey","rootByKey","getKeyFromID","getIDFromKey","unmountedIDs","onSetChildren","nextChildIDs","nextChildID","nextChild","parentID","onBeforeMountComponent","updateCount","onBeforeUpdateComponent","onMountComponent","onUpdateComponent","onUnmountComponent","purgeUnmountedComponents","_preventPurging","getCurrentStackAddendum","topElement","currentOwner","_debugID","getStackAddendumByID","getParentID","getChildIDs","getSource","getText","getUpdateCount","getRegisteredIDs","canDefineProperty","BinaryStringView","getChildren","allowFlipBits","onFlipBit","bits","createBits","binaryString","emphasizeBytes","splitIntoBytes","bitChars","css","classNames","0","1","onClick","onBitClick","bytes","BitwiseExpressionViewModel","_ref","_ref$emphasizeBytes","items","maxNumberOfBits","max","getLengthInBits","label","resultOperand","expr","ex","op","addOperand","isShiftExpression","addShiftExpressionResult","addExpression","addExpressionResult","getNumberOfBits","formatString","padLeft","symbol","sb","_CommandResult2","_CommandResult3","AboutResult","_CommandResult","ErrorResult","ExpressionResult","HelpResult","UnknownCommandResult","WhatsnewResult","AppState","persistData","commandResults","uiTheme","persistedVersion","wasOldVersion","result","triggerChanged","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","theme","getPersistedData","json","JSON","watch","appState","stringify","getPersistData","_HelpResult","_HelpResult2","_AboutResult","_AboutResult2","_UnknownCommandResult","_UnknownCommandResult2","_ExpressionResult","_ExpressionResult2","_ErrorResult","_ErrorResult2","_WhatsnewResult","_WhatsnewResult2","_expression","newObj","addCommandResult","help","clearCommmandResults","em","toggleEmphasizeBytes","dark","setUiTheme","light","about","whatsnew","-notrack","_InputBox","_InputBox2","_DisplayResultView","_DisplayResultView2","AppRoot","_this3","state","r","_this4","style","href","data-cmd","getIndicator","getResultViews","splitHashList","values","v","decodeHash","hashValue","decodeURI","getArgs","decodedHash","freeze","camelize","_hyphenPattern","_","character","camelizeStyleName","msPattern","outerNode","innerNode","isTextNode","contains","compareDocumentPosition","callee","hasArrayNature","createArrayFromMixed","getNodeName","nodeNameMatch","nodeNamePattern","createNodesFromMarkup","handleScript","dummyNode","wrap","getMarkupWrap","wrapDepth","scripts","getElementsByTagName","nodes","childNodes","markupWrap","shouldWrap","selectWrap","tableWrap","trWrap","svgWrap","*","area","col","legend","param","tr","optgroup","option","caption","colgroup","tbody","tfoot","thead","td","th","getUnboundedScrollPosition","scrollable","Window","pageXOffset","scrollLeft","pageYOffset","scrollTop","hyphenate","_uppercasePattern","hyphenateStyleName","isNode","Node","memoizeStringOnly","cache","typeSpecs","getStack","throwOnDirectAccess","maybeIterable","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","PropTypeError","stack","createChainableTypeChecker","validate","checkType","isRequired","propFullName","secret","ANONYMOUS","chainedCheckType","createPrimitiveTypeChecker","expectedType","getPropType","getPreciseType","createArrayOfTypeChecker","typeChecker","createInstanceTypeChecker","expectedClass","expectedClassName","getClassName","createEnumTypeChecker","expectedValues","createObjectOfTypeChecker","propType","createUnionTypeChecker","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","createShapeTypeChecker","shapeTypes","every","isSymbol","bool","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","ARIADOMPropertyConfig","aria-current","aria-details","aria-disabled","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-roledescription","aria-autocomplete","aria-checked","aria-expanded","aria-haspopup","aria-level","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-placeholder","aria-pressed","aria-readonly","aria-required","aria-selected","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","aria-atomic","aria-busy","aria-live","aria-relevant","aria-dropeffect","aria-grabbed","aria-activedescendant","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-describedby","aria-errormessage","aria-flowto","aria-labelledby","aria-owns","aria-posinset","aria-rowcount","aria-rowindex","aria-rowspan","aria-setsize","AutoFocusUtils","focusDOMComponent","isKeypressCommand","getCompositionEventType","compositionStart","compositionEnd","compositionUpdate","isFallbackCompositionStart","START_KEYCODE","isFallbackCompositionEnd","END_KEYCODES","getDataFromCustomEvent","extractCompositionEvent","fallbackData","canUseCompositionEvent","currentComposition","useFallbackCompositionData","getData","FallbackCompositionState","SyntheticCompositionEvent","customData","getNativeBeforeInputChars","which","SPACEBAR_CODE","hasSpaceKeypress","SPACEBAR_CHAR","chars","getFallbackBeforeInputChars","extractBeforeInputEvent","canUseTextInputEvent","SyntheticInputEvent","beforeInput","opera","bubbled","captured","BeforeInputEventPlugin","dangerousStyleValue","processStyleName","styleName","hasShorthandPropertyBug","styleFloatAccessor","tempStyle","cssFloat","CSSPropertyOperations","createMarkupForStyles","styles","serialized","styleValue","setValueForStyles","expansion","individualStyleName","shouldUseChangeEvent","manualDispatchChangeEvent","change","activeElementInst","runEventInBatch","startWatchingForChangeEventIE8","stopWatchingForChangeEventIE8","getTargetInstForChangeEvent","handleEventsForChangeEventIE8","startWatchingForValueChange","activeElementValue","activeElementValueProp","getOwnPropertyDescriptor","newValueProp","handlePropertyChange","stopWatchingForValueChange","getTargetInstForInputEvent","handleEventsForInputEventIE","getTargetInstForInputEventIE","shouldUseClickEvent","getTargetInstForClickEvent","handleControlledInputBlur","controlled","doesChangeEventBubble","isInputEventSupported","ChangeEventPlugin","getTargetInstFunc","handleEventFunc","targetNode","oldChild","newChild","DefaultEventPluginOrder","mouseEnter","mouseLeave","EnterLeaveEventPlugin","win","related","toNode","_root","_startText","_fallbackText","startValue","startLength","endValue","endLength","minEnd","sliceTail","HTMLDOMPropertyConfig","accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","as","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","challenge","cite","classID","cols","colSpan","contextMenu","controls","coords","crossOrigin","dateTime","defer","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","headers","height","high","hrefLang","htmlFor","httpEquiv","icon","inputMode","integrity","keyParams","keyType","lang","list","loop","low","manifest","marginHeight","marginWidth","maxLength","media","mediaGroup","minLength","muted","nonce","noValidate","open","optimum","pattern","playsInline","poster","preload","profile","radioGroup","referrerPolicy","rel","required","reversed","role","rows","rowSpan","sandbox","scoped","scrolling","seamless","size","sizes","span","spellCheck","src","srcDoc","srcLang","srcSet","summary","tabIndex","useMap","width","wmode","datatype","inlist","resource","typeof","vocab","autoCapitalize","autoCorrect","autoSave","itemProp","itemScope","itemType","itemID","itemRef","results","security","unselectable","validity","badInput","instantiateChild","childInstances","selfDebugID","keyUnique","ReactChildReconciler","instantiateChildren","nestedChildNodes","updateChildren","prevChildren","nextChildren","mountImages","removedNodes","prevChild","nextChildInstance","nextChildMountImage","unmountChildren","renderedChildren","renderedChild","ReactDOMIDOperations","ReactComponentBrowserEnvironment","dangerouslyProcessChildrenUpdates","StatelessComponent","shouldConstruct","isPureComponent","isPureReactComponent","CompositeTypes","ImpureClass","PureClass","StatelessFunctional","nextMountID","_compositeType","_calledComponentWillUnmount","renderedElement","publicProps","publicContext","_processContext","updateQueue","getUpdateQueue","doConstruct","_constructComponent","initialState","unstable_handleError","performInitialMountWithErrorHandling","performInitialMount","componentDidMount","_constructComponentWithoutOwner","_processPendingState","debugID","componentWillMount","_renderValidatedComponent","componentWillUnmount","_maskContext","contextTypes","maskedContext","contextName","currentContext","childContext","getChildContext","childContextTypes","_checkContextTypes","prevContext","updateComponent","prevParentElement","nextParentElement","prevUnmaskedContext","nextUnmaskedContext","willReceive","prevProps","nextProps","componentWillReceiveProps","nextState","shouldUpdate","shouldComponentUpdate","_performComponentUpdate","partial","unmaskedContext","prevState","hasComponentDidUpdate","componentDidUpdate","componentWillUpdate","_updateRenderedComponent","prevComponentInstance","prevRenderedElement","nextRenderedElement","oldHostNode","nextMarkup","_replaceNodeWithMarkup","prevInstance","_renderValidatedComponentWithoutOwnerOrContext","attachRef","publicComponentInstance","detachRef","ReactDefaultInjection","findDOMNode","inject","ReactDOM","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","__REACT_DEVTOOLS_GLOBAL_HOOK__","Mount","Reconciler","assertValidProps","voidElementTags","_tag","dangerouslySetInnerHTML","HTML","enqueuePutListener","ReactServerRenderingTransaction","containerInfo","isDocumentFragment","_node","DOC_FRAGMENT_TYPE","_ownerDocument","listenerToPut","inputPostMount","ReactDOMInput","postMountWrapper","textareaPostMount","ReactDOMTextarea","optionPostMount","ReactDOMOption","trapBubbledEventsLocal","getNode","mediaEvents","postUpdateSelectWrapper","validateDangerousTag","validatedTagCache","VALID_TAG_REGEX","isCustomComponent","ReactDOMComponent","_namespaceURI","_previousStyle","_previousStyleCopy","ReactMultiChild","CONTENT_TYPES","suppressContentEditableWarning","omittedCloseTags","base","br","embed","hr","img","keygen","link","meta","track","wbr","newlineEatingTags","listing","pre","textarea","menuitem","globalIdCounter","Mixin","_idCounter","parentTag","mountImage","el","div","createElementNS","_updateDOMProperties","lazyTree","_createInitialChildren","tagOpen","_createOpenTagMarkupAndPutListeners","tagContent","_createContentMarkup","autoFocus","propKey","renderToStaticMarkup","__html","contentToUse","childrenToUse","mountChildren","lastProps","_updateDOMChildren","updateWrapper","styleUpdates","lastStyle","nextProp","lastProp","lastContent","nextContent","lastHtml","nextHtml","lastChildren","lastHasContentOrHtml","nextHasContentOrHtml","updateTextContent","updateMarkup","topLevelWrapper","ReactDOMEmptyComponent","domID","createComment","useFiber","forceUpdateIfMounted","isControlled","rootNode","queryRoot","group","querySelectorAll","otherNode","otherInstance","defaultChecked","initialChecked","valueAsNumber","parseFloat","flattenChildren","didWarnInvalidOptionChildren","selectValue","selectParent","hostProps","isCollapsed","anchorNode","anchorOffset","focusOffset","getIEOffsets","selectedRange","selectedLength","fromStart","duplicate","moveToElementText","setEndPoint","startOffset","getModernOffsets","rangeCount","currentRange","getRangeAt","startContainer","endContainer","isSelectionCollapsed","rangeLength","tempRange","cloneRange","selectNodeContents","setEnd","isTempRangeCollapsed","endOffset","detectionRange","setStart","isBackward","collapsed","setIEOffsets","setModernOffsets","extend","temp","startMarker","getNodeForCharacterOffset","endMarker","offset","removeAllRanges","addRange","useIEOffsets","ReactDOMTextComponent","_stringText","_closingComment","_commentNodes","openingValue","createDocumentFragment","escapedText","nextText","nextStringText","commentNodes","hostNode","newValue","instA","instB","depthA","tempA","depthB","tempB","depth","path","common","pathFrom","pathTo","ReactDefaultBatchingStrategyTransaction","RESET_BATCHED_UPDATES","ReactDefaultBatchingStrategy","FLUSH_BATCHED_UPDATES","alreadyBatchingUpdates","alreadyInjected","ReactInjection","EventEmitter","ReactDOMTreeTraversal","SimpleEventPlugin","SelectEventPlugin","HostComponent","SVGDOMPropertyConfig","EmptyComponent","Updates","runEventQueueInBatch","findParent","TopLevelCallbackBookKeeping","ancestors","handleTopLevelImpl","bookKeeping","ancestor","_handleTopLevel","scrollValueMonitor","_enabled","dispatchEvent","adler32","COMMENT_START","addChecksumToMarkup","existingChecksum","makeInsertMarkup","toIndex","fromIndex","makeMove","makeRemove","makeSetMarkup","makeTextContent","processQueue","_reconcilerInstantiateChildren","nestedChildren","_reconcilerUpdateChildren","nextNestedChildrenElements","_updateChildren","nextIndex","nextMountIndex","lastPlacedNode","_mountChildAtIndex","_unmountChild","createChild","isValidOwner","ReactOwner","addComponentAsRefTo","removeComponentAsRefFrom","ownerPublicInstance","reactMountReady","SELECTION_RESTORATION","EVENT_SUPPRESSION","currentlyEnabled","previouslyEnabled","ON_DOM_READY_QUEUEING","prevRef","prevOwner","nextRef","nextOwner","ReactServerUpdateQueue","noopCallbackQueue","NS","xlink","xml","ATTRS","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeType","autoReverse","azimuth","baseFrequency","baseProfile","baselineShift","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipRule","clipPathUnits","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","exponent","externalResourcesRequired","fill","fillRule","filter","filterRes","filterUnits","floodColor","focusable","fontSizeAdjust","fontStretch","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","ideographic","imageRendering","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerMid","markerStart","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","operator","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","rotate","rx","ry","scale","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","stdDeviation","stemh","stemv","stitchTiles","stopColor","strikethroughPosition","strikethroughThickness","stroke","strokeLinecap","strokeLinejoin","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textRendering","textLength","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","viewBox","viewTarget","visibility","widths","wordSpacing","writingMode","xHeight","x1","x2","xChannelSelector","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlns","xmlnsXlink","xmlLang","xmlSpace","y1","y2","yChannelSelector","z","zoomAndPan","top","boundingTop","left","boundingLeft","constructSelectEvent","mouseDown","currentSelection","lastSelection","skipSelectionChangeEvent","hasListener","SyntheticAnimationEvent","SyntheticClipboardEvent","SyntheticFocusEvent","SyntheticKeyboardEvent","SyntheticDragEvent","SyntheticTouchEvent","SyntheticTransitionEvent","SyntheticWheelEvent","topLevelEventsToDispatchConfig","capitalizedEvent","onEvent","topEvent","onClickListeners","EventConstructor","AnimationEventInterface","animationName","elapsedTime","pseudoElement","ClipboardEventInterface","clipboardData","CompositionEventInterface","DragEventInterface","dataTransfer","FocusEventInterface","InputEventInterface","getEventKey","KeyboardEventInterface","repeat","locale","TouchEventInterface","touches","targetTouches","changedTouches","TransitionEventInterface","WheelEventInterface","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","MOD","componentOrElement","flattenSingleChildIntoContext","normalizeKey","translateToKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","getLeafNode","getSiblingNode","nodeStart","nodeEnd","makePrefixMap","styleProp","prefixedEventNames","vendorPrefixes","prefixMap","animationend","animationiteration","animationstart","transitionend","animation","transition","escapeUserProvidedKey","userProvidedKeyEscapeRegex","ForEachBookKeeping","forEachFunction","forEachContext","forEachSingleChild","forEachChildren","forEachFunc","MapBookKeeping","mapResult","keyPrefix","mapFunction","mapContext","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","escapedPrefix","mapChildren","forEachSingleChildDummy","countChildren","identity","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassInterface","ReactClassMixin","mixSpecIntoComponent","spec","proto","autoBindPairs","__reactAutoBindPairs","MIXINS_KEY","RESERVED_SPEC_KEYS","mixins","isReactClassMethod","isFunction","shouldAutoBind","autobind","createMergedResultFunction","createChainedFunction","mixStaticSpecIntoComponent","statics","isReserved","isInherited","mergeIntoWithNoDuplicateKeys","one","two","bindAutoBindMethod","boundMethod","bindAutoBindMethods","pairs","autoBindKey","injectedMixins","getDefaultProps","getInitialState","replaceState","newState","ReactClassComponent","injectMixin","createDOMFactory","abbr","address","article","aside","audio","bdi","bdo","big","blockquote","canvas","datalist","dd","del","details","dfn","dialog","dl","dt","fieldset","figcaption","figure","footer","h1","h2","h3","h4","h5","h6","head","header","hgroup","iframe","ins","kbd","li","main","mark","menu","meter","nav","noscript","ol","output","picture","progress","q","rp","rt","ruby","samp","script","section","small","strong","sub","sup","table","u","ul","var","video","circle","defs","ellipse","g","line","linearGradient","polygon","polyline","radialGradient","rect","stop","tspan","ReactPropTypeLocationNames","_require","ComponentDummy","getNextDebugID","nextDebugID","_HelpResultView","_HelpResultView2","_AboutResultView","_AboutResultView2","_ExpressionResultView","_ExpressionResultView2","_WhatsnewResultView","_WhatsnewResultView2","DisplayResult","renderUnknown","renderError","pathname","findResultComponent","AboutResultView","_extends","_formatter","_formatter2","_BinaryStringView","_BinaryStringView2","_BitwiseExpressionViewModel","_BitwiseExpressionViewModel2","_loglevel","_loglevel2","BitwiseOperationEpxressionView","getRows","buildNot","itm","ExpressionRow","buildMultiple","_React$Component2","_props","_ListOfNumbersExpressionView","_ListOfNumbersExpressionView2","_BitwiseOperationExpressionView","_BitwiseOperationExpressionView2","ExpressionResultView","HelpResultView","float","marginRight","ListOfNumersExpressionView","numberRows","OperandView","data-kind","flipBit","setValue","WhatsnewResultView","class","_reactDom","_reactDom2","_AppState","_AppState2","_appStateStore","_appStateStore2","_commands","_commands2","_AppRoot","_AppRoot2","_hash","_hash2","host","hash","stateData","debug","hashArgs","startupCommands","getElementById","constructedFrom","ctor","htmlElement","HtmlElement"],"mappings":"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","file":"bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"http://localhost:8080/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 194);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 validateFormat = function validateFormat(format) {};\n\nif (false) {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\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(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(7);\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 (false) {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var 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 warning = function warning(condition, format) {\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 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMProperty = __webpack_require__(14);\nvar ReactDOMComponentFlags = __webpack_require__(61);\n\nvar invariant = __webpack_require__(0);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n true ? false ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? false ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(16);\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nvar emptyFunction = function 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/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (false) {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar CallbackQueue = __webpack_require__(59);\nvar PooledClass = __webpack_require__(12);\nvar ReactFeatureFlags = __webpack_require__(64);\nvar ReactReconciler = __webpack_require__(15);\nvar Transaction = __webpack_require__(27);\n\nvar invariant = __webpack_require__(0);\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? false ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;\n}\n\nvar NESTED_UPDATES = {\n initialize: function initialize() {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function close() {\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 initialize() {\n this.callbackQueue.reset();\n },\n close: function close() {\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(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function destructor() {\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 perform(method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.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 return 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) ? false ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\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 // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\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 var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\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 flushBatchedUpdates() {\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};\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 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 if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\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 ? false ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context whereupdates are not being batched.') : _prodInvariant('125') : void 0;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function injectReconcileTransaction(ReconcileTransaction) {\n !ReconcileTransaction ? false ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function injectBatchingStrategy(_batchingStrategy) {\n !_batchingStrategy ? false ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? false ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? false ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\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/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\n\nvar emptyFunction = __webpack_require__(7);\nvar warning = __webpack_require__(1);\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: 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 timeStamp(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 {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (false) {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (false) {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\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 return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function preventDefault() {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function stopPropagation() {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\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 persist() {\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 destructor() {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (false) {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (false) {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (false) {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function construct(target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function apply(constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function set(target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\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 E = function E() {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\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 * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n false ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n }\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 */\n\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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 oneArgumentPooler(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 twoArgumentPooler(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 threeArgumentPooler(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 fourArgumentPooler(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 standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n !(instance instanceof Klass) ? false ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\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.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = __webpack_require__(32);\nvar setInnerHTML = __webpack_require__(29);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(40);\nvar setTextContent = __webpack_require__(76);\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some plugins (like Flash Player) will read\n // nodes immediately upon insertion into the DOM, so \n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\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 injectDOMPropertyConfig(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) ? false ? 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) : _prodInvariant('48', propName) : void 0;\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 mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\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 !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? false ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;\n\n if (false) {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (false) {\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};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\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 ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\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 * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\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 *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: false ? { autofocus: 'autoFocus' } : 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 isCustomAttribute(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 injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactRef = __webpack_require__(147);\nvar ReactInstrumentation = __webpack_require__(8);\n\nvar warning = __webpack_require__(1);\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function getHostNode(internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent(internalInstance, safely) {\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\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 receiveComponent(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 if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\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 if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\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 performUpdateIfNecessary(internalInstance, transaction, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n false ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (false) {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactChildren = __webpack_require__(176);\nvar ReactComponent = __webpack_require__(47);\nvar ReactPureComponent = __webpack_require__(181);\nvar ReactClass = __webpack_require__(177);\nvar ReactDOMFactories = __webpack_require__(178);\nvar ReactElement = __webpack_require__(17);\nvar ReactPropTypes = __webpack_require__(180);\nvar ReactVersion = __webpack_require__(182);\n\nvar onlyChild = __webpack_require__(185);\nvar warning = __webpack_require__(1);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (false) {\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (false) {\n var warned = false;\n __spread = function __spread() {\n process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;\n warned = true;\n return _assign.apply(null, arguments);\n };\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 PureComponent: ReactPureComponent,\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 createMixin(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 // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\n// TODO: Fix tests so that this deprecation warning doesn't cause failures.\nif (false) {\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n }\n}\n\nmodule.exports = React;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _assign = __webpack_require__(3);\n\nvar ReactCurrentOwner = __webpack_require__(11);\n\nvar warning = __webpack_require__(1);\nvar canDefineProperty = __webpack_require__(80);\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = __webpack_require__(79);\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (false) {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (false) {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function warnAboutAccessingKey() {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n false ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function warnAboutAccessingRef() {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n false ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\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 ReactElement(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 (false) {\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 if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\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 if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\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 (hasOwnProperty.call(config, 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 if (false) {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\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 (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (false) {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\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. `.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\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\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 (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\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 * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\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 === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CommandResult = function () {\n function CommandResult(input) {\n _classCallCheck(this, CommandResult);\n\n this.input = input;\n this.inputHash = this.encodeHash(input);\n }\n\n _createClass(CommandResult, [{\n key: 'encodeHash',\n value: function encodeHash(string) {\n return encodeURI(string.trim().replace(/\\s/g, ','));\n }\n }]);\n\n return CommandResult;\n}();\n\nexports.default = CommandResult;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyObject = {};\n\nif (false) {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar EventPluginRegistry = __webpack_require__(33);\nvar EventPluginUtils = __webpack_require__(34);\nvar ReactErrorUtils = __webpack_require__(38);\n\nvar accumulateInto = __webpack_require__(70);\nvar forEachAccumulated = __webpack_require__(71);\nvar invariant = __webpack_require__(0);\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 executeDispatchesAndRelease(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 executeDispatchesAndReleaseSimulated(e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function executeDispatchesAndReleaseTopLevel(e) {\n return executeDispatchesAndRelease(e, false);\n};\n\nvar getDictionaryKey = function getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\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 {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 /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function putListener(inst, registrationName, listener) {\n !(typeof listener === 'function') ? false ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : _prodInvariant('94', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function getListener(inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function deleteListener(inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function deleteAllListeners(inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function extractEvents(topLevelType, targetInst, 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, targetInst, 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 enqueueEvents(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 processEventQueue(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 ? false ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;\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 __purge() {\n listenerBank = {};\n },\n\n __getListenerBank: function __getListenerBank() {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginUtils = __webpack_require__(34);\n\nvar accumulateInto = __webpack_require__(70);\nvar forEachAccumulated = __webpack_require__(71);\nvar warning = __webpack_require__(1);\n\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(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, 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(inst, phase, event) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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 EventPluginUtils.traverseTwoPhase(event._targetInst, 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 var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, 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(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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._targetInst, 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, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, 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/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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();\n\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 remove(key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function get(key) {\n return key._reactInternalInstance;\n },\n\n has: function has(key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function set(key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getEventTarget = __webpack_require__(43);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function view(event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (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 detail(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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar EventPluginRegistry = __webpack_require__(33);\nvar ReactEventEmitterMixin = __webpack_require__(139);\nvar ViewportMetrics = __webpack_require__(69);\n\nvar getVendorPrefixedEventName = __webpack_require__(171);\nvar isEventSupported = __webpack_require__(44);\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 hasEventPageXY;\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 topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\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 topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\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 * EventPluginHub.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 injectReactEventListener(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 setEnabled(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 isEnabled() {\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 listenTo(registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('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('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('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('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.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 trapBubbledEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function trapCapturedEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function supportsEventPageXY() {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\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 * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function ensureScrollValueMonitoring() {\n if (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\nvar ViewportMetrics = __webpack_require__(69);\n\nvar getEventModifierState = __webpack_require__(42);\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 button(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 relatedTarget(event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function pageX(event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function pageY(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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar OBSERVED_ERROR = {};\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 *
\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 * 
\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} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar TransactionImpl = {\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 reinitializeTransaction() {\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} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function isInTransaction() {\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 perform(method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? false ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;\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 initializeAll(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] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === 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 closeAll(startIndex) {\n !this.isInTransaction() ? false ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;\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 !== 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\nmodule.exports = TransactionImpl;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\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 if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\nvar DOMNamespaces = __webpack_require__(32);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(40);\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\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 = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '' + html + '';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\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 setInnerHTML(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 testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\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 (is(objA, objB)) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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 for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMLazyTree = __webpack_require__(13);\nvar Danger = __webpack_require__(116);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstrumentation = __webpack_require__(8);\n\nvar createMicrosoftUnsafeLocalFunction = __webpack_require__(40);\nvar setInnerHTML = __webpack_require__(29);\nvar setTextContent = __webpack_require__(76);\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\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 */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (false) {\n dangerouslyReplaceNodeWithMarkup = function dangerouslyReplaceNodeWithMarkup(oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\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} updates List of update configurations.\n * @internal\n */\n processUpdates: function processUpdates(parentNode, updates) {\n if (false) {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: { toIndex: update.toIndex, content: update.content.toString() }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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) ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !pluginModule.extractEvents ? false ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;\n EventPluginRegistry.plugins[pluginIndex] = pluginModule;\n var publishedEvents = pluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? false ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;\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) ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;\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] ? false ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (false) {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\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 * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: false ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\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 injectEventPluginOrder(injectedEventPluginOrder) {\n !!eventPluginOrder ? false ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;\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 injectEventPluginsByName(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] ? false ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;\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 getPluginModuleForEvent(event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function _resetEventPlugins() {\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 if (false) {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactErrorUtils = __webpack_require__(38);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function injectComponentTree(Injected) {\n ComponentTree = Injected;\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function injectTreeTraversal(Injected) {\n TreeTraversal = Injected;\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (false) {\n validateEventDispatches = function validateEventDispatches(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\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 {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\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 dispatchInstances = event._dispatchInstances;\n if (false) {\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 Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = 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 dispatchInstances = event._dispatchInstances;\n if (false) {\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 Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = 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 (false) {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? false ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = 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 getInstanceFromNode: function getInstanceFromNode(node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function getNodeFromInstance(node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function isAncestor(a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function getLowestCommonAncestor(a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function getParentInstance(inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function traverseTwoPhase(target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function traverseEnterLeave(from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactPropTypesSecret = __webpack_require__(145);\nvar propTypesFactory = __webpack_require__(57);\n\nvar React = __webpack_require__(16);\nvar PropTypes = propTypesFactory(React.isValidElement);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\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) ? false ? 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.') : _prodInvariant('87') : void 0;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? false ? 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.') : _prodInvariant('88') : void 0;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? false ? 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') : _prodInvariant('89') : void 0;\n}\n\nvar propTypes = {\n value: function value(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 checked(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: PropTypes.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 checkPropTypes(tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);\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 false ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;\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 getValue(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 getChecked(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 executeOnChange(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/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: 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 injectEnvironment(environment) {\n !!injected ? false ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\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 rethrowCaughtError() {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (false) {\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 document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(8);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg === 'undefined' ? 'undefined' : _typeof(arg);\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (false) {\n var ctor = publicInstance.constructor;\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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\n }\n return null;\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + 'within `render` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\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 isMounted(publicInstance) {\n if (false) {\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') : void 0;\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 * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function enqueueCallback(publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\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 enqueueCallbackInternal(internalInstance, callback) {\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 enqueueForceUpdate(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 enqueueReplaceState(publicInstance, completeState, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\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 enqueueSetState(publicInstance, partialState) {\n if (false) {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\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 enqueueElementInternal: function enqueueElementInternal(internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function validateCallback(callback, callerName) {\n !(!callback || typeof callback === 'function') ? false ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function createMicrosoftUnsafeLocalFunction(func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\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/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\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/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\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/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 === 'undefined' ? 'undefined' : _typeof(prevElement);\n var nextType = typeof nextElement === 'undefined' ? 'undefined' : _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}\n\nmodule.exports = shouldUpdateReactComponent;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar emptyFunction = __webpack_require__(7);\nvar warning = __webpack_require__(1);\n\nvar validateDOMNesting = emptyFunction;\n\nif (false) {\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,
is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n //

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 , 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 current: 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 updatedAncestorInfo(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.current = 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 isTagValidWithParent(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 case '#document':\n return tag === 'html';\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 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\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 findInvalidAncestorForTag(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 case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\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 findOwnerStack(instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n do {\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 validateDOMNesting(childTag, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\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 var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\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>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(18);\n\nvar ReactNoopUpdateQueue = __webpack_require__(48);\n\nvar canDefineProperty = __webpack_require__(80);\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\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 === 'undefined' ? 'undefined' : _typeof(partialState)) === 'object' || typeof partialState === 'function' || partialState == null) ? false ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\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, 'forceUpdate');\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 (false) {\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function defineDeprecationWarning(methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;\n return undefined;\n }\n });\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/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar warning = __webpack_require__(1);\n\nfunction warnNoop(publicInstance, callerName) {\n if (false) {\n var constructor = publicInstance.constructor;\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, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\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 isMounted(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 enqueueCallback(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 enqueueForceUpdate(publicInstance) {\n warnNoop(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 enqueueReplaceState(publicInstance, completeState) {\n warnNoop(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 enqueueSetState(publicInstance, partialState) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar expression = {\n factories: [],\n canParse: function canParse(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = this.factories.length - 1;\n for (; i >= 0; i--) {\n if (this.factories[i].canCreate(trimmed) === true) {\n return true;\n }\n }\n return false;\n },\n parse: function parse(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = 0,\n l = this.factories.length,\n factory;\n\n for (; i < l; i++) {\n factory = this.factories[i];\n\n if (factory.canCreate(trimmed) == true) {\n return factory.create(trimmed);\n }\n }\n\n return null;\n },\n parseOperand: function parseOperand(input) {\n return new Operand(input);\n },\n createOperand: function createOperand(number, kind) {\n return Operand.create(number, kind);\n },\n addFactory: function addFactory(factory) {\n this.factories.push(factory);\n }\n};\n\n// List of numbers\nexpression.addFactory({\n regex: /^(-?(?:\\d+|0x[\\d,a-f]+)\\s?)+$/,\n canCreate: function canCreate(string) {\n return this.regex.test(string);\n },\n create: function create(string) {\n var matches = this.regex.exec(string),\n numbers = [],\n input = matches.input;\n\n input.split(' ').forEach(function (n) {\n if (n.trim().length > 0) {\n numbers.push(new Operand(n.trim()));\n }\n });\n\n return new ListOfNumbersExpression(input, numbers);\n }\n});\n\n// Not Expression\nexpression.addFactory({\n regex: /^(~)(-?(?:\\d+|0x[\\d,a-f]+))$/,\n canCreate: function canCreate(string) {\n return this.regex.test(string);\n },\n create: function create(string) {\n var matches = this.regex.exec(string),\n operand = new Operand(matches[2]);\n\n return new SingleOperandExpression(matches.input, operand, matches[1]);\n }\n});\n\n// Multiple operands expression\nexpression.addFactory({\n fullRegex: /^((<<|>>|>>>|\\||\\&|\\^)?(-?((?:\\d+(?!x))|(?:0x[\\d,a-f]+))))+$/,\n regex: /(<<|>>|>>>|\\||\\&|\\^)?(-?((?:\\d+(?!x))|(?:0x[\\d,a-f]+)))/g,\n canCreate: function canCreate(string) {\n this.fullRegex.lastIndex = 0;\n return this.fullRegex.test(this.normalizeString(string));\n },\n create: function create(string) {\n var m,\n operands = [],\n normalizedString = this.normalizeString(string);\n\n while ((m = this.regex.exec(normalizedString)) != null) {\n operands.push(this.parseMatch(m));\n }\n\n return new MultipleOperandsExpression(normalizedString, operands);\n },\n parseMatch: function parseMatch(m) {\n var input = m[0],\n sign = m[1],\n num = m[2];\n\n if (sign == null) {\n return new Operand(num);\n } else {\n return new SingleOperandExpression(input, new Operand(num), sign);\n }\n },\n normalizeString: function normalizeString(string) {\n return string.replace(/\\s+/g, '');\n }\n});\n\n// Represents numeric value\n\nvar Operand = exports.Operand = function () {\n function Operand(input) {\n _classCallCheck(this, Operand);\n\n this.input = input;\n this.value = parseInt(input);\n this.hex = Operand.toHexString(this.value.toString(16));\n this.dec = this.value.toString(10);\n // >>> 0 makes negative numbers like -1 to be displayed as '11111111111111111111111111111111' in binary instead of -1\n this.bin = this.value < 0 ? (this.value >>> 0).toString(2) : this.value.toString(2);\n this.kind = this.input.indexOf('0x') > -1 ? 'hex' : 'dec';\n this.other = this.kind == 'dec' ? this.hex : this.dec;\n this.lengthInBits = Operand.getBitLength(this.value);\n }\n\n _createClass(Operand, [{\n key: 'getLengthInBits',\n value: function getLengthInBits() {\n if (this.value < 0) {\n return 32;\n }\n return Math.floor(Math.log(this.value) / Math.log(2)) + 1;\n }\n }, {\n key: 'getOtherKind',\n value: function getOtherKind(kind) {\n switch (kind || this.kind) {\n case 'dec':\n return 'hex';\n case 'hex':\n return 'dec';\n default:\n throw new Error(kind + \" kind doesn't have opposite kind\");\n }\n }\n }, {\n key: 'toString',\n value: function toString() {\n return this.input;\n }\n }, {\n key: 'setValue',\n value: function setValue(value) {\n console.log('Before ' + value, this);\n this.value = value;\n this.bin = Operand.toKindString(this.value, 'bin');\n this.dec = Operand.toKindString(this.value, 'dec');\n this.hex = Operand.toKindString(this.value, 'hex');\n this.other = Operand.toKindString(this.value, this.getOtherKind());\n this.input = Operand.toKindString(this.value, this.kind);\n console.log('After ' + value, this);\n }\n }], [{\n key: 'getBitLength',\n value: function getBitLength(num) {\n return Math.floor(Math.log(num) / Math.log(2)) + 1;\n }\n }, {\n key: 'getBase',\n value: function getBase(kind) {\n switch (kind) {\n case 'bin':\n return 2;\n case 'hex':\n return 16;\n case 'dec':\n return 10;\n }\n }\n }, {\n key: 'create',\n value: function create(number, kind) {\n var str = number.toString(Operand.getBase(kind));\n if (kind == 'hex') {\n str = Operand.toHexString(str);\n }\n\n return new Operand(str);\n }\n }, {\n key: 'toKindString',\n value: function toKindString(value, kind) {\n switch (kind) {\n case 'hex':\n var hexVal = Math.abs(value).toString(16);\n return value >= 0 ? '0x' + hexVal : '-0x' + hexVal;\n case 'bin':\n return (value >>> 0).toString(2);\n case 'dec':\n return value.toString(10);\n default:\n throw new Error(\"Unexpected kind: \" + kind);\n }\n }\n }, {\n key: 'toHexString',\n value: function toHexString(hex) {\n return hex.indexOf('-') == 0 ? '-0x' + hex.substr(1) : '0x' + hex;\n }\n }]);\n\n return Operand;\n}();\n\n// Expressions like ~1\n\n\nvar SingleOperandExpression = exports.SingleOperandExpression = function () {\n function SingleOperandExpression(expressionString, operand, sign) {\n _classCallCheck(this, SingleOperandExpression);\n\n this.expressionString = expressionString;\n this.operand1 = operand;\n this.sign = sign;\n }\n\n _createClass(SingleOperandExpression, [{\n key: 'apply',\n value: function apply(value) {\n var str = '';\n if (this.sign == '~') {\n str = '~' + this.operand1.value;\n } else {\n str = value + this.sign + this.operand1.value;\n }\n\n return Operand.create(eval(str), this.operand1.kind);\n }\n }, {\n key: 'isShiftExpression',\n value: function isShiftExpression() {\n return this.sign.indexOf('<') >= 0 || this.sign.indexOf('>') >= 0;\n }\n }, {\n key: 'toString',\n value: function toString() {\n return this.sign + this.operand1.toString();\n }\n }]);\n\n return SingleOperandExpression;\n}();\n\n// Expression like 1|2 or 4^5\n\n\nvar TwoOperandExpression = exports.TwoOperandExpression = function TwoOperandExpression(expressionString, operand1, operand2, sign) {\n _classCallCheck(this, TwoOperandExpression);\n\n this.expressionString = expressionString;\n this.operand1 = operand1;\n this.operand2 = operand2;\n this.sign = sign;\n};\n\nvar MultipleOperandsExpression = exports.MultipleOperandsExpression = function MultipleOperandsExpression(expressionString, expressions) {\n _classCallCheck(this, MultipleOperandsExpression);\n\n this.expressionString = expressionString;\n this.expressions = expressions;\n};\n\nvar ListOfNumbersExpression = exports.ListOfNumbersExpression = function () {\n function ListOfNumbersExpression(expressionString, numbers) {\n _classCallCheck(this, ListOfNumbersExpression);\n\n this.expressionString = expressionString;\n this.numbers = numbers;\n this.maxBitsLegnth = numbers.map(function (n) {\n return n.lengthInBits;\n }).reduce(function (n, c) {\n return n >= c ? n : c;\n }, 0);\n }\n\n _createClass(ListOfNumbersExpression, [{\n key: 'toString',\n value: function toString() {\n return this.numbers.map(function (n) {\n return n.value.toString();\n }).join(' ');\n }\n }]);\n\n return ListOfNumbersExpression;\n}();\n\nvar Expression = exports.Expression = function () {\n function Expression() {\n _classCallCheck(this, Expression);\n }\n\n _createClass(Expression, [{\n key: 'toString',\n value: function toString() {\n return this.expressionString ? \"Expression: \" + this.expressionString : this.toString();\n }\n }]);\n\n return Expression;\n}();\n\nvar parser = exports.parser = expression;\n\nvar Parser = exports.Parser = function () {\n function Parser(input, pos) {\n _classCallCheck(this, Parser);\n\n this.input = input;\n this.pos = pos || 0;\n this.buffer = [];\n }\n\n _createClass(Parser, [{\n key: 'parse',\n value: function parse() {\n console.log(this.input.length);\n while (this.pos < this.input.length) {\n this.buffer.push(this.input[this.pos]);\n this.pos++;\n }\n console.log('exit');\n }\n }]);\n\n return Parser;\n}();\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n})(undefined, function () {\n \"use strict\";\n\n var noop = function noop() {};\n var undefinedType = \"undefined\";\n\n function realMethod(methodName) {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === undefinedType) {\n return false; // We can't build a real method without a console to log to\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function () {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // these private functions always need `this` to be set properly\n\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = i < level ? noop : this.methodFactory(methodName, level, loggerName);\n }\n }\n\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n var logMethods = [\"trace\", \"debug\", \"info\", \"warn\", \"error\"];\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie = encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n if ((typeof storedLevel === 'undefined' ? 'undefined' : _typeof(storedLevel)) === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(encodeURIComponent(storageKey) + \"=\");\n if (location) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n /*\n *\n * Public API\n *\n */\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5 };\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) {\n // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function (persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function (persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Package-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== undefinedType ? window.log : undefined;\n defaultLogger.noConflict = function () {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== undefinedType && window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n return defaultLogger;\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _is = __webpack_require__(195);\n\nvar _is2 = _interopRequireDefault(_is);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar handlers = [];\n\nvar config = {\n errorHandler: function errorHandler(input, err) {\n return logError(err);\n }\n};\n\nvar cmd = {\n debugMode: false,\n execute: function execute(rawInput) {\n var input = rawInput.trim().toLowerCase();\n var handler = findHandler(input);\n\n if (handler != null) {\n if (this.debugMode) {\n invokeHandler(input, handler);\n } else {\n try {\n invokeHandler(input, handler);\n } catch (e) {\n config.errorHandler(input, e);\n }\n }\n } else {\n logError(input, new Error(\"Unsupported expression: \" + input.trim()));\n }\n },\n commands: function commands(catalog) {\n for (var key in catalog) {\n if (catalog.hasOwnProperty(key)) {\n this.command(key, catalog[key]);\n }\n }\n },\n command: function command(cmd, handler) {\n var h = createHandler(cmd, handler);\n if (h == null) {\n console.warn('unexpected set of arguments: ', Array.prototype.splice.call(arguments));\n return;\n }\n\n if (!_is2.default.aFunction(h.canHandle)) {\n console.warn('handler is missing \"canHandle\" function. registration denied.');\n return;\n }\n\n if (!_is2.default.aFunction(h.handle)) {\n console.warn('handler is missing \"handle\" function. registration denied.');\n return;\n }\n\n handlers.push(h);\n },\n clear: function clear() {\n console.log('clear');\n },\n onError: function onError(handler) {\n config.errorHandler = handler;\n }\n};\n\nfunction logError(err) {\n console.error(err);\n}\n\nfunction invokeHandler(input, handler) {\n var cmdResult = handler.handle({ input: input });\n if (cmdResult != null) {\n console.log(cmdResult);\n }\n}\n\nfunction createHandler(cmd, handler) {\n if (_is2.default.plainObject(cmd)) {\n return cmd;\n }\n\n if (_is2.default.string(cmd)) {\n return { canHandle: function canHandle(input) {\n return input === cmd;\n }, handle: handler };\n }\n\n return null;\n}\n\nfunction findHandler(input) {\n var i = 0;\n for (i; i < handlers.length; i++) {\n if (handlers[i].canHandle(input)) {\n return handlers[i];\n }\n }\n};\n\nexports.default = cmd;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _cmd = __webpack_require__(51);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar InputBox = function (_React$Component) {\n _inherits(InputBox, _React$Component);\n\n function InputBox() {\n _classCallCheck(this, InputBox);\n\n var _this = _possibleConstructorReturn(this, (InputBox.__proto__ || Object.getPrototypeOf(InputBox)).call(this));\n\n _this.history = [];\n _this.historyIndex = -1;\n return _this;\n }\n\n _createClass(InputBox, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.nameInput.focus();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('input', { id: 'in', type: 'text',\n ref: function ref(input) {\n _this2.nameInput = input;\n },\n onKeyUp: function onKeyUp(e) {\n return _this2.onKeyUp(e);\n },\n onKeyDown: function onKeyDown(e) {\n return _this2.onKeyDown(e);\n },\n className: 'expressionInput mono',\n placeholder: 'type expression like \\'1>>2\\' or \\'help\\' ' });\n }\n }, {\n key: 'onKeyUp',\n value: function onKeyUp(e) {\n var input = e.target;\n if (e.keyCode != 13 || input.value.trim().length == 0) {\n return;\n }\n\n var value = input.value;\n this.history.unshift(value);\n this.historyIndex = -1;\n\n input.value = '';\n _cmd2.default.execute(value);\n console.log(this.history);\n }\n }, {\n key: 'onKeyDown',\n value: function onKeyDown(args) {\n\n if (args.keyCode == 38) {\n var newIndex = this.historyIndex + 1;\n\n if (this.history.length > newIndex) {\n // up\n args.target.value = this.history[newIndex];\n this.historyIndex = newIndex;\n }\n\n args.preventDefault();\n return;\n }\n\n if (args.keyCode == 40) {\n if (this.historyIndex > 0) {\n // down\n args.target.value = this.history[--this.historyIndex];\n }\n\n args.preventDefault();\n }\n }\n }]);\n\n return InputBox;\n}(_react2.default.Component);\n\nexports.default = InputBox;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, 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 * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(7);\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 listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\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 capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (false) {\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 registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\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/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\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\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\n\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\n\nvar factory = __webpack_require__(109);\nmodule.exports = function (isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: 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 gridRow: true,\n gridColumn: 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 floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: 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/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar PooledClass = __webpack_require__(12);\n\nvar invariant = __webpack_require__(0);\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 */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\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\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\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\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? false ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(14);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstrumentation = __webpack_require__(8);\n\nvar quoteAttributeValueForBrowser = __webpack_require__(172);\nvar warning = __webpack_require__(1);\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\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 false ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;\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\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 createMarkupForID(id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function setAttributeForID(node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n createMarkupForRoot: function createMarkupForRoot() {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function setAttributeForRoot(node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\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 createMarkupForProperty(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 }\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 createMarkupForCustomAttribute(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 setValueForProperty(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 return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\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 }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (false) {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n setValueForAttribute: function setValueForAttribute(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 if (false) {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function deleteValueForAttribute(node, name) {\n node.removeAttribute(name);\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\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 deleteValueForProperty(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.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar LinkedValueUtils = __webpack_require__(36);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\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, Boolean(props.multiple), 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 if (props.valueLink !== undefined && !didWarnValueLink) {\n false ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n false ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n false ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\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 = ReactDOMComponentTree.getNodeFromInstance(inst).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> host 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 getHostProps: function getHostProps(inst, props) {\n return _assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\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 listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n false ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function getSelectValueContext(inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\n },\n\n postUpdateWrapper: function postUpdateWrapper(inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // this 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 if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function injectEmptyComponentFactory(factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function create(instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\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 injectGenericComponentClass(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 injectTextComponentClass(componentClass) {\n textComponentClass = componentClass;\n }\n};\n\n/**\n * Get a host 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 ? false ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\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 ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMSelection = __webpack_require__(132);\n\nvar containsNode = __webpack_require__(98);\nvar focusNode = __webpack_require__(54);\nvar getActiveElement = __webpack_require__(55);\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 hasSelectionCapabilities(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 getSelectionInformation() {\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 restoreSelection(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 getSelection(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 setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (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/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMLazyTree = __webpack_require__(13);\nvar DOMProperty = __webpack_require__(14);\nvar React = __webpack_require__(16);\nvar ReactBrowserEventEmitter = __webpack_require__(25);\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMContainerInfo = __webpack_require__(126);\nvar ReactDOMFeatureFlags = __webpack_require__(128);\nvar ReactFeatureFlags = __webpack_require__(64);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(8);\nvar ReactMarkupChecksum = __webpack_require__(142);\nvar ReactReconciler = __webpack_require__(15);\nvar ReactUpdateQueue = __webpack_require__(39);\nvar ReactUpdates = __webpack_require__(9);\n\nvar emptyObject = __webpack_require__(20);\nvar instantiateReactComponent = __webpack_require__(74);\nvar invariant = __webpack_require__(0);\nvar setInnerHTML = __webpack_require__(29);\nvar shouldUpdateReactComponent = __webpack_require__(45);\nvar warning = __webpack_require__(1);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\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\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.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\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(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, 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, safely) {\n if (false) {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (false) {\n ReactInstrumentation.debugTool.onEndFlush();\n }\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(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : 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 topLevelRootCounter = 1;\nvar TopLevelWrapper = function TopLevelWrapper() {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (false) {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\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 /**\n * Used by devtools. The keys are not important.\n */\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 scrollMonitor(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 _updateRootComponent(prevComponent, nextElement, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\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 _renderNewRootComponent(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 false ? 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') : void 0;\n\n !isValidContainer(container) ? false ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\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, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\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 renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? false ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function _renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? false ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\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.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\n\n false ? 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.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\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 (false) {\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.') : void 0;\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.') : void 0;\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, nextContext)._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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\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 render(nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\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 unmountComponentAtNode(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 false ? 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') : void 0;\n\n !isValidContainer(container) ? false ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\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 isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\n\n if (false) {\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.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function _mountImageIntoNode(markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? false ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, 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 (false) {\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) ? false ? 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) : _prodInvariant('42', difference) : void 0;\n\n if (false) {\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) : void 0;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? false ? 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.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (false) {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar React = __webpack_require__(16);\n\nvar invariant = __webpack_require__(0);\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function getType(node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n true ? false ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function refreshScrollValues(scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\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) ? false ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;\n\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 if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\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/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 */\n\nfunction forEachAccumulated(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/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactNodeTypes = __webpack_require__(68);\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\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/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar ReactCompositeComponent = __webpack_require__(123);\nvar ReactEmptyComponent = __webpack_require__(63);\nvar ReactHostComponent = __webpack_require__(65);\n\nvar getNextDebugID = __webpack_require__(184);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function ReactCompositeComponentWrapper(element) {\n this.construct(element);\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 * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (false) {\n if (type === undefined || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + 'it\\'s defined in.';\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n true ? false ? invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type === 'undefined' ? 'undefined' : _typeof(type), info) : _prodInvariant('130', type == null ? type : typeof type === 'undefined' ? 'undefined' : _typeof(type), info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.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\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n true ? false ? invariant(false, 'Encountered invalid React node of type %s', typeof node === 'undefined' ? 'undefined' : _typeof(node)) : _prodInvariant('131', typeof node === 'undefined' ? 'undefined' : _typeof(node)) : void 0;\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\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 (false) {\n instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\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 (false) {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\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\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\nvar escapeTextContentForBrowser = __webpack_require__(28);\nvar setInnerHTML = __webpack_require__(29);\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 setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function setTextContent(node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar REACT_ELEMENT_TYPE = __webpack_require__(138);\n\nvar getIteratorFn = __webpack_require__(169);\nvar invariant = __webpack_require__(0);\nvar KeyEscapeUtils = __webpack_require__(35);\nvar warning = __webpack_require__(1);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && (typeof component === 'undefined' ? 'undefined' : _typeof(component)) === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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 === 'undefined' ? 'undefined' : _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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 (false) {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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 (false) {\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 true ? false ? 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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(18);\n\nvar ReactCurrentOwner = __webpack_require__(11);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty)\n // Strip regex characters so we can use it for regex\n .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n // Remove hasOwnProperty from the template to make it generic\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function setItem(id, item) {\n itemMap.set(id, item);\n };\n getItem = function getItem(id) {\n return itemMap.get(id);\n };\n removeItem = function removeItem(id) {\n itemMap['delete'](id);\n };\n getItemIDs = function getItemIDs() {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function addRoot(id) {\n rootIDSet.add(id);\n };\n removeRoot = function removeRoot(id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function getRootIDs() {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function getKeyFromID(id) {\n return '.' + id;\n };\n var getIDFromKey = function getIDFromKey(key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function setItem(id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function getItem(id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function removeItem(id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function getItemIDs() {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function addRoot(id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function removeRoot(id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function getRootIDs() {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction _getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n false ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function onSetChildren(id, nextChildIDs) {\n var item = getItem(id);\n !item ? false ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? false ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || _typeof(nextChild.element) !== 'object' || nextChild.element == null) ? false ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? false ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? false ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function onBeforeMountComponent(id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function onBeforeUpdateComponent(id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function onMountComponent(id) {\n var item = getItem(id);\n !item ? false ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function onUpdateComponent(id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function onUnmountComponent(id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function purgeUnmountedComponents() {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function isMounted(id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function getCurrentStackAddendum(topElement) {\n var info = '';\n if (topElement) {\n var name = _getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function getStackAddendumByID(id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function getChildIDs(id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function getDisplayName(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return _getDisplayName(element);\n },\n getElement: function getElement(id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function getOwnerID(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function getParentID(id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function getSource(id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function getText(id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function getUpdateCount(id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar canDefineProperty = false;\nif (false) {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function get() {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BinaryStringView = function (_React$Component) {\n _inherits(BinaryStringView, _React$Component);\n\n function BinaryStringView() {\n _classCallCheck(this, BinaryStringView);\n\n return _possibleConstructorReturn(this, (BinaryStringView.__proto__ || Object.getPrototypeOf(BinaryStringView)).apply(this, arguments));\n }\n\n _createClass(BinaryStringView, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'span',\n null,\n this.getChildren()\n );\n }\n }, {\n key: 'onBitClick',\n value: function onBitClick(index, e) {\n if (!this.props.allowFlipBits) {\n return;\n }\n\n if (this.props.onFlipBit) {\n this.props.onFlipBit(index);\n }\n }\n }, {\n key: 'getChildren',\n value: function getChildren() {\n var bits = this.createBits(this.props.binaryString.split(''));\n\n if (this.props.emphasizeBytes) {\n return this.splitIntoBytes(bits);\n }\n\n return bits;\n }\n }, {\n key: 'createBits',\n value: function createBits(bitChars) {\n var _this2 = this;\n\n var allowFlipBits = this.props.allowFlipBits || false;\n var css = allowFlipBits ? ' flipable' : '';\n var classNames = { '0': 'zero' + css, '1': 'one ' + css };\n\n return bitChars.map(function (c, i) {\n return _react2.default.createElement(\n 'span',\n { className: classNames[c], key: i, onClick: function onClick(e) {\n return _this2.onBitClick(i, e);\n } },\n c\n );\n });\n }\n }, {\n key: 'splitIntoBytes',\n value: function splitIntoBytes(bits) {\n var bytes = [];\n\n var key = 0;\n while (bits.length > 0) {\n bytes.push(_react2.default.createElement(\n 'span',\n { key: key++, className: 'byte' },\n bits.splice(0, 8)\n ));\n }\n\n return bytes;\n }\n }]);\n\n return BinaryStringView;\n}(_react2.default.Component);\n\nexports.default = BinaryStringView;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar BitwiseExpressionViewModel = function () {\n function BitwiseExpressionViewModel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$emphasizeBytes = _ref.emphasizeBytes,\n emphasizeBytes = _ref$emphasizeBytes === undefined ? false : _ref$emphasizeBytes;\n\n _classCallCheck(this, BitwiseExpressionViewModel);\n\n this.emphasizeBytes = emphasizeBytes;\n this.items = [];\n this.maxNumberOfBits = 0;\n }\n\n _createClass(BitwiseExpressionViewModel, [{\n key: 'addOperand',\n value: function addOperand(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign: '', label: operand.toString(), bin: operand.bin, other: operand.other, css: '' });\n }\n }, {\n key: 'addExpression',\n value: function addExpression(expression) {\n this.maxNumberOfBits = Math.max(expression.operand1.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign: expression.sign, label: expression.operand1.toString(), bin: expression.operand1.bin, other: expression.operand1.other, css: '' });\n }\n }, {\n key: 'addShiftExpressionResult',\n value: function addShiftExpressionResult(expression, resultOperand) {\n this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: expression.sign + expression.operand1.input,\n label: resultOperand.toString(),\n bin: resultOperand.bin,\n other: resultOperand.other,\n css: 'expression-result' });\n }\n }, {\n key: 'addExpressionResult',\n value: function addExpressionResult(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign: '=', label: operand.toString(), bin: operand.bin, other: operand.other, css: 'expression-result' });\n }\n\n // TODO: move this method elsewhere. It is also used in LisOfNumbersExpressionView.js\n\n }], [{\n key: 'buildMultiple',\n value: function buildMultiple(expr, config) {\n\n var op = expr.expressions[0],\n i = 1,\n l = expr.expressions.length,\n ex,\n m = new BitwiseExpressionViewModel(config);\n\n m.addOperand(op);\n\n for (; i < l; i++) {\n ex = expr.expressions[i];\n op = ex.apply(op.value);\n\n if (ex.isShiftExpression()) {\n m.addShiftExpressionResult(ex, op);\n } else {\n m.addExpression(ex);\n m.addExpressionResult(op);\n }\n }\n\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n }\n }, {\n key: 'buildNot',\n value: function buildNot(expression, config) {\n\n var m = new BitwiseExpressionViewModel(config);\n m.addExpression(expression);\n m.addExpressionResult(expression.apply());\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n }\n }]);\n\n return BitwiseExpressionViewModel;\n}();\n\nBitwiseExpressionViewModel.getNumberOfBits = function (bits, emphasizeBytes) {\n if (emphasizeBytes && bits % 8 != 0) {\n if (bits < 8) {\n return 8;\n }\n\n var n = bits - bits % 8;\n return n + 8;\n }\n\n return bits;\n};\n\nexports.default = BitwiseExpressionViewModel;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n formatString: function formatString(num, kind) {\n return num.toString(getBase(kind || \"bin\"));\n },\n padLeft: function padLeft(str, length, symbol) {\n var sb = Array.prototype.slice.call(str),\n symbol = symbol || \"0\";\n\n if (length == null) {\n return str;\n }\n\n while (length > sb.length) {\n sb.unshift(symbol);\n }\n\n return sb.join('');\n }\n};\n\n\nfunction getBase(kind) {\n switch (kind) {\n case 'bin':\n return 2;\n case 'hex':\n return 16;\n case 'dec':\n return 10;\n }\n}\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AboutResult = function (_CommandResult) {\n _inherits(AboutResult, _CommandResult);\n\n function AboutResult(input) {\n _classCallCheck(this, AboutResult);\n\n return _possibleConstructorReturn(this, (AboutResult.__proto__ || Object.getPrototypeOf(AboutResult)).call(this, input));\n }\n\n return AboutResult;\n}(_CommandResult3.default);\n\nexports.default = AboutResult;\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ErrorResult = function (_CommandResult) {\n _inherits(ErrorResult, _CommandResult);\n\n function ErrorResult(input, error) {\n _classCallCheck(this, ErrorResult);\n\n var _this = _possibleConstructorReturn(this, (ErrorResult.__proto__ || Object.getPrototypeOf(ErrorResult)).call(this, input));\n\n _this.error = error;\n return _this;\n }\n\n return ErrorResult;\n}(_CommandResult3.default);\n\nexports.default = ErrorResult;\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ExpressionResult = function (_CommandResult) {\n _inherits(ExpressionResult, _CommandResult);\n\n function ExpressionResult(input, expression) {\n _classCallCheck(this, ExpressionResult);\n\n var _this = _possibleConstructorReturn(this, (ExpressionResult.__proto__ || Object.getPrototypeOf(ExpressionResult)).call(this, input));\n\n _this.expression = expression;\n return _this;\n }\n\n return ExpressionResult;\n}(_CommandResult3.default);\n\nexports.default = ExpressionResult;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HelpResult = function (_CommandResult) {\n _inherits(HelpResult, _CommandResult);\n\n function HelpResult(input) {\n _classCallCheck(this, HelpResult);\n\n return _possibleConstructorReturn(this, (HelpResult.__proto__ || Object.getPrototypeOf(HelpResult)).call(this, input));\n }\n\n return HelpResult;\n}(_CommandResult3.default);\n\nexports.default = HelpResult;\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar UnknownCommandResult = function (_CommandResult) {\n _inherits(UnknownCommandResult, _CommandResult);\n\n function UnknownCommandResult(input) {\n _classCallCheck(this, UnknownCommandResult);\n\n var _this = _possibleConstructorReturn(this, (UnknownCommandResult.__proto__ || Object.getPrototypeOf(UnknownCommandResult)).call(this, input));\n\n _this.message = 'Sorry, i don\\'\\'t know what ' + input + ' is :(';\n return _this;\n }\n\n return UnknownCommandResult;\n}(_CommandResult3.default);\n\nexports.default = UnknownCommandResult;\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _CommandResult2 = __webpack_require__(19);\n\nvar _CommandResult3 = _interopRequireDefault(_CommandResult2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar WhatsnewResult = function (_CommandResult) {\n _inherits(WhatsnewResult, _CommandResult);\n\n function WhatsnewResult(input) {\n _classCallCheck(this, WhatsnewResult);\n\n return _possibleConstructorReturn(this, (WhatsnewResult.__proto__ || Object.getPrototypeOf(WhatsnewResult)).call(this, input));\n }\n\n return WhatsnewResult;\n}(_CommandResult3.default);\n\nexports.default = WhatsnewResult;\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(124);\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AppState = function () {\n function AppState(persistData) {\n _classCallCheck(this, AppState);\n\n this.emphasizeBytes = persistData.emphasizeBytes || true;\n this.commandResults = [];\n this.handlers = [];\n this.uiTheme = persistData.uiTheme || 'dark';\n this.debugMode = false;\n\n this.version = 1;\n this.persistedVersion = persistData.version || 0.9;\n this.wasOldVersion = this.version > this.persistedVersion;\n }\n\n _createClass(AppState, [{\n key: 'addCommandResult',\n value: function addCommandResult(result) {\n this.commandResults.unshift(result);\n this.triggerChanged();\n }\n }, {\n key: 'clearCommmandResults',\n value: function clearCommmandResults() {\n this.commandResults = [];\n this.triggerChanged();\n }\n }, {\n key: 'toggleEmphasizeBytes',\n value: function toggleEmphasizeBytes() {\n this.emphasizeBytes = !this.emphasizeBytes;\n this.triggerChanged();\n }\n }, {\n key: 'onChange',\n value: function onChange(handler) {\n this.handlers.push(handler);\n }\n }, {\n key: 'triggerChanged',\n value: function triggerChanged() {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var h = _step.value;\n\n h();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'setUiTheme',\n value: function setUiTheme(theme) {\n this.uiTheme = theme;\n this.triggerChanged();\n }\n }, {\n key: 'getPersistData',\n value: function getPersistData() {\n return {\n emphasizeBytes: this.emphasizeBytes,\n uiTheme: this.uiTheme,\n version: this.version\n };\n }\n }]);\n\n return AppState;\n}();\n\nexports.default = AppState;\n;\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar storeKey = 'AppState';\n\nexports.default = {\n getPersistedData: function getPersistedData() {\n var json = window.localStorage.getItem(storeKey);\n if (!json) {\n return {};\n }\n\n try {\n return JSON.parse(json);\n } catch (ex) {\n console.error('Failed to parse AppState json. Json Value: \\n' + json, ex);\n return {};\n }\n },\n watch: function watch(appState) {\n var _this = this;\n\n appState.onChange(function () {\n return _this.persistData(appState);\n });\n },\n persistData: function persistData(appState) {\n localStorage.setItem(storeKey, JSON.stringify(appState.getPersistData()));\n }\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _HelpResult = __webpack_require__(87);\n\nvar _HelpResult2 = _interopRequireDefault(_HelpResult);\n\nvar _AboutResult = __webpack_require__(84);\n\nvar _AboutResult2 = _interopRequireDefault(_AboutResult);\n\nvar _UnknownCommandResult = __webpack_require__(88);\n\nvar _UnknownCommandResult2 = _interopRequireDefault(_UnknownCommandResult);\n\nvar _ExpressionResult = __webpack_require__(86);\n\nvar _ExpressionResult2 = _interopRequireDefault(_ExpressionResult);\n\nvar _ErrorResult = __webpack_require__(85);\n\nvar _ErrorResult2 = _interopRequireDefault(_ErrorResult);\n\nvar _WhatsnewResult = __webpack_require__(89);\n\nvar _WhatsnewResult2 = _interopRequireDefault(_WhatsnewResult);\n\nvar _expression = __webpack_require__(49);\n\nvar expression = _interopRequireWildcard(_expression);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar cmdConfig = {};\n\nexports.default = {\n initialize: function initialize(cmd, appState) {\n\n cmd.command({\n canHandle: function canHandle(input) {\n return expression.parser.canParse(input);\n },\n handle: function handle(c) {\n var expr = expression.parser.parse(c.input);\n appState.addCommandResult(new _ExpressionResult2.default(c.input, expr));\n }\n });\n\n cmd.commands({\n 'help': function help(c) {\n appState.addCommandResult(new _HelpResult2.default(c.input));\n },\n 'clear': function clear() {\n appState.clearCommmandResults();\n },\n 'em': function em() {\n appState.toggleEmphasizeBytes();\n },\n 'dark': function dark() {\n appState.setUiTheme('dark');\n },\n 'light': function light() {\n appState.setUiTheme('light');\n },\n 'about': function about(c) {\n appState.addCommandResult(new _AboutResult2.default(c.input));\n },\n 'whatsnew': function whatsnew(c) {\n appState.addCommandResult(new _WhatsnewResult2.default(c.input));\n },\n '-notrack': function notrack() {}\n });\n\n // Last command handler reports that input is unknown\n cmd.command({\n canHandle: function canHandle() {\n return true;\n },\n handle: function handle(c) {\n return appState.addCommandResult(new _UnknownCommandResult2.default(c.input));\n }\n });\n\n cmd.onError(function (input, err) {\n return appState.addCommandResult(new _ErrorResult2.default(input, err));\n });\n }\n};\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _InputBox = __webpack_require__(52);\n\nvar _InputBox2 = _interopRequireDefault(_InputBox);\n\nvar _DisplayResultView = __webpack_require__(187);\n\nvar _DisplayResultView2 = _interopRequireDefault(_DisplayResultView);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AppRoot = function (_React$Component) {\n _inherits(AppRoot, _React$Component);\n\n function AppRoot() {\n _classCallCheck(this, AppRoot);\n\n return _possibleConstructorReturn(this, (AppRoot.__proto__ || Object.getPrototypeOf(AppRoot)).apply(this, arguments));\n }\n\n _createClass(AppRoot, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n this.refresh();\n this.props.appState.onChange(function () {\n return _this2.refresh();\n });\n }\n }, {\n key: 'refresh',\n value: function refresh() {\n this.setState(this.props.appState);\n }\n }, {\n key: 'getIndicator',\n value: function getIndicator(value) {\n return value === true ? 'on' : 'off';\n }\n }, {\n key: 'getResultViews',\n value: function getResultViews() {\n var _this3 = this;\n\n var results = this.state.commandResults.map(function (r, i) {\n return _react2.default.createElement(_DisplayResultView2.default, { key: i, content: r, input: r.input, inputHash: r.inputHash, appState: _this3.props.appState });\n });\n return results;\n }\n }, {\n key: 'toggleEmphasizeBytes',\n value: function toggleEmphasizeBytes() {\n console.log(this.props.appState);\n this.props.appState.toggleEmphasizeBytes();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n return _react2.default.createElement(\n 'div',\n { className: 'app-root ' + this.state.uiTheme },\n _react2.default.createElement(\n 'div',\n { className: 'header' },\n _react2.default.createElement(\n 'h1',\n null,\n 'Bitwise',\n _react2.default.createElement(\n 'span',\n { style: { color: \"#c5c5c5\" } },\n 'Cmd'\n )\n ),\n _react2.default.createElement(\n 'ul',\n { className: 'top-links' },\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'https://github.com/BorisLevitskiy/BitwiseCmd' },\n _react2.default.createElement(\n 'i',\n { className: 'icon github' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Project on GitHub'\n )\n )\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'https://twitter.com/BitwiseCmd' },\n _react2.default.createElement(\n 'i',\n { className: 'icon twitter' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Twitter'\n )\n )\n ),\n _react2.default.createElement(\n 'li',\n null,\n _react2.default.createElement(\n 'a',\n { href: 'mailto:bitwisecmd@gmail.com?subject=Feedback' },\n _react2.default.createElement(\n 'i',\n { className: 'icon feedback' },\n '\\xA0'\n ),\n _react2.default.createElement(\n 'span',\n { className: 'link-text' },\n 'Send Feedback'\n )\n )\n )\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'expressionInput-container' },\n _react2.default.createElement(_InputBox2.default, null),\n _react2.default.createElement(\n 'span',\n { className: 'configPnl' },\n _react2.default.createElement(\n 'span',\n { id: 'emphasizeBytes', 'data-cmd': 'em', className: \"indicator \" + this.getIndicator(this.state.emphasizeBytes), title: 'Toggle Emphasize Bytes', onClick: function onClick(e) {\n return _this4.toggleEmphasizeBytes();\n } },\n '[em]'\n )\n )\n ),\n _react2.default.createElement(\n 'div',\n { id: 'output' },\n this.getResultViews()\n )\n );\n }\n }]);\n\n return AppRoot;\n}(_react2.default.Component);\n\nexports.default = AppRoot;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n encodeHash: function encodeHash(string) {\n return encodeURI(string.trim().replace(/\\s/g, ','));\n },\n decodeHash: function decodeHash(hashValue) {\n return decodeURI(hashValue).replace(/^\\#/, '').replace(/,/g, ' ');\n },\n getArgs: function getArgs(hashValue) {\n\n var decodedHash = this.decodeHash(hashValue),\n args = { commands: [] };\n\n splitHashList(decodedHash).forEach(function (value) {\n // Support for -debur or -notrack properties\n if (/^\\-[a-zA-Z]+$/.test(value)) {\n args[value.substr(1)] = true;\n return;\n }\n\n args.commands.push(value);\n });\n\n return Object.freeze(args);\n }\n};\n\n\nfunction splitHashList(str) {\n var values = [];\n\n if (str.indexOf('||')) {\n str.split('||').forEach(function (v) {\n if (v.length > 0) {\n values.push(v);\n }\n });\n } else {\n values.push(str);\n }\n\n return values;\n}\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(96);\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/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(106);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\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 return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar invariant = __webpack_require__(0);\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 browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' || typeof obj === 'function')) ? false ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;\n\n !(typeof length === 'number') ? false ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? false ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? false ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\n\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\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 === 'undefined' ? 'undefined' : _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/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar createArrayFromMixed = __webpack_require__(99);\nvar getMarkupWrap = __webpack_require__(101);\nvar invariant = __webpack_require__(0);\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 ? false ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;\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 ? false ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar invariant = __webpack_require__(0);\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 ? false ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;\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/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\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 */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n\n\nvar hyphenate = __webpack_require__(103);\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/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\nvar isNode = __webpack_require__(105);\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/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @typechecks static-only\n */\n\n\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n */\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/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nif (false) {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (false) {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\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 invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n 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', location, typeSpecName, typeof error === 'undefined' ? 'undefined' : _typeof(error));\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 stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar emptyFunction = __webpack_require__(7);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar ReactPropTypesSecret = __webpack_require__(110);\nvar checkPropTypes = __webpack_require__(108);\n\nmodule.exports = function (isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var 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 */\n function 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\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\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var 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 symbol: createPrimitiveTypeChecker('symbol'),\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\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (false) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n } else if (false) {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (!manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3) {\n warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName);\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\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\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\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 PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + 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 + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n false ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\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 (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n false ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(false, 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i);\n return emptyFunction.thatReturnsNull;\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, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue === 'undefined' ? 'undefined' : _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 || 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 function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue === 'undefined' ? 'undefined' : _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 if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\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 a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar focusNode = __webpack_require__(54);\n\nvar AutoFocusUtils = {\n focusDOMComponent: function focusDOMComponent() {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar FallbackCompositionState = __webpack_require__(119);\nvar SyntheticCompositionEvent = __webpack_require__(156);\nvar SyntheticInputEvent = __webpack_require__(159);\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 === 'undefined' ? 'undefined' : _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\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', '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 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case '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 === '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 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case '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 'topKeyPress':\n case 'topMouseDown':\n case '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 === 'undefined' ? 'undefined' : _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 * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, 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(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, 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 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case '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 '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 composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && 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 '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 '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 '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 * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, 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, targetInst, 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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar CSSProperty = __webpack_require__(58);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactInstrumentation = __webpack_require__(8);\n\nvar camelizeStyleName = __webpack_require__(97);\nvar dangerousStyleValue = __webpack_require__(165);\nvar hyphenateStyleName = __webpack_require__(104);\nvar memoizeStringOnly = __webpack_require__(107);\nvar warning = __webpack_require__(1);\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 (false) {\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 var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function warnHyphenatedStyleName(name, owner) {\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?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function warnBadVendoredStyleName(name, owner) {\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?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function warnStyleValueWithSemicolon(name, value, owner) {\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.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function warnStyleValueIsNaN(name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function checkRenderMessage(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 * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function warnValidStyle(name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\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 * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function createMarkupForStyles(styles, component) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (false) {\n warnValidStyle(styleName, styleValue, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\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 * @param {ReactDOMComponent} component\n */\n setValueForStyles: function setValueForStyles(node, styles, component) {\n if (false) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (false) {\n warnValidStyle(styleName, styles[styleName], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\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\nmodule.exports = CSSPropertyOperations;\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getEventTarget = __webpack_require__(43);\nvar isEventSupported = __webpack_require__(44);\nvar isTextInputElement = __webpack_require__(75);\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = 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') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === '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(target, targetInst);\n } else if (topLevelType === '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 // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function get() {\n return activeElementValueProp.get.call(this);\n },\n set: function set(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 IE <=11) 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) 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\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) 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 getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === '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 targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === '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-11, 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(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === '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 activeElementInst;\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 getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return targetInst;\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar DOMLazyTree = __webpack_require__(13);\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar createNodesFromMarkup = __webpack_require__(100);\nvar emptyFunction = __webpack_require__(7);\nvar invariant = __webpack_require__(0);\n\nvar Danger = {\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 dangerouslyReplaceNodeWithMarkup(oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? false ? 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.') : _prodInvariant('56') : void 0;\n !markup ? false ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== 'HTML') ? false ? 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().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\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 */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(22);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar SyntheticMouseEvent = __webpack_require__(26);\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.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 if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\n\nvar getTextContentAccessor = __webpack_require__(73);\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\n_assign(FallbackCompositionState.prototype, {\n destructor: function destructor() {\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 getText() {\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 getData() {\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/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(14);\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\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 HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function value(node, _value) {\n if (_value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + _value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + _value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactReconciler = __webpack_require__(15);\n\nvar instantiateReactComponent = __webpack_require__(74);\nvar KeyEscapeUtils = __webpack_require__(35);\nvar shouldUpdateReactComponent = __webpack_require__(45);\nvar traverseAllChildren = __webpack_require__(77);\nvar warning = __webpack_require__(1);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"production\" === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(78);\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (false) {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\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 instantiateChildren(nestedChildNodes, transaction, context, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (false) {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\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 updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\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;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n 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 removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\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 prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\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 * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function unmountChildren(renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56)))\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(31);\nvar ReactDOMIDOperations = __webpack_require__(129);\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 replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar React = __webpack_require__(16);\nvar ReactComponentEnvironment = __webpack_require__(37);\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactErrorUtils = __webpack_require__(38);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(8);\nvar ReactNodeTypes = __webpack_require__(68);\nvar ReactReconciler = __webpack_require__(15);\n\nif (false) {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar shallowEqual = __webpack_require__(30);\nvar shouldUpdateReactComponent = __webpack_require__(45);\nvar warning = __webpack_require__(1);\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\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 ReactCompositeComponent = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function construct(element) {\n this._currentElement = element;\n this._rootNodeID = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (false) {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? false ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\n }\n\n if (false) {\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`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\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 = updateQueue;\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 (false) {\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 || inst.state, '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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? false ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (false) {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function _constructComponent(doConstruct, publicProps, publicContext, updateQueue) {\n if (false) {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function _constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (false) {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (false) {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (false) {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\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 var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (false) {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function getHostNode() {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent(safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\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 = 0;\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 _maskContext(context) {\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var 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 _processContext(context) {\n var maskedContext = this._maskContext(context);\n if (false) {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkContextTypes(Component.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function _processChildContext(currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext;\n\n if (inst.getChildContext) {\n if (false) {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\n if (childContext) {\n !(_typeof(Component.childContextTypes) === 'object') ? false ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (false) {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? false ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function _checkContextTypes(typeSpecs, values, location) {\n if (false) {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\n }\n },\n\n receiveComponent: function receiveComponent(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 performUpdateIfNecessary(transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\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 updateComponent(transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n !(inst != null) ? false ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\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 if (willReceive && inst.componentWillReceiveProps) {\n if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (false) {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\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 _processPendingState(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 _performComponentUpdate(nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var _this2 = this;\n\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 if (false) {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\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 if (false) {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\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 _updateRenderedComponent(transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n\n var debugID = 0;\n if (false) {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (false) {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function _replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function _renderValidatedComponentWithoutOwnerOrContext() {\n var inst = this._instance;\n var renderedElement;\n\n if (false) {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (false) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function _renderValidatedComponent() {\n var renderedElement;\n if (\"production\" !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? false ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\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 attachRef(ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? false ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;\n var publicComponentInstance = component.getPublicInstance();\n if (false) {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, '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()) : void 0;\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 detachRef(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 getName() {\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 getPublicInstance() {\n var inst = this._instance;\n if (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n\n\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDefaultInjection = __webpack_require__(137);\nvar ReactMount = __webpack_require__(67);\nvar ReactReconciler = __webpack_require__(15);\nvar ReactUpdates = __webpack_require__(9);\nvar ReactVersion = __webpack_require__(150);\n\nvar findDOMNode = __webpack_require__(166);\nvar getHostComponentFromComposite = __webpack_require__(72);\nvar renderSubtreeIntoContainer = __webpack_require__(173);\nvar warning = __webpack_require__(1);\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.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.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function getNodeFromInstance(inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\n });\n}\n\nif (false) {\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 // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\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\" />') : void 0;\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.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (false) {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar AutoFocusUtils = __webpack_require__(112);\nvar CSSPropertyOperations = __webpack_require__(114);\nvar DOMLazyTree = __webpack_require__(13);\nvar DOMNamespaces = __webpack_require__(32);\nvar DOMProperty = __webpack_require__(14);\nvar DOMPropertyOperations = __webpack_require__(60);\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginRegistry = __webpack_require__(33);\nvar ReactBrowserEventEmitter = __webpack_require__(25);\nvar ReactDOMComponentFlags = __webpack_require__(61);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMInput = __webpack_require__(130);\nvar ReactDOMOption = __webpack_require__(131);\nvar ReactDOMSelect = __webpack_require__(62);\nvar ReactDOMTextarea = __webpack_require__(134);\nvar ReactInstrumentation = __webpack_require__(8);\nvar ReactMultiChild = __webpack_require__(143);\nvar ReactServerRenderingTransaction = __webpack_require__(148);\n\nvar emptyFunction = __webpack_require__(7);\nvar escapeTextContentForBrowser = __webpack_require__(28);\nvar invariant = __webpack_require__(0);\nvar isEventSupported = __webpack_require__(44);\nvar shallowEqual = __webpack_require__(30);\nvar validateDOMNesting = __webpack_require__(46);\nvar warning = __webpack_require__(1);\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.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 = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\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\nfunction friendlyStringify(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _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 because 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 false ? 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)) : void 0;\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 (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? false ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? false ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;\n !(_typeof(props.dangerouslySetInnerHTML) === 'object' && HTML in props.dangerouslySetInnerHTML) ? false ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;\n }\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !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.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\n }\n !(props.style == null || _typeof(props.style) === 'object') ? false ? 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)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\n if (false) {\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') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (false) {\n setAndValidateContentChildDev = function setAndValidateContentChildDev(content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\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 ? false ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? false ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('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(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\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-case 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\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) ? false ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\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(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (false) {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (false) {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\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(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\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 _createOpenTagMarkupAndPutListeners(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, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (false) {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = _assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\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 if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\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 _createContentMarkup(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 if (false) {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\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 _createInitialChildren(transaction, props, context, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, 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 // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (false) {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, 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 receiveComponent(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 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 updateComponent(transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\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 {?DOMElement} node\n */\n _updateDOMProperties: function _updateDOMProperties(lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\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, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (false) {\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, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently 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 CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\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 _updateDOMChildren(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 if (false) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (false) {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (false) {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (false) {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function getHostNode() {\n return getNode(this);\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 unmountComponent(safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\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 '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 true ? false ? 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) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (false) {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function getPublicInstance() {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar validateDOMNesting = __webpack_require__(46);\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (false) {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar DOMLazyTree = __webpack_require__(13);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar ReactDOMEmptyComponent = function ReactDOMEmptyComponent(instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function receiveComponent() {},\n getHostNode: function getHostNode() {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function unmountComponent() {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMChildrenOperations = __webpack_require__(31);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\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 * @internal\n */\n dangerouslyProcessChildrenUpdates: function dangerouslyProcessChildrenUpdates(parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar DOMPropertyOperations = __webpack_require__(60);\nvar LinkedValueUtils = __webpack_require__(36);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host 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 getHostProps: function getHostProps(inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, 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 hostProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n\n if (false) {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n // eslint-disable-next-line\n if (value != valueAsNumber) {\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 node.value = '' + value;\n }\n // eslint-disable-next-line\n } else if (value != node.value) {\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 node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\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 = ReactDOMComponentTree.getNodeFromInstance(this);\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 radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? false ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\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/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar React = __webpack_require__(16);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMSelect = __webpack_require__(62);\n\nvar warning = __webpack_require__(1);\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n false ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function mountWrapper(inst, props, hostParent) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value 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 var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function getHostProps(inst, props) {\n var hostProps = _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 hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\nvar getNodeForCharacterOffset = __webpack_require__(170);\nvar getTextContentAccessor = __webpack_require__(73);\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 (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 programmatically 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 = 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/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar DOMChildrenOperations = __webpack_require__(31);\nvar DOMLazyTree = __webpack_require__(13);\nvar ReactDOMComponentTree = __webpack_require__(4);\n\nvar escapeTextContentForBrowser = __webpack_require__(28);\nvar invariant = __webpack_require__(0);\nvar validateDOMNesting = __webpack_require__(46);\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 between comment nodes so that they\n * can undergo 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 ReactDOMTextComponent(text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function mountComponent(transaction, hostParent, hostContainerInfo, context) {\n if (false) {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\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 receiveComponent(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 commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function getHostNode() {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? false ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function unmountComponent() {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2),\n _assign = __webpack_require__(3);\n\nvar LinkedValueUtils = __webpack_require__(36);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\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> host 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 getHostProps: function getHostProps(inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? false ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (false) {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\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 (false) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;\n }\n !(defaultValue == null) ? false ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? false ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\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 var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function postMountWrapper(inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\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/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? false ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? false ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? false ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? false ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\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 * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactUpdates = __webpack_require__(9);\nvar Transaction = __webpack_require__(27);\n\nvar emptyFunction = __webpack_require__(7);\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function close() {\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\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\n getTransactionWrappers: function getTransactionWrappers() {\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 batchedUpdates(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 return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ARIADOMPropertyConfig = __webpack_require__(111);\nvar BeforeInputEventPlugin = __webpack_require__(113);\nvar ChangeEventPlugin = __webpack_require__(115);\nvar DefaultEventPluginOrder = __webpack_require__(117);\nvar EnterLeaveEventPlugin = __webpack_require__(118);\nvar HTMLDOMPropertyConfig = __webpack_require__(120);\nvar ReactComponentBrowserEnvironment = __webpack_require__(122);\nvar ReactDOMComponent = __webpack_require__(125);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactDOMEmptyComponent = __webpack_require__(127);\nvar ReactDOMTreeTraversal = __webpack_require__(135);\nvar ReactDOMTextComponent = __webpack_require__(133);\nvar ReactDefaultBatchingStrategy = __webpack_require__(136);\nvar ReactEventListener = __webpack_require__(140);\nvar ReactInjection = __webpack_require__(141);\nvar ReactReconcileTransaction = __webpack_require__(146);\nvar SVGDOMPropertyConfig = __webpack_require__(151);\nvar SelectEventPlugin = __webpack_require__(152);\nvar SimpleEventPlugin = __webpack_require__(153);\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.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\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.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPluginHub = __webpack_require__(21);\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 handleTopLevel: function handleTopLevel(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar EventListener = __webpack_require__(53);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar PooledClass = __webpack_require__(12);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactUpdates = __webpack_require__(9);\n\nvar getEventTarget = __webpack_require__(43);\nvar getUnboundedScrollPosition = __webpack_require__(102);\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\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 while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\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}\n_assign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function destructor() {\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 var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\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 = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, 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 setHandleTopLevel(handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function setEnabled(enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function isEnabled() {\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} element 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 trapBubbledEvent(topLevelType, handlerBaseName, element) {\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} element 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 trapCapturedEvent(topLevelType, handlerBaseName, element) {\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function monitorScrollValue(refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function dispatchEvent(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/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar DOMProperty = __webpack_require__(14);\nvar EventPluginHub = __webpack_require__(21);\nvar EventPluginUtils = __webpack_require__(34);\nvar ReactComponentEnvironment = __webpack_require__(37);\nvar ReactEmptyComponent = __webpack_require__(63);\nvar ReactBrowserEventEmitter = __webpack_require__(25);\nvar ReactHostComponent = __webpack_require__(65);\nvar ReactUpdates = __webpack_require__(9);\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar adler32 = __webpack_require__(164);\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\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 addChecksumToMarkup(markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\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 canReuseMarkup(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/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactComponentEnvironment = __webpack_require__(37);\nvar ReactInstanceMap = __webpack_require__(23);\nvar ReactInstrumentation = __webpack_require__(8);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactReconciler = __webpack_require__(15);\nvar ReactChildReconciler = __webpack_require__(121);\n\nvar emptyFunction = __webpack_require__(7);\nvar flattenChildren = __webpack_require__(167);\nvar invariant = __webpack_require__(0);\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (false) {\n var getDebugID = function getDebugID(inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function setChildrenForInstrumentation(children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\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 _reconcilerInstantiateChildren(nestedChildren, transaction, context) {\n if (false) {\n var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function _reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (false) {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\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 mountChildren(nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (false) {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (false) {\n setChildrenForInstrumentation.call(this, children);\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 updateTextContent(nextContent) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? false ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\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 updateMarkup(nextMarkup) {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n true ? false ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\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 updateChildren(nextNestedChildrenElements, transaction, context) {\n // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\n /**\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function _updateChildren(nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\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 nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\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 updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, 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 // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (false) {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function unmountChildren(safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\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 moveChild(child, afterNode, 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 return makeMove(child, afterNode, 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 createChild(child, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function removeChild(child, node) {\n return makeRemove(child, node);\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 _mountChildAtIndex: function _mountChildAtIndex(child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, 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 _unmountChild(child, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\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 * 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 addComponentAsRefTo(component, ref, owner) {\n !isValidOwner(owner) ? false ? 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).') : _prodInvariant('119') : void 0;\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 removeComponentAsRefFrom(component, ref, owner) {\n !isValidOwner(owner) ? false ? 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).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar CallbackQueue = __webpack_require__(59);\nvar PooledClass = __webpack_require__(12);\nvar ReactBrowserEventEmitter = __webpack_require__(25);\nvar ReactInputSelection = __webpack_require__(66);\nvar ReactInstrumentation = __webpack_require__(8);\nvar Transaction = __webpack_require__(27);\nvar ReactUpdateQueue = __webpack_require__(39);\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 initialize() {\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 close(previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function initialize() {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function close() {\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\nif (false) {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\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(useCreateElement) {\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 // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = 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 getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return this.reactMountReady;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function getUpdateQueue() {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function checkpoint() {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function rollback(checkpoint) {\n this.reactMountReady.rollback(checkpoint);\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactOwner = __webpack_require__(144);\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 || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') {\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 prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && (typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement)) === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && (typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement)) === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || (typeof element === 'undefined' ? 'undefined' : _typeof(element)) !== 'object') {\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/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar PooledClass = __webpack_require__(12);\nvar Transaction = __webpack_require__(27);\nvar ReactInstrumentation = __webpack_require__(8);\nvar ReactServerUpdateQueue = __webpack_require__(149);\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 = [];\n\nif (false) {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function enqueue() {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\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 getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function getUpdateQueue() {\n return this.updateQueue;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {},\n\n checkpoint: function checkpoint() {},\n\n rollback: function rollback() {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar ReactUpdateQueue = __webpack_require__(39);\n\nvar warning = __webpack_require__(1);\n\nfunction warnNoop(publicInstance, callerName) {\n if (false) {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\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\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(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\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\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 {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\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|function} completeState Next state.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\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|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nmodule.exports = '15.5.4';\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\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 xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\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};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar EventPropagators = __webpack_require__(22);\nvar ExecutionEnvironment = __webpack_require__(5);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInputSelection = __webpack_require__(66);\nvar SyntheticEvent = __webpack_require__(10);\n\nvar getActiveElement = __webpack_require__(55);\nvar isTextInputElement = __webpack_require__(75);\nvar shallowEqual = __webpack_require__(30);\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = 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. See #3639.\nvar hasListener = false;\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, activeElementInst, 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 extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = 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 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case '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 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function didPutListener(inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar EventListener = __webpack_require__(53);\nvar EventPropagators = __webpack_require__(22);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar SyntheticAnimationEvent = __webpack_require__(154);\nvar SyntheticClipboardEvent = __webpack_require__(155);\nvar SyntheticEvent = __webpack_require__(10);\nvar SyntheticFocusEvent = __webpack_require__(158);\nvar SyntheticKeyboardEvent = __webpack_require__(160);\nvar SyntheticMouseEvent = __webpack_require__(26);\nvar SyntheticDragEvent = __webpack_require__(157);\nvar SyntheticTouchEvent = __webpack_require__(161);\nvar SyntheticTransitionEvent = __webpack_require__(162);\nvar SyntheticUIEvent = __webpack_require__(24);\nvar SyntheticWheelEvent = __webpack_require__(163);\n\nvar emptyFunction = __webpack_require__(7);\nvar getEventCharCode = __webpack_require__(41);\nvar invariant = __webpack_require__(0);\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case '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 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case '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 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? false ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function didPutListener(inst, 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 // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function willDeleteListener(inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function clipboardData(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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticMouseEvent = __webpack_require__(26);\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\n\nvar getEventCharCode = __webpack_require__(41);\nvar getEventKey = __webpack_require__(168);\nvar getEventModifierState = __webpack_require__(42);\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 charCode(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 keyCode(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 which(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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticUIEvent = __webpack_require__(24);\n\nvar getEventModifierState = __webpack_require__(42);\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticEvent = __webpack_require__(10);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar SyntheticMouseEvent = __webpack_require__(26);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function deltaX(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 deltaY(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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\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 var n = Math.min(i + 4096, m);\n for (; i < n; 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/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar CSSProperty = __webpack_require__(58);\nvar warning = __webpack_require__(1);\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\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 * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\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 if (false) {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _prodInvariant = __webpack_require__(2);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar ReactDOMComponentTree = __webpack_require__(4);\nvar ReactInstanceMap = __webpack_require__(23);\n\nvar getHostComponentFromComposite = __webpack_require__(72);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (false) {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing 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') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n true ? false ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n true ? false ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar KeyEscapeUtils = __webpack_require__(35);\nvar traverseAllChildren = __webpack_require__(77);\nvar warning = __webpack_require__(1);\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && \"production\" === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = __webpack_require__(78);\n}\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 * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && (typeof traverseContext === 'undefined' ? 'undefined' : _typeof(traverseContext)) === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (false) {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\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, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (false) {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(56)))\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar getEventCharCode = __webpack_require__(41);\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/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/* global Symbol */\n\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/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\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/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ExecutionEnvironment = __webpack_require__(5);\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar escapeTextContentForBrowser = __webpack_require__(28);\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/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactMount = __webpack_require__(67);\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar _prodInvariant = __webpack_require__(18);\n\nvar invariant = __webpack_require__(0);\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 oneArgumentPooler(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 twoArgumentPooler(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 threeArgumentPooler(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 fourArgumentPooler(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 standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n !(instance instanceof Klass) ? false ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;\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.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar PooledClass = __webpack_require__(175);\nvar ReactElement = __webpack_require__(17);\n\nvar emptyFunction = __webpack_require__(7);\nvar traverseAllChildren = __webpack_require__(186);\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 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\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 keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n 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.key && (!child || child.key !== mappedChild.key) ? 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\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 *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\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/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(18),\n _assign = __webpack_require__(3);\n\nvar ReactComponent = __webpack_require__(47);\nvar ReactElement = __webpack_require__(17);\nvar ReactPropTypeLocationNames = __webpack_require__(179);\nvar ReactNoopUpdateQueue = __webpack_require__(48);\n\nvar emptyObject = __webpack_require__(20);\nvar invariant = __webpack_require__(0);\nvar warning = __webpack_require__(1);\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host 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: '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: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: '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: '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: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: '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 * @required\n */\n render: '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: '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: '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: '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: '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: '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: '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: '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: '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 displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(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 childContextTypes(Constructor, _childContextTypes) {\n if (false) {\n validateTypeDef(Constructor, _childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (false) {\n validateTypeDef(Constructor, _contextTypes, '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 getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (false) {\n validateTypeDef(Constructor, _propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {} };\n\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 only in __DEV__\n false ? 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) : void 0;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, 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 === 'OVERRIDE_BASE') ? false ? 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) : _prodInvariant('73', name) : void 0;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? false ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (false) {\n var typeofSpec = typeof spec === 'undefined' ? 'undefined' : _typeof(spec);\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? false ? invariant(false, 'ReactClass: You\\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;\n !!ReactElement.isValidElement(spec) ? false ? invariant(false, 'ReactClass: You\\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\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 var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, 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 isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(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 === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? false ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;\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 === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (false) {\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 ? false ? 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) : _prodInvariant('78', name) : void 0;\n\n var isInherited = name in Constructor;\n !!isInherited ? false ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;\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 === 'undefined' ? 'undefined' : _typeof(one)) === 'object' && (typeof two === 'undefined' ? 'undefined' : _typeof(two)) === 'object') ? false ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n !(one[key] === undefined) ? false ? 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) : _prodInvariant('81', key) : void 0;\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 (false) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\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) : void 0;\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) : void 0;\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 };\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 var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\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 replaceState(newState, callback) {\n this.updater.enqueueReplaceState(this, newState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'replaceState');\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 isMounted() {\n return this.updater.isMounted(this);\n }\n};\n\nvar ReactClassComponent = function ReactClassComponent() {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\nvar didWarnDeprecated = false;\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function createClass(spec) {\n if (false) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;\n didWarnDeprecated = true;\n }\n\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (false) {\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') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\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 (false) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (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 === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? false ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\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 (false) {\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 ? false ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;\n\n if (false) {\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') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\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 injectMixin(mixin) {\n injectedMixins.push(mixin);\n }\n }\n\n};\n\nmodule.exports = ReactClass;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar ReactElement = __webpack_require__(17);\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (false) {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\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 = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar ReactPropTypeLocationNames = {};\n\nif (false) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _require = __webpack_require__(17),\n isValidElement = _require.isValidElement;\n\nvar factory = __webpack_require__(57);\n\nmodule.exports = factory(isValidElement);\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _assign = __webpack_require__(3);\n\nvar ReactComponent = __webpack_require__(47);\nvar ReactNoopUpdateQueue = __webpack_require__(48);\n\nvar emptyObject = __webpack_require__(20);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\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\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nmodule.exports = '15.5.4';\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\n/* global Symbol */\n\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/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\nvar _prodInvariant = __webpack_require__(18);\n\nvar ReactElement = __webpack_require__(17);\n\nvar invariant = __webpack_require__(0);\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? false ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _prodInvariant = __webpack_require__(18);\n\nvar ReactCurrentOwner = __webpack_require__(11);\nvar REACT_ELEMENT_TYPE = __webpack_require__(79);\n\nvar getIteratorFn = __webpack_require__(183);\nvar invariant = __webpack_require__(0);\nvar KeyEscapeUtils = __webpack_require__(174);\nvar warning = __webpack_require__(1);\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && (typeof component === 'undefined' ? 'undefined' : _typeof(component)) === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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 === 'undefined' ? 'undefined' : _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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 (false) {\n var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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 (false) {\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 true ? false ? 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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _HelpResult = __webpack_require__(87);\n\nvar _HelpResult2 = _interopRequireDefault(_HelpResult);\n\nvar _AboutResult = __webpack_require__(84);\n\nvar _AboutResult2 = _interopRequireDefault(_AboutResult);\n\nvar _UnknownCommandResult = __webpack_require__(88);\n\nvar _UnknownCommandResult2 = _interopRequireDefault(_UnknownCommandResult);\n\nvar _HelpResultView = __webpack_require__(191);\n\nvar _HelpResultView2 = _interopRequireDefault(_HelpResultView);\n\nvar _AboutResultView = __webpack_require__(188);\n\nvar _AboutResultView2 = _interopRequireDefault(_AboutResultView);\n\nvar _ExpressionResult = __webpack_require__(86);\n\nvar _ExpressionResult2 = _interopRequireDefault(_ExpressionResult);\n\nvar _ExpressionResultView = __webpack_require__(190);\n\nvar _ExpressionResultView2 = _interopRequireDefault(_ExpressionResultView);\n\nvar _WhatsnewResult = __webpack_require__(89);\n\nvar _WhatsnewResult2 = _interopRequireDefault(_WhatsnewResult);\n\nvar _WhatsnewResultView = __webpack_require__(193);\n\nvar _WhatsnewResultView2 = _interopRequireDefault(_WhatsnewResultView);\n\nvar _ErrorResult = __webpack_require__(85);\n\nvar _ErrorResult2 = _interopRequireDefault(_ErrorResult);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DisplayResult = function (_React$Component) {\n _inherits(DisplayResult, _React$Component);\n\n function DisplayResult() {\n _classCallCheck(this, DisplayResult);\n\n return _possibleConstructorReturn(this, (DisplayResult.__proto__ || Object.getPrototypeOf(DisplayResult)).apply(this, arguments));\n }\n\n _createClass(DisplayResult, [{\n key: 'render',\n value: function render() {\n\n if (this.props.content instanceof _UnknownCommandResult2.default) {\n return this.renderUnknown();\n }\n\n if (this.props.content instanceof _ErrorResult2.default) {\n return this.renderError(this.props.content.error.message);\n }\n\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'input mono' },\n _react2.default.createElement(\n 'span',\n { className: 'cur' },\n '>'\n ),\n this.props.content.input,\n _react2.default.createElement(\n 'a',\n { className: 'hashLink', title: 'Link for this expression', href: window.location.pathname + '#' + this.props.inputHash },\n '#'\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'content' },\n this.findResultComponent(this.props.content)\n )\n );\n }\n }, {\n key: 'renderUnknown',\n value: function renderUnknown() {\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'error' },\n '\\xAF\\\\_(\\u30C4)_/\\xAF Sorry, i don\\u2032t know what ',\n _react2.default.createElement(\n 'strong',\n null,\n this.props.input\n ),\n ' is'\n )\n );\n }\n }, {\n key: 'renderError',\n value: function renderError(message) {\n return _react2.default.createElement(\n 'div',\n { className: 'result' },\n _react2.default.createElement(\n 'div',\n { className: 'error' },\n '(X_X) Error occurred: ',\n _react2.default.createElement(\n 'strong',\n null,\n message\n )\n )\n );\n }\n }, {\n key: 'findResultComponent',\n value: function findResultComponent(result) {\n if (result instanceof _HelpResult2.default) {\n return _react2.default.createElement(_HelpResultView2.default, { content: result });\n }\n\n if (result instanceof _AboutResult2.default) {\n return _react2.default.createElement(_AboutResultView2.default, null);\n }\n\n if (result instanceof _ExpressionResult2.default) {\n return _react2.default.createElement(_ExpressionResultView2.default, { result: result, emphasizeBytes: this.props.appState.emphasizeBytes });\n }\n\n if (result instanceof _WhatsnewResult2.default) {\n return _react2.default.createElement(_WhatsnewResultView2.default, null);\n }\n\n console.warn('Unknown result:', result);\n return _react2.default.createElement(\n 'span',\n null,\n 'Unknown result: ',\n typeof result === 'undefined' ? 'undefined' : _typeof(result)\n );\n }\n }]);\n\n return DisplayResult;\n}(_react2.default.Component);\n\nexports.default = DisplayResult;\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AboutResultView = function (_React$Component) {\n _inherits(AboutResultView, _React$Component);\n\n function AboutResultView() {\n _classCallCheck(this, AboutResultView);\n\n return _possibleConstructorReturn(this, (AboutResultView.__proto__ || Object.getPrototypeOf(AboutResultView)).apply(this, arguments));\n }\n\n _createClass(AboutResultView, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(\n \"div\",\n { className: \"aboutTpl\" },\n _react2.default.createElement(\n \"p\",\n null,\n \" Created by \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://boryslevytskyi.github.io/\" },\n \"Borys Levytskyi\"\n ),\n \". Please give it a like if BitwiseCmd has helped you in your work.\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"If you have an idea, suggestion or you've spotted a bug here, please send it to \",\n _react2.default.createElement(\n \"a\",\n { href: \"mailto:bitwisecmd@gmail.com?subject=Feedback\" },\n \"bitwisecmd@gmail.com\"\n ),\n \" or tweet on \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://twitter.com/BitwiseCmd\" },\n \"@BitwiseCmd\"\n ),\n \". Your feedback is greatly appreciated.\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n _react2.default.createElement(\n \"a\",\n { href: \"https://github.com/BorisLevitskiy/BitwiseCmd\" },\n \"Project on \",\n _react2.default.createElement(\n \"strong\",\n null,\n \"GitHub\"\n )\n )\n )\n );\n }\n }]);\n\n return AboutResultView;\n}(_react2.default.Component);\n\nexports.default = AboutResultView;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _expression = __webpack_require__(49);\n\nvar expression = _interopRequireWildcard(_expression);\n\nvar _formatter = __webpack_require__(83);\n\nvar _formatter2 = _interopRequireDefault(_formatter);\n\nvar _BinaryStringView = __webpack_require__(81);\n\nvar _BinaryStringView2 = _interopRequireDefault(_BinaryStringView);\n\nvar _BitwiseExpressionViewModel = __webpack_require__(82);\n\nvar _BitwiseExpressionViewModel2 = _interopRequireDefault(_BitwiseExpressionViewModel);\n\nvar _loglevel = __webpack_require__(50);\n\nvar _loglevel2 = _interopRequireDefault(_loglevel);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BitwiseOperationEpxressionView = function (_React$Component) {\n _inherits(BitwiseOperationEpxressionView, _React$Component);\n\n function BitwiseOperationEpxressionView() {\n _classCallCheck(this, BitwiseOperationEpxressionView);\n\n return _possibleConstructorReturn(this, (BitwiseOperationEpxressionView.__proto__ || Object.getPrototypeOf(BitwiseOperationEpxressionView)).apply(this, arguments));\n }\n\n _createClass(BitwiseOperationEpxressionView, [{\n key: 'render',\n value: function render() {\n var rows = this.getRows();\n if (!rows) {\n return null;\n }\n\n return _react2.default.createElement(\n 'table',\n { className: 'expression' },\n _react2.default.createElement(\n 'tbody',\n null,\n rows\n )\n );\n }\n }, {\n key: 'getRows',\n value: function getRows() {\n var _this2 = this;\n\n var expr = this.props.expression;\n\n if (expr instanceof expression.SingleOperandExpression) {\n var m = _BitwiseExpressionViewModel2.default.buildNot(expr, { emphasizeBytes: this.props.emphasizeBytes });\n _loglevel2.default.info('Render model', m);\n return m.items.map(function (itm, i) {\n return _react2.default.createElement(ExpressionRow, _extends({ key: i }, itm, { emphasizeBytes: _this2.props.emphasizeBytes, maxNumberOfBits: m.maxNumberOfBits }));\n });\n }\n\n if (expr instanceof expression.MultipleOperandsExpression) {\n var _m = _BitwiseExpressionViewModel2.default.buildMultiple(expr, { emphasizeBytes: this.props.emphasizeBytes });\n _loglevel2.default.info('Render model', _m);\n return _m.items.map(function (itm, i) {\n return _react2.default.createElement(ExpressionRow, _extends({ key: i }, itm, { emphasizeBytes: _this2.props.emphasizeBytes, maxNumberOfBits: _m.maxNumberOfBits }));\n });\n }\n\n return null;\n }\n }]);\n\n return BitwiseOperationEpxressionView;\n}(_react2.default.Component);\n\nexports.default = BitwiseOperationEpxressionView;\n\nvar ExpressionRow = function (_React$Component2) {\n _inherits(ExpressionRow, _React$Component2);\n\n function ExpressionRow() {\n _classCallCheck(this, ExpressionRow);\n\n return _possibleConstructorReturn(this, (ExpressionRow.__proto__ || Object.getPrototypeOf(ExpressionRow)).apply(this, arguments));\n }\n\n _createClass(ExpressionRow, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n sign = _props.sign,\n label = _props.label,\n bin = _props.bin,\n other = _props.other,\n css = _props.css,\n maxNumberOfBits = _props.maxNumberOfBits,\n emphasizeBytes = _props.emphasizeBytes;\n\n\n return _react2.default.createElement(\n 'tr',\n { className: css },\n _react2.default.createElement(\n 'td',\n { className: 'sign' },\n sign\n ),\n _react2.default.createElement(\n 'td',\n { className: 'label' },\n label\n ),\n _react2.default.createElement(\n 'td',\n { className: 'bin' },\n _react2.default.createElement(_BinaryStringView2.default, { emphasizeBytes: emphasizeBytes, binaryString: _formatter2.default.padLeft(bin, maxNumberOfBits, '0'), allowFlipBits: false })\n ),\n _react2.default.createElement(\n 'td',\n { className: 'other' },\n other\n )\n );\n }\n }]);\n\n return ExpressionRow;\n}(_react2.default.Component);\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _ListOfNumbersExpressionView = __webpack_require__(192);\n\nvar _ListOfNumbersExpressionView2 = _interopRequireDefault(_ListOfNumbersExpressionView);\n\nvar _BitwiseOperationExpressionView = __webpack_require__(189);\n\nvar _BitwiseOperationExpressionView2 = _interopRequireDefault(_BitwiseOperationExpressionView);\n\nvar _expression = __webpack_require__(49);\n\nvar expression = _interopRequireWildcard(_expression);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ExpressionResultView = function (_React$Component) {\n _inherits(ExpressionResultView, _React$Component);\n\n function ExpressionResultView() {\n _classCallCheck(this, ExpressionResultView);\n\n return _possibleConstructorReturn(this, (ExpressionResultView.__proto__ || Object.getPrototypeOf(ExpressionResultView)).apply(this, arguments));\n }\n\n _createClass(ExpressionResultView, [{\n key: 'render',\n value: function render() {\n var expr = this.props.result.expression;\n\n if (expr instanceof expression.ListOfNumbersExpression) {\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_ListOfNumbersExpressionView2.default, { expression: expr, emphasizeBytes: this.props.emphasizeBytes })\n );\n }\n if (expr instanceof expression.SingleOperandExpression || expr instanceof expression.MultipleOperandsExpression) {\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_BitwiseOperationExpressionView2.default, { expression: expr, emphasizeBytes: this.props.emphasizeBytes })\n );\n }\n\n console.log('[BitwiseOperationExpressionView] render()', expr);\n\n return _react2.default.createElement(\n 'b',\n null,\n 'Expression: ',\n expr.expressionString\n );\n }\n }]);\n\n return ExpressionResultView;\n}(_react2.default.Component);\n\nexports.default = ExpressionResultView;\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar HelpResultView = function (_React$Component) {\n _inherits(HelpResultView, _React$Component);\n\n function HelpResultView() {\n _classCallCheck(this, HelpResultView);\n\n return _possibleConstructorReturn(this, (HelpResultView.__proto__ || Object.getPrototypeOf(HelpResultView)).apply(this, arguments));\n }\n\n _createClass(HelpResultView, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(\n \"div\",\n { className: \"help helpResultTpl\" },\n _react2.default.createElement(\n \"div\",\n { style: { overflow: \"hidden\" } },\n _react2.default.createElement(\n \"div\",\n { style: { float: \"left\", \"marginRight\": \"20px\" } },\n _react2.default.createElement(\n \"div\",\n { className: \"section\" },\n _react2.default.createElement(\n \"strong\",\n null,\n \"Supported Commands\"\n ),\n _react2.default.createElement(\n \"ul\",\n null,\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"23 ^ 34\"\n ),\n \" \\u2014 type bitwise expression to see result in binary (only positive integers are supported now)\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"23 34\"\n ),\n \" \\u2014 type one or more numbers to see their binary representations\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"clear\"\n ),\n \" \\u2014 clear output pane\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"help\"\n ),\n \" \\u2014 display this help\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"whatsnew\"\n ),\n \" \\u2014 display changelog\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"em\"\n ),\n \" \\u2014 turn On/Off Emphasize Bytes\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"dark\"\n ),\n \" \\u2014 set Dark theme\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"light\"\n ),\n \" \\u2014 set Light theme\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"about\"\n ),\n \" \\u2014 about the app\"\n )\n )\n )\n ),\n _react2.default.createElement(\n \"div\",\n { style: { \"float\": \"left\" } },\n _react2.default.createElement(\n \"div\",\n { className: \"section\" },\n _react2.default.createElement(\n \"strong\",\n null,\n \"Supported Bitwise Operations\"\n ),\n _react2.default.createElement(\"br\", null),\n _react2.default.createElement(\n \"small\",\n null,\n _react2.default.createElement(\n \"a\",\n { href: \"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators\" },\n \"as implemented in JavaScript engine\"\n )\n ),\n _react2.default.createElement(\n \"ul\",\n null,\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"&\"\n ),\n \" \\u2014 bitwise AND\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"|\"\n ),\n \" \\u2014 bitwise inclusive OR\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"^\"\n ),\n \" \\u2014 bitwise exclusive XOR\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"~\"\n ),\n \" \\u2014 bitwise NOT\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \"<<\"\n ),\n \" \\u2014 left shift\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \">>\"\n ),\n \" \\u2014 sign propagating right shift\"\n ),\n _react2.default.createElement(\n \"li\",\n null,\n _react2.default.createElement(\n \"code\",\n null,\n \">>>\"\n ),\n \" \\u2014 zero-fill right shift\"\n )\n )\n )\n )\n )\n );\n }\n }]);\n\n return HelpResultView;\n}(_react2.default.Component);\n\nexports.default = HelpResultView;\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formatter = __webpack_require__(83);\n\nvar _formatter2 = _interopRequireDefault(_formatter);\n\nvar _BinaryStringView = __webpack_require__(81);\n\nvar _BinaryStringView2 = _interopRequireDefault(_BinaryStringView);\n\nvar _BitwiseExpressionViewModel = __webpack_require__(82);\n\nvar _BitwiseExpressionViewModel2 = _interopRequireDefault(_BitwiseExpressionViewModel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListOfNumersExpressionView = function (_React$Component) {\n _inherits(ListOfNumersExpressionView, _React$Component);\n\n function ListOfNumersExpressionView() {\n _classCallCheck(this, ListOfNumersExpressionView);\n\n return _possibleConstructorReturn(this, (ListOfNumersExpressionView.__proto__ || Object.getPrototypeOf(ListOfNumersExpressionView)).apply(this, arguments));\n }\n\n _createClass(ListOfNumersExpressionView, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var expr = this.props.expression;\n var maxBitsLegnth = _BitwiseExpressionViewModel2.default.getNumberOfBits(expr.maxBitsLegnth, this.props.emphasizeBytes);\n var numberRows = expr.numbers.map(function (n, i) {\n return _react2.default.createElement(OperandView, { key: i, operand: n, maxBitsLegnth: maxBitsLegnth, emphasizeBytes: _this2.props.emphasizeBytes });\n });\n return _react2.default.createElement(\n 'table',\n { className: 'expression' },\n _react2.default.createElement(\n 'tbody',\n null,\n numberRows\n )\n );\n }\n }]);\n\n return ListOfNumersExpressionView;\n}(_react2.default.Component);\n\nexports.default = ListOfNumersExpressionView;\n\nvar OperandView = function (_React$Component2) {\n _inherits(OperandView, _React$Component2);\n\n function OperandView() {\n _classCallCheck(this, OperandView);\n\n var _this3 = _possibleConstructorReturn(this, (OperandView.__proto__ || Object.getPrototypeOf(OperandView)).call(this));\n\n _this3.state = { operand: null };\n return _this3;\n }\n\n _createClass(OperandView, [{\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var op = this.props.operand;\n var binaryString = _formatter2.default.padLeft(op.bin, this.props.maxBitsLegnth, '0');\n\n return _react2.default.createElement(\n 'tr',\n { 'data-kind': op.kind },\n _react2.default.createElement(\n 'td',\n { className: 'label' },\n op.input\n ),\n _react2.default.createElement(\n 'td',\n { className: 'bin' },\n _react2.default.createElement(_BinaryStringView2.default, { emphasizeBytes: this.props.emphasizeBytes, binaryString: binaryString, allowFlipBits: true, onFlipBit: function onFlipBit(e) {\n return _this4.flipBit(e);\n } })\n ),\n _react2.default.createElement(\n 'td',\n { className: 'other' },\n op.other\n )\n );\n }\n }, {\n key: 'flipBit',\n value: function flipBit(index) {\n var op = this.props.operand;\n var binaryString = _formatter2.default.padLeft(op.bin, this.props.maxBitsLegnth, '0');\n var arr = binaryString.split('');\n // TODO: this code looks ugly\n arr[index] = arr[index] == '0' ? '1' : '0';\n var bin = arr.join('');\n op.setValue(parseInt(bin, 2));\n\n this.setState({ operand: op });\n }\n }]);\n\n return OperandView;\n}(_react2.default.Component);\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar WhatsnewResultView = function (_React$Component) {\n _inherits(WhatsnewResultView, _React$Component);\n\n function WhatsnewResultView() {\n _classCallCheck(this, WhatsnewResultView);\n\n return _possibleConstructorReturn(this, (WhatsnewResultView.__proto__ || Object.getPrototypeOf(WhatsnewResultView)).apply(this, arguments));\n }\n\n _createClass(WhatsnewResultView, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(\n \"div\",\n { \"class\": \"changelog\" },\n _react2.default.createElement(\n \"h3\",\n null,\n \"BitwiseCmd Changelog\"\n ),\n _react2.default.createElement(\n \"div\",\n { \"class\": \"item\" },\n _react2.default.createElement(\n \"p\",\n null,\n _react2.default.createElement(\n \"strong\",\n null,\n \"May 16th, 2017\"\n ),\n \" Complete rewrite using React. Old implementation is available at \",\n _react2.default.createElement(\n \"a\",\n { href: \"http://bitwisecmd.com/old\" },\n \"http://bitwisecmd.com/old\"\n ),\n \".\"\n ),\n _react2.default.createElement(\n \"p\",\n null,\n \"Please let me know if you have problems with this release by \",\n _react2.default.createElement(\n \"a\",\n { href: \"https://github.com/BorysLevytskyi/BitwiseCmd/issues\" },\n \"creating issue\"\n ),\n \" in Github Repo.\"\n )\n )\n );\n }\n }]);\n\n return WhatsnewResultView;\n}(_react2.default.Component);\n\nexports.default = WhatsnewResultView;\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _react = __webpack_require__(6);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(90);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _InputBox = __webpack_require__(52);\n\nvar _InputBox2 = _interopRequireDefault(_InputBox);\n\nvar _AppState = __webpack_require__(91);\n\nvar _AppState2 = _interopRequireDefault(_AppState);\n\nvar _appStateStore = __webpack_require__(92);\n\nvar _appStateStore2 = _interopRequireDefault(_appStateStore);\n\nvar _cmd = __webpack_require__(51);\n\nvar _cmd2 = _interopRequireDefault(_cmd);\n\nvar _commands = __webpack_require__(93);\n\nvar _commands2 = _interopRequireDefault(_commands);\n\nvar _AppRoot = __webpack_require__(94);\n\nvar _AppRoot2 = _interopRequireDefault(_AppRoot);\n\nvar _hash = __webpack_require__(95);\n\nvar _hash2 = _interopRequireDefault(_hash);\n\nvar _loglevel = __webpack_require__(50);\n\nvar _loglevel2 = _interopRequireDefault(_loglevel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nsetupLogger();\n\nvar appState = createAppState();\n\n_commands2.default.initialize(_cmd2.default, appState);\n\nexecuteStartupCommands();\n\nvar root = _react2.default.createElement(_AppRoot2.default, { appState: appState });\n_reactDom2.default.render(root, document.getElementById('root'));\n\n_loglevel2.default.debug(\"started\");\n\nfunction createAppState() {\n var stateData = _appStateStore2.default.getPersistedData();\n var appState = new _AppState2.default(stateData);\n _appStateStore2.default.watch(appState);\n _loglevel2.default.debug(\"appState\", appState);\n return appState;\n}\n\nfunction setupLogger() {\n if (window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-debug') > -1) {\n _loglevel2.default.setLevel(\"trace\");\n } else {\n _loglevel2.default.setLevel(\"warn\");\n }\n}\n\nfunction executeStartupCommands() {\n var hashArgs = _hash2.default.getArgs(window.location.hash);\n\n var startupCommands = ['help', '1|2&6', '1<<0x2a', '2 4 8 16 32'];\n\n if (appState.wasOldVersion) {\n startupCommands = [\"whatsnew\"];\n }\n\n if (hashArgs.commands.length > 0) {\n startupCommands = hashArgs.commands;\n }\n\n startupCommands.forEach(_cmd2.default.execute.bind(_cmd2.default));\n}\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = {\n plainObject: function plainObject(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) == \"object\" && obj instanceof Object;\n },\n\n aFunction: function aFunction(obj) {\n return typeof obj == \"function\";\n },\n\n string: function string(obj) {\n return typeof obj == \"string\";\n },\n\n regex: function regex(obj) {\n return (typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) == \"object\" && this.constructedFrom(RegExp);\n },\n\n constructedFrom: function constructedFrom(obj, ctor) {\n return obj instanceof ctor;\n },\n\n htmlElement: function htmlElement(obj) {\n return obj instanceof HtmlElement;\n },\n\n array: function array(obj) {\n return obj instanceof Array;\n },\n\n number: function number(num) {\n return typeof num == \"number\" && !isNaN(num);\n }\n};\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// bundle.js"," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"http://localhost:8080/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 194);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a163340ecff7d28934d3","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\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(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/invariant.js","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\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 (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var 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 warning = function warning(condition, format) {\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 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/warning.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/reactProdInvariant.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/object-assign/index.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar Flags = ReactDOMComponentFlags;\n\nvar internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);\n\n/**\n * Check if a given node should be cached.\n */\nfunction shouldPrecacheNode(node, nodeID) {\n return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';\n}\n\n/**\n * Drill down (through composites and empty components) until we get a host or\n * host text component.\n *\n * This is pretty polymorphic but unavoidable with the current structure we have\n * for `_renderedChildren`.\n */\nfunction getRenderedHostOrTextFromComponent(component) {\n var rendered;\n while (rendered = component._renderedComponent) {\n component = rendered;\n }\n return component;\n}\n\n/**\n * Populate `_hostNode` on the rendered host/text component with the given\n * DOM node. The passed `inst` can be a composite.\n */\nfunction precacheNode(inst, node) {\n var hostInst = getRenderedHostOrTextFromComponent(inst);\n hostInst._hostNode = node;\n node[internalInstanceKey] = hostInst;\n}\n\nfunction uncacheNode(inst) {\n var node = inst._hostNode;\n if (node) {\n delete node[internalInstanceKey];\n inst._hostNode = null;\n }\n}\n\n/**\n * Populate `_hostNode` on each child of `inst`, assuming that the children\n * match up with the DOM (element) children of `node`.\n *\n * We cache entire levels at once to avoid an n^2 problem where we access the\n * children of a node sequentially and have to walk from the start to our target\n * node every time.\n *\n * Since we update `_renderedChildren` and the actual DOM at (slightly)\n * different times, we could race here and see a newer `_renderedChildren` than\n * the DOM nodes we see. To avoid this, ReactMultiChild calls\n * `prepareToManageChildren` before we change `_renderedChildren`, at which\n * time the container's child nodes are always cached (until it unmounts).\n */\nfunction precacheChildNodes(inst, node) {\n if (inst._flags & Flags.hasCachedChildNodes) {\n return;\n }\n var children = inst._renderedChildren;\n var childNode = node.firstChild;\n outer: for (var name in children) {\n if (!children.hasOwnProperty(name)) {\n continue;\n }\n var childInst = children[name];\n var childID = getRenderedHostOrTextFromComponent(childInst)._domID;\n if (childID === 0) {\n // We're currently unmounting this child in ReactMultiChild; skip it.\n continue;\n }\n // We assume the child nodes are in the same order as the child instances.\n for (; childNode !== null; childNode = childNode.nextSibling) {\n if (shouldPrecacheNode(childNode, childID)) {\n precacheNode(childInst, childNode);\n continue outer;\n }\n }\n // We reached the end of the DOM children without finding an ID match.\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;\n }\n inst._flags |= Flags.hasCachedChildNodes;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n if (node[internalInstanceKey]) {\n return node[internalInstanceKey];\n }\n\n // Walk up the tree until we find an ancestor whose instance we have cached.\n var parents = [];\n while (!node[internalInstanceKey]) {\n parents.push(node);\n if (node.parentNode) {\n node = node.parentNode;\n } else {\n // Top of the tree. This node must not be part of a React tree (or is\n // unmounted, potentially).\n return null;\n }\n }\n\n var closest;\n var inst;\n for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {\n closest = inst;\n if (parents.length) {\n precacheChildNodes(inst, node);\n }\n }\n\n return closest;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode(node) {\n var inst = getClosestInstanceFromNode(node);\n if (inst != null && inst._hostNode === node) {\n return inst;\n } else {\n return null;\n }\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance(inst) {\n // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n if (inst._hostNode) {\n return inst._hostNode;\n }\n\n // Walk up the tree until we find an ancestor whose DOM node we have cached.\n var parents = [];\n while (!inst._hostNode) {\n parents.push(inst);\n !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') : _prodInvariant('34') : void 0;\n inst = inst._hostParent;\n }\n\n // Now parents contains each ancestor that does *not* have a cached native\n // node, and `inst` is the deepest ancestor that does.\n for (; parents.length; inst = parents.pop()) {\n precacheChildNodes(inst, inst._hostNode);\n }\n\n return inst._hostNode;\n}\n\nvar ReactDOMComponentTree = {\n getClosestInstanceFromNode: getClosestInstanceFromNode,\n getInstanceFromNode: getInstanceFromNode,\n getNodeFromInstance: getNodeFromInstance,\n precacheChildNodes: precacheChildNodes,\n precacheNode: precacheNode,\n uncacheNode: uncacheNode\n};\n\nmodule.exports = ReactDOMComponentTree;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponentTree.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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// ./~/fbjs/lib/ExecutionEnvironment.js","'use strict';\n\nmodule.exports = require('./lib/React');\n\n\n\n// WEBPACK FOOTER //\n// ./~/react/react.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nvar emptyFunction = function 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// ./~/fbjs/lib/emptyFunction.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n// Trust the developer to only use ReactInstrumentation with a __DEV__ check\n\nvar debugTool = null;\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactDebugTool = require('./ReactDebugTool');\n debugTool = ReactDebugTool;\n}\n\nmodule.exports = { debugTool: debugTool };\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactInstrumentation.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar updateBatchNumber = 0;\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') : _prodInvariant('123') : void 0;\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(\n /* useCreateElement */true);\n}\n\n_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {\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.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 return 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) : _prodInvariant('124', len, dirtyComponents.length) : void 0;\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 // Any updates enqueued while reconciling must be performed after this entire\n // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and\n // C, B could update twice in a single batch if C's render enqueues an update\n // to B (since B would have already updated, we should skip it, and the only\n // way we can know to do so is by checking the batch counter).\n updateBatchNumber++;\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 var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var namedComponent = component;\n // Duck type TopLevelWrapper. This is probably always true.\n if (component._currentElement.type.isReactTopLevelWrapper) {\n namedComponent = component._renderedComponent;\n }\n markerName = 'React update: ' + namedComponent.getName();\n console.time(markerName);\n }\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);\n\n if (markerName) {\n console.timeEnd(markerName);\n }\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};\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 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 if (component._updateBatchNumber == null) {\n component._updateBatchNumber = updateBatchNumber + 1;\n }\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 whereupdates are not being batched.') : _prodInvariant('125') : void 0;\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') : _prodInvariant('126') : void 0;\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') : _prodInvariant('127') : void 0;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;\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-dom/lib/ReactUpdates.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnForAddedNewProperty = false;\nvar isProxySupported = typeof Proxy === 'function';\n\nvar shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: 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 {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n if (process.env.NODE_ENV !== 'production') {\n // these have a getter/setter for warnings\n delete this.nativeEvent;\n delete this.preventDefault;\n delete this.stopPropagation;\n }\n\n this.dispatchConfig = dispatchConfig;\n this._targetInst = targetInst;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n delete this[propName]; // this has a getter/setter for warnings\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\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 return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else if (typeof event.returnValue !== 'unknown') {\n // eslint-disable-line valid-typeof\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function () {\n var event = this.nativeEvent;\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (typeof event.cancelBubble !== 'unknown') {\n // eslint-disable-line valid-typeof\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\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 if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n } else {\n this[propName] = null;\n }\n }\n for (var i = 0; i < shouldBeReleasedProperties.length; i++) {\n this[shouldBeReleasedProperties[i]] = null;\n }\n if (process.env.NODE_ENV !== 'production') {\n Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));\n Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));\n }\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\nif (process.env.NODE_ENV !== 'production') {\n if (isProxySupported) {\n /*eslint-disable no-func-assign */\n SyntheticEvent = new Proxy(SyntheticEvent, {\n construct: function (target, args) {\n return this.apply(target, Object.create(target.prototype), args);\n },\n apply: function (constructor, that, args) {\n return new Proxy(constructor.apply(that, args), {\n set: function (target, prop, value) {\n if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {\n process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent(), 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re adding a new property in the synthetic event object. ' + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;\n didWarnForAddedNewProperty = true;\n }\n target[prop] = value;\n return true;\n }\n });\n }\n });\n /*eslint-enable no-func-assign */\n }\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 E = function () {};\n E.prototype = Super.prototype;\n var prototype = new E();\n\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 * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {object} SyntheticEvent\n * @param {String} propName\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n var isFunction = typeof getVal === 'function';\n return {\n configurable: true,\n set: set,\n get: get\n };\n\n function set(val) {\n var action = isFunction ? 'setting the method' : 'setting the property';\n warn(action, 'This is effectively a no-op');\n return val;\n }\n\n function get() {\n var action = isFunction ? 'accessing the method' : 'accessing the property';\n var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n warn(action, result);\n return getVal;\n }\n\n function warn(action, result) {\n var warningCondition = false;\n process.env.NODE_ENV !== 'production' ? warning(warningCondition, 'This synthetic event is reused for performance reasons. If you\\'re seeing this, ' + 'you\\'re %s `%s` on a released/nullified synthetic event. %s. ' + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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 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.') : _prodInvariant('25') : void 0;\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.\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 // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/PooledClass.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = require('./DOMNamespaces');\nvar setInnerHTML = require('./setInnerHTML');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setTextContent = require('./setTextContent');\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * In IE (8-11) and Edge, appending nodes with no children is dramatically\n * faster than appending a full subtree, so we essentially queue up the\n * .appendChild calls here and apply them so each node is added to its parent\n * before any children are added.\n *\n * In other browsers, doing so is slower or neutral compared to the other order\n * (in Firefox, twice as slow) so we only do this inversion in IE.\n *\n * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.\n */\nvar enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\\bEdge\\/\\d/.test(navigator.userAgent);\n\nfunction insertTreeChildren(tree) {\n if (!enableLazy) {\n return;\n }\n var node = tree.node;\n var children = tree.children;\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n insertTreeBefore(node, children[i], null);\n }\n } else if (tree.html != null) {\n setInnerHTML(node, tree.html);\n } else if (tree.text != null) {\n setTextContent(node, tree.text);\n }\n}\n\nvar insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {\n // DocumentFragments aren't actually part of the DOM after insertion so\n // appending children won't update the DOM. We need to ensure the fragment\n // is properly populated first, breaking out of our lazy approach for just\n // this level. Also, some <object> plugins (like Flash Player) will read\n // <param> nodes immediately upon insertion into the DOM, so <object>\n // must also be populated prior to insertion into the DOM.\n if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {\n insertTreeChildren(tree);\n parentNode.insertBefore(tree.node, referenceNode);\n } else {\n parentNode.insertBefore(tree.node, referenceNode);\n insertTreeChildren(tree);\n }\n});\n\nfunction replaceChildWithTree(oldNode, newTree) {\n oldNode.parentNode.replaceChild(newTree.node, oldNode);\n insertTreeChildren(newTree);\n}\n\nfunction queueChild(parentTree, childTree) {\n if (enableLazy) {\n parentTree.children.push(childTree);\n } else {\n parentTree.node.appendChild(childTree.node);\n }\n}\n\nfunction queueHTML(tree, html) {\n if (enableLazy) {\n tree.html = html;\n } else {\n setInnerHTML(tree.node, html);\n }\n}\n\nfunction queueText(tree, text) {\n if (enableLazy) {\n tree.text = text;\n } else {\n setTextContent(tree.node, text);\n }\n}\n\nfunction toString() {\n return this.node.nodeName;\n}\n\nfunction DOMLazyTree(node) {\n return {\n node: node,\n children: [],\n html: null,\n text: null,\n toString: toString\n };\n}\n\nDOMLazyTree.insertTreeBefore = insertTreeBefore;\nDOMLazyTree.replaceChildWithTree = replaceChildWithTree;\nDOMLazyTree.queueChild = queueChild;\nDOMLazyTree.queueHTML = queueHTML;\nDOMLazyTree.queueText = queueText;\n\nmodule.exports = DOMLazyTree;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMLazyTree.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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_PROPERTY: 0x1,\n HAS_BOOLEAN_VALUE: 0x4,\n HAS_NUMERIC_VALUE: 0x8,\n HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,\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) : _prodInvariant('48', propName) : void 0;\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 mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\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 !(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) : _prodInvariant('50', propName) : void 0;\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};\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\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 ROOT_ATTRIBUTE_NAME: 'data-reactroot',\n\n ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,\n ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040',\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 * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\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 *\n * autofocus is predefined, because adding it to the property whitelist\n * causes unintended side effects.\n *\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : 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 injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMProperty.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar warning = require('fbjs/lib/warning');\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} the containing host component instance\n * @param {?object} info about the host container\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID // 0 in production and for roots\n ) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);\n }\n }\n var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);\n }\n }\n return markup;\n },\n\n /**\n * Returns a value that can be passed to\n * ReactComponentEnvironment.replaceNodeWithMarkup.\n */\n getHostNode: function (internalInstance) {\n return internalInstance.getHostNode();\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (internalInstance, safely) {\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);\n }\n }\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent(safely);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);\n }\n }\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 if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);\n }\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 if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\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, updateBatchNumber) {\n if (internalInstance._updateBatchNumber !== updateBatchNumber) {\n // The component's enqueued batch number should always be the current\n // batch or the following one.\n process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending %s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);\n }\n }\n internalInstance.performUpdateIfNecessary(transaction);\n if (process.env.NODE_ENV !== 'production') {\n if (internalInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);\n }\n }\n }\n\n};\n\nmodule.exports = ReactReconciler;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactReconciler.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactPureComponent = require('./ReactPureComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar onlyChild = require('./onlyChild');\nvar warning = require('fbjs/lib/warning');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n var canDefineProperty = require('./canDefineProperty');\n var ReactElementValidator = require('./ReactElementValidator');\n var didWarnPropTypesDeprecated = false;\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar __spread = _assign;\n\nif (process.env.NODE_ENV !== 'production') {\n var warned = false;\n __spread = function () {\n process.env.NODE_ENV !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;\n warned = true;\n return _assign.apply(null, arguments);\n };\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 PureComponent: ReactPureComponent,\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 // Deprecated hook for JSX spread, don't use this for anything.\n __spread: __spread\n};\n\n// TODO: Fix tests so that this deprecation warning doesn't cause failures.\nif (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(React, 'PropTypes', {\n get: function () {\n process.env.NODE_ENV !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;\n didWarnPropTypesDeprecated = true;\n return ReactPropTypes;\n }\n });\n }\n}\n\nmodule.exports = React;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/React.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar warning = require('fbjs/lib/warning');\nvar canDefineProperty = require('./canDefineProperty');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\nvar specialPropKeyWarningShown, specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n if (process.env.NODE_ENV !== 'production') {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;\n }\n };\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\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 if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement\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 if (hasValidRef(config)) {\n ref = config.ref;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\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 (hasOwnProperty.call(config, 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 if (process.env.NODE_ENV !== 'production') {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\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 (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (key || ref) {\n if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n }\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory\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\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement\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 (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n // Remaining properties override existing props\n var defaultProps;\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\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 * Verifies the object is a ReactElement.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.isvalidelement\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 * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n'use strict';\n\n/**\n * WARNING: DO NOT manually require this module.\n * This is a replacement for `invariant(...)` used by the error code system\n * and will _only_ be required by the corresponding babel pass.\n * It always throws.\n */\n\nfunction reactProdInvariant(code) {\n var argCount = arguments.length - 1;\n\n var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;\n\n for (var argIdx = 0; argIdx < argCount; argIdx++) {\n message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);\n }\n\n message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';\n\n var error = new Error(message);\n error.name = 'Invariant Violation';\n error.framesToPop = 1; // we don't care about reactProdInvariant's own frame\n\n throw error;\n}\n\nmodule.exports = reactProdInvariant;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/reactProdInvariant.js","export default class CommandResult {\n constructor(input) {\n this.input = input;\n this.inputHash = this.encodeHash(input);\n }\n\n encodeHash (string) {\n return encodeURI(string.trim().replace(/\\s/g,','));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/CommandResult.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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// ./~/fbjs/lib/emptyObject.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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');\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\nvar getDictionaryKey = function (inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n};\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n return !!(props.disabled && isInteractive(type));\n default:\n return false;\n }\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 {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 /**\n * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {function} listener The callback to store.\n */\n putListener: function (inst, 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) : _prodInvariant('94', registrationName, typeof listener) : void 0;\n\n var key = getDictionaryKey(inst);\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[key] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(inst, registrationName, listener);\n }\n },\n\n /**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function (inst, registrationName) {\n // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n // live here; needs to be moved to a better place soon\n var bankForRegistrationName = listenerBank[registrationName];\n if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {\n return null;\n }\n var key = getDictionaryKey(inst);\n return bankForRegistrationName && bankForRegistrationName[key];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function (inst, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n var key = getDictionaryKey(inst);\n delete bankForRegistrationName[key];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {object} inst The instance, which is the source of events.\n */\n deleteAllListeners: function (inst) {\n var key = getDictionaryKey(inst);\n for (var registrationName in listenerBank) {\n if (!listenerBank.hasOwnProperty(registrationName)) {\n continue;\n }\n\n if (!listenerBank[registrationName][key]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(inst, registrationName);\n }\n\n delete listenerBank[registrationName][key];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function (topLevelType, targetInst, 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, targetInst, 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.') : _prodInvariant('95') : void 0;\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-dom/lib/EventPluginHub.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar warning = require('fbjs/lib/warning');\n\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(inst, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(inst, 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(inst, phase, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;\n }\n var listener = listenerAtPhase(inst, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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 EventPluginUtils.traverseTwoPhase(event._targetInst, 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 var targetInst = event._targetInst;\n var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;\n EventPluginUtils.traverseTwoPhase(parentInst, 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(inst, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(inst, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\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._targetInst, 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, from, to) {\n EventPluginUtils.traverseEnterLeave(from, to, 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-dom/lib/EventPropagators.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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();\n\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-dom/lib/ReactInstanceMap.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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.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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticUIEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getVendorPrefixedEventName = require('./getVendorPrefixedEventName');\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 hasEventPageXY;\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 topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',\n topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',\n topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',\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 topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',\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 * EventPluginHub.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 for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === 'topWheel') {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('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('topWheel', 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === 'topScroll') {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === 'topFocus' || dependency === 'topBlur') {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('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('topFocus', 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening.topBlur = true;\n isListening.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 * Protect against document.createEvent() returning null\n * Some popup blocker extensions appear to do this:\n * https://github.com/facebook/react/issues/6887\n */\n supportsEventPageXY: function () {\n if (!document.createEvent) {\n return false;\n }\n var ev = document.createEvent('MouseEvent');\n return ev != null && 'pageX' in ev;\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 * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when\n * pageX/pageY isn't supported (legacy browsers).\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 (hasEventPageXY === undefined) {\n hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();\n }\n if (!hasEventPageXY && !isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n }\n\n});\n\nmodule.exports = ReactBrowserEventEmitter;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactBrowserEventEmitter.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticMouseEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar OBSERVED_ERROR = {};\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 TransactionImpl = {\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.') : _prodInvariant('27') : void 0;\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] = OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === 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.') : _prodInvariant('28') : void 0;\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 !== 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\nmodule.exports = TransactionImpl;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/Transaction.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * Based on the escape-html library, which is used under the MIT License below:\n *\n * Copyright (c) 2012-2013 TJ Holowaychuk\n * Copyright (c) 2015 Andreas Lubbe\n * Copyright (c) 2015 Tiancheng \"Timothy\" Gu\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n */\n\n'use strict';\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\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 if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\nmodule.exports = escapeTextContentForBrowser;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/escapeTextContentForBrowser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar DOMNamespaces = require('./DOMNamespaces');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer;\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 = createMicrosoftUnsafeLocalFunction(function (node, html) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n } else {\n node.innerHTML = html;\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 testElement = null;\n}\n\nmodule.exports = setInnerHTML;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/setInnerHTML.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\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 (is(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 for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty.call(objB, keysA[i]) || !is(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// ./~/fbjs/lib/shallowEqual.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar Danger = require('./Danger');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar createMicrosoftUnsafeLocalFunction = require('./createMicrosoftUnsafeLocalFunction');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\n\nfunction getNodeAfter(parentNode, node) {\n // Special case for text components, which return [open, close] comments\n // from getHostNode.\n if (Array.isArray(node)) {\n node = node[1];\n }\n return node ? node.nextSibling : parentNode.firstChild;\n}\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 */\nvar insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {\n // We rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so\n // we are careful to use `null`.)\n parentNode.insertBefore(childNode, referenceNode);\n});\n\nfunction insertLazyTreeChildAt(parentNode, childTree, referenceNode) {\n DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);\n}\n\nfunction moveChild(parentNode, childNode, referenceNode) {\n if (Array.isArray(childNode)) {\n moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);\n } else {\n insertChildAt(parentNode, childNode, referenceNode);\n }\n}\n\nfunction removeChild(parentNode, childNode) {\n if (Array.isArray(childNode)) {\n var closingComment = childNode[1];\n childNode = childNode[0];\n removeDelimitedText(parentNode, childNode, closingComment);\n parentNode.removeChild(closingComment);\n }\n parentNode.removeChild(childNode);\n}\n\nfunction moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {\n var node = openingComment;\n while (true) {\n var nextNode = node.nextSibling;\n insertChildAt(parentNode, node, referenceNode);\n if (node === closingComment) {\n break;\n }\n node = nextNode;\n }\n}\n\nfunction removeDelimitedText(parentNode, startNode, closingComment) {\n while (true) {\n var node = startNode.nextSibling;\n if (node === closingComment) {\n // The closing comment is removed by ReactMultiChild.\n break;\n } else {\n parentNode.removeChild(node);\n }\n }\n}\n\nfunction replaceDelimitedText(openingComment, closingComment, stringText) {\n var parentNode = openingComment.parentNode;\n var nodeAfterComment = openingComment.nextSibling;\n if (nodeAfterComment === closingComment) {\n // There are no text nodes between the opening and closing comments; insert\n // a new one if stringText isn't empty.\n if (stringText) {\n insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);\n }\n } else {\n if (stringText) {\n // Set the text content of the first node after the opening comment, and\n // remove all following nodes up until the closing comment.\n setTextContent(nodeAfterComment, stringText);\n removeDelimitedText(parentNode, nodeAfterComment, closingComment);\n } else {\n removeDelimitedText(parentNode, openingComment, closingComment);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,\n type: 'replace text',\n payload: stringText\n });\n }\n}\n\nvar dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;\nif (process.env.NODE_ENV !== 'production') {\n dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {\n Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);\n if (prevInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: prevInstance._debugID,\n type: 'replace with',\n payload: markup.toString()\n });\n } else {\n var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);\n if (nextInstance._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: nextInstance._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n };\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,\n\n replaceDelimitedText: replaceDelimitedText,\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 * @internal\n */\n processUpdates: function (parentNode, updates) {\n if (process.env.NODE_ENV !== 'production') {\n var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;\n }\n\n for (var k = 0; k < updates.length; k++) {\n var update = updates[k];\n switch (update.type) {\n case 'INSERT_MARKUP':\n insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'insert child',\n payload: { toIndex: update.toIndex, content: update.content.toString() }\n });\n }\n break;\n case 'MOVE_EXISTING':\n moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'move child',\n payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }\n });\n }\n break;\n case 'SET_MARKUP':\n setInnerHTML(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace children',\n payload: update.content.toString()\n });\n }\n break;\n case 'TEXT_CONTENT':\n setTextContent(parentNode, update.content);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'replace text',\n payload: update.content.toString()\n });\n }\n break;\n case 'REMOVE_NODE':\n removeChild(parentNode, update.fromNode);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: parentNodeDebugID,\n type: 'remove child',\n payload: { fromIndex: update.fromIndex }\n });\n }\n break;\n }\n }\n }\n\n};\n\nmodule.exports = DOMChildrenOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMChildrenOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg'\n};\n\nmodule.exports = DOMNamespaces;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMNamespaces.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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) : _prodInvariant('96', pluginName) : void 0;\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) : _prodInvariant('97', pluginName) : void 0;\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) : _prodInvariant('98', eventName, pluginName) : void 0;\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) : _prodInvariant('99', eventName) : void 0;\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) : _prodInvariant('100', registrationName) : void 0;\n EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n if (process.env.NODE_ENV !== 'production') {\n var lowerCasedName = registrationName.toLowerCase();\n EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;\n }\n }\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 * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in __DEV__.\n * @type {Object}\n */\n possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,\n // Trust the developer to only use possibleRegistrationNames in __DEV__\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.') : _prodInvariant('101') : void 0;\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) : _prodInvariant('102', pluginName) : void 0;\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 if (dispatchConfig.phasedRegistrationNames !== undefined) {\n // pulling phasedRegistrationNames out of dispatchConfig helps Flow see\n // that it is not undefined.\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n\n for (var phase in phasedRegistrationNames) {\n if (!phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];\n if (pluginModule) {\n return pluginModule;\n }\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 if (process.env.NODE_ENV !== 'production') {\n var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;\n for (var lowerCasedName in possibleRegistrationNames) {\n if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {\n delete possibleRegistrationNames[lowerCasedName];\n }\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EventPluginRegistry.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\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 * - `ComponentTree`: [required] Module that can convert between React instances\n * and actual node references.\n */\nvar ComponentTree;\nvar TreeTraversal;\nvar injection = {\n injectComponentTree: function (Injected) {\n ComponentTree = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n }\n },\n injectTreeTraversal: function (Injected) {\n TreeTraversal = Injected;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;\n }\n }\n};\n\nfunction isEndish(topLevelType) {\n return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';\n}\nfunction isStartish(topLevelType) {\n return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function (event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchInstances = event._dispatchInstances;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n var instancesIsArr = Array.isArray(dispatchInstances);\n var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;\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 {*} inst Internal component instance\n */\nfunction executeDispatch(event, simulated, listener, inst) {\n var type = event.type || 'unknown-event';\n event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event);\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 dispatchInstances = event._dispatchInstances;\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 Instances are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchInstances);\n }\n event._dispatchListeners = null;\n event._dispatchInstances = 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 dispatchInstances = event._dispatchInstances;\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 Instances are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchInstances[i])) {\n return dispatchInstances[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchInstances)) {\n return dispatchInstances;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchInstances = 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 dispatchInstance = event._dispatchInstances;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;\n event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;\n var res = dispatchListener ? dispatchListener(event) : null;\n event.currentTarget = null;\n event._dispatchListeners = null;\n event._dispatchInstances = 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 getInstanceFromNode: function (node) {\n return ComponentTree.getInstanceFromNode(node);\n },\n getNodeFromInstance: function (node) {\n return ComponentTree.getNodeFromInstance(node);\n },\n isAncestor: function (a, b) {\n return TreeTraversal.isAncestor(a, b);\n },\n getLowestCommonAncestor: function (a, b) {\n return TreeTraversal.getLowestCommonAncestor(a, b);\n },\n getParentInstance: function (inst) {\n return TreeTraversal.getParentInstance(inst);\n },\n traverseTwoPhase: function (target, fn, arg) {\n return TreeTraversal.traverseTwoPhase(target, fn, arg);\n },\n traverseEnterLeave: function (from, to, fn, argFrom, argTo) {\n return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EventPluginUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/KeyEscapeUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactPropTypesSecret = require('./ReactPropTypesSecret');\nvar propTypesFactory = require('prop-types/factory');\n\nvar React = require('react/lib/React');\nvar PropTypes = propTypesFactory(React.isValidElement);\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.') : _prodInvariant('87') : void 0;\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.') : _prodInvariant('88') : void 0;\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') : _prodInvariant('89') : void 0;\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: PropTypes.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, 'prop', null, ReactPropTypesSecret);\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) : void 0;\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-dom/lib/LinkedValueUtils.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkup: 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.') : _prodInvariant('104') : void 0;\n ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactComponentEnvironment.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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) {\n try {\n func(a);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\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 document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {\n var boundFunc = func.bind(null, a);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactErrorUtils.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction formatUnexpectedArgument(arg) {\n var type = typeof arg;\n if (type !== 'object') {\n return type;\n }\n var displayName = arg.constructor && arg.constructor.name || type;\n var keys = Object.keys(arg);\n if (keys.length > 0 && keys.length < 20) {\n return displayName + ' (keys: ' + keys.join(', ') + ')';\n }\n return displayName;\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var ctor = publicInstance.constructor;\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, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;\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` or another component\\'s constructor). Render methods ' + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;\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') : void 0;\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 * @param {string} callerName Name of the calling function in the public API.\n * @internal\n */\n enqueueCallback: function (publicInstance, callback, callerName) {\n ReactUpdateQueue.validateCallback(callback, callerName);\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 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, callback) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n // Future-proof 15.5\n if (callback !== undefined && callback !== null) {\n ReactUpdateQueue.validateCallback(callback, 'replaceState');\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n }\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 if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetState();\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;\n }\n\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 enqueueElementInternal: function (internalInstance, nextElement, nextContext) {\n internalInstance._pendingElement = nextElement;\n // TODO: introduce _pendingContext instead of setting it directly.\n internalInstance._context = nextContext;\n enqueueUpdate(internalInstance);\n },\n\n validateCallback: function (callback, callerName) {\n !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactUpdateQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals MSApp */\n\n'use strict';\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\n\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nmodule.exports = createMicrosoftUnsafeLocalFunction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/createMicrosoftUnsafeLocalFunction.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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-dom/lib/getEventCharCode.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getEventModifierState.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n // Normalize SVG <use> element events #4963\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n }\n\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-dom/lib/getEventTarget.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/isEventSupported.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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}\n\nmodule.exports = shouldUpdateReactComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/shouldUpdateReactComponent.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\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 current: 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.current = 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 case '#document':\n return tag === 'html';\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 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'html':\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 case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\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 do {\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, childText, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n childTag = '#text';\n }\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 var tagDisplayName = childTag;\n var whitespaceInfo = '';\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = ' Make sure you don\\'t have any extra whitespace between tags on ' + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\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>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;\n }\n }\n };\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\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-dom/lib/validateDOMNesting.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\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.') : _prodInvariant('85') : void 0;\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback, 'setState');\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, 'forceUpdate');\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 isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n var defineDeprecationWarning = function (methodName, info) {\n if (canDefineProperty) {\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]) : void 0;\n return undefined;\n }\n });\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 * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\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, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\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 warnNoop(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 warnNoop(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 warnNoop(publicInstance, 'setState');\n }\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactNoopUpdateQueue.js","var expression = {\n factories:[],\n canParse: function(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = this.factories.length-1;\n for(;i>=0;i--) {\n if(this.factories[i].canCreate(trimmed) === true){\n return true;\n }\n }\n return false;\n },\n parse: function(string) {\n var trimmed = string.replace(/^\\s+|\\s+$/, '');\n var i = 0, l = this.factories.length, factory;\n\n for(;i<l;i++) {\n factory = this.factories[i];\n\n if(factory.canCreate(trimmed) == true){\n return factory.create(trimmed);\n }\n }\n\n return null;\n },\n parseOperand: function(input) {\n return new Operand(input);\n },\n createOperand: function(number, kind) {\n return Operand.create(number, kind);\n },\n addFactory: function(factory) {\n this.factories.push(factory);\n }\n };\n\n // List of numbers\n expression.addFactory({\n regex: /^(-?(?:\\d+|0x[\\d,a-f]+)\\s?)+$/,\n canCreate: function(string) {\n return this.regex.test(string);\n },\n create: function (string) {\n var matches = this.regex.exec(string),\n numbers = [],\n input = matches.input;\n\n input.split(' ').forEach(function(n){\n if(n.trim().length > 0) {\n numbers.push(new Operand(n.trim()));\n }\n });\n\n return new ListOfNumbersExpression(input, numbers);\n }\n });\n\n // Not Expression\n expression.addFactory({\n regex: /^(~)(-?(?:\\d+|0x[\\d,a-f]+))$/,\n canCreate: function(string) {\n return this.regex.test(string);\n },\n create: function (string) {\n var matches = this.regex.exec(string),\n operand = new Operand(matches[2]);\n\n return new SingleOperandExpression(matches.input, operand, matches[1]);\n }\n });\n\n // Multiple operands expression\n expression.addFactory({\n fullRegex: /^((<<|>>|>>>|\\||\\&|\\^)?(-?((?:\\d+(?!x))|(?:0x[\\d,a-f]+))))+$/,\n regex: /(<<|>>|>>>|\\||\\&|\\^)?(-?((?:\\d+(?!x))|(?:0x[\\d,a-f]+)))/g,\n canCreate: function(string) {\n this.fullRegex.lastIndex = 0;\n return this.fullRegex.test(this.normalizeString(string));\n },\n create: function (string) {\n var m, operands = [],\n normalizedString = this.normalizeString(string);\n\n while ((m = this.regex.exec(normalizedString)) != null) {\n operands.push(this.parseMatch(m));\n }\n\n return new MultipleOperandsExpression(normalizedString, operands)\n },\n parseMatch: function (m) {\n var input = m[0],\n sign = m[1],\n num = m[2];\n\n if(sign == null) {\n return new Operand(num);\n } else {\n return new SingleOperandExpression(input, new Operand(num), sign);\n }\n },\n normalizeString: function (string) {\n return string.replace(/\\s+/g,'');\n }\n });\n\n\n// Represents numeric value\nexport class Operand {\n constructor(input) {\n this.input = input;\n this.value = parseInt(input);\n this.hex = Operand.toHexString(this.value.toString(16));\n this.dec = this.value.toString(10);\n // >>> 0 makes negative numbers like -1 to be displayed as '11111111111111111111111111111111' in binary instead of -1\n this.bin = this.value < 0 ? (this.value >>> 0).toString(2) : this.value.toString(2);\n this.kind = this.input.indexOf('0x') > -1 ? 'hex' : 'dec';\n this.other = this.kind == 'dec' ? this.hex : this.dec;\n this.lengthInBits = Operand.getBitLength(this.value);\n }\n \n getLengthInBits() {\n if(this.value < 0) {\n return 32;\n }\n return Math.floor(Math.log(this.value) / Math.log(2)) + 1;\n };\n\n getOtherKind(kind) {\n switch(kind || this.kind) {\n case 'dec': return 'hex';\n case 'hex': return 'dec';\n default : throw new Error(kind + \" kind doesn't have opposite kind\")\n }\n };\n\n toString() {\n return this.input;\n }\n\n setValue(value) {\n console.log('Before ' + value, this);\n this.value = value;\n this.bin = Operand.toKindString(this.value, 'bin');\n this.dec = Operand.toKindString(this.value, 'dec');\n this.hex = Operand.toKindString(this.value, 'hex');\n this.other = Operand.toKindString(this.value, this.getOtherKind());\n this.input = Operand.toKindString(this.value, this.kind);\n console.log('After ' + value, this);\n }\n \n static getBitLength(num) {\n return Math.floor(Math.log(num) / Math.log(2)) + 1\n } \n \n static getBase(kind){\n switch (kind){\n case 'bin': return 2;\n case 'hex': return 16;\n case 'dec': return 10;\n }\n };\n\n static create(number, kind) {\n var str = number.toString(Operand.getBase(kind));\n if(kind == 'hex') {\n str = Operand.toHexString(str);\n }\n\n return new Operand(str);\n };\n\n static toKindString(value, kind) {\n switch(kind) {\n case 'hex':\n var hexVal = Math.abs(value).toString(16);\n return value >= 0 ? '0x' + hexVal : '-0x' + hexVal;\n case 'bin':\n return (value>>>0).toString(2);\n case 'dec':\n return value.toString(10);\n default:\n throw new Error(\"Unexpected kind: \" + kind)\n }\n };\n\n static toHexString (hex) {\n return hex.indexOf('-') == 0 ? '-0x' + hex.substr(1) : '0x' + hex;\n };\n}\n\n// Expressions like ~1\nexport class SingleOperandExpression {\n constructor(expressionString, operand, sign) {\n this.expressionString = expressionString;\n this.operand1 = operand;\n this.sign = sign;\n }\n \n apply(value) {\n var str = '';\n if(this.sign == '~'){\n str = '~' + this.operand1.value;\n } else {\n str = value + this.sign + this.operand1.value\n }\n\n return Operand.create(eval(str), this.operand1.kind);\n };\n\n isShiftExpression() {\n return this.sign.indexOf('<') >= 0 || this.sign.indexOf('>')>= 0;\n };\n\n toString() {\n return this.sign + this.operand1.toString();\n }\n}\n\n// Expression like 1|2 or 4^5\nexport class TwoOperandExpression {\n constructor(expressionString, operand1, operand2, sign) {\n this.expressionString = expressionString;\n this.operand1 = operand1;\n this.operand2 = operand2;\n this.sign = sign;\n }\n}\n\nexport class MultipleOperandsExpression {\n constructor(expressionString, expressions) {\n this.expressionString = expressionString;\n this.expressions = expressions;\n }\n}\n\nexport class ListOfNumbersExpression {\n constructor(expressionString, numbers) {\n this.expressionString = expressionString;\n this.numbers = numbers;\n this.maxBitsLegnth = numbers.map(n => n.lengthInBits).reduce((n , c) => n >= c ? n : c, 0);\n }\n\n toString() {\n return this.numbers.map(n => n.value.toString()).join(' ');\n }\n}\n\nexport class Expression {\n toString() {\n return this.expressionString ? \"Expression: \" + this.expressionString : this.toString();\n };\n}\n \nexport var parser = expression;\n\n\nexport class Parser {\n constructor(input, pos) {\n this.input = input;\n this.pos = pos || 0;\n this.buffer = [];\n }\n\n parse() {\n console.log(this.input.length);\n while(this.pos<this.input.length) {\n this.buffer.push(this.input[this.pos]);\n this.pos++;\n }\n console.log('exit');\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/expression.js","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n var noop = function() {};\n var undefinedType = \"undefined\";\n\n function realMethod(methodName) {\n if (typeof console === undefinedType) {\n return false; // We can't build a real method without a console to log to\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // these private functions always need `this` to be set properly\n\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n }\n\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n var storageKey = \"loglevel\";\n if (name) {\n storageKey += \":\" + name;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n /*\n *\n * Public API\n *\n */\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Package-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n return defaultLogger;\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./~/loglevel/lib/loglevel.js","import is from './is';\n \n var handlers = [];\n\nvar config = {\n errorHandler: (input, err) => logError(err)\n}\n\nvar cmd = {\n debugMode: false,\n execute: function(rawInput) {\n var input = rawInput.trim().toLowerCase();\n var handler = findHandler(input);\n\n if(handler != null) {\n if(this.debugMode) {\n invokeHandler(input, handler);\n } else {\n try {\n invokeHandler(input, handler);\n } catch (e) {\n config.errorHandler(input, e);\n }\n }\n }\n else {\n logError(input, new Error(\"Unsupported expression: \" + input.trim()));\n }\n },\n commands: function(catalog) {\n for(var key in catalog) {\n if(catalog.hasOwnProperty(key)) {\n this.command(key, catalog[key]);\n }\n }\n },\n command: function(cmd, handler) {\n var h = createHandler(cmd, handler);\n if(h == null){\n console.warn('unexpected set of arguments: ', Array.prototype.splice.call(arguments));\n return;\n }\n\n if(!is.aFunction(h.canHandle)) {\n console.warn('handler is missing \"canHandle\" function. registration denied.');\n return;\n }\n\n if(!is.aFunction(h.handle)) {\n console.warn('handler is missing \"handle\" function. registration denied.');\n return;\n }\n\n handlers.push(h);\n },\n clear: function() {\n console.log('clear');\n },\n onError: function(handler) {\n config.errorHandler = handler;\n }\n };\n\n function logError(err) {\n console.error(err)\n }\n\n function invokeHandler (input, handler) {\n var cmdResult = handler.handle({ input: input});\n if(cmdResult != null) {\n console.log(cmdResult);\n }\n }\n\n function createHandler (cmd, handler) {\n if(is.plainObject(cmd)) {\n return cmd;\n }\n\n if(is.string(cmd)) {\n return { canHandle: function (input) { return input === cmd; }, handle: handler };\n }\n\n return null;\n }\n\n function findHandler (input) {\n var i= 0;\n for(i;i<handlers.length; i++) {\n if(handlers[i].canHandle(input)) {\n return handlers[i];\n }\n }\n };\n\nexport default cmd;\n\n\n// WEBPACK FOOTER //\n// ./src/app/cmd.js","import React from 'react';\nimport cmd from '../cmd';\n\nexport default class InputBox extends React.Component {\n constructor() {\n super();\n this.history = [];\n this.historyIndex = -1;\n }\n\n componentDidMount(){\n this.nameInput.focus();\n }\n\n render() {\n return <input id=\"in\" type=\"text\"\n ref={(input) => { this.nameInput = input; }} \n onKeyUp={e => this.onKeyUp(e)}\n onKeyDown={e => this.onKeyDown(e)}\n className=\"expressionInput mono\"\n placeholder=\"type expression like '1>>2' or 'help' \"/>;\n }\n\n onKeyUp(e) {\n var input = e.target;\n if (e.keyCode != 13 || input.value.trim().length == 0) {\n return;\n }\n\n var value = input.value;\n this.history.unshift(value);\n this.historyIndex = -1;\n\n input.value = ''; \n cmd.execute(value);\n console.log(this.history);\n }\n\n onKeyDown(args) {\n\n if(args.keyCode == 38) {\n var newIndex = this.historyIndex+1;\n\n if (this.history.length > newIndex) { // up\n args.target.value = this.history[newIndex];\n this.historyIndex = newIndex;\n }\n\n args.preventDefault();\n return;\n }\n\n if(args.keyCode == 40) {\n if(this.historyIndex > 0) { // down\n args.target.value = this.history[--this.historyIndex];\n }\n\n args.preventDefault();\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/InputBox.jsx","'use strict';\n\n/**\n * Copyright (c) 2013-present, 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 * @typechecks\n */\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 listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\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 capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\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 registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/EventListener.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\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// ./~/fbjs/lib/focusNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\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\n * yet defined.\n *\n * @param {?DOMDocument} doc Defaults to current document.\n * @return {?DOMElement}\n */\nfunction getActiveElement(doc) /*?DOMElement*/{\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nmodule.exports = getActiveElement;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/getActiveElement.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\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// ./~/process/browser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n// React 15.5 references this module, and assumes PropTypes are still callable in production.\n// Therefore we re-export development-only version with all the PropTypes checks here.\n// However if one is migrating to the `prop-types` npm library, they will go through the\n// `index.js` entry point, and it will branch depending on the environment.\nvar factory = require('./factoryWithTypeCheckers');\nmodule.exports = function(isValidElement) {\n // It is still allowed in 15.5.\n var throwOnDirectAccess = false;\n return factory(isValidElement, throwOnDirectAccess);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/factory.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: 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 gridRow: true,\n gridColumn: 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 floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: 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-dom/lib/CSSProperty.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PooledClass = require('./PooledClass');\n\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 */\n\nvar CallbackQueue = function () {\n function CallbackQueue(arg) {\n _classCallCheck(this, CallbackQueue);\n\n this._callbacks = null;\n this._contexts = null;\n this._arg = arg;\n }\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\n\n CallbackQueue.prototype.enqueue = function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._callbacks.push(callback);\n this._contexts = this._contexts || [];\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\n\n CallbackQueue.prototype.notifyAll = function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n var arg = this._arg;\n if (callbacks && contexts) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i], arg);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n };\n\n CallbackQueue.prototype.checkpoint = function checkpoint() {\n return this._callbacks ? this._callbacks.length : 0;\n };\n\n CallbackQueue.prototype.rollback = function rollback(len) {\n if (this._callbacks && this._contexts) {\n this._callbacks.length = len;\n this._contexts.length = len;\n }\n };\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n\n\n CallbackQueue.prototype.reset = function reset() {\n this._callbacks = null;\n this._contexts = null;\n };\n\n /**\n * `PooledClass` looks for this.\n */\n\n\n CallbackQueue.prototype.destructor = function destructor() {\n this.reset();\n };\n\n return CallbackQueue;\n}();\n\nmodule.exports = PooledClass.addPoolingTo(CallbackQueue);\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/CallbackQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');\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) : void 0;\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\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 createMarkupForRoot: function () {\n return DOMProperty.ROOT_ATTRIBUTE_NAME + '=\"\"';\n },\n\n setAttributeForRoot: function (node) {\n node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');\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 }\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 return;\n } else if (propertyInfo.mustUseProperty) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyInfo.propertyName] = value;\n } else {\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 }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\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 if (process.env.NODE_ENV !== 'production') {\n var payload = {};\n payload[name] = value;\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'update attribute',\n payload: payload\n });\n }\n },\n\n /**\n * Deletes an attributes from a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForAttribute: function (node, name) {\n node.removeAttribute(name);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\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.mustUseProperty) {\n var propName = propertyInfo.propertyName;\n if (propertyInfo.hasBooleanValue) {\n node[propName] = false;\n } else {\n node[propName] = '';\n }\n } else {\n node.removeAttribute(propertyInfo.attributeName);\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,\n type: 'remove attribute',\n payload: name\n });\n }\n }\n\n};\n\nmodule.exports = DOMPropertyOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DOMPropertyOperations.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentFlags = {\n hasCachedChildNodes: 1 << 0\n};\n\nmodule.exports = ReactDOMComponentFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponentFlags.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValueDefaultValue = false;\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, Boolean(props.multiple), 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 if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n var isArray = Array.isArray(props[propName]);\n if (props.multiple && !isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\n } else if (!props.multiple && isArray) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;\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 = ReactDOMComponentTree.getNodeFromInstance(inst).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> host 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 getHostProps: function (inst, props) {\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 listeners: null,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValueDefaultValue = true;\n }\n },\n\n getSelectValueContext: function (inst) {\n // ReactDOMOption looks at this initial value so the initial generated\n // markup has correct `selected` attributes\n return inst._wrapperState.initialValue;\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 // this 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 if (this._rootNodeID) {\n this._wrapperState.pendingUpdate = true;\n }\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMSelect.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyComponentFactory;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponentFactory: function (factory) {\n emptyComponentFactory = factory;\n }\n};\n\nvar ReactEmptyComponent = {\n create: function (instantiate) {\n return emptyComponentFactory(instantiate);\n }\n};\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactEmptyComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactFeatureFlags = {\n // When true, call console.time() before and .timeEnd() after each top-level\n // render (both initial renders and updates). Useful when looking at prod-mode\n // timeline profiles in Chrome, for example.\n logTopLevelRenders: false\n};\n\nmodule.exports = ReactFeatureFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactFeatureFlags.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar genericComponentClass = null;\nvar textComponentClass = null;\n\nvar ReactHostComponentInjection = {\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};\n\n/**\n * Get a host 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) : _prodInvariant('111', element.type) : void 0;\n return new genericComponentClass(element);\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 ReactHostComponent = {\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactHostComponentInjection\n};\n\nmodule.exports = ReactHostComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactHostComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 (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-dom/lib/ReactInputSelection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMProperty = require('./DOMProperty');\nvar React = require('react/lib/React');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMContainerInfo = require('./ReactDOMContainerInfo');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactFeatureFlags = require('./ReactFeatureFlags');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar instancesByReactRootID = {};\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\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.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\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(wrapperInstance, container, transaction, shouldReuseMarkup, context) {\n var markerName;\n if (ReactFeatureFlags.logTopLevelRenders) {\n var wrappedElement = wrapperInstance._currentElement.props.child;\n var type = wrappedElement.type;\n markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);\n console.time(markerName);\n }\n\n var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */\n );\n\n if (markerName) {\n console.timeEnd(markerName);\n }\n\n wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;\n ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* useCreateElement */\n !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);\n transaction.perform(mountComponentIntoNode, null, componentInstance, 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, safely) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginFlush();\n }\n ReactReconciler.unmountComponent(instance, safely);\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onEndFlush();\n }\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(container) {\n var rootEl = getReactRootElementInContainer(container);\n if (rootEl) {\n var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return !!(inst && inst._hostParent);\n }\n}\n\n/**\n * True if the supplied DOM node is a React DOM element and\n * it has been rendered by another copy of React.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM has been rendered by another copy of React\n * @internal\n */\nfunction nodeIsRenderedByOtherInstance(container) {\n var rootEl = getReactRootElementInContainer(container);\n return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));\n}\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));\n}\n\n/**\n * True if the supplied DOM node is a valid React node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid React DOM node.\n * @internal\n */\nfunction isReactNode(node) {\n return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));\n}\n\nfunction getHostRootInstanceInContainer(container) {\n var rootEl = getReactRootElementInContainer(container);\n var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);\n return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;\n}\n\nfunction getTopLevelWrapperInContainer(container) {\n var root = getHostRootInstanceInContainer(container);\n return root ? root._hostContainerInfo._topLevelWrapper : 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 topLevelRootCounter = 1;\nvar TopLevelWrapper = function () {\n this.rootID = topLevelRootCounter++;\n};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n return this.props.child;\n};\nTopLevelWrapper.isReactTopLevelWrapper = true;\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 /**\n * Used by devtools. The keys are not important.\n */\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, nextContext, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n return prevComponent;\n },\n\n /**\n * Render a new component into the DOM. Hooked by hooks!\n *\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') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n var componentInstance = instantiateReactComponent(nextElement, false);\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, container, shouldReuseMarkup, context);\n\n var wrapperID = componentInstance._instance.rootID;\n instancesByReactRootID[wrapperID] = componentInstance;\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 && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');\n !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' :\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.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? ' Instead of passing a string like \\'div\\', pass ' + 'React.createElement(\\'div\\') or <div />.' : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;\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.') : void 0;\n\n var nextWrappedElement = React.createElement(TopLevelWrapper, { child: nextElement });\n\n var nextContext;\n if (parentComponent) {\n var parentInst = ReactInstanceMap.get(parentComponent);\n nextContext = parentInst._processChildContext(parentInst._context);\n } else {\n nextContext = emptyObject;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props.child;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);\n return publicInst;\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.') : void 0;\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.') : void 0;\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, nextContext)._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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render\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 * Unmounts and destroys the React component rendered in the `container`.\n * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode\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') : void 0;\n\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by another copy of React.') : void 0;\n }\n\n var prevComponent = getTopLevelWrapperInContainer(container);\n if (!prevComponent) {\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 isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);\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.') : void 0;\n }\n\n return false;\n }\n delete instancesByReactRootID[prevComponent._instance.rootID];\n ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);\n return true;\n },\n\n _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {\n !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n ReactDOMComponentTree.precacheNode(instance, 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) : _prodInvariant('42', difference) : void 0;\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) : void 0;\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.') : _prodInvariant('43') : void 0;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n DOMLazyTree.insertTreeBefore(container, markup, null);\n } else {\n setInnerHTML(container, markup);\n ReactDOMComponentTree.precacheNode(instance, container.firstChild);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);\n if (hostNode._debugID !== 0) {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: hostNode._debugID,\n type: 'mount',\n payload: markup.toString()\n });\n }\n }\n }\n};\n\nmodule.exports = ReactMount;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactMount.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar React = require('react/lib/React');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar ReactNodeTypes = {\n HOST: 0,\n COMPOSITE: 1,\n EMPTY: 2,\n\n getType: function (node) {\n if (node === null || node === false) {\n return ReactNodeTypes.EMPTY;\n } else if (React.isValidElement(node)) {\n if (typeof node.type === 'function') {\n return ReactNodeTypes.COMPOSITE;\n } else {\n return ReactNodeTypes.HOST;\n }\n }\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;\n }\n};\n\nmodule.exports = ReactNodeTypes;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactNodeTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/ViewportMetrics.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\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.') : _prodInvariant('30') : void 0;\n\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 if (Array.isArray(current)) {\n if (Array.isArray(next)) {\n current.push.apply(current, next);\n return current;\n }\n current.push(next);\n return current;\n }\n\n if (Array.isArray(next)) {\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-dom/lib/accumulateInto.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 */\n\nfunction forEachAccumulated(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-dom/lib/forEachAccumulated.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactNodeTypes = require('./ReactNodeTypes');\n\nfunction getHostComponentFromComposite(inst) {\n var type;\n\n while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {\n inst = inst._renderedComponent;\n }\n\n if (type === ReactNodeTypes.HOST) {\n return inst._renderedComponent;\n } else if (type === ReactNodeTypes.EMPTY) {\n return null;\n }\n}\n\nmodule.exports = getHostComponentFromComposite;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/getHostComponentFromComposite.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getTextContentAccessor.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactHostComponent = require('./ReactHostComponent');\n\nvar getNextDebugID = require('react/lib/getNextDebugID');\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 (element) {\n this.construct(element);\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 * @param {boolean} shouldHaveDebugID\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node, shouldHaveDebugID) {\n var instance;\n\n if (node === null || node === false) {\n instance = ReactEmptyComponent.create(instantiateReactComponent);\n } else if (typeof node === 'object') {\n var element = node;\n var type = element.type;\n if (typeof type !== 'function' && typeof type !== 'string') {\n var info = '';\n if (process.env.NODE_ENV !== 'production') {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + 'it\\'s defined in.';\n }\n }\n info += getDeclarationErrorAddendum(element._owner);\n !false ? 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', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0;\n }\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactHostComponent.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\n // We renamed this. Allow the old name for compat. :(\n if (!instance.getHostNode) {\n instance.getHostNode = instance.getNativeNode;\n }\n } else {\n instance = new ReactCompositeComponentWrapper(element);\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactHostComponent.createInstanceForText(node);\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;\n }\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._debugID = shouldHaveDebugID ? getNextDebugID() : 0;\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\n_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nmodule.exports = instantiateReactComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/instantiateReactComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 */\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\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isTextInputElement;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/isTextInputElement.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function (node, text) {\n if (node.nodeType === 3) {\n node.nodeValue = text;\n return;\n }\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/setTextContent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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-dom/lib/traverseAllChildren.js","/**\n * Copyright 2016-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction isNative(fn) {\n // Based on isNative() from Lodash\n var funcToString = Function.prototype.toString;\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n var reIsNative = RegExp('^' + funcToString\n // Take an example native function source for comparison\n .call(hasOwnProperty)\n // Strip regex characters so we can use it for regex\n .replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n // Remove hasOwnProperty from the template to make it generic\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n try {\n var source = funcToString.call(fn);\n return reIsNative.test(source);\n } catch (err) {\n return false;\n }\n}\n\nvar canUseCollections =\n// Array.from\ntypeof Array.from === 'function' &&\n// Map\ntypeof Map === 'function' && isNative(Map) &&\n// Map.prototype.keys\nMap.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&\n// Set\ntypeof Set === 'function' && isNative(Set) &&\n// Set.prototype.keys\nSet.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);\n\nvar setItem;\nvar getItem;\nvar removeItem;\nvar getItemIDs;\nvar addRoot;\nvar removeRoot;\nvar getRootIDs;\n\nif (canUseCollections) {\n var itemMap = new Map();\n var rootIDSet = new Set();\n\n setItem = function (id, item) {\n itemMap.set(id, item);\n };\n getItem = function (id) {\n return itemMap.get(id);\n };\n removeItem = function (id) {\n itemMap['delete'](id);\n };\n getItemIDs = function () {\n return Array.from(itemMap.keys());\n };\n\n addRoot = function (id) {\n rootIDSet.add(id);\n };\n removeRoot = function (id) {\n rootIDSet['delete'](id);\n };\n getRootIDs = function () {\n return Array.from(rootIDSet.keys());\n };\n} else {\n var itemByKey = {};\n var rootByKey = {};\n\n // Use non-numeric keys to prevent V8 performance issues:\n // https://github.com/facebook/react/pull/7232\n var getKeyFromID = function (id) {\n return '.' + id;\n };\n var getIDFromKey = function (key) {\n return parseInt(key.substr(1), 10);\n };\n\n setItem = function (id, item) {\n var key = getKeyFromID(id);\n itemByKey[key] = item;\n };\n getItem = function (id) {\n var key = getKeyFromID(id);\n return itemByKey[key];\n };\n removeItem = function (id) {\n var key = getKeyFromID(id);\n delete itemByKey[key];\n };\n getItemIDs = function () {\n return Object.keys(itemByKey).map(getIDFromKey);\n };\n\n addRoot = function (id) {\n var key = getKeyFromID(id);\n rootByKey[key] = true;\n };\n removeRoot = function (id) {\n var key = getKeyFromID(id);\n delete rootByKey[key];\n };\n getRootIDs = function () {\n return Object.keys(rootByKey).map(getIDFromKey);\n };\n}\n\nvar unmountedIDs = [];\n\nfunction purgeDeep(id) {\n var item = getItem(id);\n if (item) {\n var childIDs = item.childIDs;\n\n removeItem(id);\n childIDs.forEach(purgeDeep);\n }\n}\n\nfunction describeComponentFrame(name, source, ownerName) {\n return '\\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');\n}\n\nfunction getDisplayName(element) {\n if (element == null) {\n return '#empty';\n } else if (typeof element === 'string' || typeof element === 'number') {\n return '#text';\n } else if (typeof element.type === 'string') {\n return element.type;\n } else {\n return element.type.displayName || element.type.name || 'Unknown';\n }\n}\n\nfunction describeID(id) {\n var name = ReactComponentTreeHook.getDisplayName(id);\n var element = ReactComponentTreeHook.getElement(id);\n var ownerID = ReactComponentTreeHook.getOwnerID(id);\n var ownerName;\n if (ownerID) {\n ownerName = ReactComponentTreeHook.getDisplayName(ownerID);\n }\n process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;\n return describeComponentFrame(name, element && element._source, ownerName);\n}\n\nvar ReactComponentTreeHook = {\n onSetChildren: function (id, nextChildIDs) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.childIDs = nextChildIDs;\n\n for (var i = 0; i < nextChildIDs.length; i++) {\n var nextChildID = nextChildIDs[i];\n var nextChild = getItem(nextChildID);\n !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;\n !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;\n !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;\n if (nextChild.parentID == null) {\n nextChild.parentID = id;\n // TODO: This shouldn't be necessary but mounting a new root during in\n // componentWillMount currently causes not-yet-mounted components to\n // be purged from our tree data so their parent id is missing.\n }\n !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;\n }\n },\n onBeforeMountComponent: function (id, element, parentID) {\n var item = {\n element: element,\n parentID: parentID,\n text: null,\n childIDs: [],\n isMounted: false,\n updateCount: 0\n };\n setItem(id, item);\n },\n onBeforeUpdateComponent: function (id, element) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.element = element;\n },\n onMountComponent: function (id) {\n var item = getItem(id);\n !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;\n item.isMounted = true;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n addRoot(id);\n }\n },\n onUpdateComponent: function (id) {\n var item = getItem(id);\n if (!item || !item.isMounted) {\n // We may end up here as a result of setState() in componentWillUnmount().\n // In this case, ignore the element.\n return;\n }\n item.updateCount++;\n },\n onUnmountComponent: function (id) {\n var item = getItem(id);\n if (item) {\n // We need to check if it exists.\n // `item` might not exist if it is inside an error boundary, and a sibling\n // error boundary child threw while mounting. Then this instance never\n // got a chance to mount, but it still gets an unmounting event during\n // the error boundary cleanup.\n item.isMounted = false;\n var isRoot = item.parentID === 0;\n if (isRoot) {\n removeRoot(id);\n }\n }\n unmountedIDs.push(id);\n },\n purgeUnmountedComponents: function () {\n if (ReactComponentTreeHook._preventPurging) {\n // Should only be used for testing.\n return;\n }\n\n for (var i = 0; i < unmountedIDs.length; i++) {\n var id = unmountedIDs[i];\n purgeDeep(id);\n }\n unmountedIDs.length = 0;\n },\n isMounted: function (id) {\n var item = getItem(id);\n return item ? item.isMounted : false;\n },\n getCurrentStackAddendum: function (topElement) {\n var info = '';\n if (topElement) {\n var name = getDisplayName(topElement);\n var owner = topElement._owner;\n info += describeComponentFrame(name, topElement._source, owner && owner.getName());\n }\n\n var currentOwner = ReactCurrentOwner.current;\n var id = currentOwner && currentOwner._debugID;\n\n info += ReactComponentTreeHook.getStackAddendumByID(id);\n return info;\n },\n getStackAddendumByID: function (id) {\n var info = '';\n while (id) {\n info += describeID(id);\n id = ReactComponentTreeHook.getParentID(id);\n }\n return info;\n },\n getChildIDs: function (id) {\n var item = getItem(id);\n return item ? item.childIDs : [];\n },\n getDisplayName: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element) {\n return null;\n }\n return getDisplayName(element);\n },\n getElement: function (id) {\n var item = getItem(id);\n return item ? item.element : null;\n },\n getOwnerID: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (!element || !element._owner) {\n return null;\n }\n return element._owner._debugID;\n },\n getParentID: function (id) {\n var item = getItem(id);\n return item ? item.parentID : null;\n },\n getSource: function (id) {\n var item = getItem(id);\n var element = item ? item.element : null;\n var source = element != null ? element._source : null;\n return source;\n },\n getText: function (id) {\n var element = ReactComponentTreeHook.getElement(id);\n if (typeof element === 'string') {\n return element;\n } else if (typeof element === 'number') {\n return '' + element;\n } else {\n return null;\n }\n },\n getUpdateCount: function (id) {\n var item = getItem(id);\n return item ? item.updateCount : 0;\n },\n\n\n getRootIDs: getRootIDs,\n getRegisteredIDs: getItemIDs\n};\n\nmodule.exports = ReactComponentTreeHook;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactComponentTreeHook.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactElementSymbol.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n // $FlowFixMe https://github.com/facebook/flow/issues/285\n Object.defineProperty({}, 'x', { get: function () {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/canDefineProperty.js","import React from 'react';\n\nexport default class BinaryStringView extends React.Component {\n render() {\n return <span>{this.getChildren()}</span>\n }\n\n onBitClick(index, e) {\n if(!this.props.allowFlipBits) {\n return;\n }\n\n if(this.props.onFlipBit) {\n this.props.onFlipBit(index);\n }\n }\n\n getChildren() {\n var bits = this.createBits(this.props.binaryString.split(''));\n \n if(this.props.emphasizeBytes) {\n return this.splitIntoBytes(bits);\n }\n\n return bits;\n }\n\n createBits(bitChars) {\n const allowFlipBits = this.props.allowFlipBits || false;\n const css = allowFlipBits ? ' flipable' : ''\n const classNames = { '0': `zero${css}`, '1' : `one ${css}` };\n \n return bitChars.map((c, i) => <span className={classNames[c]} key={i} onClick={e => this.onBitClick(i, e)}>{c}</span>);\n }\n\n splitIntoBytes(bits) {\n const bytes = [];\n\n var key = 0;\n while(bits.length > 0) {\n bytes.push(<span key={key++} className=\"byte\">{bits.splice(0, 8)}</span>);\n }\n \n return bytes;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/BinaryStringView.jsx","export default class BitwiseExpressionViewModel {\n\n constructor({ emphasizeBytes = false } = {}) {\n this.emphasizeBytes = emphasizeBytes;\n this.items = [];\n this.maxNumberOfBits = 0;\n }\n\n static buildMultiple (expr, config) {\n\n var op = expr.expressions[0],\n i = 1, l = expr.expressions.length,\n ex, m = new BitwiseExpressionViewModel(config);\n\n m.addOperand(op);\n\n for (;i<l;i++) {\n ex = expr.expressions[i];\n op = ex.apply(op.value);\n\n if(ex.isShiftExpression()){\n m.addShiftExpressionResult(ex, op);\n } else {\n m.addExpression(ex);\n m.addExpressionResult(op);\n }\n }\n\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n };\n\n static buildNot (expression, config) {\n \n var m = new BitwiseExpressionViewModel(config);\n m.addExpression(expression);\n m.addExpressionResult(expression.apply());\n m.maxNumberOfBits = BitwiseExpressionViewModel.getNumberOfBits(m.maxNumberOfBits, m.emphasizeBytes);\n return m;\n };\n\n addOperand(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign:'', label: operand.toString(), bin: operand.bin, other: operand.other, css: ''});\n };\n\n addExpression(expression) {\n this.maxNumberOfBits = Math.max(expression.operand1.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign: expression.sign, label: expression.operand1.toString(), bin: expression.operand1.bin, other: expression.operand1.other, css: ''});\n };\n\n addShiftExpressionResult(expression, resultOperand) {\n this.maxNumberOfBits = Math.max(resultOperand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({\n sign: expression.sign + expression.operand1.input,\n label: resultOperand.toString(),\n bin: resultOperand.bin,\n other: resultOperand.other,\n css: 'expression-result'});\n };\n\n addExpressionResult(operand) {\n this.maxNumberOfBits = Math.max(operand.getLengthInBits(), this.maxNumberOfBits);\n this.items.push({ sign:'=', label: operand.toString(), bin: operand.bin, other: operand.other, css: 'expression-result'});\n };\n\n // TODO: move this method elsewhere. It is also used in LisOfNumbersExpressionView.js\n static getNumberOfBits = function (bits, emphasizeBytes) {\n if(emphasizeBytes && bits % 8 != 0) {\n if(bits < 8) {\n return 8;\n }\n\n var n = bits - (bits % 8);\n return n + 8;\n }\n\n return bits;\n };\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/models/BitwiseExpressionViewModel.js","export default {\n formatString: function(num, kind) {\n return num.toString(getBase(kind || \"bin\"));\n },\n padLeft: function (str, length, symbol) {\n var sb = Array.prototype.slice.call(str), symbol = symbol || \"0\";\n\n if(length == null) {\n return str;\n }\n\n while(length > sb.length) {\n sb.unshift(symbol);\n }\n\n return sb.join('');\n }\n };\n\n function getBase(kind) {\n switch (kind){\n case 'bin': return 2;\n case 'hex': return 16;\n case 'dec': return 10;\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/app/formatter.js","import CommandResult from './CommandResult';\n\nexport default class AboutResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/AboutResult.js","import CommandResult from './CommandResult';\n\nexport default class ErrorResult extends CommandResult {\n constructor(input, error) {\n super(input);\n this.error = error;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/ErrorResult.js","import CommandResult from './CommandResult';\r\n\r\nexport default class ExpressionResult extends CommandResult {\r\n constructor(input, expression) {\r\n super(input);\r\n this.expression = expression;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/ExpressionResult.js","import CommandResult from './CommandResult';\n\nexport default class HelpResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/HelpResult.js","import CommandResult from './CommandResult';\n\nexport default class UnknownCommandResult extends CommandResult {\n constructor(input) {\n super(input);\n this.message = `Sorry, i don''t know what ${input} is :(`;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/UnknownCommandResult.js","import CommandResult from './CommandResult';\n\nexport default class WhatsnewResult extends CommandResult {\n constructor(input) {\n super(input);\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/models/WhatsnewResult.js","'use strict';\n\nmodule.exports = require('./lib/ReactDOM');\n\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/index.js","export default class AppState {\n constructor(persistData) {\n this.emphasizeBytes = persistData.emphasizeBytes || true;\n this.commandResults = [];\n this.handlers = [];\n this.uiTheme = persistData.uiTheme || 'dark';\n this.debugMode = false;\n\n this.version = 1;\n this.persistedVersion = persistData.version || 0.9;\n this.wasOldVersion = this.version > this.persistedVersion;\n }\n\n addCommandResult(result) {\n this.commandResults.unshift(result);\n this.triggerChanged();\n }\n\n clearCommmandResults() {\n this.commandResults = [];\n this.triggerChanged();\n }\n\n toggleEmphasizeBytes() {\n this.emphasizeBytes = !this.emphasizeBytes;\n this.triggerChanged();\n }\n\n onChange(handler) {\n this.handlers.push(handler);\n }\n\n triggerChanged() {\n for(var h of this.handlers) {\n h();\n }\n }\n\n setUiTheme(theme) {\n this.uiTheme = theme;\n this.triggerChanged(); \n }\n\n getPersistData() {\n return {\n emphasizeBytes: this.emphasizeBytes,\n uiTheme: this.uiTheme,\n version: this.version\n }\n }\n};\n\n\n// WEBPACK FOOTER //\n// ./src/app/AppState.js","const storeKey = 'AppState';\n\nexport default {\n getPersistedData() {\n var json = window.localStorage.getItem(storeKey);\n if(!json) {\n return {};\n }\n\n try {\n return JSON.parse(json);\n }\n catch(ex) {\n console.error('Failed to parse AppState json. Json Value: \\n' + json, ex);\n return {};\n }\n },\n\n watch (appState) {\n appState.onChange(() => this.persistData(appState));\n },\n\n persistData(appState) {\n localStorage.setItem(storeKey, JSON.stringify(appState.getPersistData()));\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/appStateStore.js","import HelpResult from './models/HelpResult';\nimport AboutResult from './models/AboutResult';\nimport UnknownCommandResult from './models/UnknownCommandResult';\nimport ExpressionResult from './models/ExpressionResult';\nimport ErrorResult from './models/ErrorResult';\nimport WahtsnewResult from './models/WhatsnewResult';\nimport * as expression from './expression';\n\nvar cmdConfig = {};\n\nexport default {\n initialize (cmd, appState) {\n\n cmd.command({\n canHandle: (input) => expression.parser.canParse(input),\n handle: function(c) {\n var expr = expression.parser.parse(c.input);\n appState.addCommandResult(new ExpressionResult(c.input, expr));\n } \n })\n\n cmd.commands({\n 'help': function(c) {\n appState.addCommandResult(new HelpResult(c.input)); \n },\n 'clear': function() {\n appState.clearCommmandResults();\n },\n 'em': function() {\n appState.toggleEmphasizeBytes();\n },\n 'dark': function() {\n appState.setUiTheme('dark');\n },\n 'light': function () {\n appState.setUiTheme('light');\n },\n 'about': function(c) {\n appState.addCommandResult(new AboutResult(c.input));\n },\n 'whatsnew': function(c) {\n appState.addCommandResult(new WahtsnewResult(c.input));\n },\n '-notrack': function () {}\n });\n\n // Last command handler reports that input is unknown\n cmd.command({\n canHandle: () => true,\n handle: (c) => appState.addCommandResult(new UnknownCommandResult(c.input))\n });\n\n cmd.onError((input, err) => appState.addCommandResult(new ErrorResult(input, err)));\n }\n }\n\n\n// WEBPACK FOOTER //\n// ./src/app/commands.js","import React from 'react';\nimport InputBox from './InputBox';\nimport DisplayResultView from './DisplayResultView';\n\nexport default class AppRoot extends React.Component {\n componentWillMount() {\n this.refresh();\n this.props.appState.onChange(() => this.refresh());\n }\n refresh() {\n this.setState(this.props.appState);\n }\n \n getIndicator(value) {\n return value === true ? 'on' : 'off';\n }\n\n getResultViews() {\n var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input={r.input} inputHash={r.inputHash} appState={this.props.appState} />);\n return results;\n }\n\n toggleEmphasizeBytes() {\n console.log(this.props.appState);\n this.props.appState.toggleEmphasizeBytes();\n }\n\n render() {\n return <div className={`app-root ${this.state.uiTheme}`}>\n <div className=\"header\">\n <h1>Bitwise<span style={{color: \"#c5c5c5\"}}>Cmd</span></h1>\n <ul className=\"top-links\">\n <li>\n <a href=\"https://github.com/BorisLevitskiy/BitwiseCmd\"><i className=\"icon github\"> </i><span className=\"link-text\">Project on GitHub</span></a>\n </li>\n <li>\n <a href=\"https://twitter.com/BitwiseCmd\"><i className=\"icon twitter\"> </i><span className=\"link-text\">Twitter</span></a>\n </li>\n <li>\n <a href=\"mailto:bitwisecmd@gmail.com?subject=Feedback\"><i className=\"icon feedback\"> </i><span className=\"link-text\">Send Feedback</span></a>\n </li>\n </ul>\n </div>\n\n <div className=\"expressionInput-container\">\n <InputBox />\n\n <span className=\"configPnl\">\n <span id=\"emphasizeBytes\" data-cmd=\"em\" className={\"indicator \" + this.getIndicator(this.state.emphasizeBytes)} title=\"Toggle Emphasize Bytes\" onClick={e => this.toggleEmphasizeBytes()}>[em]</span>\n </span>\n </div>\n\n <div id=\"output\">\n {this.getResultViews()}\n </div>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/AppRoot.jsx","export default {\n encodeHash: function(string) {\n return encodeURI(string.trim().replace(/\\s/g,','));\n },\n decodeHash: function(hashValue) {\n return decodeURI(hashValue).replace(/^\\#/, '').replace(/,/g,' ');\n },\n getArgs: function (hashValue) {\n\n var decodedHash = this.decodeHash(hashValue),\n args = { commands: [] };\n\n splitHashList(decodedHash).forEach(function(value) {\n // Support for -debur or -notrack properties\n if(/^\\-[a-zA-Z]+$/.test(value)) {\n args[value.substr(1)] = true;\n return;\n }\n\n args.commands.push(value);\n });\n\n return Object.freeze(args);\n }\n };\n\nfunction splitHashList(str) {\n var values = [];\n\n if(str.indexOf('||')) {\n str.split('||').forEach(function (v) {\n if (v.length > 0) {\n values.push(v);\n }\n });\n } else {\n values.push(str);\n }\n\n return values;\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/hash.js","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/camelize.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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// ./~/fbjs/lib/camelizeStyleName.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\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 */\nfunction containsNode(outerNode, innerNode) {\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 return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/containsNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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 browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in 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) : void 0;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;\n\n !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;\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\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// ./~/fbjs/lib/createArrayFromMixed.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\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) : void 0;\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) : void 0;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = Array.from(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// ./~/fbjs/lib/createNodesFromMarkup.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/*eslint-disable fb-www/unsafe-html */\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) : void 0;\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// ./~/fbjs/lib/getMarkupWrap.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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 */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable.Window && scrollable instanceof scrollable.Window) {\n return {\n x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,\n y: scrollable.pageYOffset || scrollable.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// ./~/fbjs/lib/getUnboundedScrollPosition.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/hyphenate.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @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// ./~/fbjs/lib/hyphenateStyleName.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\nfunction isNode(object) {\n var doc = object ? object.ownerDocument || object : document;\n var defaultView = doc.defaultView || window;\n return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;\n\n\n// WEBPACK FOOTER //\n// ./~/fbjs/lib/isNode.js","'use strict';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks\n */\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// ./~/fbjs/lib/isTextNode.js","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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\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// ./~/fbjs/lib/memoizeStringOnly.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\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 invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n 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', location, typeSpecName, typeof error);\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 stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/checkPropTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var 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 */\n function 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\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\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var 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 symbol: createPrimitiveTypeChecker('symbol'),\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\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\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\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\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 PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + 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 + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\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 (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\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, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 return new PropTypeError('Invalid ' + location + ' `' + 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, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function 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 || 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 function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function 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 if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\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 a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/factoryWithTypeCheckers.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n// WEBPACK FOOTER //\n// ./~/prop-types/lib/ReactPropTypesSecret.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = {\n Properties: {\n // Global States and Properties\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n },\n DOMAttributeNames: {},\n DOMPropertyNames: {}\n};\n\nmodule.exports = ARIADOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ARIADOMPropertyConfig.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar AutoFocusUtils = {\n focusDOMComponent: function () {\n focusNode(ReactDOMComponentTree.getNodeFromInstance(this));\n }\n};\n\nmodule.exports = AutoFocusUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/AutoFocusUtils.js","/**\n * Copyright 2013-present Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\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\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: 'onBeforeInput',\n captured: 'onBeforeInputCapture'\n },\n dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionEnd',\n captured: 'onCompositionEndCapture'\n },\n dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionStart',\n captured: 'onCompositionStartCapture'\n },\n dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: 'onCompositionUpdate',\n captured: 'onCompositionUpdateCapture'\n },\n dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', '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 'topCompositionStart':\n return eventTypes.compositionStart;\n case 'topCompositionEnd':\n return eventTypes.compositionEnd;\n case '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 === '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 'topKeyUp':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case '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 'topKeyPress':\n case 'topMouseDown':\n case '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 * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, 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(nativeEventTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, 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 'topCompositionEnd':\n return getDataFromCustomEvent(nativeEvent);\n case '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 '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 composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (currentComposition) {\n if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && 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 '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 '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 '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 * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, 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, targetInst, 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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/BeforeInputEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInstrumentation = require('./ReactInstrumentation');\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 var warnedForNaNValue = false;\n\n var warnHyphenatedStyleName = function (name, owner) {\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?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;\n };\n\n var warnBadVendoredStyleName = function (name, owner) {\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?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;\n };\n\n var warnStyleValueWithSemicolon = function (name, value, owner) {\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.%s ' + 'Try \"%s: %s\" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;\n };\n\n var warnStyleValueIsNaN = function (name, value, owner) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;\n };\n\n var checkRenderMessage = function (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 * @param {string} name\n * @param {*} value\n * @param {ReactDOMComponent} component\n */\n var warnValidStyle = function (name, value, component) {\n var owner;\n if (component) {\n owner = component._currentElement._owner;\n }\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name, owner);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name, owner);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value, owner);\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warnStyleValueIsNaN(name, value, owner);\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 * @param {ReactDOMComponent} component\n * @return {?string}\n */\n createMarkupForStyles: function (styles, component) {\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, component);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, component) + ';';\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 * @param {ReactDOMComponent} component\n */\n setValueForStyles: function (node, styles, component) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onHostOperation({\n instanceID: component._debugID,\n type: 'update styles',\n payload: styles\n });\n }\n\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], component);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName], component);\n if (styleName === 'float' || styleName === 'cssFloat') {\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\nmodule.exports = CSSPropertyOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/CSSPropertyOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: 'onChange',\n captured: 'onChangeCapture'\n },\n dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = 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') && (!document.documentMode || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementInst, 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementInst = null;\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n if (topLevelType === 'topChange') {\n return targetInst;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, target, targetInst) {\n if (topLevelType === '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(target, targetInst);\n } else if (topLevelType === '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 // IE10+ fire input events to often, such when a placeholder\n // changes or when an input with a placeholder is focused.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 11);\n}\n\n/**\n * (For IE <=11) 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 IE <=11) 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, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n if (activeElement.attachEvent) {\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.addEventListener('propertychange', handlePropertyChange, false);\n }\n}\n\n/**\n * (For IE <=11) 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\n if (activeElement.detachEvent) {\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n } else {\n activeElement.removeEventListener('propertychange', handlePropertyChange, false);\n }\n\n activeElement = null;\n activeElementInst = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For IE <=11) 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 getTargetInstForInputEvent(topLevelType, targetInst) {\n if (topLevelType === '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 targetInst;\n }\n}\n\nfunction handleEventsForInputEventIE(topLevelType, target, targetInst) {\n if (topLevelType === '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-11, 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(target, targetInst);\n } else if (topLevelType === 'topBlur') {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventIE(topLevelType, targetInst) {\n if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === '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 activeElementInst;\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 getTargetInstForClickEvent(topLevelType, targetInst) {\n if (topLevelType === 'topClick') {\n return targetInst;\n }\n}\n\nfunction handleControlledInputBlur(inst, node) {\n // TODO: In IE, inst is occasionally null. Why?\n if (inst == null) {\n return;\n }\n\n // Fiber and ReactDOM keep wrapper state in separate places\n var state = inst._wrapperState || node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n // If controlled, assign the value attribute to the current value on blur\n var value = '' + node.value;\n if (node.getAttribute('value') !== value) {\n node.setAttribute('value', value);\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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n var getTargetInstFunc, handleEventFunc;\n if (shouldUseChangeEvent(targetNode)) {\n if (doesChangeEventBubble) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(topLevelType, targetInst);\n if (inst) {\n var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, targetNode, targetInst);\n }\n\n // When blurring, set the value attribute for number inputs\n if (topLevelType === 'topBlur') {\n handleControlledInputBlur(targetInst, targetNode);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ChangeEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nvar Danger = {\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.') : _prodInvariant('56') : void 0;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;\n !(oldChild.nodeName !== '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().') : _prodInvariant('58') : void 0;\n\n if (typeof markup === 'string') {\n var newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n oldChild.parentNode.replaceChild(newChild, oldChild);\n } else {\n DOMLazyTree.replaceChildWithTree(oldChild, markup);\n }\n }\n\n};\n\nmodule.exports = Danger;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/Danger.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\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 */\n\nvar DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nmodule.exports = DefaultEventPluginOrder;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/DefaultEventPluginOrder.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: 'onMouseEnter',\n dependencies: ['topMouseOut', 'topMouseOver']\n },\n mouseLeave: {\n registrationName: 'onMouseLeave',\n dependencies: ['topMouseOut', 'topMouseOver']\n }\n};\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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.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 if (topLevelType === 'topMouseOut') {\n from = targetInst;\n var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);\n var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = toNode;\n enter.relatedTarget = fromNode;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n return [leave, enter];\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/EnterLeaveEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\n\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\n_assign(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-dom/lib/FallbackCompositionState.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\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 HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),\n Properties: {\n /**\n * Standard Properties\n */\n accept: 0,\n acceptCharset: 0,\n accessKey: 0,\n action: 0,\n allowFullScreen: HAS_BOOLEAN_VALUE,\n allowTransparency: 0,\n alt: 0,\n // specifies target context for links with `preload` type\n as: 0,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: 0,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: HAS_BOOLEAN_VALUE,\n cellPadding: 0,\n cellSpacing: 0,\n charSet: 0,\n challenge: 0,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n cite: 0,\n classID: 0,\n className: 0,\n cols: HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: 0,\n content: 0,\n contentEditable: 0,\n contextMenu: 0,\n controls: HAS_BOOLEAN_VALUE,\n coords: 0,\n crossOrigin: 0,\n data: 0, // For `<object />` acts as `src`.\n dateTime: 0,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: 0,\n disabled: HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: 0,\n encType: 0,\n form: 0,\n formAction: 0,\n formEncType: 0,\n formMethod: 0,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: 0,\n frameBorder: 0,\n headers: 0,\n height: 0,\n hidden: HAS_BOOLEAN_VALUE,\n high: 0,\n href: 0,\n hrefLang: 0,\n htmlFor: 0,\n httpEquiv: 0,\n icon: 0,\n id: 0,\n inputMode: 0,\n integrity: 0,\n is: 0,\n keyParams: 0,\n keyType: 0,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: HAS_BOOLEAN_VALUE,\n low: 0,\n manifest: 0,\n marginHeight: 0,\n marginWidth: 0,\n max: 0,\n maxLength: 0,\n media: 0,\n mediaGroup: 0,\n method: 0,\n min: 0,\n minLength: 0,\n // Caution; `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`.\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: 0,\n nonce: 0,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: HAS_BOOLEAN_VALUE,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 0,\n readOnly: HAS_BOOLEAN_VALUE,\n referrerPolicy: 0,\n rel: 0,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: 0,\n rows: HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: HAS_NUMERIC_VALUE,\n sandbox: 0,\n scope: 0,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: 0,\n seamless: HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: 0,\n size: HAS_POSITIVE_NUMERIC_VALUE,\n sizes: 0,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: 0,\n src: 0,\n srcDoc: 0,\n srcLang: 0,\n srcSet: 0,\n start: HAS_NUMERIC_VALUE,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 0,\n target: 0,\n title: 0,\n // Setting .type throws on non-<input> tags\n type: 0,\n useMap: 0,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n\n /**\n * RDFa Properties\n */\n about: 0,\n datatype: 0,\n inlist: 0,\n prefix: 0,\n // property is also supported for OpenGraph in meta tags.\n property: 0,\n resource: 0,\n 'typeof': 0,\n vocab: 0,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: 0,\n autoCorrect: 0,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: 0,\n // color is for Safari mask-icon link\n color: 0,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: 0,\n itemScope: HAS_BOOLEAN_VALUE,\n itemType: 0,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: 0,\n itemRef: 0,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: 0,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: 0,\n // IE-only attribute that controls focus behavior\n unselectable: 0\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {},\n DOMMutationMethods: {\n value: function (node, value) {\n if (value == null) {\n return node.removeAttribute('value');\n }\n\n // Number inputs get special treatment due to some edge cases in\n // Chrome. Let everything else assign the value attribute as normal.\n // https://github.com/facebook/react/issues/7253#issuecomment-236074326\n if (node.type !== 'number' || node.hasAttribute('value') === false) {\n node.setAttribute('value', '' + value);\n } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {\n // Don't assign an attribute if validation reports bad\n // input. Chrome will clear the value. Additionally, don't\n // operate on inputs that have focus, otherwise Chrome might\n // strip off trailing decimal places and cause the user's\n // cursor position to jump to the beginning of the input.\n //\n // In ReactDOMInput, we have an onBlur event that will trigger\n // this function again when focus is lost.\n node.setAttribute('value', '' + value);\n }\n }\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/HTMLDOMPropertyConfig.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\n\nfunction instantiateChild(childInstances, child, name, selfDebugID) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, true);\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, selfDebugID // 0 in production and for roots\n ) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {\n return instantiateChild(childInsts, child, name, selfDebugID);\n }, childInstances);\n } else {\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n }\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, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID // 0 in production and for roots\n ) {\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;\n }\n var name;\n var prevChild;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n 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 removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, true);\n nextChildren[name] = nextChildInstance;\n // Creating mount image now ensures refs are resolved in right order\n // (see https://github.com/facebook/react/pull/7101 for explanation).\n var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);\n mountImages.push(nextChildMountImage);\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 prevChild = prevChildren[name];\n removedNodes[name] = ReactReconciler.getHostNode(prevChild);\n ReactReconciler.unmountComponent(prevChild, false);\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 * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function (renderedChildren, safely) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild, safely);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactChildReconciler.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\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 replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactComponentBrowserEnvironment.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactErrorUtils = require('./ReactErrorUtils');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactNodeTypes = require('./ReactNodeTypes');\nvar ReactReconciler = require('./ReactReconciler');\n\nif (process.env.NODE_ENV !== 'production') {\n var checkReactTypeSpec = require('./checkReactTypeSpec');\n}\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nvar CompositeTypes = {\n ImpureClass: 0,\n PureClass: 1,\n StatelessFunctional: 2\n};\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n var element = Component(this.props, this.context, this.updater);\n warnIfInvalidElement(Component, element);\n return element;\n};\n\nfunction warnIfInvalidElement(Component, element) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;\n }\n}\n\nfunction shouldConstruct(Component) {\n return !!(Component.prototype && Component.prototype.isReactComponent);\n}\n\nfunction isPureComponent(Component) {\n return !!(Component.prototype && Component.prototype.isPureReactComponent);\n}\n\n// Separated into a function to contain deoptimizations caused by try/finally.\nfunction measureLifeCyclePerf(fn, debugID, timerType) {\n if (debugID === 0) {\n // Top-level wrappers (see ReactMount) and empty components (see\n // ReactDOMEmptyComponent) are invisible to hooks and devtools.\n // Both are implementation details that should go away in the future.\n return fn();\n }\n\n ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);\n try {\n return fn();\n } finally {\n ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);\n }\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 ReactCompositeComponent = {\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 = 0;\n this._compositeType = null;\n this._instance = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n\n // See ReactUpdateQueue\n this._updateBatchNumber = null;\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n\n // ComponentWillUnmount shall only be called once\n this._calledComponentWillUnmount = false;\n\n if (process.env.NODE_ENV !== 'production') {\n this._warnedAboutRefsInRender = false;\n }\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?object} hostParent\n * @param {?object} hostContainerInfo\n * @param {?object} context\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var _this = this;\n\n this._context = context;\n this._mountOrder = nextMountID++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var publicProps = this._currentElement.props;\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n var updateQueue = transaction.getUpdateQueue();\n\n // Initialize the public class\n var doConstruct = shouldConstruct(Component);\n var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);\n var renderedElement;\n\n // Support functional components\n if (!doConstruct && (inst == null || inst.render == null)) {\n renderedElement = inst;\n warnIfInvalidElement(Component, renderedElement);\n !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;\n inst = new StatelessComponent(Component);\n this._compositeType = CompositeTypes.StatelessFunctional;\n } else {\n if (isPureComponent(Component)) {\n this._compositeType = CompositeTypes.PureClass;\n } else {\n this._compositeType = CompositeTypes.ImpureClass;\n }\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`.', Component.displayName || Component.name || 'Component') : void 0;\n }\n\n var propsMutated = inst.props !== publicProps;\n var componentName = Component.displayName || Component.name || 'Component';\n\n process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + 'up the same props that your component\\'s constructor was passed.', componentName, componentName) : void 0;\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 = updateQueue;\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 || inst.state, '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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : void 0;\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') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n var markup;\n if (inst.unstable_handleError) {\n markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } else {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n\n if (inst.componentDidMount) {\n if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(function () {\n return inst.componentDidMount();\n }, _this._debugID, 'componentDidMount');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n }\n\n return markup;\n },\n\n _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);\n }\n },\n\n _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {\n var Component = this._currentElement.type;\n\n if (doConstruct) {\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return new Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'ctor');\n } else {\n return new Component(publicProps, publicContext, updateQueue);\n }\n }\n\n // This can still be an instance in case of factory components\n // but we'll count this as time spent rendering as the more common case.\n if (process.env.NODE_ENV !== 'production') {\n return measureLifeCyclePerf(function () {\n return Component(publicProps, publicContext, updateQueue);\n }, this._debugID, 'render');\n } else {\n return Component(publicProps, publicContext, updateQueue);\n }\n },\n\n performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var markup;\n var checkpoint = transaction.checkpoint();\n try {\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n } catch (e) {\n // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint\n transaction.rollback(checkpoint);\n this._instance.unstable_handleError(e);\n if (this._pendingStateQueue) {\n this._instance.state = this._processPendingState(this._instance.props, this._instance.context);\n }\n checkpoint = transaction.checkpoint();\n\n this._renderedComponent.unmountComponent(true);\n transaction.rollback(checkpoint);\n\n // Try again - we've informed the component about the error, so they can render an error message this time.\n // If this throws again, the error will bubble up (and can be caught by a higher error boundary).\n markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);\n }\n return markup;\n },\n\n performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {\n var inst = this._instance;\n\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (inst.componentWillMount) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillMount();\n }, debugID, 'componentWillMount');\n } else {\n inst.componentWillMount();\n }\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 var nodeType = ReactNodeTypes.getType(renderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n return markup;\n },\n\n getHostNode: function () {\n return ReactReconciler.getHostNode(this._renderedComponent);\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function (safely) {\n if (!this._renderedComponent) {\n return;\n }\n\n var inst = this._instance;\n\n if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {\n inst._calledComponentWillUnmount = true;\n\n if (safely) {\n var name = this.getName() + '.componentWillUnmount()';\n ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));\n } else {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUnmount();\n }, this._debugID, 'componentWillUnmount');\n } else {\n inst.componentWillUnmount();\n }\n }\n }\n\n if (this._renderedComponent) {\n ReactReconciler.unmountComponent(this._renderedComponent, safely);\n this._renderedNodeType = null;\n this._renderedComponent = null;\n this._instance = null;\n }\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 = 0;\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 Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var 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._checkContextTypes(Component.contextTypes, maskedContext, '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;\n\n if (inst.getChildContext) {\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onBeginProcessingChildContext();\n try {\n childContext = inst.getChildContext();\n } finally {\n ReactInstrumentation.debugTool.onEndProcessingChildContext();\n }\n } else {\n childContext = inst.getChildContext();\n }\n }\n\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') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;\n if (process.env.NODE_ENV !== 'production') {\n this._checkContextTypes(Component.childContextTypes, childContext, 'child context');\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) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;\n }\n return _assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Assert that the context types are valid\n *\n * @param {object} typeSpecs Map of context field to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkContextTypes: function (typeSpecs, values, location) {\n if (process.env.NODE_ENV !== 'production') {\n checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);\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, transaction, this._context);\n } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n } else {\n this._updateBatchNumber = null;\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 !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;\n\n var willReceive = false;\n var nextContext;\n\n // Determine if the context has changed or not\n if (this._context === nextUnmaskedContext) {\n nextContext = inst.context;\n } else {\n nextContext = this._processContext(nextUnmaskedContext);\n willReceive = true;\n }\n\n var prevProps = prevParentElement.props;\n var nextProps = nextParentElement.props;\n\n // Not a simple state update but a props update\n if (prevParentElement !== nextParentElement) {\n willReceive = true;\n }\n\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 if (willReceive && inst.componentWillReceiveProps) {\n if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillReceiveProps(nextProps, nextContext);\n }, this._debugID, 'componentWillReceiveProps');\n } else {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n var shouldUpdate = true;\n\n if (!this._pendingForceUpdate) {\n if (inst.shouldComponentUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n shouldUpdate = measureLifeCyclePerf(function () {\n return inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'shouldComponentUpdate');\n } else {\n shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n }\n } else {\n if (this._compositeType === CompositeTypes.PureClass) {\n shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;\n }\n\n this._updateBatchNumber = null;\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 _this2 = this;\n\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 if (process.env.NODE_ENV !== 'production') {\n measureLifeCyclePerf(function () {\n return inst.componentWillUpdate(nextProps, nextState, nextContext);\n }, this._debugID, 'componentWillUpdate');\n } else {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\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 if (process.env.NODE_ENV !== 'production') {\n transaction.getReactMountReady().enqueue(function () {\n measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');\n });\n } else {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\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\n var debugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n debugID = this._debugID;\n }\n\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);\n ReactReconciler.unmountComponent(prevComponentInstance, false);\n\n var nodeType = ReactNodeTypes.getType(nextRenderedElement);\n this._renderedNodeType = nodeType;\n var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */\n );\n this._renderedComponent = child;\n\n var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);\n\n if (process.env.NODE_ENV !== 'production') {\n if (debugID !== 0) {\n var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];\n ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);\n }\n }\n\n this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);\n }\n },\n\n /**\n * Overridden in shallow rendering.\n *\n * @protected\n */\n _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {\n ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function () {\n var inst = this._instance;\n var renderedElement;\n\n if (process.env.NODE_ENV !== 'production') {\n renderedElement = measureLifeCyclePerf(function () {\n return inst.render();\n }, this._debugID, 'render');\n } else {\n renderedElement = inst.render();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (renderedElement === undefined && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedElement = null;\n }\n }\n\n return renderedElement;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function () {\n var renderedElement;\n if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {\n ReactCurrentOwner.current = this;\n try {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;\n\n return renderedElement;\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.') : _prodInvariant('110') : void 0;\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 || component._compositeType !== CompositeTypes.StatelessFunctional, '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()) : void 0;\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 (this._compositeType === CompositeTypes.StatelessFunctional) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nmodule.exports = ReactCompositeComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactCompositeComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactMount = require('./ReactMount');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar ReactDOM = {\n findDOMNode: findDOMNode,\n render: ReactMount.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.\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n ComponentTree: {\n getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,\n getNodeFromInstance: function (inst) {\n // inst is an internal instance (but could be a composite)\n if (inst._renderedComponent) {\n inst = getHostComponentFromComposite(inst);\n }\n if (inst) {\n return ReactDOMComponentTree.getNodeFromInstance(inst);\n } else {\n return null;\n }\n }\n },\n Mount: ReactMount,\n Reconciler: ReactReconciler\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 // Firefox does not have the issue with devtools loaded over file://\n var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;\n console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n var testFunc = function testFn() {};\n process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, 'It looks like you\\'re using a minified copy of the development build ' + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;\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\" />') : void 0;\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.trim];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;\n break;\n }\n }\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactInstrumentation = require('./ReactInstrumentation');\n var ReactDOMUnknownPropertyHook = require('./ReactDOMUnknownPropertyHook');\n var ReactDOMNullInputValuePropHook = require('./ReactDOMNullInputValuePropHook');\n var ReactDOMInvalidARIAHook = require('./ReactDOMInvalidARIAHook');\n\n ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);\n ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);\n}\n\nmodule.exports = ReactDOM;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOM.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar DOMNamespaces = require('./DOMNamespaces');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMComponentFlags = require('./ReactDOMComponentFlags');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar Flags = ReactDOMComponentFlags;\nvar deleteListener = EventPluginHub.deleteListener;\nvar getNode = ReactDOMComponentTree.getNodeFromInstance;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = EventPluginRegistry.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 = 'style';\nvar HTML = '__html';\nvar RESERVED_PROPS = {\n children: null,\n dangerouslySetInnerHTML: null,\n suppressContentEditableWarning: null\n};\n\n// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).\nvar DOC_FRAGMENT_TYPE = 11;\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\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 because 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)) : void 0;\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 (voidElementTags[component._tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;\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`.') : _prodInvariant('60') : void 0;\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.') : _prodInvariant('61') : void 0;\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`.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !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.') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;\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)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;\n}\n\nfunction enqueuePutListener(inst, registrationName, listener, transaction) {\n if (transaction instanceof ReactServerRenderingTransaction) {\n return;\n }\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') : void 0;\n }\n var containerInfo = inst._hostContainerInfo;\n var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;\n var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;\n listenTo(registrationName, doc);\n transaction.getReactMountReady().enqueue(putListener, {\n inst: inst,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);\n}\n\nfunction inputPostMount() {\n var inst = this;\n ReactDOMInput.postMountWrapper(inst);\n}\n\nfunction textareaPostMount() {\n var inst = this;\n ReactDOMTextarea.postMountWrapper(inst);\n}\n\nfunction optionPostMount() {\n var inst = this;\n ReactDOMOption.postMountWrapper(inst);\n}\n\nvar setAndValidateContentChildDev = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev = function (content) {\n var hasExistingContent = this._contentDebugID != null;\n var debugID = this._debugID;\n // This ID represents the inlined child that has no backing instance:\n var contentDebugID = -debugID;\n\n if (content == null) {\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);\n }\n this._contentDebugID = null;\n return;\n }\n\n validateDOMNesting(null, String(content), this, this._ancestorInfo);\n this._contentDebugID = contentDebugID;\n if (hasExistingContent) {\n ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);\n ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);\n } else {\n ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);\n ReactInstrumentation.debugTool.onMountComponent(contentDebugID);\n ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);\n }\n };\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') : _prodInvariant('63') : void 0;\n var node = getNode(inst);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;\n\n switch (inst._tag) {\n case 'iframe':\n case 'object':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('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(event, mediaEvents[event], node));\n }\n }\n break;\n case 'source':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];\n break;\n case 'input':\n case 'select':\n case 'textarea':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];\n break;\n }\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-case 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\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) : _prodInvariant('65', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\nvar globalIdCounter = 1;\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(element) {\n var tag = element.type;\n validateDangerousTag(tag);\n this._currentElement = element;\n this._tag = tag.toLowerCase();\n this._namespaceURI = null;\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._hostNode = null;\n this._hostParent = null;\n this._rootNodeID = 0;\n this._domID = 0;\n this._hostContainerInfo = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._flags = 0;\n if (process.env.NODE_ENV !== 'production') {\n this._ancestorInfo = null;\n setAndValidateContentChildDev.call(this, null);\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {?ReactDOMComponent} the parent component instance\n * @param {?object} info about the host container\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n this._rootNodeID = globalIdCounter++;\n this._domID = hostContainerInfo._idCounter++;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, hostParent);\n props = ReactDOMInput.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, hostParent);\n props = ReactDOMOption.getHostProps(this, props);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, hostParent);\n props = ReactDOMSelect.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, hostParent);\n props = ReactDOMTextarea.getHostProps(this, props);\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n }\n\n assertValidProps(this, props);\n\n // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n var namespaceURI;\n var parentTag;\n if (hostParent != null) {\n namespaceURI = hostParent._namespaceURI;\n parentTag = hostParent._tag;\n } else if (hostContainerInfo._tag) {\n namespaceURI = hostContainerInfo._namespaceURI;\n parentTag = hostContainerInfo._tag;\n }\n if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {\n namespaceURI = DOMNamespaces.html;\n }\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'svg') {\n namespaceURI = DOMNamespaces.svg;\n } else if (this._tag === 'math') {\n namespaceURI = DOMNamespaces.mathml;\n }\n }\n this._namespaceURI = namespaceURI;\n\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo._tag) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(this._tag, null, this, parentInfo);\n }\n this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(parentInfo, this._tag, this);\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var el;\n if (namespaceURI === DOMNamespaces.html) {\n if (this._tag === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n var type = this._currentElement.type;\n div.innerHTML = '<' + type + '></' + type + '>';\n el = div.removeChild(div.firstChild);\n } else if (props.is) {\n el = ownerDocument.createElement(this._currentElement.type, props.is);\n } else {\n // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n el = ownerDocument.createElement(this._currentElement.type);\n }\n } else {\n el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);\n }\n ReactDOMComponentTree.precacheNode(this, el);\n this._flags |= Flags.hasCachedChildNodes;\n if (!this._hostParent) {\n DOMPropertyOperations.setAttributeForRoot(el);\n }\n this._updateDOMProperties(null, props, transaction);\n var lazyTree = DOMLazyTree(el);\n this._createInitialChildren(transaction, props, context, lazyTree);\n mountImage = lazyTree;\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(inputPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'textarea':\n transaction.getReactMountReady().enqueue(textareaPostMount, this);\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'select':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'button':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n case 'option':\n transaction.getReactMountReady().enqueue(optionPostMount, this);\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, 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, this);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\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 if (!this._hostParent) {\n ret += ' ' + DOMPropertyOperations.createMarkupForRoot();\n }\n ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);\n return ret;\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 if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\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, lazyTree) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n DOMLazyTree.queueHTML(lazyTree, 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 // TODO: Validate that text is allowed as a child of this node\n if (contentToUse != null) {\n // Avoid setting textContent when the text is empty. In IE11 setting\n // textContent on a text area will cause the placeholder to not\n // show within the textarea until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n if (contentToUse !== '') {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, contentToUse);\n }\n DOMLazyTree.queueText(lazyTree, contentToUse);\n }\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n DOMLazyTree.queueChild(lazyTree, 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 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 'input':\n lastProps = ReactDOMInput.getHostProps(this, lastProps);\n nextProps = ReactDOMInput.getHostProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getHostProps(this, lastProps);\n nextProps = ReactDOMOption.getHostProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getHostProps(this, lastProps);\n nextProps = ReactDOMSelect.getHostProps(this, nextProps);\n break;\n case 'textarea':\n lastProps = ReactDOMTextarea.getHostProps(this, lastProps);\n nextProps = ReactDOMTextarea.getHostProps(this, nextProps);\n break;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n switch (this._tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `_updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n ReactDOMInput.updateWrapper(this);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n break;\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n break;\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 {?DOMElement} node\n */\n _updateDOMProperties: function (lastProps, nextProps, transaction) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\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, propKey);\n }\n } else if (isCustomComponent(this._tag, lastProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\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, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n var node = getNode(this);\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertently 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 CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);\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 if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, nextContent);\n }\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n if (process.env.NODE_ENV !== 'production') {\n ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);\n }\n } else if (nextChildren != null) {\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n getHostNode: function () {\n return getNode(this);\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 (safely) {\n switch (this._tag) {\n case 'audio':\n case 'form':\n case 'iframe':\n case 'img':\n case 'link':\n case 'object':\n case 'source':\n case 'video':\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 '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) : _prodInvariant('66', this._tag) : void 0;\n break;\n }\n\n this.unmountChildren(safely);\n ReactDOMComponentTree.uncacheNode(this);\n EventPluginHub.deleteAllListeners(this);\n this._rootNodeID = 0;\n this._domID = 0;\n this._wrapperState = null;\n\n if (process.env.NODE_ENV !== 'production') {\n setAndValidateContentChildDev.call(this, null);\n }\n },\n\n getPublicInstance: function () {\n return getNode(this);\n }\n\n};\n\n_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar validateDOMNesting = require('./validateDOMNesting');\n\nvar DOC_NODE_TYPE = 9;\n\nfunction ReactDOMContainerInfo(topLevelWrapper, node) {\n var info = {\n _topLevelWrapper: topLevelWrapper,\n _idCounter: 1,\n _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,\n _node: node,\n _tag: node ? node.nodeName.toLowerCase() : null,\n _namespaceURI: node ? node.namespaceURI : null\n };\n if (process.env.NODE_ENV !== 'production') {\n info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;\n }\n return info;\n}\n\nmodule.exports = ReactDOMContainerInfo;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMContainerInfo.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar ReactDOMEmptyComponent = function (instantiate) {\n // ReactCompositeComponent uses this:\n this._currentElement = null;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n this._hostContainerInfo = null;\n this._domID = 0;\n};\n_assign(ReactDOMEmptyComponent.prototype, {\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n var domID = hostContainerInfo._idCounter++;\n this._domID = domID;\n this._hostParent = hostParent;\n this._hostContainerInfo = hostContainerInfo;\n\n var nodeValue = ' react-empty: ' + this._domID + ' ';\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var node = ownerDocument.createComment(nodeValue);\n ReactDOMComponentTree.precacheNode(this, node);\n return DOMLazyTree(node);\n } else {\n if (transaction.renderToStaticMarkup) {\n // Normally we'd insert a comment node, but since this is a situation\n // where React won't take over (static pages), we can simply return\n // nothing.\n return '';\n }\n return '<!--' + nodeValue + '-->';\n }\n },\n receiveComponent: function () {},\n getHostNode: function () {\n return ReactDOMComponentTree.getNodeFromInstance(this);\n },\n unmountComponent: function () {\n ReactDOMComponentTree.uncacheNode(this);\n }\n});\n\nmodule.exports = ReactDOMEmptyComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMEmptyComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: true,\n useFiber: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMFeatureFlags.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\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 * @internal\n */\n dangerouslyProcessChildrenUpdates: function (parentInst, updates) {\n var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);\n DOMChildrenOperations.processUpdates(node, updates);\n }\n};\n\nmodule.exports = ReactDOMIDOperations;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMIDOperations.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnCheckedLink = false;\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host 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 getHostProps: function (inst, props) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var hostProps = _assign({\n // Make sure we set .type before any other properties (setting .value\n // before .type means .value is lost in IE11 and below)\n type: undefined,\n // Make sure we set .step before .value (setting .value before .step\n // means .value is rounded on mount, based upon step precision)\n step: undefined,\n // Make sure we set .min & .max before .value (to ensure proper order\n // in corner cases such as min or max deriving from value, e.g. Issue #7170)\n min: undefined,\n max: undefined\n }, 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 hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n\n var owner = inst._currentElement._owner;\n\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.checkedLink !== undefined && !didWarnCheckedLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnCheckedLink = true;\n }\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnCheckedDefaultChecked = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnValueDefaultValue = true;\n }\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: props.value != null ? props.value : defaultValue,\n listeners: null,\n onChange: _handleChange.bind(inst),\n controlled: isControlled(props)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n if (process.env.NODE_ENV !== 'production') {\n var controlled = isControlled(props);\n var owner = inst._currentElement._owner;\n\n if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnUncontrolledToControlled = true;\n }\n if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;\n didWarnControlledToUncontrolled = true;\n }\n }\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);\n }\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n if (value === 0 && node.value === '') {\n node.value = '0';\n // Note: IE9 reports a number inputs as 'text', so check props instead.\n } else if (props.type === 'number') {\n // Simulate `input.valueAsNumber`. IE9 does not support it\n var valueAsNumber = parseFloat(node.value, 10) || 0;\n\n // eslint-disable-next-line\n if (value != valueAsNumber) {\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 node.value = '' + value;\n }\n // eslint-disable-next-line\n } else if (value != node.value) {\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 node.value = '' + value;\n }\n } else {\n if (props.value == null && props.defaultValue != null) {\n // In Chrome, assigning defaultValue to certain input types triggers input validation.\n // For number inputs, the display value loses trailing decimal points. For email inputs,\n // Chrome raises \"The specified value <x> is not a valid email address\".\n //\n // Here we check to see if the defaultValue has actually changed, avoiding these problems\n // when the user is inputting text\n //\n // https://github.com/facebook/react/issues/7253\n if (node.defaultValue !== '' + props.defaultValue) {\n node.defaultValue = '' + props.defaultValue;\n }\n }\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n },\n\n postMountWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n\n // Detach value from defaultValue. We won't do anything if we're working on\n // submit or reset inputs as those values & defaultValues are linked. They\n // are not resetable nodes so this operation doesn't matter and actually\n // removes browser-default values (eg \"Submit Query\") when no value is\n // provided.\n\n switch (props.type) {\n case 'submit':\n case 'reset':\n break;\n case 'color':\n case 'date':\n case 'datetime':\n case 'datetime-local':\n case 'month':\n case 'time':\n case 'week':\n // This fixes the no-show issue on iOS Safari and Android Chrome:\n // https://github.com/facebook/react/issues/7233\n node.value = '';\n node.value = node.defaultValue;\n break;\n default:\n node.value = node.value;\n break;\n }\n\n // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n var name = node.name;\n if (name !== '') {\n node.name = '';\n }\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !node.defaultChecked;\n if (name !== '') {\n node.name = name;\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 = ReactDOMComponentTree.getNodeFromInstance(this);\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 radio buttons with non-React ones.\n var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;\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-dom/lib/ReactDOMInput.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar React = require('react/lib/React');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar warning = require('fbjs/lib/warning');\nvar didWarnInvalidOptionChildren = false;\n\nfunction flattenChildren(children) {\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else if (!didWarnInvalidOptionChildren) {\n didWarnInvalidOptionChildren = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;\n }\n });\n\n return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function (inst, props, hostParent) {\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>.') : void 0;\n }\n\n // Look up whether this option is 'selected'\n var selectValue = null;\n if (hostParent != null) {\n var selectParent = hostParent;\n\n if (selectParent._tag === 'optgroup') {\n selectParent = selectParent._hostParent;\n }\n\n if (selectParent != null && selectParent._tag === 'select') {\n selectValue = ReactDOMSelect.getSelectValueContext(selectParent);\n }\n }\n\n // If the value 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 var value;\n if (props.value != null) {\n value = props.value + '';\n } else {\n value = flattenChildren(props.children);\n }\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n postMountWrapper: function (inst) {\n // value=\"\" should make a value attribute (#6219)\n var props = inst._currentElement.props;\n if (props.value != null) {\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n node.setAttribute('value', props.value);\n }\n },\n\n getHostProps: function (inst, props) {\n var hostProps = _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 hostProps.selected = inst._wrapperState.selected;\n }\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMOption.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 (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 programmatically 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 = 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-dom/lib/ReactDOMSelection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMLazyTree = require('./DOMLazyTree');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\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 between comment nodes so that they\n * can undergo 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 (text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n // ReactDOMComponentTree uses these:\n this._hostNode = null;\n this._hostParent = null;\n\n // Properties\n this._domID = 0;\n this._mountIndex = 0;\n this._closingComment = null;\n this._commentNodes = null;\n};\n\n_assign(ReactDOMTextComponent.prototype, {\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 {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function (transaction, hostParent, hostContainerInfo, context) {\n if (process.env.NODE_ENV !== 'production') {\n var parentInfo;\n if (hostParent != null) {\n parentInfo = hostParent._ancestorInfo;\n } else if (hostContainerInfo != null) {\n parentInfo = hostContainerInfo._ancestorInfo;\n }\n if (parentInfo) {\n // parentInfo should always be present except for the top-level\n // component when server rendering\n validateDOMNesting(null, this._stringText, this, parentInfo);\n }\n }\n\n var domID = hostContainerInfo._idCounter++;\n var openingValue = ' react-text: ' + domID + ' ';\n var closingValue = ' /react-text ';\n this._domID = domID;\n this._hostParent = hostParent;\n if (transaction.useCreateElement) {\n var ownerDocument = hostContainerInfo._ownerDocument;\n var openingComment = ownerDocument.createComment(openingValue);\n var closingComment = ownerDocument.createComment(closingValue);\n var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));\n if (this._stringText) {\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));\n }\n DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));\n ReactDOMComponentTree.precacheNode(this, openingComment);\n this._closingComment = closingComment;\n return lazyTree;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this between comment nodes for the reasons stated\n // above, but since this is a situation where React won't take over\n // (static pages), we can simply return the text as it is.\n return escapedText;\n }\n\n return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';\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 commentNodes = this.getHostNode();\n DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);\n }\n }\n },\n\n getHostNode: function () {\n var hostNode = this._commentNodes;\n if (hostNode) {\n return hostNode;\n }\n if (!this._closingComment) {\n var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);\n var node = openingComment.nextSibling;\n while (true) {\n !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;\n if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {\n this._closingComment = node;\n break;\n }\n node = node.nextSibling;\n }\n }\n hostNode = [this._hostNode, this._closingComment];\n this._commentNodes = hostNode;\n return hostNode;\n },\n\n unmountComponent: function () {\n this._closingComment = null;\n this._commentNodes = null;\n ReactDOMComponentTree.uncacheNode(this);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMTextComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnValueLink = false;\nvar didWarnValDefaultVal = false;\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> host 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 getHostProps: function (inst, props) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.\n // The value can be a boolean or object so that's why it's forced to be a string.\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: '' + inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return hostProps;\n },\n\n mountWrapper: function (inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n if (props.valueLink !== undefined && !didWarnValueLink) {\n process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;\n didWarnValueLink = true;\n }\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;\n didWarnValDefaultVal = true;\n }\n }\n\n var value = LinkedValueUtils.getValue(props);\n var initialValue = value;\n\n // Only bother fetching default value if we're going to use it\n if (value == null) {\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>.') : void 0;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n initialValue = defaultValue;\n }\n\n inst._wrapperState = {\n initialValue: '' + initialValue,\n listeners: null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function (inst) {\n var props = inst._currentElement.props;\n\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\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 var newValue = '' + value;\n\n // To avoid side effects (such as losing text selection), only set value if changed\n if (newValue !== node.value) {\n node.value = newValue;\n }\n if (props.defaultValue == null) {\n node.defaultValue = newValue;\n }\n }\n if (props.defaultValue != null) {\n node.defaultValue = props.defaultValue;\n }\n },\n\n postMountWrapper: function (inst) {\n // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n var textContent = node.textContent;\n\n // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n if (textContent === inst._wrapperState.initialValue) {\n node.value = textContent;\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-dom/lib/ReactDOMTextarea.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;\n\n var depthA = 0;\n for (var tempA = instA; tempA; tempA = tempA._hostParent) {\n depthA++;\n }\n var depthB = 0;\n for (var tempB = instB; tempB; tempB = tempB._hostParent) {\n depthB++;\n }\n\n // If A is deeper, crawl up.\n while (depthA - depthB > 0) {\n instA = instA._hostParent;\n depthA--;\n }\n\n // If B is deeper, crawl up.\n while (depthB - depthA > 0) {\n instB = instB._hostParent;\n depthB--;\n }\n\n // Walk in lockstep until we find a match.\n var depth = depthA;\n while (depth--) {\n if (instA === instB) {\n return instA;\n }\n instA = instA._hostParent;\n instB = instB._hostParent;\n }\n return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\nfunction isAncestor(instA, instB) {\n !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;\n\n while (instB) {\n if (instB === instA) {\n return true;\n }\n instB = instB._hostParent;\n }\n return false;\n}\n\n/**\n * Return the parent instance of the passed-in instance.\n */\nfunction getParentInstance(inst) {\n !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;\n\n return inst._hostParent;\n}\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n var path = [];\n while (inst) {\n path.push(inst);\n inst = inst._hostParent;\n }\n var i;\n for (i = path.length; i-- > 0;) {\n fn(path[i], 'captured', arg);\n }\n for (i = 0; i < path.length; i++) {\n fn(path[i], 'bubbled', arg);\n }\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 * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n var pathFrom = [];\n while (from && from !== common) {\n pathFrom.push(from);\n from = from._hostParent;\n }\n var pathTo = [];\n while (to && to !== common) {\n pathTo.push(to);\n to = to._hostParent;\n }\n var i;\n for (i = 0; i < pathFrom.length; i++) {\n fn(pathFrom[i], 'bubbled', argFrom);\n }\n for (i = pathTo.length; i-- > 0;) {\n fn(pathTo[i], 'captured', argTo);\n }\n}\n\nmodule.exports = {\n isAncestor: isAncestor,\n getLowestCommonAncestor: getLowestCommonAncestor,\n getParentInstance: getParentInstance,\n traverseTwoPhase: traverseTwoPhase,\n traverseEnterLeave: traverseEnterLeave\n};\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDOMTreeTraversal.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\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\n_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {\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 return callback(a, b, c, d, e);\n } else {\n return transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDefaultBatchingStrategy.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ARIADOMPropertyConfig = require('./ARIADOMPropertyConfig');\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactDOMEmptyComponent = require('./ReactDOMEmptyComponent');\nvar ReactDOMTreeTraversal = require('./ReactDOMTreeTraversal');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\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.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);\n ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);\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.HostComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {\n return new ReactDOMEmptyComponent(instantiate);\n });\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n}\n\nmodule.exports = {\n inject: inject\n};\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactDefaultInjection.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\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.\n\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nmodule.exports = REACT_ELEMENT_TYPE;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactElementSymbol.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactEventEmitterMixin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findParent(inst) {\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 while (inst._hostParent) {\n inst = inst._hostParent;\n }\n var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);\n var container = rootNode.parentNode;\n return ReactDOMComponentTree.getClosestInstanceFromNode(container);\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}\n_assign(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 var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);\n var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);\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 = targetInst;\n do {\n bookKeeping.ancestors.push(ancestor);\n ancestor = ancestor && findParent(ancestor);\n } while (ancestor);\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n targetInst = bookKeeping.ancestors[i];\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, 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} element 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, element) {\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} element 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, element) {\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-dom/lib/ReactEventListener.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactHostComponent = require('./ReactHostComponent');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventPluginUtils: EventPluginUtils.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n HostComponent: ReactHostComponent.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactInjection.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\nvar COMMENT_START = /^<\\!\\-\\-/;\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, comments and self-closing tags)\n if (COMMENT_START.test(markup)) {\n return markup;\n } else {\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n }\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-dom/lib/ReactMarkupChecksum.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactInstrumentation = require('./ReactInstrumentation');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar flattenChildren = require('./flattenChildren');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Make an update for markup to be rendered and inserted at a supplied index.\n *\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction makeInsertMarkup(markup, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'INSERT_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for moving an existing element to another index.\n *\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction makeMove(child, afterNode, toIndex) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'MOVE_EXISTING',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: ReactReconciler.getHostNode(child),\n toIndex: toIndex,\n afterNode: afterNode\n };\n}\n\n/**\n * Make an update for removing an element at an index.\n *\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction makeRemove(child, node) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'REMOVE_NODE',\n content: null,\n fromIndex: child._mountIndex,\n fromNode: node,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the markup of a node.\n *\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction makeSetMarkup(markup) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'SET_MARKUP',\n content: markup,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Make an update for setting the text content.\n *\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction makeTextContent(textContent) {\n // NOTE: Null values reduce hidden classes.\n return {\n type: 'TEXT_CONTENT',\n content: textContent,\n fromIndex: null,\n fromNode: null,\n toIndex: null,\n afterNode: null\n };\n}\n\n/**\n * Push an update, if any, onto the queue. Creates a new queue if none is\n * passed and always returns the queue. Mutative.\n */\nfunction enqueue(queue, update) {\n if (update) {\n queue = queue || [];\n queue.push(update);\n }\n return queue;\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue(inst, updateQueue) {\n ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);\n}\n\nvar setChildrenForInstrumentation = emptyFunction;\nif (process.env.NODE_ENV !== 'production') {\n var getDebugID = function (inst) {\n if (!inst._debugID) {\n // Check for ART-like instances. TODO: This is silly/gross.\n var internal;\n if (internal = ReactInstanceMap.get(inst)) {\n inst = internal;\n }\n }\n return inst._debugID;\n };\n setChildrenForInstrumentation = function (children) {\n var debugID = getDebugID(this);\n // TODO: React Native empty components are also multichild.\n // This means they still get into this method but don't have _debugID.\n if (debugID !== 0) {\n ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {\n return children[key]._debugID;\n }) : []);\n }\n };\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 var selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {\n var nextChildren;\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n } finally {\n ReactCurrentOwner.current = null;\n }\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);\n ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);\n return nextChildren;\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\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n var selfDebugID = 0;\n if (process.env.NODE_ENV !== 'production') {\n selfDebugID = getDebugID(this);\n }\n var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, children);\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 var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n // Set new text content.\n var updates = [makeTextContent(nextContent)];\n processQueue(this, updates);\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 var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren, false);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;\n }\n }\n var updates = [makeSetMarkup(nextMarkup)];\n processQueue(this, updates);\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 // Hook used by React ART\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n },\n\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 removedNodes = {};\n var mountImages = [];\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);\n if (!nextChildren && !prevChildren) {\n return;\n }\n var updates = null;\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 nextIndex = 0;\n var lastIndex = 0;\n // `nextMountIndex` will increment for each newly mounted child.\n var nextMountIndex = 0;\n var lastPlacedNode = null;\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 updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, 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 // The `removedNodes` loop below will actually remove the child.\n }\n // The child must be instantiated before it's mounted.\n updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));\n nextMountIndex++;\n }\n nextIndex++;\n lastPlacedNode = ReactReconciler.getHostNode(nextChild);\n }\n // Remove children that are no longer present.\n for (name in removedNodes) {\n if (removedNodes.hasOwnProperty(name)) {\n updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));\n }\n }\n if (updates) {\n processQueue(this, updates);\n }\n this._renderedChildren = nextChildren;\n\n if (process.env.NODE_ENV !== 'production') {\n setChildrenForInstrumentation.call(this, nextChildren);\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted. It does not actually perform any\n * backend operations.\n *\n * @internal\n */\n unmountChildren: function (safely) {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren, safely);\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, afterNode, 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 return makeMove(child, afterNode, 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, afterNode, mountImage) {\n return makeInsertMarkup(mountImage, afterNode, 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, node) {\n return makeRemove(child, node);\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 _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {\n child._mountIndex = index;\n return this.createChild(child, afterNode, 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, node) {\n var update = this.removeChild(child, node);\n child._mountIndex = null;\n return update;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactMultiChild.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\nfunction isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n}\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 * 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 !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).') : _prodInvariant('119') : void 0;\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 !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).') : _prodInvariant('120') : void 0;\n var ownerPublicInstance = owner.getPublicInstance();\n // Check that `component`'s owner is still alive and that `component` is still the current ref\n // because we do not want to detach the ref if another component stole it.\n if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactOwner.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactPropTypesSecret.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar Transaction = require('./Transaction');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\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 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\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\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(useCreateElement) {\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 // `ReactDOMTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = 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 * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return ReactUpdateQueue;\n },\n\n /**\n * Save current transaction state -- if the return value from this method is\n * passed to `rollback`, the transaction will be reset to that state.\n */\n checkpoint: function () {\n // reactMountReady is the our only stateful wrapper\n return this.reactMountReady.checkpoint();\n },\n\n rollback: function (checkpoint) {\n this.reactMountReady.rollback(checkpoint);\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\n_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactReconcileTransaction.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 || typeof element !== 'object') {\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 prevRef = null;\n var prevOwner = null;\n if (prevElement !== null && typeof prevElement === 'object') {\n prevRef = prevElement.ref;\n prevOwner = prevElement._owner;\n }\n\n var nextRef = null;\n var nextOwner = null;\n if (nextElement !== null && typeof nextElement === 'object') {\n nextRef = nextElement.ref;\n nextOwner = nextElement._owner;\n }\n\n return prevRef !== nextRef ||\n // If owner changes but we have an unchanged function ref, don't update refs\n typeof nextRef === 'string' && nextOwner !== prevOwner;\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || typeof element !== 'object') {\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-dom/lib/ReactRef.js","/**\n * Copyright 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar PooledClass = require('./PooledClass');\nvar Transaction = require('./Transaction');\nvar ReactInstrumentation = require('./ReactInstrumentation');\nvar ReactServerUpdateQueue = require('./ReactServerUpdateQueue');\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 = [];\n\nif (process.env.NODE_ENV !== 'production') {\n TRANSACTION_WRAPPERS.push({\n initialize: ReactInstrumentation.debugTool.onBeginFlush,\n close: ReactInstrumentation.debugTool.onEndFlush\n });\n}\n\nvar noopCallbackQueue = {\n enqueue: function () {}\n};\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.useCreateElement = false;\n this.updateQueue = new ReactServerUpdateQueue(this);\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 noopCallbackQueue;\n },\n\n /**\n * @return {object} The queue to collect React async events.\n */\n getUpdateQueue: function () {\n return this.updateQueue;\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\n checkpoint: function () {},\n\n rollback: function () {}\n};\n\n_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactServerRenderingTransaction.js","/**\n * Copyright 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnNoop(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n var constructor = publicInstance.constructor;\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;\n }\n}\n\n/**\n * This is the update queue used for server rendering.\n * It delegates to ReactUpdateQueue while server rendering is in progress and\n * switches to ReactNoopUpdateQueue after the transaction has completed.\n * @class ReactServerUpdateQueue\n * @param {Transaction} transaction\n */\n\nvar ReactServerUpdateQueue = function () {\n function ReactServerUpdateQueue(transaction) {\n _classCallCheck(this, ReactServerUpdateQueue);\n\n this.transaction = transaction;\n }\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\n\n ReactServerUpdateQueue.prototype.isMounted = function isMounted(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\n\n ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);\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 {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueForceUpdate(publicInstance);\n } else {\n warnNoop(publicInstance, 'forceUpdate');\n }\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|function} completeState Next state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);\n } else {\n warnNoop(publicInstance, 'replaceState');\n }\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|function} partialState Next partial state to be merged with state.\n * @internal\n */\n\n\n ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {\n if (this.transaction.isInTransaction()) {\n ReactUpdateQueue.enqueueSetState(publicInstance, partialState);\n } else {\n warnNoop(publicInstance, 'setState');\n }\n };\n\n return ReactServerUpdateQueue;\n}();\n\nmodule.exports = ReactServerUpdateQueue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactServerUpdateQueue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.5.4';\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/ReactVersion.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\n// We use attributes for everything SVG so let's avoid some duplication and run\n// code instead.\n// The following are all specified in the HTML config already so we exclude here.\n// - class (as className)\n// - color\n// - height\n// - id\n// - lang\n// - max\n// - media\n// - method\n// - min\n// - name\n// - style\n// - target\n// - type\n// - width\nvar ATTRS = {\n accentHeight: 'accent-height',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 'alignment-baseline',\n allowReorder: 'allowReorder',\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 'arabic-form',\n ascent: 0,\n attributeName: 'attributeName',\n attributeType: 'attributeType',\n autoReverse: 'autoReverse',\n azimuth: 0,\n baseFrequency: 'baseFrequency',\n baseProfile: 'baseProfile',\n baselineShift: 'baseline-shift',\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 'calcMode',\n capHeight: 'cap-height',\n clip: 0,\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n clipPathUnits: 'clipPathUnits',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n contentScriptType: 'contentScriptType',\n contentStyleType: 'contentStyleType',\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 'diffuseConstant',\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 'dominant-baseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 'edgeMode',\n elevation: 0,\n enableBackground: 'enable-background',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 'externalResourcesRequired',\n fill: 0,\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n filter: 0,\n filterRes: 'filterRes',\n filterUnits: 'filterUnits',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n focusable: 0,\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n glyphRef: 'glyphRef',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n hanging: 0,\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n ideographic: 0,\n imageRendering: 'image-rendering',\n 'in': 0,\n in2: 0,\n intercept: 0,\n k: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n kernelMatrix: 'kernelMatrix',\n kernelUnitLength: 'kernelUnitLength',\n kerning: 0,\n keyPoints: 'keyPoints',\n keySplines: 'keySplines',\n keyTimes: 'keyTimes',\n lengthAdjust: 'lengthAdjust',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n limitingConeAngle: 'limitingConeAngle',\n local: 0,\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n markerHeight: 'markerHeight',\n markerUnits: 'markerUnits',\n markerWidth: 'markerWidth',\n mask: 0,\n maskContentUnits: 'maskContentUnits',\n maskUnits: 'maskUnits',\n mathematical: 0,\n mode: 0,\n numOctaves: 'numOctaves',\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pathLength: 'pathLength',\n patternContentUnits: 'patternContentUnits',\n patternTransform: 'patternTransform',\n patternUnits: 'patternUnits',\n pointerEvents: 'pointer-events',\n points: 0,\n pointsAtX: 'pointsAtX',\n pointsAtY: 'pointsAtY',\n pointsAtZ: 'pointsAtZ',\n preserveAlpha: 'preserveAlpha',\n preserveAspectRatio: 'preserveAspectRatio',\n primitiveUnits: 'primitiveUnits',\n r: 0,\n radius: 0,\n refX: 'refX',\n refY: 'refY',\n renderingIntent: 'rendering-intent',\n repeatCount: 'repeatCount',\n repeatDur: 'repeatDur',\n requiredExtensions: 'requiredExtensions',\n requiredFeatures: 'requiredFeatures',\n restart: 0,\n result: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n seed: 0,\n shapeRendering: 'shape-rendering',\n slope: 0,\n spacing: 0,\n specularConstant: 'specularConstant',\n specularExponent: 'specularExponent',\n speed: 0,\n spreadMethod: 'spreadMethod',\n startOffset: 'startOffset',\n stdDeviation: 'stdDeviation',\n stemh: 0,\n stemv: 0,\n stitchTiles: 'stitchTiles',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 'stroke-dasharray',\n strokeDashoffset: 'stroke-dashoffset',\n strokeLinecap: 'stroke-linecap',\n strokeLinejoin: 'stroke-linejoin',\n strokeMiterlimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n surfaceScale: 'surfaceScale',\n systemLanguage: 'systemLanguage',\n tableValues: 'tableValues',\n targetX: 'targetX',\n targetY: 'targetY',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n textLength: 'textLength',\n to: 0,\n transform: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicode: 0,\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n values: 0,\n vectorEffect: 'vector-effect',\n version: 0,\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n viewBox: 'viewBox',\n viewTarget: 'viewTarget',\n visibility: 0,\n widths: 0,\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n x: 0,\n xHeight: 'x-height',\n x1: 0,\n x2: 0,\n xChannelSelector: 'xChannelSelector',\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 xmlns: 0,\n xmlnsXlink: 'xmlns:xlink',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space',\n y: 0,\n y1: 0,\n y2: 0,\n yChannelSelector: 'yChannelSelector',\n z: 0,\n zoomAndPan: 'zoomAndPan'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {},\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};\n\nObject.keys(ATTRS).forEach(function (key) {\n SVGDOMPropertyConfig.Properties[key] = 0;\n if (ATTRS[key]) {\n SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];\n }\n});\n\nmodule.exports = SVGDOMPropertyConfig;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SVGDOMPropertyConfig.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: 'onSelect',\n captured: 'onSelectCapture'\n },\n dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']\n }\n};\n\nvar activeElement = null;\nvar activeElementInst = 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. See #3639.\nvar hasListener = false;\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, activeElementInst, 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 extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case 'topFocus':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement = targetNode;\n activeElementInst = targetInst;\n lastSelection = null;\n }\n break;\n case 'topBlur':\n activeElement = null;\n activeElementInst = 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 'topMouseDown':\n mouseDown = true;\n break;\n case 'topContextMenu':\n case '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 'topSelectionChange':\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case 'topKeyDown':\n case 'topKeyUp':\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function (inst, registrationName, listener) {\n if (registrationName === 'onSelect') {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SelectEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar SyntheticAnimationEvent = require('./SyntheticAnimationEvent');\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 SyntheticTransitionEvent = require('./SyntheticTransitionEvent');\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');\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n * 'abort': {\n * phasedRegistrationNames: {\n * bubbled: 'onAbort',\n * captured: 'onAbortCapture',\n * },\n * dependencies: ['topAbort'],\n * },\n * ...\n * };\n * topLevelEventsToDispatchConfig = {\n * 'topAbort': { sameConfig }\n * };\n */\nvar eventTypes = {};\nvar topLevelEventsToDispatchConfig = {};\n['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var onEvent = 'on' + capitalizedEvent;\n var topEvent = 'top' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames: {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n dependencies: [topEvent]\n };\n eventTypes[event] = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n});\n\nvar onClickListeners = {};\n\nfunction getDictionaryKey(inst) {\n // Prevents V8 performance issue:\n // https://github.com/facebook/react/pull/7232\n return '.' + inst._rootNodeID;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case 'topAbort':\n case 'topCanPlay':\n case 'topCanPlayThrough':\n case 'topDurationChange':\n case 'topEmptied':\n case 'topEncrypted':\n case 'topEnded':\n case 'topError':\n case 'topInput':\n case 'topInvalid':\n case 'topLoad':\n case 'topLoadedData':\n case 'topLoadedMetadata':\n case 'topLoadStart':\n case 'topPause':\n case 'topPlay':\n case 'topPlaying':\n case 'topProgress':\n case 'topRateChange':\n case 'topReset':\n case 'topSeeked':\n case 'topSeeking':\n case 'topStalled':\n case 'topSubmit':\n case 'topSuspend':\n case 'topTimeUpdate':\n case 'topVolumeChange':\n case 'topWaiting':\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case '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 'topKeyDown':\n case 'topKeyUp':\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case 'topBlur':\n case 'topFocus':\n EventConstructor = SyntheticFocusEvent;\n break;\n case '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 'topDoubleClick':\n case 'topMouseDown':\n case 'topMouseMove':\n case 'topMouseUp':\n // TODO: Disabled elements should not respond to mouse events\n /* falls through */\n case 'topMouseOut':\n case 'topMouseOver':\n case 'topContextMenu':\n EventConstructor = SyntheticMouseEvent;\n break;\n case 'topDrag':\n case 'topDragEnd':\n case 'topDragEnter':\n case 'topDragExit':\n case 'topDragLeave':\n case 'topDragOver':\n case 'topDragStart':\n case 'topDrop':\n EventConstructor = SyntheticDragEvent;\n break;\n case 'topTouchCancel':\n case 'topTouchEnd':\n case 'topTouchMove':\n case 'topTouchStart':\n EventConstructor = SyntheticTouchEvent;\n break;\n case 'topAnimationEnd':\n case 'topAnimationIteration':\n case 'topAnimationStart':\n EventConstructor = SyntheticAnimationEvent;\n break;\n case 'topTransitionEnd':\n EventConstructor = SyntheticTransitionEvent;\n break;\n case 'topScroll':\n EventConstructor = SyntheticUIEvent;\n break;\n case 'topWheel':\n EventConstructor = SyntheticWheelEvent;\n break;\n case 'topCopy':\n case 'topCut':\n case 'topPaste':\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;\n var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function (inst, 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 // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n var node = ReactDOMComponentTree.getNodeFromInstance(inst);\n if (!onClickListeners[key]) {\n onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function (inst, registrationName) {\n if (registrationName === 'onClick' && !isInteractive(inst._tag)) {\n var key = getDictionaryKey(inst);\n onClickListeners[key].remove();\n delete onClickListeners[key];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SimpleEventPlugin.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar AnimationEventInterface = {\n animationName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);\n\nmodule.exports = SyntheticAnimationEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticAnimationEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticClipboardEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticCompositionEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticDragEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticFocusEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticInputEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticKeyboardEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticTouchEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar TransitionEventInterface = {\n propertyName: null,\n elapsedTime: null,\n pseudoElement: 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 {SyntheticEvent}\n */\nfunction SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);\n\nmodule.exports = SyntheticTransitionEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticTransitionEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/SyntheticWheelEvent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 var n = Math.min(i + 4096, m);\n for (; i < n; 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-dom/lib/adler32.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar warning = require('fbjs/lib/warning');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\nvar styleWarnings = {};\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 * @param {ReactDOMComponent} component\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, component) {\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 if (process.env.NODE_ENV !== 'production') {\n // Allow '0' to pass through without warning. 0 is already special and\n // doesn't require units, so we don't need to warn about it.\n if (component && value !== '0') {\n var owner = component._currentElement._owner;\n var ownerName = owner ? owner.getName() : null;\n if (ownerName && !styleWarnings[ownerName]) {\n styleWarnings[ownerName] = {};\n }\n var warned = false;\n if (ownerName) {\n var warnings = styleWarnings[ownerName];\n warned = warnings[name];\n if (!warned) {\n warnings[name] = true;\n }\n }\n if (!warned) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;\n }\n }\n }\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/dangerousStyleValue.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('react/lib/ReactCurrentOwner');\nvar ReactDOMComponentTree = require('./ReactDOMComponentTree');\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar getHostComponentFromComposite = require('./getHostComponentFromComposite');\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 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode\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 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') : void 0;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n\n var inst = ReactInstanceMap.get(componentOrElement);\n if (inst) {\n inst = getHostComponentFromComposite(inst);\n return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;\n }\n\n if (typeof componentOrElement.render === 'function') {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;\n } else {\n !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;\n }\n}\n\nmodule.exports = findDOMNode;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/findDOMNode.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactComponentTreeHook;\n\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {\n // Temporary hack.\n // Inline requires don't work well with Jest:\n // https://github.com/facebook/react/issues/7240\n // Remove the inline requires when we don't need them anymore:\n // https://github.com/facebook/react/pull/7178\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n}\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 * @param {number=} selfDebugID Optional debugID of the current internal instance.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {\n // We found a component instance.\n if (traverseContext && typeof traverseContext === 'object') {\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n if (!ReactComponentTreeHook) {\n ReactComponentTreeHook = require('react/lib/ReactComponentTreeHook');\n }\n if (!keyUnique) {\n process.env.NODE_ENV !== 'production' ? warning(false, '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.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;\n }\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\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, selfDebugID) {\n if (children == null) {\n return children;\n }\n var result = {};\n\n if (process.env.NODE_ENV !== 'production') {\n traverseAllChildren(children, function (traverseContext, child, name) {\n return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);\n }, result);\n } else {\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n }\n return result;\n}\n\nmodule.exports = flattenChildren;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/flattenChildren.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/getEventKey.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\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-dom/lib/getIteratorFn.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 */\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-dom/lib/getNodeForCharacterOffset.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n prefixes['ms' + styleProp] = 'MS' + eventName;\n prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();\n\n return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (ExecutionEnvironment.canUseDOM) {\n style = document.createElement('div').style;\n\n // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n }\n\n // Same as above\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return '';\n}\n\nmodule.exports = getVendorPrefixedEventName;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/getVendorPrefixedEventName.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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-dom/lib/quoteAttributeValueForBrowser.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;\n\n\n// WEBPACK FOOTER //\n// ./~/react-dom/lib/renderSubtreeIntoContainer.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n\n return '$' + escapedString;\n}\n\n/**\n * Unescape and unwrap key for human-readable display\n *\n * @param {string} key to unescape.\n * @return {string} the unescaped key.\n */\nfunction unescape(key) {\n var unescapeRegex = /(=0|=2)/g;\n var unescaperLookup = {\n '=0': '=',\n '=2': ':'\n };\n var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);\n\n return ('' + keySubstring).replace(unescapeRegex, function (match) {\n return unescaperLookup[match];\n });\n}\n\nvar KeyEscapeUtils = {\n escape: escape,\n unescape: unescape\n};\n\nmodule.exports = KeyEscapeUtils;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/KeyEscapeUtils.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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 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.') : _prodInvariant('25') : void 0;\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.\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 // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\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};\n\nmodule.exports = PooledClass;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/PooledClass.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\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 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach\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 keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n\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.key && (!child || child.key !== mappedChild.key) ? 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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count\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 *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant'),\n _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n\nvar injectedMixins = [];\n\n/**\n * Composite components are higher-level components that compose other composite\n * or host 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: '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: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: '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: '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: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: '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 * @required\n */\n render: '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: '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: '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: '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: '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: '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: '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: '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: '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, '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, '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, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\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 only 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) : void 0;\n }\n }\n}\n\nfunction validateMethodOverride(isAlreadyDefined, 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 === '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) : _prodInvariant('73', name) : void 0;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n !(specPolicy === 'DEFINE_MANY' || 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) : _prodInvariant('74', name) : void 0;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;\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.') : _prodInvariant('76') : void 0;\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\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 var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, 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 isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(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 === 'DEFINE_MANY_MERGED' || 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) : _prodInvariant('77', specPolicy, name) : void 0;\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 === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (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) : _prodInvariant('78', name) : void 0;\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) : _prodInvariant('79', name) : void 0;\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.') : _prodInvariant('80') : void 0;\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) : _prodInvariant('81', key) : void 0;\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 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) : void 0;\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) : void 0;\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 };\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 var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\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, 'replaceState');\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\nvar ReactClassComponent = function () {};\n_assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\nvar didWarnDeprecated = false;\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 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\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 if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;\n didWarnDeprecated = true;\n }\n\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets 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') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\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 (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') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\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.') : _prodInvariant('83') : void 0;\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') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @private\n */\nvar createDOMFactory = ReactElement.createFactory;\nif (process.env.NODE_ENV !== 'production') {\n var ReactElementValidator = require('./ReactElementValidator');\n createDOMFactory = ReactElementValidator.createFactory;\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 = {\n a: createDOMFactory('a'),\n abbr: createDOMFactory('abbr'),\n address: createDOMFactory('address'),\n area: createDOMFactory('area'),\n article: createDOMFactory('article'),\n aside: createDOMFactory('aside'),\n audio: createDOMFactory('audio'),\n b: createDOMFactory('b'),\n base: createDOMFactory('base'),\n bdi: createDOMFactory('bdi'),\n bdo: createDOMFactory('bdo'),\n big: createDOMFactory('big'),\n blockquote: createDOMFactory('blockquote'),\n body: createDOMFactory('body'),\n br: createDOMFactory('br'),\n button: createDOMFactory('button'),\n canvas: createDOMFactory('canvas'),\n caption: createDOMFactory('caption'),\n cite: createDOMFactory('cite'),\n code: createDOMFactory('code'),\n col: createDOMFactory('col'),\n colgroup: createDOMFactory('colgroup'),\n data: createDOMFactory('data'),\n datalist: createDOMFactory('datalist'),\n dd: createDOMFactory('dd'),\n del: createDOMFactory('del'),\n details: createDOMFactory('details'),\n dfn: createDOMFactory('dfn'),\n dialog: createDOMFactory('dialog'),\n div: createDOMFactory('div'),\n dl: createDOMFactory('dl'),\n dt: createDOMFactory('dt'),\n em: createDOMFactory('em'),\n embed: createDOMFactory('embed'),\n fieldset: createDOMFactory('fieldset'),\n figcaption: createDOMFactory('figcaption'),\n figure: createDOMFactory('figure'),\n footer: createDOMFactory('footer'),\n form: createDOMFactory('form'),\n h1: createDOMFactory('h1'),\n h2: createDOMFactory('h2'),\n h3: createDOMFactory('h3'),\n h4: createDOMFactory('h4'),\n h5: createDOMFactory('h5'),\n h6: createDOMFactory('h6'),\n head: createDOMFactory('head'),\n header: createDOMFactory('header'),\n hgroup: createDOMFactory('hgroup'),\n hr: createDOMFactory('hr'),\n html: createDOMFactory('html'),\n i: createDOMFactory('i'),\n iframe: createDOMFactory('iframe'),\n img: createDOMFactory('img'),\n input: createDOMFactory('input'),\n ins: createDOMFactory('ins'),\n kbd: createDOMFactory('kbd'),\n keygen: createDOMFactory('keygen'),\n label: createDOMFactory('label'),\n legend: createDOMFactory('legend'),\n li: createDOMFactory('li'),\n link: createDOMFactory('link'),\n main: createDOMFactory('main'),\n map: createDOMFactory('map'),\n mark: createDOMFactory('mark'),\n menu: createDOMFactory('menu'),\n menuitem: createDOMFactory('menuitem'),\n meta: createDOMFactory('meta'),\n meter: createDOMFactory('meter'),\n nav: createDOMFactory('nav'),\n noscript: createDOMFactory('noscript'),\n object: createDOMFactory('object'),\n ol: createDOMFactory('ol'),\n optgroup: createDOMFactory('optgroup'),\n option: createDOMFactory('option'),\n output: createDOMFactory('output'),\n p: createDOMFactory('p'),\n param: createDOMFactory('param'),\n picture: createDOMFactory('picture'),\n pre: createDOMFactory('pre'),\n progress: createDOMFactory('progress'),\n q: createDOMFactory('q'),\n rp: createDOMFactory('rp'),\n rt: createDOMFactory('rt'),\n ruby: createDOMFactory('ruby'),\n s: createDOMFactory('s'),\n samp: createDOMFactory('samp'),\n script: createDOMFactory('script'),\n section: createDOMFactory('section'),\n select: createDOMFactory('select'),\n small: createDOMFactory('small'),\n source: createDOMFactory('source'),\n span: createDOMFactory('span'),\n strong: createDOMFactory('strong'),\n style: createDOMFactory('style'),\n sub: createDOMFactory('sub'),\n summary: createDOMFactory('summary'),\n sup: createDOMFactory('sup'),\n table: createDOMFactory('table'),\n tbody: createDOMFactory('tbody'),\n td: createDOMFactory('td'),\n textarea: createDOMFactory('textarea'),\n tfoot: createDOMFactory('tfoot'),\n th: createDOMFactory('th'),\n thead: createDOMFactory('thead'),\n time: createDOMFactory('time'),\n title: createDOMFactory('title'),\n tr: createDOMFactory('tr'),\n track: createDOMFactory('track'),\n u: createDOMFactory('u'),\n ul: createDOMFactory('ul'),\n 'var': createDOMFactory('var'),\n video: createDOMFactory('video'),\n wbr: createDOMFactory('wbr'),\n\n // SVG\n circle: createDOMFactory('circle'),\n clipPath: createDOMFactory('clipPath'),\n defs: createDOMFactory('defs'),\n ellipse: createDOMFactory('ellipse'),\n g: createDOMFactory('g'),\n image: createDOMFactory('image'),\n line: createDOMFactory('line'),\n linearGradient: createDOMFactory('linearGradient'),\n mask: createDOMFactory('mask'),\n path: createDOMFactory('path'),\n pattern: createDOMFactory('pattern'),\n polygon: createDOMFactory('polygon'),\n polyline: createDOMFactory('polyline'),\n radialGradient: createDOMFactory('radialGradient'),\n rect: createDOMFactory('rect'),\n stop: createDOMFactory('stop'),\n svg: createDOMFactory('svg'),\n text: createDOMFactory('text'),\n tspan: createDOMFactory('tspan')\n};\n\nmodule.exports = ReactDOMFactories;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactDOMFactories.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _require = require('./ReactElement'),\n isValidElement = _require.isValidElement;\n\nvar factory = require('prop-types/factory');\n\nmodule.exports = factory(isValidElement);\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactPropTypes.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactPureComponent(props, context, updater) {\n // Duplicated from ReactComponent.\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\nfunction ComponentDummy() {}\nComponentDummy.prototype = ReactComponent.prototype;\nReactPureComponent.prototype = new ComponentDummy();\nReactPureComponent.prototype.constructor = ReactPureComponent;\n// Avoid an extra prototype jump for these methods.\n_assign(ReactPureComponent.prototype, ReactComponent.prototype);\nReactPureComponent.prototype.isPureReactComponent = true;\n\nmodule.exports = ReactPureComponent;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactPureComponent.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nmodule.exports = '15.5.4';\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/ReactVersion.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\n/* global Symbol */\n\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 * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\n'use strict';\n\nvar nextDebugID = 1;\n\nfunction getNextDebugID() {\n return nextDebugID++;\n}\n\nmodule.exports = getNextDebugID;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/getNextDebugID.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\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.\n *\n * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;\n return children;\n}\n\nmodule.exports = onlyChild;\n\n\n// WEBPACK FOOTER //\n// ./~/react/lib/onlyChild.js","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _prodInvariant = require('./reactProdInvariant');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar REACT_ELEMENT_TYPE = require('./ReactElementSymbol');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar KeyEscapeUtils = require('./KeyEscapeUtils');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * This is inlined from ReactElement since this file is shared between\n * isomorphic and renderers. We could extract this to a\n *\n */\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\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 // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (component && typeof component === 'object' && component.key != null) {\n // Explicit key\n return KeyEscapeUtils.escape(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\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' ||\n // The following is inlined from ReactElement. This means we can optimize\n // some checks. React Fiber also inlines this logic for similar purposes.\n type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {\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 var mapsAsChildrenAddendum = '';\n if (ReactCurrentOwner.current) {\n var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();\n if (mapsAsChildrenOwnerName) {\n mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';\n }\n }\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.%s', mapsAsChildrenAddendum) : void 0;\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 + KeyEscapeUtils.escape(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) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;\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","import React from 'react';\nimport HelpResult from '../models/HelpResult';\nimport AboutResult from '../models/AboutResult';\nimport UnknownCommandResult from '../models/UnknownCommandResult';\nimport HelpResultView from './results/HelpResultView';\nimport AboutResultView from './results/AboutResultView';\nimport ExpressionResult from '../models/ExpressionResult';\nimport ExpressionResultView from './results/ExpressionResultView';\nimport WhatsnewResult from '../models/WhatsnewResult';\nimport WhatsnewResultView from './results/WhatsnewResultView';\nimport ErrorResult from '../models/ErrorResult';\n\nexport default class DisplayResult extends React.Component {\n render() {\n\n if(this.props.content instanceof UnknownCommandResult) {\n return this.renderUnknown(); \n }\n\n if(this.props.content instanceof ErrorResult) {\n return this.renderError(this.props.content.error.message);\n }\n\n return <div className=\"result\">\n <div className=\"input mono\"><span className=\"cur\">></span>{this.props.content.input}<a className=\"hashLink\" title=\"Link for this expression\" href={window.location.pathname + '#' + this.props.inputHash}>#</a></div>\n <div className=\"content\">\n {this.findResultComponent(this.props.content)}\n </div>\n </div>;\n }\n\n renderUnknown() {\n return <div className=\"result\">\n <div className=\"error\">¯\\_(ツ)_/¯ Sorry, i don′t know what <strong>{this.props.input}</strong> is</div>\n </div>\n }\n\n renderError(message) {\n return <div className=\"result\">\n <div className=\"error\">(X_X) Error occurred: <strong>{message}</strong></div>\n </div>\n }\n\n findResultComponent(result) {\n if(result instanceof HelpResult) {\n return <HelpResultView content={result} />\n }\n\n if(result instanceof AboutResult) {\n return <AboutResultView />\n }\n\n if(result instanceof ExpressionResult) {\n return <ExpressionResultView result={result} emphasizeBytes={this.props.appState.emphasizeBytes} /> \n }\n\n if(result instanceof WhatsnewResult) {\n return <WhatsnewResultView />\n }\n\n console.warn('Unknown result:', result);\n return <span>Unknown result: {typeof result}</span>\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/DisplayResultView.jsx","import React from 'react'\n\nexport default class AboutResultView extends React.Component {\n render() {\n return <div className=\"aboutTpl\">\n <p> Created by <a href=\"http://boryslevytskyi.github.io/\">Borys Levytskyi</a>. Please give it a like if BitwiseCmd has helped you in your work.</p>\n <p>If you have an idea, suggestion or you've spotted a bug here, please send it to <a href=\"mailto:bitwisecmd@gmail.com?subject=Feedback\">bitwisecmd@gmail.com</a> or tweet on <a href=\"http://twitter.com/BitwiseCmd\">@BitwiseCmd</a>. Your feedback is greatly appreciated.</p>\n <p><a href=\"https://github.com/BorisLevitskiy/BitwiseCmd\">Project on <strong>GitHub</strong></a></p>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/AboutResultView.jsx","import React from 'react';\nimport * as expression from '../../expression';\nimport formatter from '../../formatter';\nimport BinaryStringView from './BinaryStringView';\nimport BitwiseExpressionViewModel from './models/BitwiseExpressionViewModel';\nimport log from 'loglevel';\n\nexport default class BitwiseOperationEpxressionView extends React.Component {\n render() {\n var rows = this.getRows();\n if(!rows) {\n return null;\n }\n\n return <table className=\"expression\">\n <tbody>\n {rows}\n </tbody>\n </table>\n }\n\n getRows() {\n const expr = this.props.expression;\n\n if(expr instanceof expression.SingleOperandExpression) {\n const m = BitwiseExpressionViewModel.buildNot(expr, { emphasizeBytes: this.props.emphasizeBytes });\n log.info('Render model', m);\n return m.items.map((itm, i) => <ExpressionRow key={i} {...itm} emphasizeBytes={this.props.emphasizeBytes} maxNumberOfBits={m.maxNumberOfBits} />);\n }\n\n if(expr instanceof expression.MultipleOperandsExpression) {\n const m = BitwiseExpressionViewModel.buildMultiple(expr, { emphasizeBytes: this.props.emphasizeBytes });\n log.info('Render model', m);\n return m.items.map((itm, i) => <ExpressionRow key={i} {...itm} emphasizeBytes={this.props.emphasizeBytes} maxNumberOfBits={m.maxNumberOfBits} />);\n }\n\n return null;\n }\n}\n\nclass ExpressionRow extends React.Component {\n render() {\n const { sign, label, bin, other, css, maxNumberOfBits, emphasizeBytes } = this.props;\n \n return <tr className={css}>\n <td className=\"sign\">{sign}</td>\n <td className=\"label\">{label}</td>\n <td className=\"bin\">\n <BinaryStringView emphasizeBytes={emphasizeBytes} binaryString={formatter.padLeft(bin, maxNumberOfBits, '0')} allowFlipBits={false}/>\n </td>\n <td className=\"other\">{other}</td>\n </tr>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/BitwiseOperationExpressionView.jsx","import React from 'react'\r\nimport ListOfNumbersExpressionView from './ListOfNumbersExpressionView';\r\nimport BitwiseOperationExpressionView from './BitwiseOperationExpressionView';\r\n\r\nimport * as expression from '../../expression'; \r\n\r\nexport default class ExpressionResultView extends React.Component {\r\n render() {\r\n var expr = this.props.result.expression;\r\n\r\n if(expr instanceof expression.ListOfNumbersExpression) {\r\n return <div>\r\n <ListOfNumbersExpressionView expression={expr} emphasizeBytes={this.props.emphasizeBytes} />\r\n </div>\r\n }\r\n if(expr instanceof expression.SingleOperandExpression || expr instanceof expression.MultipleOperandsExpression) {\r\n return <div>\r\n <BitwiseOperationExpressionView expression={expr} emphasizeBytes={this.props.emphasizeBytes} />\r\n </div>\r\n }\r\n\r\n console.log('[BitwiseOperationExpressionView] render()', expr);\r\n\r\n return <b>Expression: {expr.expressionString}</b>;\r\n } \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/ExpressionResultView.jsx","import React from 'react'\n\nexport default class HelpResultView extends React.Component {\n render() {\n return <div className=\"help helpResultTpl\">\n <div style={{overflow: \"hidden\"}}>\n <div style={{float: \"left\", \"marginRight\": \"20px\"}}>\n <div className=\"section\">\n <strong>Supported Commands</strong>\n <ul>\n <li><code>23 ^ 34</code> — type bitwise expression to see result in binary (only positive integers are supported now)</li>\n <li><code>23 34</code> — type one or more numbers to see their binary representations</li>\n <li><code>clear</code> — clear output pane</li>\n <li><code>help</code> — display this help</li>\n <li><code>whatsnew</code> — display changelog</li>\n <li><code>em</code> — turn On/Off Emphasize Bytes</li>\n <li><code>dark</code> — set Dark theme</li>\n <li><code>light</code> — set Light theme</li>\n <li><code>about</code> — about the app</li>\n </ul>\n </div>\n </div>\n <div style={{\"float\":\"left\"}}>\n <div className=\"section\">\n <strong>Supported Bitwise Operations</strong><br/>\n <small>\n <a href=\"https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators\">\n as implemented in JavaScript engine\n </a>\n </small>\n <ul>\n <li><code>&</code> — bitwise AND</li>\n <li><code>|</code> — bitwise inclusive OR</li>\n <li><code>^</code> — bitwise exclusive XOR</li>\n <li><code>~</code> — bitwise NOT</li>\n <li><code><<</code> — left shift</li>\n <li><code>>></code> — sign propagating right shift</li>\n <li><code>>>></code> — zero-fill right shift</li>\n </ul>\n </div>\n </div>\n </div>\n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/HelpResultView.jsx","import React from 'react';\r\nimport formatter from '../../formatter';\r\nimport BinaryStringView from './BinaryStringView';\r\nimport BitwiseExpressionViewModel from './models/BitwiseExpressionViewModel'\r\n\r\n\r\nexport default class ListOfNumersExpressionView extends React.Component {\r\n render() {\r\n const expr = this.props.expression;\r\n const maxBitsLegnth = BitwiseExpressionViewModel.getNumberOfBits(expr.maxBitsLegnth, this.props.emphasizeBytes);\r\n const numberRows = expr.numbers.map((n, i) => <OperandView key={i} operand={n} maxBitsLegnth={maxBitsLegnth} emphasizeBytes={this.props.emphasizeBytes} />);\r\n return <table className=\"expression\">\r\n <tbody>\r\n {numberRows}\r\n </tbody> \r\n </table>\r\n }\r\n}\r\n\r\nclass OperandView extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = { operand: null };\r\n }\r\n render() {\r\n const op = this.props.operand;\r\n const binaryString = formatter.padLeft(op.bin, this.props.maxBitsLegnth, '0');\r\n\r\n return <tr data-kind={op.kind}>\r\n <td className=\"label\">{op.input}</td>\r\n <td className=\"bin\"><BinaryStringView emphasizeBytes={this.props.emphasizeBytes} binaryString={binaryString} allowFlipBits={true} onFlipBit={e => this.flipBit(e)} /></td>\r\n <td className=\"other\">{op.other}</td>\r\n </tr>;\r\n };\r\n\r\n flipBit(index) { \r\n var op = this.props.operand;\r\n const binaryString = formatter.padLeft(op.bin, this.props.maxBitsLegnth, '0');\r\n var arr = binaryString.split('');\r\n // TODO: this code looks ugly\r\n arr[index] = arr[index] == '0' ? '1' : '0';\r\n var bin = arr.join('');\r\n op.setValue(parseInt(bin, 2));\r\n\r\n this.setState({ operand: op });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/ListOfNumbersExpressionView.jsx","import React from 'react'\n\nexport default class WhatsnewResultView extends React.Component {\n render() {\n return <div class=\"changelog\">\n <h3>BitwiseCmd Changelog</h3> \n <div class=\"item\">\n <p><strong>May 16th, 2017</strong> Complete rewrite using React. Old implementation is available at <a href=\"http://bitwisecmd.com/old\">http://bitwisecmd.com/old</a>.</p>\n <p>Please let me know if you have problems with this release by <a href=\"https://github.com/BorysLevytskyi/BitwiseCmd/issues\">creating issue</a> in Github Repo.</p>\n </div> \n </div>;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/results/WhatsnewResultView.jsx","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport InputBox from './components/InputBox.jsx';\nimport AppState from './AppState';\nimport appStateStore from './appStateStore';\nimport cmd from './cmd';\nimport commands from './commands';\nimport AppRoot from './components/AppRoot';\nimport hash from './hash';\nimport log from 'loglevel';\n\nsetupLogger();\n\nconst appState = createAppState();\n\ncommands.initialize(cmd, appState);\n\nexecuteStartupCommands();\n\nvar root = <AppRoot appState={appState} />;\nReactDOM.render(root, document.getElementById('root'));\n\nlog.debug(\"started\");\n\nfunction createAppState() {\n var stateData = appStateStore.getPersistedData();\n const appState = new AppState(stateData);\n appStateStore.watch(appState);\n log.debug(\"appState\", appState);\n return appState;\n}\n\nfunction setupLogger() {\n if(window.location.host != 'bitwisecmd.com' || window.location.hash.indexOf('-debug') > -1) {\n log.setLevel(\"trace\");\n } else {\n log.setLevel(\"warn\");\n }\n}\n\nfunction executeStartupCommands() {\n var hashArgs = hash.getArgs(window.location.hash);\n\n var startupCommands = ['help', '1|2&6','1<<0x2a','2 4 8 16 32'];\n\n if(appState.wasOldVersion) {\n startupCommands = [\"whatsnew\"];\n }\n\n if(hashArgs.commands.length > 0) {\n startupCommands = hashArgs.commands;\n }\n\n startupCommands.forEach(cmd.execute.bind(cmd));\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/index.jsx","export default {\n plainObject: function(obj) {\n return typeof obj == \"object\" && obj instanceof Object;\n },\n\n aFunction: function (obj) {\n return typeof obj == \"function\";\n },\n\n string: function (obj) {\n return typeof obj == \"string\";\n },\n\n regex: function (obj) {\n return typeof obj == \"object\" && this.constructedFrom(RegExp);\n },\n\n constructedFrom: function (obj, ctor) {\n return obj instanceof ctor;\n },\n\n htmlElement: function(obj) {\n return obj instanceof HtmlElement;\n },\n\n array: function(obj) {\n return obj instanceof Array;\n },\n\n number: function(num) {\n return typeof num == \"number\" && !isNaN(num)\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/is.js"],"sourceRoot":""} \ No newline at end of file diff --git a/react/css/styles.css b/react/css/styles.css deleted file mode 100644 index 694c6bb..0000000 --- a/react/css/styles.css +++ /dev/null @@ -1,110 +0,0 @@ -body { padding:0; margin:0; height: 100%; overflow: hidden; } -html { height: 100% } - -.app-root { font-family: Verdana; font-size: 0.8em; margin: 0; padding: 20px 100px 0 100px; height: 100%; overflow: auto; } -code { font-size: 1.2em; font-weight: bold; } - -.top-links { position: absolute; right: 10px; top: 10px; list-style-type: none; margin: 0 } -.top-links li { float: left; } -.top-links a { display: inline-block; padding: 10px 15px} -.top-links .icon { margin-right: 5px; } - -.mono { font-family: monospace; font-size: 1.3em } -.expressionInput { width: 500px; padding: 3px; border: solid 1px lightgray; } - -.result { margin: 10px 10px 30px; } -.result .input { margin-bottom: 10px; } -.result .content { padding-left: 10px} -.result .cur { margin-right: 5px; } - -.hashLink { text-decoration: none; margin-left: 5px; visibility: hidden } -.hashLink:hover { text-decoration: underline; margin-left: 5px; } -.input:hover .hashLink { visibility: visible } - -.expression .label { font-weight: bold; padding-right: 5px; text-align: right; } -.expression .bin { letter-spacing: 3px; } -.expression .flipable { cursor: pointer; opacity: 1 } -.expression .flipable:hover { opacity: 0.8 } -.expression .byte { margin: 0 3px; } -.expression .flipable { cursor: pointer; opacity: 1 } -.expression .flipable:hover { opacity: 0.8 } -.expression-result td { border-top: dotted 1px gray; } -.expression { font-size: 1.5em; font-family: monospace } -.expression .prefix { font-weight: normal; display: none; font-size: 0.9em } -.expression .other { font-size: 0.9em} -.expression .sign { text-align: right} - -.hex .prefix { display: inline; } - -.help { padding: 10px; } -.help ul { list-style-type: none; margin: 0; padding: 0; } -.help p { margin-top: 0 } - -.indicator { padding: 2px 5px; font-family: monospace; font-size: 1.3em; background: transparent; border: none; cursor: pointer } -.error { color: maroon; } - -#view { padding: 10px} - -.cur { color: lightgray; } - -.icon { width: 16px; height: 16px; display: inline-block; } -.light .twitter { background: url('../img/twitter-light.png') } -.dark .twitter { background: url('../img/twitter-dark.png') } - -.light .feedback { background: url('../img/feedback-light.png') } -.dark .feedback { background: url('../img/feedback-dark.png') } - -.dark .github { background: url('../img/github-dark.png') } -.light .github { background: url('../img/github-light.png') } - -/* Light */ -.light { background: #fafafa; } -.light a, .light a:visited { color: #222; } -.light .one { color: black; } -.light .zero { color: #888; } -.light .indicator { color: #ddd; } -.light .on { color: #121212; } -.light .prefix { color: #888} -.light .other { color: #bbb } -.light .hashLink, .light .hashLink:visited { color: #ddd } -.light .hashLink:hover { color: #888 } -.light ul.top-links li:hover { background: #ddd } - -/* Dark */ -.dark { background: #121212; color: white;} -.dark .expression { color: white;} -.dark .expressionInput { background: #121212; color: white; } -.dark a, .dark a:visited { color: white; } -.dark .indicator { color: #555; } -.dark .on { color: white; } -.dark .zero { color: #999;} -.dark .prefix { color: #999} -.dark .other { color: #444;} -.dark .hashLink, .dark .hashLink:visited { color: #333 } -.dark .hashLink:hover { color: #999 } -.dark ul.top-links li:hover { background: #333 } -.dark .error { color: mediumvioletred} - -/* Top Links Shrink */ -@media (max-width: 800px) { - - .top-links .link-text { display: none } -} - -.social-container{ position:fixed; bottom:10px; right:10px } - -/* Remove margin space on body. Inline top links with header */ -@media (max-width: 700px) { - body { padding: 10px; } - .expressionInput { width: 500px; } -} - -/* Further shrink */ -@media (max-width: 500px) { - .expressionInput { width: 350px; } - .top-links a { display: inline-block; padding: 5px 10px} -} - -@media (max-width: 350px) { - .expressionInput { width: 200px; } -} diff --git a/react/img/feedback-dark.png b/react/img/feedback-dark.png deleted file mode 100644 index c693b65b7bcab34a92c9886b081ed1a5614b264c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe7{Je; zKl}gu`E!#L4Aip{?Dii&e)xR*_KoZB-@p6+6A6H7FMs*+MGR<&4a2{G|Na6QNk9RR zA$tj#0aSDG^XJbZzkdC40qXtA0MY<6<im##TtIK&Gz6&mJhEnxUa$d3hNQfI{~lz> zZjcx<z@`}_4>thBfw~045Rm4tU%v{$oDEV711JW71Yw2%y~6?2xE+X3<I)ULk6{3^ zAunFMV0!xWDGN56LFzyNs{tShkV}9XGk`JV1!R8(iD3gc4Zx-tn;7K=K$GulAWaUw bKk!*m<=#aT*SJslAeVT$`njxgN@xNA;o{*p diff --git a/react/img/feedback-light.png b/react/img/feedback-light.png deleted file mode 100644 index 83779293c22482b2305e7766fb48ea429d33480c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe7yu6s zPd_Uw>rGNHP|r%R+XVy!d?Y0$xmZ|O_5%g}6N8zVnJ<fri;MB`@!5b3`OD4Cog^b8 z12SYUAp?M#FG@&AhyeAtFfuZJ1sMRc6>Nxtf&v%N8#oOCYCeyq8Kf8PY>*)-N=ix~ zLv|yHgS~}AGl~H)mtYtI(hT&o5R$XOhC(fYy8tE#a|s8~CEJ0TPvg;y;Q|yxjE#+% z%*@PKaM%n}i{S#81jr>Bz^L+qhBizboyKVZx<Xuh3JqXmV*@4O*JR@RpmZ>>ApYG7 U*&lb8a)4an>FVdQ&MBb@0P&2tsQ>@~ diff --git a/react/img/github-dark.png b/react/img/github-dark.png deleted file mode 100644 index 07ecd24763f7c65802598086ab0743c407b615d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 470 zcmV;{0V)28P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10aHmtK~y-6jgq@AL}3(#zZpS-2T&nlByO2rR7B-cDV1Jg9>T<A zCd3;kr_s2zViJj<a0vw!$`MhRe42eY#%*@;XP>OS_S*Yj=ZB_HC)AR9u0F>(SJ%|> zW`4S{Q(adZ>XBMdm*Nxxds8cF$4|`%>Z3aM$B?<;?0*qaH=;18cKx&EP;kot8Fd0U z0TzJ^;1bvZwt)el4Y&m+ffZm1=mn}ko-pSqCXD!hOa`~67PG)?r~yp>>hfpIM6Lp} zS)dQN3UIjvfrN7n^k)HqOn^Nt2y{oz0A_)EAQ#|i3j$}6bHH6<VhupetMxw&d{w7{ zTT_du<MG1gqcE(N)r(Z)jk+1X9CaajMhT#jJfvh#btffooWci#TOtK^sC!XJHhD-1 zG*XkF)Lpgxi!&ioj@1s;m!|t4My>R%xk+eDEvjc>Xg$7HKkl50cT3U8&P_aB7XSbN M07*qoM6N<$g6Dg>-2eap diff --git a/react/img/github-light.png b/react/img/github-light.png deleted file mode 100644 index 8df17f1cc321a1b65b1323d3d223376b784aa8d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 605 zcmV-j0;2tiP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006cNkl<ZIE{r< zziSjh7=7P2v)M~-=Wh4*ju@~L1Pj43YBXXQu&@y<QrPA{u(1^E6fHyrixj31v9T3R z6bl={T7xJgCbze{M_99$`C*aUumtp8_02c$z3<HoLpX*o3@<bDO(MEV&dmXUBieG# zy|vc9$g*s`&Zk-}x>598NV$C6v<{>7YClbH0Wfs~5y$a{WIq2taRqJdrzA-(0Wbmp zx>2+$g;>&Bua^f0HwJ0C#X_89qFv`);(%bc-@jdsMt7z>@3a(RVcPdk75n?Ipp=@Q z?e*Mjuje|Q&g1cr0KiObXi%l?bUKeKzEWzQeJNLtqG|nXT<!rVY6g1%8~_+&)~cp2 z<qCs&0RW7(BO*#Bou7y{jkP5JfO&xd%#C-p^E}_2WRPXq4-owxFXy<52A~aqCm8@> zI2Vp<#}4=j0D`C;$MLmE>M#tK1ak|AlYg-QHmq~l>GzG*`ehUZ7yl)Wl)4~=cv@?{ z<5KHKqw)aGIg<^C!@MXyFms`lny*;C?_Xi&-Kj?7qhLN!^{urJInVPip6@-G?e(TY zDHof~=CTTc&&<42GuUgjTHSgYZSDOuO}`%fg*b}d6Z2VP?Kx}hFwgU>##h}q-WJR= z0AP%H-5(6DAKvH~Nt!N#XiYGG_oV!W>Uj^*ti)RDyOkIKL_Jnf6mO;*jeQVxJ<nS$ r%kmEZwA*cuoI7KI2gzV?udewEO9s{W8@M$;00000NkvXXu0mjfB(D<A diff --git a/react/img/social-avatar.png b/react/img/social-avatar.png deleted file mode 100644 index 3d50a6daeb1bc27fc6c6f267c9d5d7aa2e2587a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6513 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 QXA&X}RUMTo<>zny4H#{L)&Kwi diff --git a/react/img/twitter-dark.png b/react/img/twitter-dark.png deleted file mode 100644 index e0d2f6faa35244270c5cb443b844a17606076713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6u^fM zAGm(}_!05#+c&?fSFbW*bu&;>>DjYqEa;NYpFd~%^XJdjfB*jd{q^hD;?JKy^P#H& z^MC*TUGVqs-^W13bzi=G5rHWJil_ZY0w6U%fBsa1$-`-&Gx>m;FM`wpZTk$=SoQMd zOE#c}`$+o1OrY3dxJDQQXe%GcbY#Uq{$*r7j19ElKhPB^-@ktkfawR*KmiA!rq3{i z_-LTI*T8_SK`{X2H=x8ppbbCqX$H9f7@#R%zkZcKF#yB?#)cG7!Eby904+g;!J9X4 zWYA3kx@0;o1AvBq2g)14^?*3Q5MK_Afkq&11)6>u<V0)$DE<}bbU(Oe7y}r13P8>4 zfeQZO(D)lDzZMv1nDGxY1Vn>UBhWP&K*bY*crFlk1Nm`S0}EN>fU?(HA2)c)I;|Vz N2v1i(mvv4FO#q_j*AxH% diff --git a/react/img/twitter-light.png b/react/img/twitter-light.png deleted file mode 100644 index ee35e405f7a35f2da73ef190f3a49db989cc0c37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKV3GE8aSX8#WE5a|{~IVe6o7() z0+*1GP=u(cs9$VsEE85Yi;IgZSy))Gpi5d=SuwG)vTkK$Wc<s`&AnJgMurbv4Vcft z!BN1>%>0<0oxM&%LP7+lh?A2u4aoiv!%R#}kNNre)nM{)T3K0{4`|axkV2qspMeHe znV6Wc0S&zm(+s0oSXd6jHNqIu($ah&7r+#OXrO_Yk@?7M9v+?)K|#R)pcn!G1ss5e zd<KfZos5eObj53+`Wl38APeL-pu|C-KY!xV2onbeXbLdkB~T0iae#tSz%T%%Fr2Oc zdJPc<IyyQs=%xVuHyxJ&K*PWD@$nhK^#J{01Pt-zKvNsp*w|WuUO0_M^H-qL{otBm z3}7l#02;6!$p4E?GssIo`L#gHFykL)2#5wIRVAQnGJr0b2ux6OfttF32`NreQW7(; ckTnh{yOKNQ<FP$=*+Gu*boFyt=akR{0K;8%C;$Ke diff --git a/react/index.html b/react/index.html deleted file mode 100644 index 1de5f3f..0000000 --- a/react/index.html +++ /dev/null @@ -1,35 +0,0 @@ -<!DOCTYPE> -<html> - <head> - <meta charset="UTF-8"> - <meta name="description" content="Free Text Online Bitwise Calculator"> - - <title>BitwiseCmd - - - - - - - - - - -

Ooops... Something went wrong ¯\_(ツ)_/¯
- - - -
- - - - - \ No newline at end of file diff --git a/react/npm-debug.log b/react/npm-debug.log deleted file mode 100644 index 926a603..0000000 --- a/react/npm-debug.log +++ /dev/null @@ -1,23 +0,0 @@ -0 info it worked if it ends with ok -1 verbose cli [ '/usr/local/bin/node', -1 verbose cli '/usr/local/bin/npm', -1 verbose cli 'run', -1 verbose cli 'server-lite' ] -2 info using npm@3.10.10 -3 info using node@v6.10.0 -4 verbose stack Error: ENOENT: no such file or directory, open '/Users/boryslevytskyi/git/BitwiseCmdPages/package.json' -4 verbose stack at Error (native) -5 verbose cwd /Users/boryslevytskyi/git/BitwiseCmdPages/react -6 error Darwin 16.5.0 -7 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "server-lite" -8 error node v6.10.0 -9 error npm v3.10.10 -10 error path /Users/boryslevytskyi/git/BitwiseCmdPages/package.json -11 error code ENOENT -12 error errno -2 -13 error syscall open -14 error enoent ENOENT: no such file or directory, open '/Users/boryslevytskyi/git/BitwiseCmdPages/package.json' -15 error enoent ENOENT: no such file or directory, open '/Users/boryslevytskyi/git/BitwiseCmdPages/package.json' -15 error enoent This is most likely not a problem with npm itself -15 error enoent and is related to npm not being able to find a file. -16 verbose exit [ -2, true ] diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 0000000..d28adfd --- /dev/null +++ b/service-worker.js @@ -0,0 +1,39 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); + +importScripts( + "/precache-manifest.306a719117545e31b16fdffd84fad1d1.js" +); + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } +}); + +workbox.core.clientsClaim(); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); + +workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { + + blacklist: [/^\/_/,/\/[^\/]+\.[^\/]+$/], +}); diff --git a/static/css/main.c7a8b155.chunk.css b/static/css/main.c7a8b155.chunk.css new file mode 100644 index 0000000..e7d7e5b --- /dev/null +++ b/static/css/main.c7a8b155.chunk.css @@ -0,0 +1,2 @@ +body{padding:0;margin:0;overflow:hidden}.app-root,body,html{height:100%}.app-root{font-family:Verdana;font-size:.8em;margin:0;padding:20px 100px 0;overflow:auto}code{font-size:1.2em;font-weight:700}.header-cmd{color:#c5c5c5}.top-links{position:absolute;right:10px;top:10px;list-style-type:none;margin:0}.top-links li{float:left}.top-links a{display:inline-block;padding:10px 15px}.top-links .icon{margin-right:5px}.mono{font-family:monospace;font-size:1.3em}.expressionInput{width:500px;padding:3px;border:1px solid #d3d3d3}.result{margin:10px 10px 30px}.result .input{margin-bottom:10px}.result .content{padding-left:10px}.result .cur{margin-right:5px}.hashLink{text-decoration:none;margin-left:5px;visibility:hidden}.hashLink:hover{text-decoration:underline;margin-left:5px}.result:hover .hashLink{visibility:visible}.expression .label{font-weight:700;padding-right:5px;text-align:right}.expression .bin{letter-spacing:3px}.expression .byte{margin:0 3px}.expression .flipable{cursor:pointer;opacity:1}.expression .flipable:hover{opacity:.8}.expression-result td{border-top:1px dotted grey}.expression{font-size:1.5em;font-family:monospace}.expression .prefix{font-weight:400;display:none;font-size:.9em}.expression .other{font-size:.9em}.expression .sign{text-align:right}.hex .prefix{display:inline}.help{padding:10px}.help ul{list-style-type:none;margin:0;padding:0}.help p{margin-top:0}.indicator{padding:2px 5px;font-family:monospace;font-size:1.3em;background:transparent;border:none;cursor:pointer}.error{color:maroon}.soft{opacity:.7}.changelog .item{margin-top:2em}#view{padding:10px}.cur{color:#d3d3d3}.icon{width:16px;height:16px;display:inline-block}.light .twitter{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEG0lEQVQ4EQEQBO/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAKEhISWBUVFU5dXV0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXIjg4OAQAAAAAAAAAAAAAAAAAAAAAOjo6AgUFBbUBAQH9CwsLoxwcHA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAICAhwAwMD4wcHB34YGBgUAAAAAAAAAAAJCQlmAAAA/wAAAP8AAAD/AgIC4w8PDyYAAAAAAAAAAAAAAAAAAAAAACMjIw4FBQXRAAAA/wEBAfMICAh6NDQ0BgMDA98AAAD/AAAA/wAAAP8AAAD/BAQEwwAAAAAAAAAAAAAAAAAAAAAAGxsbDgMDA+MAAAD/AAAA/wAAAP8FBQXTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/DAwMZBEREVAAAAAAAAAAAAAAAAAAERERQAMDA/MAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8EBATrERERfAAAAAAAAAAAAAAAAAAPDw8mBAQEwQICAvkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wsLC2QXFxcYAAAAAAAAAAAAAAAAAAAAAAAXFxcaAQEB+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8FBQXDAAAAAAAAAAAALCwsHAAAAAAAAAAAAAAAAAAAAAAMDAyXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB9w4ODjIAAAAAAAAAAAAREREyCAgIpwUFBYEGBgaFBAQEywAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAfULCwtOAAAAAAAAAAAAAAAAAAAAAAASEhIgBQUFrwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAfsFBQWtERERJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVIggICGgGBgaRBwcHnQUFBYsJCQleGRkZGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5C2TxxrzdBwAAAABJRU5ErkJggg==)}.dark .twitter,.midnight .twitter{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEG0lEQVQ4EQEQBO/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PAK+Pj4WPb29k7V1dUCAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2Iubm5gQAAAAAAAAAAAAAAAAAAAAA5+fnAvz8/LX+/v79+vr6o/Pz8w4AAAAAAAAAAAAAAAAAAAAAAAAAAAD7+/tw/f394/z8/H709PQUAAAAAAAAAAD7+/tm/////////////////f394/n5+SYAAAAAAAAAAAAAAAAAAAAAAPDw8A78/PzR//////7+/vP7+/t66enpBv39/d///////////////////////f39wwAAAAAAAAAAAAAAAAAAAAAA9PT0Dv39/eP////////////////9/f3T///////////////////////////+/v7/+fn5ZPf391AAAAAAAAAAAAAAAAAA9/f3QP39/fP////////////////////////////////////////////////9/f3r+Pj4fAAAAAAAAAAAAAAAAAD5+fkm/f39wf7+/vn//////////////////////////////////////v7+//r6+mT19fUYAAAAAAAAAAAAAAAAAAAAAAD29vYa/v7++//////////////////////////////////////9/f3DAAAAAAAAAAAA7OzsHAAAAAAAAAAAAAAAAAAAAAD5+fmX/////////////////////////////////v7+9/n5+TIAAAAAAAAAAAD5+fky+/v7p/z8/IH8/PyF/f39y/7+/v////////////////////////////7+/vX6+vpOAAAAAAAAAAAAAAAAAAAAAAD39/cg/Pz8r/7+/v3///////////////////////////7+/vv8/Pyt+Pj4JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2Ivv7+2j8/PyR/Pz8nfz8/Iv7+/te9fX1GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvO8cw5QWWiwAAAABJRU5ErkJggg==)}.light .feedback{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEG0lEQVQ4EQEQBO/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMjwUFBdkFBQXZBQUF2QUFBdkFBQXZBQUF2QUFBdkFBQXZBQUF2QUFBdkFBQXZBQUF2QwMDKkAAAAAABAQEEwZGRkKBAQEvwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAwPTFxcXFg4ODjwAAAAA/QsLC2IcHBwKBAQEvQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD0RgYGBQLCwtEAQEB9QAAAAD/AAAA/QsLC2IgICAKBQUFvQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wMDA88YGBgUCwsLRAEBAfUAAAD/AAAAAP8AAAD/AAAA/QsLC2QiIiIKBQUFuwAAAP8AAAD/AAAA/wAAAP8DAwPPGBgYFAsLC0QBAQH1AAAA/wAAAP8AAAAA/wAAAP8AAAD/AAAA/QsLC2QiIiIKBQUFuwAAAP8AAAD/AwMDzxcXFxILCwtEAQEB9QAAAP8AAAD/AAAA/wAAAAD/AAAA/wAAAP8AAAD/AAAA/QsLC2QiIiIIBQUFtwMDA8sXFxcSCwsLRAEBAfUAAAD/AAAA/wAAAP8AAAD/AAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QsLC2QzMzMCNjY2BAsLC0QBAQH1AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QsLC2gODg5KAQEB9QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ABgYG2QUFBesFBQXrBQUF6wUFBesFBQXrBQUF6wUFBesFBQXrBQUF6wUFBesFBQXrBQUF6wUFBesFBQXrBQUF3wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf7qgd+N2lCAAAAABJRU5ErkJggg==)}.dark .feedback,.midnight .feedback{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEG0lEQVQ4EQEQBO/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+fn5j/z8/Nn8/PzZ/Pz82fz8/Nn8/PzZ/Pz82fz8/Nn8/PzZ/Pz82fz8/Nn8/PzZ/Pz82fn5+akAAAAAAPj4+Ez29vYK/f39v//////////////////////////////////////////////////////9/f3T9PT0Fvn5+TwA/v7+/fn5+WL09PQK/f39vf///////////////////////////////////////////f390fPz8xT6+vpE/v7+9QD//////v7+/fn5+WLw8PAK/Pz8vf////////////////////////////////39/c/z8/MU+vr6RP7+/vX/////AP///////////v7+/fn5+WTv7+8K/Pz8u//////////////////////9/f3P8/PzFPr6+kT+/v71//////////8A/////////////////v7+/fn5+WTv7+8K/Pz8u////////////f39z/X19RL6+vpE/v7+9f///////////////wD//////////////////////v7+/fn5+WTw8PAI/f39t/39/cv19fUS+vr6RP7+/vX/////////////////////AP///////////////////////////v7+/fn5+WTo6OgC5eXlBPr6+kT+/v71//////////////////////////8A/////////////////////////////////v7+/fr6+mj5+flK/v7+9f///////////////////////////////wD/////////////////////////////////////////////////////////////////////////////////////AP////////////////////////////////////////////////////////////////////////////////////8A/Pz82fz8/Ov8/Pzr/Pz86/z8/Ov8/Pzr/Pz86/z8/Ov8/Pzr/Pz86/z8/Ov8/Pzr/Pz86/z8/Ov8/Pzr/Pz83wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk3tE0RV7ybwAAAABJRU5ErkJggg==)}.light .github{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACJElEQVQ4jYVTv2sUQRh93zez2Utu52739o4YsBMEC8EyajRiGbCwESxS2OY/sLEU7BQtRAWLFKYQsbEVTRQLG8FagygkJre3u0dYs5f5YZHbsAT0XvXNN++9780MQziGMAwvM/NNIrpKzs0BgCPacs69tda+yLJsvc6nWi26UfRcSLl83LQOo/VqP01vATB1AxHH8YZkPv8/cQVt7ackSS4BMAIAulG0KoVY0lqvlwcHNwZpusVCnGSiXedc4oBgt9+/XY5Gd6Y877QUYmHa908V+/uvoJSan+313Gyv5zqdzuPxkADATG1oUKXtdDqPK75Sap59KVeOomn9bFzuAShqBnsAHAAYY9aqpi/lCoN5AQCMtSMiSiadn4g2jbUlAIB5gQHMjXe28zzfnGSQZdkPEP0eL+e4igagDYAnGQBgOBeOa8cO+AkAgqgdx/G1SeowDJcEcwuHk3+xADasc9jp943V+mUUBBf/JY6UuiCFeFprveNS60ej8gDOOZMNh8O8KD4wc6GUmq9Yvu9fYebdqUbjo2A+UfWttQ85z/Mvnu89me31pkIpF5vN5rIKgs/MvFMz2Gu1Wt16Gm3t/TRNvx79hTiK3hPzWWPtOWvtMM/zrMZX3TjeFswzAGCMed0fDK4f3ugYSZougmhNMH/3pPyG6nkP0azEWuu7lRgARD1WURRvphuNfRB1Pc9bLcvyDwC0222PnDtjgQfJYHCvrvkLSwbV+Bu4NT8AAAAASUVORK5CYII=)}.dark .github,.midnight .github{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFTSURBVDiNjZK7LkRhFIW/GUGCB1AhYSRumV5UROVSKZVeYh7CxGQmxBsop9G4tWISiaBwCQUVyhFRmHyafTjGbXbyZ5+svfba+1/nh6ZQJ9SSeq4+xzlX19TxZn66sVNdVxvqkVpQl+IUAntTK2rHT80H6qM698eQueDsfxFRN6IwqHb9s+VQcMsAGXUCOAEWgQvgEtgCtoEBoA24BSaBFWAK6AWqQJ4w5ygmjPh/TAa3phazwGyoAUz/6vJnzESuArNZoA+4CnC5BYGEcw30ZwGBTIA9LQh0R84AZoF7IBfgaQsCZ5FzwF1iYg1Azav1Pwx8VaeCW1OLqOPxwuajMKyW1YtU4426Gb8cdSF6RgmgkjykZE91JyVwnMIHg1siBXaoe1FINnlICTRSk5/UXbX9izMhUo7VDtWXpvsfRq30rblJaEwtqmdhaD2+Vz/unIp3S9HIzk08XRcAAAAASUVORK5CYII=)}.light{background:#fafafa}.light a,.light a:visited{color:#222}.light .one{color:#000}.light .zero{color:#888}.light .indicator{color:#ddd}.light .on{color:#121212}.light .prefix{color:#888}.light .other{color:#bbb}.light .hashLink,.light .hashLink:visited{color:#ddd}.light .hashLink:hover{color:#888}.light ul.top-links li:hover{background:#ddd}.light .error{color:#da586d}.dark{background:#121212}.dark,.dark .expression{color:#fff}.dark .expressionInput{background:#121212;color:#fff}.dark a,.dark a:visited{color:#fff}.dark .indicator{color:#555}.dark .on{color:#fff}.dark .prefix,.dark .zero{color:#999}.dark .other{color:#444}.dark .hashLink,.dark .hashLink:visited{color:#333}.dark .hashLink:hover{color:#999}.dark ul.top-links li:hover{background:#333}.dark .error{color:#da586d}.midnight .header-cmd{color:#85a0ad}.midnight{background:#2c3e50}.midnight,.midnight .expression{color:#fff}.midnight .expressionInput{background:#2c3e50;color:#fff;border-color:#85a0ad}.dark a:visited,.midnight a{color:#fff}.midnight .indicator{color:#85a0ad}.midnight .on{color:#fff}.midnight .prefix,.midnight .zero{color:#85a0ad}.midnight .other{color:#9fbac7}.dark .hashLink:visited,.midnight .hashLink{color:#85a0ad}.midnight .hashLink:hover{color:#9fbac7}.midnight ul.top-links li:hover{background:#132537}.midnight .error{color:#da586d}.midnight .changelog .item-new .date{font-weight:700}@media (max-width:800px){.top-links .link-text{display:none}}.social-container{position:fixed;bottom:10px;right:10px}@media (max-width:700px){body{padding:10px}.expressionInput{width:500px}}@media (max-width:500px){.expressionInput{width:350px}.top-links a{display:inline-block;padding:5px 10px}}@media (max-width:350px){.expressionInput{width:200px}} +/*# sourceMappingURL=main.c7a8b155.chunk.css.map */ \ No newline at end of file diff --git a/static/css/main.c7a8b155.chunk.css.map b/static/css/main.c7a8b155.chunk.css.map new file mode 100644 index 0000000..0cd82d6 --- /dev/null +++ b/static/css/main.c7a8b155.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css"],"names":[],"mappings":"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","file":"main.c7a8b155.chunk.css","sourcesContent":["body { padding:0; margin:0; height: 100%; overflow: hidden; }\r\nhtml { height: 100% }\r\n\r\n.app-root { font-family: Verdana; font-size: 0.8em; margin: 0; padding: 20px 100px 0 100px; height: 100%; overflow: auto; }\r\ncode { font-size: 1.2em; font-weight: bold; }\r\n\r\n.header-cmd { color: #c5c5c5 }\r\n\r\n.top-links { position: absolute; right: 10px; top: 10px; list-style-type: none; margin: 0 }\r\n.top-links li { float: left; }\r\n.top-links a { display: inline-block; padding: 10px 15px}\r\n.top-links .icon { margin-right: 5px; }\r\n\r\n.mono { font-family: monospace; font-size: 1.3em }\r\n.expressionInput { width: 500px; padding: 3px; border: solid 1px lightgray; }\r\n\r\n.result { margin: 10px 10px 30px; }\r\n.result .input { margin-bottom: 10px; }\r\n.result .content { padding-left: 10px}\r\n.result .cur { margin-right: 5px; }\r\n\r\n.hashLink { text-decoration: none; margin-left: 5px; visibility: hidden }\r\n.hashLink:hover { text-decoration: underline; margin-left: 5px; }\r\n.result:hover .hashLink { visibility: visible }\r\n\r\n.expression .label { font-weight: bold; padding-right: 5px; text-align: right; }\r\n.expression .bin { letter-spacing: 3px; }\r\n.expression .flipable { cursor: pointer; opacity: 1 }\r\n.expression .flipable:hover { opacity: 0.8 }\r\n.expression .byte { margin: 0 3px; }\r\n.expression .flipable { cursor: pointer; opacity: 1 }\r\n.expression .flipable:hover { opacity: 0.8 }\r\n.expression-result td { border-top: dotted 1px gray; }\r\n.expression { font-size: 1.5em; font-family: monospace }\r\n.expression .prefix { font-weight: normal; display: none; font-size: 0.9em }\r\n.expression .other { font-size: 0.9em}\r\n.expression .sign { text-align: right}\r\n\r\n.hex .prefix { display: inline; }\r\n\r\n.help { padding: 10px; }\r\n.help ul { list-style-type: none; margin: 0; padding: 0; }\r\n.help p { margin-top: 0 }\r\n\r\n.indicator { padding: 2px 5px; font-family: monospace; font-size: 1.3em; background: transparent; border: none; cursor: pointer }\r\n.error { color: maroon; }\r\n\r\n.soft { opacity: 0.7 }\r\n\r\n.changelog .item { margin-top: 2em; }\r\n\r\n#view { padding: 10px}\r\n\r\n.cur { color: lightgray; }\r\n\r\n.icon { width: 16px; height: 16px; display: inline-block; }\r\n.light .twitter { background: url('./img/twitter-light.png') }\r\n.dark .twitter { background: url('./img/twitter-dark.png') }\r\n.midnight .twitter { background: url('./img/twitter-dark.png') }\r\n\r\n.light .feedback { background: url('./img/feedback-light.png') }\r\n.dark .feedback { background: url('./img/feedback-dark.png') }\r\n.midnight .feedback { background: url('./img/feedback-dark.png') }\r\n\r\n.light .github { background: url('./img/github-light.png') }\r\n.dark .github { background: url('./img/github-dark.png') }\r\n.midnight .github { background: url('./img/github-dark.png') }\r\n\r\n/* Light */\r\n.light { background: #fafafa; }\r\n.light a, .light a:visited { color: #222; }\r\n.light .one { color: black; }\r\n.light .zero { color: #888; }\r\n.light .indicator { color: #ddd; }\r\n.light .on { color: #121212; }\r\n.light .prefix { color: #888}\r\n.light .other { color: #bbb }\r\n.light .hashLink, .light .hashLink:visited { color: #ddd }\r\n.light .hashLink:hover { color: #888 }\r\n.light ul.top-links li:hover { background: #ddd }\r\n.light .error { color: #da586d }\r\n\r\n/* Dark */\r\n.dark { background: #121212; color: white;}\r\n.dark .expression { color: white;}\r\n.dark .expressionInput { background: #121212; color: white; }\r\n.dark a, .dark a:visited { color: white; }\r\n.dark .indicator { color: #555; }\r\n.dark .on { color: white; }\r\n.dark .zero { color: #999;}\r\n.dark .prefix { color: #999}\r\n.dark .other { color: #444;}\r\n.dark .hashLink, .dark .hashLink:visited { color: #333 }\r\n.dark .hashLink:hover { color: #999 }\r\n.dark ul.top-links li:hover { background: #333 }\r\n.dark .error { color: #da586d}\r\n\r\n/*\r\n Midnight Theme\r\n*/\r\n.midnight .header-cmd { color: #85a0ad }\r\n.midnight { background: #2c3e50; color: white }\r\n.midnight .expression { color: white;}\r\n.midnight .expressionInput { background: #2c3e50; color: white; border-color: #85a0ad }\r\n.midnight a, .dark a:visited { color: white; }\r\n.midnight .indicator { color: #85a0ad; }\r\n.midnight .on { color: white; }\r\n.midnight .zero { color: #85a0ad;}\r\n.midnight .prefix { color: #85a0ad}\r\n.midnight .other { color: #9FBAC7;}\r\n.midnight .hashLink, .dark .hashLink:visited { color: #85a0ad }\r\n.midnight .hashLink:hover { color: #9FBAC7 }\r\n.midnight ul.top-links li:hover { background: #132537 }\r\n.midnight .error { color:#da586d}\r\n.midnight .changelog .item-new .date { font-weight: bold }\r\n\r\n/* Top Links Shrink */\r\n@media (max-width: 800px) {\r\n\r\n .top-links .link-text { display: none }\r\n}\r\n\r\n.social-container{ position:fixed; bottom:10px; right:10px }\r\n\r\n/* Remove margin space on body. Inline top links with header */\r\n@media (max-width: 700px) {\r\n body { padding: 10px; }\r\n .expressionInput { width: 500px; }\r\n}\r\n\r\n/* Further shrink */\r\n@media (max-width: 500px) {\r\n .expressionInput { width: 350px; }\r\n .top-links a { display: inline-block; padding: 5px 10px}\r\n}\r\n\r\n@media (max-width: 350px) {\r\n .expressionInput { width: 200px; }\r\n}"]} \ No newline at end of file diff --git a/static/js/2.5133f82a.chunk.js b/static/js/2.5133f82a.chunk.js new file mode 100644 index 0000000..765b421 --- /dev/null +++ b/static/js/2.5133f82a.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(15)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";function r(e,t){for(var n=0;n=0&&r<=u.levels.SILENT))throw"log.setLevel() called with invalid level: "+r;if(a=r,!1!==o&&function(e){var r=(n[e]||"silent").toUpperCase();if(typeof window===t)return;try{return void(window.localStorage[c]=r)}catch(l){}try{window.document.cookie=encodeURIComponent(c)+"="+r+";"}catch(l){}}(r),l.call(u,r,e),typeof console===t&&r>>((3&t)<<3)&255;return l}}},function(e,t){for(var n=[],r=0;r<256;++r)n[r]=(r+256).toString(16).substr(1);e.exports=function(e,t){var r=t||0,l=n;return[l[e[r++]],l[e[r++]],l[e[r++]],l[e[r++]],"-",l[e[r++]],l[e[r++]],"-",l[e[r++]],l[e[r++]],"-",l[e[r++]],l[e[r++]],"-",l[e[r++]],l[e[r++]],l[e[r++]],l[e[r++]],l[e[r++]],l[e[r++]]].join("")}},function(e,t,n){"use strict";var r=n(9),l="function"===typeof Symbol&&Symbol.for,o=l?Symbol.for("react.element"):60103,i=l?Symbol.for("react.portal"):60106,a=l?Symbol.for("react.fragment"):60107,u=l?Symbol.for("react.strict_mode"):60108,c=l?Symbol.for("react.profiler"):60114,s=l?Symbol.for("react.provider"):60109,f=l?Symbol.for("react.context"):60110,d=l?Symbol.for("react.concurrent_mode"):60111,p=l?Symbol.for("react.forward_ref"):60112,m=l?Symbol.for("react.suspense"):60113,h=l?Symbol.for("react.memo"):60115,y=l?Symbol.for("react.lazy"):60116,v="function"===typeof Symbol&&Symbol.iterator;function g(e){for(var t=arguments.length-1,n="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=0;rz.length&&z.push(e)}function M(e,t,n){return null==e?0:function e(t,n,r,l){var a=typeof t;"undefined"!==a&&"boolean"!==a||(t=null);var u=!1;if(null===t)u=!0;else switch(a){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case o:case i:u=!0}}if(u)return r(l,t,""===n?"."+D(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;cthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=ce,e.release=se}l(ue.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ie)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ie)},persist:function(){this.isPersistent=ie},isPersistent:ae,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ae,this._dispatchInstances=this._dispatchListeners=null}}),ue.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},ue.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return l(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=l({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(ue);var de=ue.extend({data:null}),pe=ue.extend({data:null}),me=[9,13,27,32],he=$&&"CompositionEvent"in window,ye=null;$&&"documentMode"in document&&(ye=document.documentMode);var ve=$&&"TextEvent"in window&&!ye,ge=$&&(!he||ye&&8=ye),be=String.fromCharCode(32),ke={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},we=!1;function xe(e,t){switch(e){case"keyup":return-1!==me.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Te(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Se=!1;var _e={eventTypes:ke,extractEvents:function(e,t,n,r){var l=void 0,o=void 0;if(he)e:{switch(e){case"compositionstart":l=ke.compositionStart;break e;case"compositionend":l=ke.compositionEnd;break e;case"compositionupdate":l=ke.compositionUpdate;break e}l=void 0}else Se?xe(e,n)&&(l=ke.compositionEnd):"keydown"===e&&229===n.keyCode&&(l=ke.compositionStart);return l?(ge&&"ko"!==n.locale&&(Se||l!==ke.compositionStart?l===ke.compositionEnd&&Se&&(o=oe()):(re="value"in(ne=r)?ne.value:ne.textContent,Se=!0)),l=de.getPooled(l,t,n,r),o?l.data=o:null!==(o=Te(n))&&(l.data=o),H(l),o=l):o=null,(e=ve?function(e,t){switch(e){case"compositionend":return Te(t);case"keypress":return 32!==t.which?null:(we=!0,be);case"textInput":return(e=t.data)===be&&we?null:e;default:return null}}(e,n):function(e,t){if(Se)return"compositionend"===e||!he&&xe(e,t)?(e=oe(),le=re=ne=null,Se=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1