text: webpackJsonp([22],{
  
  /***/ 10:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n    switch (Object.prototype.toString.call(wat)) {\n        case '[object Error]':\n            return true;\n        case '[object Exception]':\n            return true;\n        case '[object DOMException]':\n            return true;\n        default:\n            return wat instanceof Error;\n    }\n}\nexports.isError = isError;\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n    return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\nexports.isErrorEvent = isErrorEvent;\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n    return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\nexports.isDOMError = isDOMError;\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n    return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\nexports.isDOMException = isDOMException;\n/**\n * Checks whether given value's type is an undefined\n * {@link isUndefined}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isUndefined(wat) {\n    return wat === void 0;\n}\nexports.isUndefined = isUndefined;\n/**\n * Checks whether given value's type is a function\n * {@link isFunction}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isFunction(wat) {\n    return typeof wat === 'function';\n}\nexports.isFunction = isFunction;\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n    return Object.prototype.toString.call(wat) === '[object String]';\n}\nexports.isString = isString;\n/**\n * Checks whether given value's type is an array\n * {@link isArray}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isArray(wat) {\n    return Object.prototype.toString.call(wat) === '[object Array]';\n}\nexports.isArray = isArray;\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n    return Object.prototype.toString.call(wat) === '[object Object]';\n}\nexports.isPlainObject = isPlainObject;\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n    return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n/**\n * Checks whether given value's type is a NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n    return wat !== wat;\n}\nexports.isNaN = isNaN;\n//# sourceMappingURL=is.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/is.js\n// module id = 10\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/is.js?");
  
  /***/ }),
  
  /***/ 100:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n.login {\\n  padding: 10px;\\n  width: 200px;\\n  line-height: 1.5rem;\\n  white-space: normal;\\n  color: white;\\n  font-size: .8125rem; }\\n  .login .button {\\n    padding: .75em; }\\n  .login .row {\\n    margin-bottom: 1.25rem; }\\n  .login .input {\\n    margin-bottom: 12px;\\n    width: calc(100% - 30px);\\n    height: 2.25rem; }\\n  .login label {\\n    padding-top: 5px;\\n    font-weight: bold; }\\n  .login .spinner {\\n    margin: 0 .8rem;\\n    width: 1rem;\\n    vertical-align: middle; }\\n  .login .submit-row {\\n    -webkit-justify-content: space-between;\\n        -ms-flex-pack: justify;\\n            justify-content: space-between;\\n    -webkit-flex-direction: row;\\n        -ms-flex-direction: row;\\n            flex-direction: row; }\\n  .login .submit-button {\\n    margin-top: 5px; }\\n  .login a {\\n    margin: auto 0;\\n    color: white; }\\n    .login a:link, .login a:visited, .login a:active {\\n      color: white; }\\n    .login a:hover {\\n      background-color: transparent; }\\n  .login .error {\\n    border: 1px solid rgba(0, 0, 0, 0.2);\\n    border-radius: 5px;\\n    background-color: #ffab1a;\\n    padding: .75em 1em; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/login/login.scss\n// module id = 100\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 101:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.overflow-hidden {\\n  /* to avoid double scroll bars this\\n    gets added to body while modal is open */\\n  overflow: hidden; }\\n\\n.modal-content {\\n  position: relative;\\n  margin: 3.75rem auto;\\n  border-radius: 1rem;\\n  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.15);\\n  background-color: white;\\n  padding: 0;\\n  width: 48.75rem; }\\n  .modal-content .modal-content {\\n    /* content inside of content */\\n    display: -webkit-flex;\\n    display: -ms-flexbox;\\n    display: flex;\\n    border-radius: 0;\\n    -webkit-flex-direction: column;\\n        -ms-flex-direction: column;\\n            flex-direction: column; }\\n  .modal-content:focus {\\n    outline: none; }\\n  @media only screen and (max-width: 941px) {\\n    .modal-content {\\n      margin-top: 0;\\n      width: 100%;\\n      overflow: auto; } }\\n  @media only screen and (max-width: 479px), only screen and (max-height: 479px) {\\n    .modal-content {\\n      border-radius: 0;\\n      box-shadow: none;\\n      height: 100%; } }\\n\\n.modal-overlay {\\n  position: fixed;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n  z-index: 510;\\n  background-color: rgba(77, 151, 255, 0.7); }\\n\\n.modal-content-close {\\n  position: absolute;\\n  top: 0.5rem;\\n  right: 0.5rem;\\n  border-radius: 1rem;\\n  background-color: rgba(0, 0, 0, 0.2);\\n  cursor: pointer;\\n  width: 2rem;\\n  height: 2rem;\\n  text-align: center;\\n  line-height: 2rem; }\\n\\n.modal-content-close-img {\\n  padding-top: 0.5rem; }\\n\\n/* Close button, Submit button, etc. */\\n.action-buttons {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  margin: 1.125rem .8275rem .9375rem .8275rem;\\n  line-height: 1.5rem;\\n  -webkit-justify-content: flex-end !important;\\n      -ms-flex-pack: end !important;\\n          justify-content: flex-end !important;\\n  -webkit-align-items: flex-start;\\n      -ms-flex-align: start;\\n          align-items: flex-start;\\n  -webkit-flex-wrap: nowrap;\\n      -ms-flex-wrap: nowrap;\\n          flex-wrap: nowrap; }\\n  @media only screen and (max-width: 941px) {\\n    .action-buttons {\\n      -webkit-justify-content: center !important;\\n          -ms-flex-pack: center !important;\\n              justify-content: center !important;\\n      -webkit-flex-direction: row !important;\\n          -ms-flex-direction: row !important;\\n              flex-direction: row !important; } }\\n\\n/* setting overall modal to contain overflow looks good, but isn't\\ncompatible with elements (like validation popups) that need to bleed\\npast modal boundary. This class can be used to force modal button\\nrow to appear to contain overflow. */\\n.action-buttons-overflow-fix {\\n  margin-bottom: .9375rem; }\\n\\n.action-button {\\n  margin: 0 0 0 .54625rem;\\n  border-radius: .25rem;\\n  padding: 6px 1.25rem 14px 1.25rem;\\n  height: 36px; }\\n\\n.action-button.close-button {\\n  border: 1px solid rgba(0, 0, 0, 0.1); }\\n\\n.action-button-text {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex; }\\n\\n.action-button.disabled {\\n  background-color: rgba(0, 0, 0, 0.2); }\\n\\n.error-text {\\n  display: block;\\n  border: 1px solid rgba(0, 0, 0, 0.1);\\n  border-radius: 5px;\\n  background-color: #ffab1a;\\n  padding: 1rem;\\n  min-height: 1rem;\\n  overflow: visible;\\n  color: white; }\\n\\n.modal-sizes * {\\n  box-sizing: border-box; }\\n\\n.modal-sizes {\\n  margin: 100px auto;\\n  outline: none;\\n  padding: 0;\\n  max-width: 36.25rem;\\n  /* 580px; */\\n  -webkit-user-select: none;\\n     -moz-user-select: none;\\n      -ms-user-select: none;\\n          user-select: none; }\\n  @media only screen and (min-width: 480px) and (max-width: 767px), only screen and (min-height: 480px) and (max-height: 767px) {\\n    .modal-sizes {\\n      margin: 40px auto; } }\\n  @media only screen and (max-width: 479px), only screen and (max-height: 479px) {\\n    .modal-sizes {\\n      margin: 0 auto;\\n      width: auto; } }\\n  .modal-sizes .modal-header {\\n    padding-top: .75rem;\\n    width: 100%;\\n    height: 3rem; }\\n    @media only screen and (max-width: 479px), only screen and (max-height: 479px) {\\n      .modal-sizes .modal-header {\\n        border-radius: 0; } }\\n  .modal-sizes .content-label {\\n    text-align: center;\\n    color: white;\\n    font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n    font-size: 1rem;\\n    font-weight: bold; }\\n  .modal-sizes .modal-content {\\n    font-size: .875rem; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/modal/base/modal.scss\n// module id = 101\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/base/modal.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 102:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.modal-content-iframe {\\n  border: 0; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/modal/iframe/modal.scss\n// module id = 102\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/iframe/modal.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 103:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.account-nav .user-info {\\n  display: inline-block;\\n  padding: 14px 15px 4px 15px;\\n  max-width: 260px;\\n  height: 33px;\\n  overflow: hidden;\\n  text-decoration: none;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n  color: white;\\n  font-size: .8125rem;\\n  font-weight: normal; }\\n  .account-nav .user-info .avatar {\\n    margin-right: 10px;\\n    border-radius: 3px;\\n    width: 24px;\\n    height: 24px;\\n    vertical-align: middle; }\\n  .account-nav .user-info:hover {\\n    background-color: rgba(0, 0, 0, 0.1); }\\n  .account-nav .user-info.open {\\n    background-color: rgba(0, 0, 0, 0.1); }\\n  .account-nav .user-info:after {\\n    display: inline-block;\\n    margin-left: 8px;\\n    background-image: url(\\\"/images/dropdown.png\\\");\\n    background-repeat: no-repeat;\\n    background-position: center center;\\n    background-size: 50%;\\n    width: 20px;\\n    height: 20px;\\n    vertical-align: middle;\\n    content: \\\" \\\"; }\\n\\n.account-nav .dropdown {\\n  top: 50px;\\n  padding: 0;\\n  padding-top: 5px;\\n  width: 100%;\\n  box-sizing: border-box; }\\n\\n@media only screen and (max-width: 479px) {\\n  .account-nav {\\n    margin-left: 0; }\\n    .account-nav .user-info .avatar {\\n      margin-right: 0; }\\n    .account-nav .user-info:after {\\n      display: none; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  .account-nav {\\n    margin-left: 0; }\\n    .account-nav .user-info .avatar {\\n      margin-right: 0; }\\n    .account-nav .user-info:after {\\n      display: none; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  .account-nav {\\n    margin-left: 0; } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/navigation/www/accountnav.scss\n// module id = 103\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/accountnav.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 104:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n#navigation.staging .messages .message-count {\\n  display: none; }\\n  #navigation.staging .messages .message-count.show {\\n    background-color: #4d97ff; }\\n\\n#navigation .logo {\\n  margin-right: 10px; }\\n  #navigation .logo a {\\n    display: block;\\n    transition: .15s ease all;\\n    margin: 0 6px 0 0;\\n    border: 0;\\n    background-image: url(\\\"/images/logo_sm.png\\\");\\n    background-repeat: no-repeat;\\n    background-position: center center;\\n    background-size: 95%;\\n    width: 81px;\\n    height: 50px; }\\n    #navigation .logo a:hover {\\n      transition: .15s ease all;\\n      background-size: 100%; }\\n\\n#navigation .inner > ul > li.search {\\n  margin: 0 20px;\\n  border-right: 0;\\n  color: white;\\n  -webkit-flex-grow: 3;\\n      -ms-flex-positive: 3;\\n          flex-grow: 3; }\\n  .ie9 #navigation .inner > ul > li.search {\\n    width: 100%; }\\n  #navigation .inner > ul > li.search .form {\\n    margin: 0; }\\n  #navigation .inner > ul > li.search .row .help-block {\\n    display: none; }\\n  #navigation .inner > ul > li.search .input,\\n  #navigation .inner > ul > li.search .button {\\n    display: inline-block;\\n    margin-top: 5px;\\n    outline: none;\\n    border: 0;\\n    background-color: rgba(0, 0, 0, 0.1);\\n    height: 14px; }\\n    #navigation .inner > ul > li.search .input[type=text],\\n    #navigation .inner > ul > li.search .button[type=text] {\\n      transition: .15s ease background-color;\\n      padding: 0;\\n      padding-right: 10px;\\n      padding-left: 40px;\\n      width: calc(100% - 50px);\\n      height: 40px;\\n      color: white;\\n      font-size: .85em; }\\n      #navigation .inner > ul > li.search .input[type=text]::-webkit-input-placeholder,\\n      #navigation .inner > ul > li.search .button[type=text]::-webkit-input-placeholder {\\n        color: rgba(255, 255, 255, 0.75); }\\n      #navigation .inner > ul > li.search .input[type=text]:-ms-input-placeholder,\\n      #navigation .inner > ul > li.search .button[type=text]:-ms-input-placeholder {\\n        color: rgba(255, 255, 255, 0.75); }\\n      #navigation .inner > ul > li.search .input[type=text]::placeholder,\\n      #navigation .inner > ul > li.search .button[type=text]::placeholder {\\n        color: rgba(255, 255, 255, 0.75); }\\n      #navigation .inner > ul > li.search .input[type=text]:focus,\\n      #navigation .inner > ul > li.search .button[type=text]:focus {\\n        transition: .15s ease background-color;\\n        background-color: rgba(0, 0, 0, 0.2); }\\n      .ie9 #navigation .inner > ul > li.search .input[type=text], .ie9\\n      #navigation .inner > ul > li.search .button[type=text] {\\n        width: 70px; }\\n  #navigation .inner > ul > li.search .btn-search {\\n    position: absolute;\\n    box-shadow: none;\\n    background-color: transparent;\\n    background-image: url(\\\"/images/nav-search-glass.png\\\");\\n    background-repeat: no-repeat;\\n    background-position: center center;\\n    background-size: 14px 14px;\\n    width: 40px;\\n    height: 40px; }\\n    #navigation .inner > ul > li.search .btn-search:hover {\\n      box-shadow: none; }\\n\\n#navigation .messages > a,\\n#navigation .mystuff > a {\\n  background-repeat: no-repeat;\\n  background-position: center center;\\n  background-size: 45%;\\n  padding-right: 10px;\\n  padding-left: 10px;\\n  width: 30px;\\n  overflow: hidden;\\n  text-indent: 50px;\\n  white-space: nowrap; }\\n  #navigation .messages > a:hover,\\n  #navigation .mystuff > a:hover {\\n    background-size: 50%; }\\n\\n#navigation .messages > a {\\n  background-image: url(\\\"/images/nav-notifications.png\\\"); }\\n\\n#navigation .messages .message-count {\\n  display: none; }\\n  #navigation .messages .message-count.show {\\n    display: block;\\n    position: absolute;\\n    top: .5rem;\\n    right: .25rem;\\n    border-radius: 1rem;\\n    background-color: #ffab1a;\\n    padding: 0 .25rem;\\n    text-indent: 0;\\n    line-height: 1rem;\\n    color: white;\\n    font-size: .7rem;\\n    font-weight: bold; }\\n\\n#navigation .mystuff > a {\\n  background-image: url(\\\"/images/mystuff.png\\\"); }\\n\\n@media only screen and (max-width: 479px) {\\n  #navigation .inner {\\n    width: 18.75em; }\\n    #navigation .inner > ul > li.login-item {\\n      margin-left: 0; }\\n    #navigation .inner .create,\\n    #navigation .inner .discuss,\\n    #navigation .inner .explore,\\n    #navigation .inner .search,\\n    #navigation .inner .help,\\n    #navigation .inner .mystuff,\\n    #navigation .inner .profile-name {\\n      display: none; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #navigation .inner {\\n    width: 28.75em; }\\n    #navigation .inner > ul > li.login-item {\\n      margin-left: 0; }\\n    #navigation .inner .discuss,\\n    #navigation .inner .explore,\\n    #navigation .inner .search,\\n    #navigation .inner .mystuff,\\n    #navigation .inner .profile-name {\\n      display: none; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #navigation .inner {\\n    width: 38.75em; }\\n    #navigation .inner > ul > li.login-item {\\n      margin-left: 0; }\\n    #navigation .inner .explore,\\n    #navigation .inner .search,\\n    #navigation .inner .mystuff {\\n      display: none; } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/navigation/www/navigation.scss\n// module id = 104\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/navigation.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 105:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.modal-content.mod-registration {\\n  width: 38.125rem;\\n  overflow: hidden; }\\n\\n.modal-content-iframe.mod-registration {\\n  width: 38.125rem;\\n  min-height: 27.375rem; }\\n\\n@media only screen and (max-width: 941px) {\\n  .modal-content.mod-registration {\\n    width: 100%;\\n    overflow: scroll; }\\n  .modal-content-iframe.mod-registration {\\n    height: 27.375rem; } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/registration/registration.scss\n// module id = 105\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/registration/registration.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 106:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2015 Jed Watson.\n  Based on code that is Copyright 2013-2015, Facebook, Inc.\n  All rights reserved.\n*/\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/exenv/index.js\n// module id = 106\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/exenv/index.js?");
  
  /***/ }),
  
  /***/ 107:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = undefined;\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__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(37);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = __webpack_require__(1);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = __webpack_require__(108);\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = __webpack_require__(30);\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = __webpack_require__(32);\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\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 portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _reactDom2.default.createPortal !== undefined;\nvar createPortal = isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n\nfunction getParentElement(parentSelector) {\n  return parentSelector();\n}\n\nvar Modal = function (_Component) {\n  _inherits(Modal, _Component);\n\n  function Modal() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, Modal);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n      !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n      var parent = getParentElement(_this.props.parentSelector);\n      parent.removeChild(_this.node);\n    }, _this.portalRef = function (ref) {\n      _this.portal = ref;\n    }, _this.renderPortal = function (props) {\n      var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n      _this.portalRef(portal);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(Modal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (!_safeHTMLElement.canUseDOM) return;\n\n      if (!isReact16) {\n        this.node = document.createElement(\"div\");\n      }\n      this.node.className = this.props.portalClassName;\n\n      var parent = getParentElement(this.props.parentSelector);\n      parent.appendChild(this.node);\n\n      !isReact16 && this.renderPortal(this.props);\n    }\n  }, {\n    key: \"componentWillReceiveProps\",\n    value: function componentWillReceiveProps(newProps) {\n      if (!_safeHTMLElement.canUseDOM) return;\n      var isOpen = newProps.isOpen;\n      // Stop unnecessary renders if modal is remaining closed\n\n      if (!this.props.isOpen && !isOpen) return;\n\n      var currentParent = getParentElement(this.props.parentSelector);\n      var newParent = getParentElement(newProps.parentSelector);\n\n      if (newParent !== currentParent) {\n        currentParent.removeChild(this.node);\n        newParent.appendChild(this.node);\n      }\n\n      !isReact16 && this.renderPortal(newProps);\n    }\n  }, {\n    key: \"componentWillUpdate\",\n    value: function componentWillUpdate(newProps) {\n      if (!_safeHTMLElement.canUseDOM) return;\n      if (newProps.portalClassName !== this.props.portalClassName) {\n        this.node.className = newProps.portalClassName;\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n      var state = this.portal.state;\n      var now = Date.now();\n      var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n      if (closesAt) {\n        if (!state.beforeClose) {\n          this.portal.closeWithTimeout();\n        }\n\n        setTimeout(this.removePortal, closesAt - now);\n      } else {\n        this.removePortal();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (!_safeHTMLElement.canUseDOM || !isReact16) {\n        return null;\n      }\n\n      if (!this.node && isReact16) {\n        this.node = document.createElement(\"div\");\n      }\n\n      return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n        ref: this.portalRef,\n        defaultStyles: Modal.defaultStyles\n      }, this.props)), this.node);\n    }\n  }], [{\n    key: \"setAppElement\",\n    value: function setAppElement(element) {\n      ariaAppHider.setElement(element);\n    }\n\n    /* eslint-disable react/no-unused-prop-types */\n\n    /* eslint-enable react/no-unused-prop-types */\n\n  }]);\n\n  return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n  isOpen: _propTypes2.default.bool.isRequired,\n  style: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  portalClassName: _propTypes2.default.string,\n  bodyOpenClassName: _propTypes2.default.string,\n  className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n    base: _propTypes2.default.string.isRequired,\n    afterOpen: _propTypes2.default.string.isRequired,\n    beforeClose: _propTypes2.default.string.isRequired\n  })]),\n  overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n    base: _propTypes2.default.string.isRequired,\n    afterOpen: _propTypes2.default.string.isRequired,\n    beforeClose: _propTypes2.default.string.isRequired\n  })]),\n  appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n  onAfterOpen: _propTypes2.default.func,\n  onRequestClose: _propTypes2.default.func,\n  closeTimeoutMS: _propTypes2.default.number,\n  ariaHideApp: _propTypes2.default.bool,\n  shouldFocusAfterRender: _propTypes2.default.bool,\n  shouldCloseOnOverlayClick: _propTypes2.default.bool,\n  shouldReturnFocusAfterClose: _propTypes2.default.bool,\n  parentSelector: _propTypes2.default.func,\n  aria: _propTypes2.default.object,\n  role: _propTypes2.default.string,\n  contentLabel: _propTypes2.default.string,\n  shouldCloseOnEsc: _propTypes2.default.bool\n};\nModal.defaultProps = {\n  isOpen: false,\n  portalClassName: portalClassName,\n  bodyOpenClassName: bodyOpenClassName,\n  ariaHideApp: true,\n  closeTimeoutMS: 0,\n  shouldFocusAfterRender: true,\n  shouldCloseOnEsc: true,\n  shouldCloseOnOverlayClick: true,\n  shouldReturnFocusAfterClose: true,\n  parentSelector: function parentSelector() {\n    return document.body;\n  }\n};\nModal.defaultStyles = {\n  overlay: {\n    position: \"fixed\",\n    top: 0,\n    left: 0,\n    right: 0,\n    bottom: 0,\n    backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n  },\n  content: {\n    position: \"absolute\",\n    top: \"40px\",\n    left: \"40px\",\n    right: \"40px\",\n    bottom: \"40px\",\n    border: \"1px solid #ccc\",\n    background: \"#fff\",\n    overflow: \"auto\",\n    WebkitOverflowScrolling: \"touch\",\n    borderRadius: \"4px\",\n    outline: \"none\",\n    padding: \"20px\"\n  }\n};\nexports.default = Modal;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/components/Modal.js\n// module id = 107\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/components/Modal.js?");
  
  /***/ }),
  
  /***/ 108:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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 _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__(0);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(1);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = __webpack_require__(110);\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = __webpack_require__(111);\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = __webpack_require__(30);\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _refCount = __webpack_require__(31);\n\nvar refCount = _interopRequireWildcard(_refCount);\n\nvar _bodyClassList = __webpack_require__(109);\n\nvar bodyClassList = _interopRequireWildcard(_bodyClassList);\n\nvar _safeHTMLElement = __webpack_require__(32);\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\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\n// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n  overlay: \"ReactModal__Overlay\",\n  content: \"ReactModal__Content\"\n};\n\nvar TAB_KEY = 9;\nvar ESC_KEY = 27;\n\nvar ModalPortal = function (_Component) {\n  _inherits(ModalPortal, _Component);\n\n  function ModalPortal(props) {\n    _classCallCheck(this, ModalPortal);\n\n    var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n    _this.setFocusAfterRender = function (focus) {\n      _this.focusAfterRender = _this.props.shouldFocusAfterRender && focus;\n    };\n\n    _this.setOverlayRef = function (overlay) {\n      _this.overlay = overlay;\n    };\n\n    _this.setContentRef = function (content) {\n      _this.content = content;\n    };\n\n    _this.afterClose = function () {\n      var _this$props = _this.props,\n          appElement = _this$props.appElement,\n          ariaHideApp = _this$props.ariaHideApp;\n\n      // Remove body class\n\n      bodyClassList.remove(_this.props.bodyOpenClassName);\n\n      // Reset aria-hidden attribute if all modals have been removed\n      if (ariaHideApp && refCount.totalCount() < 1) {\n        ariaAppHider.show(appElement);\n      }\n\n      if (_this.props.shouldFocusAfterRender) {\n        if (_this.props.shouldReturnFocusAfterClose) {\n          focusManager.returnFocus();\n          focusManager.teardownScopedFocus();\n        } else {\n          focusManager.popWithoutFocus();\n        }\n      }\n    };\n\n    _this.open = function () {\n      _this.beforeOpen();\n      if (_this.state.afterOpen && _this.state.beforeClose) {\n        clearTimeout(_this.closeTimer);\n        _this.setState({ beforeClose: false });\n      } else {\n        if (_this.props.shouldFocusAfterRender) {\n          focusManager.setupScopedFocus(_this.node);\n          focusManager.markForFocusLater();\n        }\n\n        _this.setState({ isOpen: true }, function () {\n          _this.setState({ afterOpen: true });\n\n          if (_this.props.isOpen && _this.props.onAfterOpen) {\n            _this.props.onAfterOpen();\n          }\n        });\n      }\n    };\n\n    _this.close = function () {\n      if (_this.props.closeTimeoutMS > 0) {\n        _this.closeWithTimeout();\n      } else {\n        _this.closeWithoutTimeout();\n      }\n    };\n\n    _this.focusContent = function () {\n      return _this.content && !_this.contentHasFocus() && _this.content.focus();\n    };\n\n    _this.closeWithTimeout = function () {\n      var closesAt = Date.now() + _this.props.closeTimeoutMS;\n      _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n        _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n      });\n    };\n\n    _this.closeWithoutTimeout = function () {\n      _this.setState({\n        beforeClose: false,\n        isOpen: false,\n        afterOpen: false,\n        closesAt: null\n      }, _this.afterClose);\n    };\n\n    _this.handleKeyDown = function (event) {\n      if (event.keyCode === TAB_KEY) {\n        (0, _scopeTab2.default)(_this.content, event);\n      }\n\n      if (_this.props.shouldCloseOnEsc && event.keyCode === ESC_KEY) {\n        event.stopPropagation();\n        _this.requestClose(event);\n      }\n    };\n\n    _this.handleOverlayOnClick = function (event) {\n      if (_this.shouldClose === null) {\n        _this.shouldClose = true;\n      }\n\n      if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n        if (_this.ownerHandlesClose()) {\n          _this.requestClose(event);\n        } else {\n          _this.focusContent();\n        }\n      }\n      _this.shouldClose = null;\n      _this.moveFromContentToOverlay = null;\n    };\n\n    _this.handleOverlayOnMouseUp = function () {\n      if (_this.moveFromContentToOverlay === null) {\n        _this.shouldClose = false;\n      }\n      if (_this.props.shouldCloseOnOverlayClick) {\n        _this.shouldClose = true;\n      }\n    };\n\n    _this.handleContentOnMouseUp = function () {\n      _this.shouldClose = false;\n    };\n\n    _this.handleOverlayOnMouseDown = function (event) {\n      if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n        event.preventDefault();\n      }\n      _this.moveFromContentToOverlay = false;\n    };\n\n    _this.handleContentOnClick = function () {\n      _this.shouldClose = false;\n    };\n\n    _this.handleContentOnMouseDown = function () {\n      _this.shouldClose = false;\n      _this.moveFromContentToOverlay = false;\n    };\n\n    _this.requestClose = function (event) {\n      return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n    };\n\n    _this.ownerHandlesClose = function () {\n      return _this.props.onRequestClose;\n    };\n\n    _this.shouldBeClosed = function () {\n      return !_this.state.isOpen && !_this.state.beforeClose;\n    };\n\n    _this.contentHasFocus = function () {\n      return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n    };\n\n    _this.buildClassName = function (which, additional) {\n      var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n        base: CLASS_NAMES[which],\n        afterOpen: CLASS_NAMES[which] + \"--after-open\",\n        beforeClose: CLASS_NAMES[which] + \"--before-close\"\n      };\n      var className = classNames.base;\n      if (_this.state.afterOpen) {\n        className = className + \" \" + classNames.afterOpen;\n      }\n      if (_this.state.beforeClose) {\n        className = className + \" \" + classNames.beforeClose;\n      }\n      return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n    };\n\n    _this.ariaAttributes = function (items) {\n      return Object.keys(items).reduce(function (acc, name) {\n        acc[\"aria-\" + name] = items[name];\n        return acc;\n      }, {});\n    };\n\n    _this.state = {\n      afterOpen: false,\n      beforeClose: false\n    };\n\n    _this.shouldClose = null;\n    _this.moveFromContentToOverlay = null;\n    return _this;\n  }\n\n  _createClass(ModalPortal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // Focus needs to be set when mounting and already open\n      if (this.props.isOpen) {\n        this.setFocusAfterRender(true);\n        this.open();\n      }\n    }\n  }, {\n    key: \"componentWillReceiveProps\",\n    value: function componentWillReceiveProps(newProps) {\n      if (true) {\n        if (newProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n          // eslint-disable-next-line no-console\n          console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n        }\n      }\n      // Focus only needs to be set once when the modal is being opened\n      if (!this.props.isOpen && newProps.isOpen) {\n        this.setFocusAfterRender(true);\n        this.open();\n      } else if (this.props.isOpen && !newProps.isOpen) {\n        this.close();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      if (this.focusAfterRender) {\n        this.focusContent();\n        this.setFocusAfterRender(false);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.afterClose();\n      clearTimeout(this.closeTimer);\n    }\n  }, {\n    key: \"beforeOpen\",\n    value: function beforeOpen() {\n      var _props = this.props,\n          appElement = _props.appElement,\n          ariaHideApp = _props.ariaHideApp,\n          bodyOpenClassName = _props.bodyOpenClassName;\n      // Add body class\n\n      bodyClassList.add(bodyOpenClassName);\n      // Add aria-hidden to appElement\n      if (ariaHideApp) {\n        ariaAppHider.hide(appElement);\n      }\n    }\n\n    // Don't steal focus from inner elements\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _props2 = this.props,\n          className = _props2.className,\n          overlayClassName = _props2.overlayClassName,\n          defaultStyles = _props2.defaultStyles;\n\n      var contentStyles = className ? {} : defaultStyles.content;\n      var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n      return this.shouldBeClosed() ? null : _react2.default.createElement(\n        \"div\",\n        {\n          ref: this.setOverlayRef,\n          className: this.buildClassName(\"overlay\", overlayClassName),\n          style: _extends({}, overlayStyles, this.props.style.overlay),\n          onClick: this.handleOverlayOnClick,\n          onMouseDown: this.handleOverlayOnMouseDown,\n          onMouseUp: this.handleOverlayOnMouseUp,\n          \"aria-modal\": \"true\"\n        },\n        _react2.default.createElement(\n          \"div\",\n          _extends({\n            ref: this.setContentRef,\n            style: _extends({}, contentStyles, this.props.style.content),\n            className: this.buildClassName(\"content\", className),\n            tabIndex: \"-1\",\n            onKeyDown: this.handleKeyDown,\n            onMouseDown: this.handleContentOnMouseDown,\n            onMouseUp: this.handleContentOnMouseUp,\n            onClick: this.handleContentOnClick,\n            role: this.props.role,\n            \"aria-label\": this.props.contentLabel\n          }, this.ariaAttributes(this.props.aria || {})),\n          this.props.children\n        )\n      );\n    }\n  }]);\n\n  return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n  style: {\n    overlay: {},\n    content: {}\n  }\n};\nModalPortal.propTypes = {\n  isOpen: _propTypes2.default.bool.isRequired,\n  defaultStyles: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  style: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n  overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n  bodyOpenClassName: _propTypes2.default.string,\n  ariaHideApp: _propTypes2.default.bool,\n  appElement: _propTypes2.default.instanceOf(_safeHTMLElement2.default),\n  onAfterOpen: _propTypes2.default.func,\n  onRequestClose: _propTypes2.default.func,\n  closeTimeoutMS: _propTypes2.default.number,\n  shouldFocusAfterRender: _propTypes2.default.bool,\n  shouldCloseOnOverlayClick: _propTypes2.default.bool,\n  shouldReturnFocusAfterClose: _propTypes2.default.bool,\n  role: _propTypes2.default.string,\n  contentLabel: _propTypes2.default.string,\n  aria: _propTypes2.default.object,\n  children: _propTypes2.default.node,\n  shouldCloseOnEsc: _propTypes2.default.bool\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/components/ModalPortal.js\n// module id = 108\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/components/ModalPortal.js?");
  
  /***/ }),
  
  /***/ 109:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.add = add;\nexports.remove = remove;\n\nvar _refCount = __webpack_require__(31);\n\nvar refCount = _interopRequireWildcard(_refCount);\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 add(bodyClass) {\n  // Increment class(es) on refCount tracker and add class(es) to body\n  bodyClass.split(\" \").map(refCount.add).forEach(function (className) {\n    return document.body.classList.add(className);\n  });\n}\n\nfunction remove(bodyClass) {\n  var classListMap = refCount.get();\n  // Decrement class(es) from the refCount tracker\n  // and remove unused class(es) from body\n  bodyClass.split(\" \").map(refCount.remove).filter(function (className) {\n    return classListMap[className] === 0;\n  }).forEach(function (className) {\n    return document.body.classList.remove(className);\n  });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/bodyClassList.js\n// module id = 109\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/bodyClassList.js?");
  
  /***/ }),
  
  /***/ 11:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(process, global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar is_1 = __webpack_require__(10);\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n    return mod.require(request);\n}\nexports.dynamicRequire = dynamicRequire;\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n    // tslint:disable:strict-type-predicates\n    return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\nexports.isNodeEnv = isNodeEnv;\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\n// tslint:disable:strict-type-predicates\nfunction getGlobalObject() {\n    return isNodeEnv() ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {};\n}\nexports.getGlobalObject = getGlobalObject;\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n    var global = getGlobalObject();\n    var crypto = global.crypto || global.msCrypto;\n    if (!(crypto === void 0) && crypto.getRandomValues) {\n        // Use window.crypto API if available\n        var arr = new Uint16Array(8);\n        crypto.getRandomValues(arr);\n        // set 4 in byte 7\n        // tslint:disable-next-line:no-bitwise\n        arr[3] = (arr[3] & 0xfff) | 0x4000;\n        // set 2 most significant bits of byte 9 to '10'\n        // tslint:disable-next-line:no-bitwise\n        arr[4] = (arr[4] & 0x3fff) | 0x8000;\n        var pad = function (num) {\n            var v = num.toString(16);\n            while (v.length < 4) {\n                v = \"0\" + v;\n            }\n            return v;\n        };\n        return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n    }\n    else {\n        // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n        return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n            // tslint:disable-next-line:no-bitwise\n            var r = (Math.random() * 16) | 0;\n            // tslint:disable-next-line:no-bitwise\n            var v = c === 'x' ? r : (r & 0x3) | 0x8;\n            return v.toString(16);\n        });\n    }\n}\nexports.uuid4 = uuid4;\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem) {\n    var currentElem = elem;\n    var MAX_TRAVERSE_HEIGHT = 5;\n    var MAX_OUTPUT_LEN = 80;\n    var out = [];\n    var height = 0;\n    var len = 0;\n    var separator = ' > ';\n    var sepLength = separator.length;\n    var nextStr;\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n        nextStr = htmlElementAsString(currentElem);\n        // bail out if\n        // - nextStr is the 'html' element\n        // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n        //   (ignore this limit if we are on the first iteration)\n        if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n            break;\n        }\n        out.push(nextStr);\n        len += nextStr.length;\n        currentElem = currentElem.parentNode;\n    }\n    return out.reverse().join(separator);\n}\nexports.htmlTreeAsString = htmlTreeAsString;\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlElementAsString(elem) {\n    var out = [];\n    var className;\n    var classes;\n    var key;\n    var attr;\n    var i;\n    if (!elem || !elem.tagName) {\n        return '';\n    }\n    out.push(elem.tagName.toLowerCase());\n    if (elem.id) {\n        out.push(\"#\" + elem.id);\n    }\n    className = elem.className;\n    if (className && is_1.isString(className)) {\n        classes = className.split(/\\s+/);\n        for (i = 0; i < classes.length; i++) {\n            out.push(\".\" + classes[i]);\n        }\n    }\n    var attrWhitelist = ['type', 'name', 'title', 'alt'];\n    for (i = 0; i < attrWhitelist.length; i++) {\n        key = attrWhitelist[i];\n        attr = elem.getAttribute(key);\n        if (attr) {\n            out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n        }\n    }\n    return out.join('');\n}\nexports.htmlElementAsString = htmlElementAsString;\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n    if (!url) {\n        return {};\n    }\n    var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n    if (!match) {\n        return {};\n    }\n    // coerce to undefined values to empty string so we don't get 'undefined'\n    var query = match[6] || '';\n    var fragment = match[8] || '';\n    return {\n        host: match[4],\n        path: match[5],\n        protocol: match[2],\n        relative: match[5] + query + fragment,\n    };\n}\nexports.parseUrl = parseUrl;\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n    if (event.message) {\n        return event.message;\n    }\n    else if (event.exception && event.exception.values && event.exception.values[0]) {\n        var exception = event.exception.values[0];\n        if (exception.type && exception.value) {\n            return exception.type + \": \" + exception.value;\n        }\n        else {\n            return exception.type || exception.value || event.event_id || '<unknown>';\n        }\n    }\n    else {\n        return event.event_id || '<unknown>';\n    }\n}\nexports.getEventDescription = getEventDescription;\n/** JSDoc */\nfunction consoleSandbox(callback) {\n    var global = getGlobalObject();\n    var levels = ['debug', 'info', 'warn', 'error', 'log'];\n    if (!('console' in global)) {\n        return callback();\n    }\n    var originalConsole = global.console;\n    var wrappedLevels = {};\n    // Restore all wrapped console methods\n    levels.forEach(function (level) {\n        if (level in global.console && originalConsole[level].__sentry__) {\n            wrappedLevels[level] = originalConsole[level].__sentry_wrapped__;\n            originalConsole[level] = originalConsole[level].__sentry_original__;\n        }\n    });\n    // Perform callback manipulations\n    var result = callback();\n    // Revert restoration to wrapped state\n    Object.keys(wrappedLevels).forEach(function (level) {\n        originalConsole[level] = wrappedLevels[level];\n    });\n    return result;\n}\nexports.consoleSandbox = consoleSandbox;\n//# sourceMappingURL=misc.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(23), __webpack_require__(20)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/misc.js\n// module id = 11\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/misc.js?");
  
  /***/ }),
  
  /***/ 110:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = __webpack_require__(33);\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n  needToFocus = true;\n}\n\nfunction handleFocus() {\n  if (needToFocus) {\n    needToFocus = false;\n    if (!modalElement) {\n      return;\n    }\n    // need to see how jQuery shims document.on('focusin') so we don't need the\n    // setTimeout, firefox doesn't support focusin, if it did, we could focus\n    // the element outside of a setTimeout. Side-effect of this implementation\n    // is that the document.body gets focus, and then we focus our element right\n    // after, seems fine.\n    setTimeout(function () {\n      if (modalElement.contains(document.activeElement)) {\n        return;\n      }\n      var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n      el.focus();\n    }, 0);\n  }\n}\n\nfunction markForFocusLater() {\n  focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n  var toFocus = null;\n  try {\n    if (focusLaterElements.length !== 0) {\n      toFocus = focusLaterElements.pop();\n      toFocus.focus();\n    }\n    return;\n  } catch (e) {\n    console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n  }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n  focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n  modalElement = element;\n\n  if (window.addEventListener) {\n    window.addEventListener(\"blur\", handleBlur, false);\n    document.addEventListener(\"focus\", handleFocus, true);\n  } else {\n    window.attachEvent(\"onBlur\", handleBlur);\n    document.attachEvent(\"onFocus\", handleFocus);\n  }\n}\n\nfunction teardownScopedFocus() {\n  modalElement = null;\n\n  if (window.addEventListener) {\n    window.removeEventListener(\"blur\", handleBlur);\n    document.removeEventListener(\"focus\", handleFocus);\n  } else {\n    window.detachEvent(\"onBlur\", handleBlur);\n    document.detachEvent(\"onFocus\", handleFocus);\n  }\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/focusManager.js\n// module id = 110\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/focusManager.js?");
  
  /***/ }),
  
  /***/ 111:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = __webpack_require__(33);\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scopeTab(node, event) {\n  var tabbable = (0, _tabbable2.default)(node);\n\n  if (!tabbable.length) {\n    // Do nothing, since there are no elements that can receive focus.\n    event.preventDefault();\n    return;\n  }\n\n  var shiftKey = event.shiftKey;\n  var head = tabbable[0];\n  var tail = tabbable[tabbable.length - 1];\n\n  // proceed with default browser behavior\n  if (node === document.activeElement) {\n    return;\n  }\n\n  var target;\n  if (tail === document.activeElement && !shiftKey) {\n    target = head;\n  }\n\n  if (head === document.activeElement && shiftKey) {\n    target = tail;\n  }\n\n  if (target) {\n    event.preventDefault();\n    target.focus();\n    return;\n  }\n\n  // Safari radio issue.\n  //\n  // Safari does not move the focus to the radio button,\n  // so we need to force it to really walk through all elements.\n  //\n  // This is very error prune, since we are trying to guess\n  // if it is a safari browser from the first occurence between\n  // chrome or safari.\n  //\n  // The chrome user agent contains the first ocurrence\n  // as the 'chrome/version' and later the 'safari/version'.\n  var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n  var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n  // If we are not in safari desktop, let the browser control\n  // the focus\n  if (!isSafariDesktop) return;\n\n  var x = tabbable.indexOf(document.activeElement);\n\n  if (x > -1) {\n    x += shiftKey ? -1 : 1;\n  }\n\n  event.preventDefault();\n\n  tabbable[x].focus();\n}\nmodule.exports = exports[\"default\"];\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/scopeTab.js\n// module id = 111\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/scopeTab.js?");
  
  /***/ }),
  
  /***/ 112:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Modal = __webpack_require__(107);\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/index.js\n// module id = 112\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/index.js?");
  
  /***/ }),
  
  /***/ 113:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(96);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./crashmessage.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./crashmessage.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/crashmessage/crashmessage.scss\n// module id = 113\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/crashmessage/crashmessage.scss?");
  
  /***/ }),
  
  /***/ 114:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(97);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./dropdown.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./dropdown.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dropdown/dropdown.scss\n// module id = 114\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/dropdown/dropdown.scss?");
  
  /***/ }),
  
  /***/ 115:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(98);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./footer.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./footer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/footer/www/footer.scss\n// module id = 115\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/footer/www/footer.scss?");
  
  /***/ }),
  
  /***/ 116:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(100);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./login.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./login.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/login.scss\n// module id = 116\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login.scss?");
  
  /***/ }),
  
  /***/ 117:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(101);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./modal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./modal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/modal/base/modal.scss\n// module id = 117\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/base/modal.scss?");
  
  /***/ }),
  
  /***/ 118:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(102);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./modal.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./modal.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/modal/iframe/modal.scss\n// module id = 118\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/iframe/modal.scss?");
  
  /***/ }),
  
  /***/ 119:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(103);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./accountnav.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./accountnav.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/www/accountnav.scss\n// module id = 119\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/accountnav.scss?");
  
  /***/ }),
  
  /***/ 120:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(104);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./navigation.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./navigation.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/www/navigation.scss\n// module id = 120\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/navigation.scss?");
  
  /***/ }),
  
  /***/ 121:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(105);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./registration.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./registration.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/registration/registration.scss\n// module id = 121\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/registration/registration.scss?");
  
  /***/ }),
  
  /***/ 122:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/**\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/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (true) {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/warning/browser.js\n// module id = 122\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/warning/browser.js?");
  
  /***/ }),
  
  /***/ 127:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.title-banner {\\n  transition: background-image .5s ease, background-color .5s ease;\\n  margin-bottom: 40px;\\n  background-color: #0fbd8c;\\n  background-position: center;\\n  background-size: cover;\\n  padding: 20px 0;\\n  width: 100%; }\\n\\n.title-banner-h1,\\n.title-banner-p {\\n  margin: 0 auto;\\n  padding: 5px 0;\\n  text-align: center;\\n  color: white; }\\n\\n.title-banner-p {\\n  max-width: 500px; }\\n\\n.title-banner-strong {\\n  font-weight: 700; }\\n\\n.title-banner.mod-blue-bg {\\n  background-color: #4d97ff; }\\n  .title-banner.mod-blue-bg a {\\n    color: white; }\\n  .title-banner.mod-blue-bg a.mod-underline {\\n    text-decoration: underline; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/title-banner/title-banner.scss\n// module id = 127\n// module chunks = 5 8 10 11 15 17 18 19 20 21 22 23 24 25 26 27 28 29 31 36 37 38 39 40 41\n\n//# sourceURL=webpack:///./src/components/title-banner/title-banner.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 128:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(127);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./title-banner.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./title-banner.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/title-banner/title-banner.scss\n// module id = 128\n// module chunks = 5 8 10 11 15 17 18 19 20 21 22 23 24 25 26 27 28 29 31 36 37 38 39 40 41\n\n//# sourceURL=webpack:///./src/components/title-banner/title-banner.scss?");
  
  /***/ }),
  
  /***/ 14:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(50);\n\nvar FlexRow = function FlexRow(props) {\n    return React.createElement(\n        props.as,\n        { className: classNames('flex-row', props.className) },\n        props.children\n    );\n};\n\nFlexRow.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string\n};\n\nFlexRow.defaultProps = {\n    as: 'div'\n};\n\nmodule.exports = FlexRow;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/flex-row/flex-row.jsx\n// module id = 14\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/flex-row/flex-row.jsx?");
  
  /***/ }),
  
  /***/ 15:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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 classNames = __webpack_require__(4);\nvar omit = __webpack_require__(12);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(35);\n\nvar Button = function Button(props) {\n    var classes = classNames('button', props.className);\n\n    return React.createElement(\n        'button',\n        _extends({\n            className: classes\n        }, omit(props, ['className', 'children'])),\n        props.children\n    );\n};\n\nButton.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string\n};\n\nmodule.exports = Button;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/forms/button.jsx\n// module id = 15\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38\n\n//# sourceURL=webpack:///./src/components/forms/button.jsx?");
  
  /***/ }),
  
  /***/ 17:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar is_1 = __webpack_require__(10);\nvar object_1 = __webpack_require__(19);\nvar error_1 = __webpack_require__(18);\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w\\.-]+)(?::(\\d+))?\\/(.+)/;\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n    /** Creates a new Dsn component */\n    function Dsn(from) {\n        if (typeof from === 'string') {\n            this.fromString(from);\n        }\n        else {\n            this.fromComponents(from);\n        }\n        this.validate();\n    }\n    /**\n     * Renders the string representation of this Dsn.\n     *\n     * By default, this will render the public representation without the password\n     * component. To get the deprecated private representation, set `withPassword`\n     * to true.\n     *\n     * @param withPassword When set to true, the password will be included.\n     */\n    Dsn.prototype.toString = function (withPassword) {\n        if (withPassword === void 0) { withPassword = false; }\n        // tslint:disable-next-line:no-this-assignment\n        var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, user = _a.user;\n        return (protocol + \"://\" + user + (withPassword && pass ? \":\" + pass : '') +\n            (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n    };\n    /** Parses a string into this Dsn. */\n    Dsn.prototype.fromString = function (str) {\n        var match = DSN_REGEX.exec(str);\n        if (!match) {\n            throw new error_1.SentryError('Invalid Dsn');\n        }\n        var _a = tslib_1.__read(match.slice(1), 6), protocol = _a[0], user = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n        var path = '';\n        var projectId = lastPath;\n        var split = projectId.split('/');\n        if (split.length > 1) {\n            path = split.slice(0, -1).join('/');\n            projectId = split.pop();\n        }\n        object_1.assign(this, { host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, user: user });\n    };\n    /** Maps Dsn components into this instance. */\n    Dsn.prototype.fromComponents = function (components) {\n        this.protocol = components.protocol;\n        this.user = components.user;\n        this.pass = components.pass || '';\n        this.host = components.host;\n        this.port = components.port || '';\n        this.path = components.path || '';\n        this.projectId = components.projectId;\n    };\n    /** Validates this Dsn and throws on error. */\n    Dsn.prototype.validate = function () {\n        var e_1, _a;\n        try {\n            for (var _b = tslib_1.__values(['protocol', 'user', 'host', 'projectId']), _c = _b.next(); !_c.done; _c = _b.next()) {\n                var component = _c.value;\n                if (!this[component]) {\n                    throw new error_1.SentryError(\"Invalid Dsn: Missing \" + component);\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        if (this.protocol !== 'http' && this.protocol !== 'https') {\n            throw new error_1.SentryError(\"Invalid Dsn: Unsupported protocol \\\"\" + this.protocol + \"\\\"\");\n        }\n        if (this.port && is_1.isNaN(parseInt(this.port, 10))) {\n            throw new error_1.SentryError(\"Invalid Dsn: Invalid port number \\\"\" + this.port + \"\\\"\");\n        }\n    };\n    return Dsn;\n}());\nexports.Dsn = Dsn;\n//# sourceMappingURL=dsn.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/dsn.js\n// module id = 17\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/dsn.js?");
  
  /***/ }),
  
  /***/ 18:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n    tslib_1.__extends(SentryError, _super);\n    function SentryError(message) {\n        var _newTarget = this.constructor;\n        var _this = _super.call(this, message) || this;\n        _this.message = message;\n        // tslint:disable:no-unsafe-any\n        _this.name = _newTarget.prototype.constructor.name;\n        Object.setPrototypeOf(_this, _newTarget.prototype);\n        return _this;\n    }\n    return SentryError;\n}(Error));\nexports.SentryError = SentryError;\n//# sourceMappingURL=error.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/error.js\n// module id = 18\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/error.js?");
  
  /***/ }),
  
  /***/ 19:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(global) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar is_1 = __webpack_require__(10);\n/**\n * Serializes the given object into a string.\n * Like JSON.stringify, but doesn't throw on circular references.\n * Based on a `json-stringify-safe` package and modified to handle Errors serialization.\n *\n * The object must be serializable, i.e.:\n *  - Only primitive types are allowed (object, array, number, string, boolean)\n *  - Its depth should be considerably low for performance reasons\n *\n * @param object A JSON-serializable object.\n * @returns A string containing the serialized object.\n */\nfunction serialize(object) {\n    return JSON.stringify(object);\n}\nexports.serialize = serialize;\n/**\n * Deserializes an object from a string previously serialized with\n * {@link serialize}.\n *\n * @param str A serialized object.\n * @returns The deserialized object.\n */\nfunction deserialize(str) {\n    return JSON.parse(str);\n}\nexports.deserialize = deserialize;\n/**\n * Creates a deep copy of the given object.\n *\n * The object must be serializable, i.e.:\n *  - It must not contain any cycles\n *  - Only primitive types are allowed (object, array, number, string, boolean)\n *  - Its depth should be considerably low for performance reasons\n *\n * @param object A JSON-serializable object.\n * @returns The object clone.\n */\nfunction clone(object) {\n    return deserialize(serialize(object));\n}\nexports.clone = clone;\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacement A function that should be used to wrap a given method.\n * @returns void\n */\nfunction fill(source, name, replacement) {\n    if (!(name in source) || source[name].__sentry__) {\n        return;\n    }\n    var original = source[name];\n    var wrapped = replacement(original);\n    wrapped.__sentry__ = true;\n    wrapped.__sentry_original__ = original;\n    wrapped.__sentry_wrapped__ = wrapped;\n    source[name] = wrapped;\n}\nexports.fill = fill;\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n    return Object.keys(object)\n        .map(\n    // tslint:disable-next-line:no-unsafe-any\n    function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n        .join('&');\n}\nexports.urlEncode = urlEncode;\n// Default Node.js REPL depth\nvar MAX_SERIALIZE_EXCEPTION_DEPTH = 3;\n// 100kB, as 200kB is max payload size, so half sounds reasonable\nvar MAX_SERIALIZE_EXCEPTION_SIZE = 100 * 1024;\nvar MAX_SERIALIZE_KEYS_LENGTH = 40;\n/** JSDoc */\nfunction utf8Length(value) {\n    // tslint:disable-next-line:no-bitwise\n    return ~-encodeURI(value).split(/%..|./).length;\n}\n/** JSDoc */\nfunction jsonSize(value) {\n    return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nfunction serializeValue(value) {\n    var maxLength = 40;\n    if (typeof value === 'string') {\n        return value.length <= maxLength ? value : value.substr(0, maxLength - 1) + \"\\u2026\";\n    }\n    else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined') {\n        return value;\n    }\n    else if (is_1.isNaN(value)) {\n        // NaN and undefined are not JSON.parseable, but we want to preserve this information\n        return '[NaN]';\n    }\n    else if (is_1.isUndefined(value)) {\n        return '[undefined]';\n    }\n    var type = Object.prototype.toString.call(value);\n    // Node.js REPL notation\n    if (type === '[object Object]') {\n        return '[Object]';\n    }\n    if (type === '[object Array]') {\n        return '[Array]';\n    }\n    if (type === '[object Function]') {\n        var name_1 = value.name;\n        return name_1 ? \"[Function: \" + name_1 + \"]\" : '[Function]';\n    }\n    return value;\n}\n/** JSDoc */\nfunction serializeObject(value, depth) {\n    if (depth === 0) {\n        return serializeValue(value);\n    }\n    if (is_1.isPlainObject(value)) {\n        var serialized_1 = {};\n        var val_1 = value;\n        Object.keys(val_1).forEach(function (key) {\n            serialized_1[key] = serializeObject(val_1[key], depth - 1);\n        });\n        return serialized_1;\n    }\n    else if (Array.isArray(value)) {\n        var val = value;\n        return val.map(function (v) { return serializeObject(v, depth - 1); });\n    }\n    return serializeValue(value);\n}\nexports.serializeObject = serializeObject;\n/** JSDoc */\nfunction limitObjectDepthToSize(object, depth, maxSize) {\n    if (depth === void 0) { depth = MAX_SERIALIZE_EXCEPTION_DEPTH; }\n    if (maxSize === void 0) { maxSize = MAX_SERIALIZE_EXCEPTION_SIZE; }\n    var serialized = serializeObject(object, depth);\n    if (jsonSize(serialize(serialized)) > maxSize) {\n        return limitObjectDepthToSize(object, depth - 1);\n    }\n    return serialized;\n}\nexports.limitObjectDepthToSize = limitObjectDepthToSize;\n/** JSDoc */\nfunction serializeKeysToEventMessage(keys, maxLength) {\n    if (maxLength === void 0) { maxLength = MAX_SERIALIZE_KEYS_LENGTH; }\n    if (!keys.length) {\n        return '[object has no keys]';\n    }\n    if (keys[0].length >= maxLength) {\n        return keys[0];\n    }\n    for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n        var serialized = keys.slice(0, includedKeys).join(', ');\n        if (serialized.length > maxLength) {\n            continue;\n        }\n        if (includedKeys === keys.length) {\n            return serialized;\n        }\n        return serialized + \"\\u2026\";\n    }\n    return '';\n}\nexports.serializeKeysToEventMessage = serializeKeysToEventMessage;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill\n/** JSDoc */\nfunction assign(target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    if (target === null || target === undefined) {\n        throw new TypeError('Cannot convert undefined or null to object');\n    }\n    var to = Object(target);\n    // tslint:disable-next-line\n    for (var i = 0; i < args.length; i++) {\n        var source = args[i];\n        if (source !== null) {\n            for (var nextKey in source) {\n                if (Object.prototype.hasOwnProperty.call(source, nextKey)) {\n                    to[nextKey] = source[nextKey];\n                }\n            }\n        }\n    }\n    return to;\n}\nexports.assign = assign;\n/**\n * Transforms Error object into an object literal with all it's attributes\n * attached to it.\n *\n * Based on: https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106\n *\n * @param error An Error containing all relevant information\n * @returns An object with all error properties\n */\nfunction objectifyError(error) {\n    // These properties are implemented as magical getters and don't show up in `for-in` loop\n    var err = {\n        message: error.message,\n        name: error.name,\n        stack: error.stack,\n    };\n    for (var i in error) {\n        if (Object.prototype.hasOwnProperty.call(error, i)) {\n            err[i] = error[i];\n        }\n    }\n    return err;\n}\n/**\n * standardizeValue()\n *\n * translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * serializes Error objects\n * filter global objects\n */\nfunction standardizeValue(value, key) {\n    if (key === 'domain' && typeof value === 'object' && value._events) {\n        return '[Domain]';\n    }\n    if (key === 'domainEmitter') {\n        return '[DomainEmitter]';\n    }\n    if (typeof global !== 'undefined' && value === global) {\n        return '[Global]';\n    }\n    if (typeof window !== 'undefined' && value === window) {\n        return '[Window]';\n    }\n    if (typeof document !== 'undefined' && value === document) {\n        return '[Document]';\n    }\n    if (value instanceof Date) {\n        return \"[Date] \" + value;\n    }\n    if (value instanceof Error) {\n        return objectifyError(value);\n    }\n    if (is_1.isNaN(value)) {\n        return '[NaN]';\n    }\n    if (is_1.isUndefined(value)) {\n        return '[undefined]';\n    }\n    if (typeof value === 'function') {\n        return \"[Function] \" + (value.name || '<unknown-function-name>');\n    }\n    return value;\n}\n/**\n * standardizer()\n *\n * Remove circular references,\n * translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * and takes care of Error objects serialization\n */\nfunction standardizer() {\n    var stack = [];\n    var keys = [];\n    /** recursive */\n    function cycleStandardizer(_key, value) {\n        if (stack[0] === value) {\n            return '[Circular ~]';\n        }\n        return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join('.') + \"]\";\n    }\n    return function (key, value) {\n        if (stack.length > 0) {\n            var thisPos = stack.indexOf(this);\n            if (thisPos === -1) {\n                stack.push(this);\n                keys.push(key);\n            }\n            else {\n                stack.splice(thisPos + 1);\n                keys.splice(thisPos, Infinity, key);\n            }\n            if (stack.indexOf(value) !== -1) {\n                // tslint:disable-next-line:no-parameter-reassignment\n                value = cycleStandardizer.call(this, key, value);\n            }\n        }\n        else {\n            stack.push(value);\n        }\n        return standardizeValue(value, key);\n    };\n}\n/**\n * safeNormalize()\n *\n * Creates a copy of the input by applying standardizer function on it and parsing it back to unify the data\n */\nfunction safeNormalize(input) {\n    try {\n        return JSON.parse(JSON.stringify(input, standardizer()));\n    }\n    catch (_oO) {\n        return '**non-serializable**';\n    }\n}\nexports.safeNormalize = safeNormalize;\n//# sourceMappingURL=object.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/object.js\n// module id = 19\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/object.js?");
  
  /***/ }),
  
  /***/ 22:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar classNames = __webpack_require__(4);\nvar FRCInput = __webpack_require__(123).Input;\nvar omit = __webpack_require__(12);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar defaultValidationHOC = __webpack_require__(91).defaultValidationHOC;\nvar inputHOC = __webpack_require__(125);\n\n__webpack_require__(59);\n__webpack_require__(124);\n\nvar Input = function Input(_ref) {\n    var className = _ref.className,\n        label = _ref.label,\n        props = _objectWithoutProperties(_ref, ['className', 'label']);\n\n    return React.createElement(FRCInput, _extends({\n        className: 'input',\n        label: label,\n        rowClassName: classNames(className, { 'no-label': typeof label === 'undefined' })\n    }, omit(props, ['className'])));\n};\n\nInput.propTypes = {\n    className: PropTypes.string,\n    label: PropTypes.string\n};\n\nmodule.exports = inputHOC(defaultValidationHOC(Input));\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/forms/input.jsx\n// module id = 22\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/forms/input.jsx?");
  
  /***/ }),
  
  /***/ 23:
  /***/ (function(module, exports) {
  
  eval("// 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// ./~/node-libs-browser/~/process/browser.js\n// module id = 23\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/node-libs-browser/~/process/browser.js?");
  
  /***/ }),
  
  /***/ 24:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar classNames = __webpack_require__(4);\nvar omit = __webpack_require__(12);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar ReactModal = __webpack_require__(112);\n\n__webpack_require__(117);\n\nReactModal.setAppElement(document.getElementById('app'));\n\n/**\n * Container for pop up windows (See: registration window)\n */\n\nvar Modal = function (_React$Component) {\n    _inherits(Modal, _React$Component);\n\n    function Modal(props) {\n        _classCallCheck(this, Modal);\n\n        var _this = _possibleConstructorReturn(this, (Modal.__proto__ || Object.getPrototypeOf(Modal)).call(this, props));\n\n        bindAll(_this, ['handleRequestClose']);\n        return _this;\n    }\n\n    _createClass(Modal, [{\n        key: 'handleRequestClose',\n        value: function handleRequestClose() {\n            return this.modal.portal.requestClose();\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var _this2 = this;\n\n            // bodyOpenClassName prop cannot be blank string or null here; both cause\n            // an error, because ReactModal does not correctly handle them.\n            // If we're not setting it to a class name, we must omit the prop entirely.\n            var bodyOpenClassNameProp = this.props.useStandardSizes ? { bodyOpenClassName: classNames('overflow-hidden') } : {};\n            return React.createElement(\n                ReactModal,\n                _extends({\n                    appElement: document.getElementById('app')\n                }, bodyOpenClassNameProp, {\n                    className: {\n                        base: classNames('modal-content', this.props.className, {\n                            'modal-sizes': this.props.useStandardSizes\n                        }),\n                        afterOpen: classNames('modal-content', this.props.className),\n                        beforeClose: classNames('modal-content', this.props.className)\n                    },\n                    overlayClassName: {\n                        base: classNames('modal-overlay', this.props.overlayClassName),\n                        afterOpen: classNames('modal-overlay', this.props.overlayClassName),\n                        beforeClose: classNames('modal-overlay', this.props.overlayClassName)\n                    },\n                    ref: function ref(component) {\n                        _this2.modal = component;\n                    }\n                }, omit(this.props, ['className', 'overlayClassName'])),\n                React.createElement(\n                    'div',\n                    {\n                        className: 'modal-content-close',\n                        onClick: this.handleRequestClose\n                    },\n                    React.createElement('img', {\n                        alt: 'close-icon',\n                        className: 'modal-content-close-img',\n                        src: '/svgs/modal/close-x.svg'\n                    })\n                ),\n                this.props.children\n            );\n        }\n    }]);\n\n    return Modal;\n}(React.Component);\n\nModal.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string,\n    overlayClassName: PropTypes.string,\n    useStandardSizes: PropTypes.bool\n};\n\nmodule.exports = Modal;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/modal/base/modal.jsx\n// module id = 24\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/base/modal.jsx?");
  
  /***/ }),
  
  /***/ 25:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar Navigation = __webpack_require__(95);\nvar Footer = __webpack_require__(90);\nvar ErrorBoundary = __webpack_require__(89);\n\nvar Page = function Page(_ref) {\n    var children = _ref.children,\n        className = _ref.className;\n    return React.createElement(\n        ErrorBoundary,\n        null,\n        React.createElement(\n            'div',\n            { className: classNames('page', className) },\n            React.createElement(\n                'div',\n                {\n                    className: classNames({\n                        staging: \"development\" === 'staging'\n                    }),\n                    id: 'navigation'\n                },\n                React.createElement(Navigation, null)\n            ),\n            React.createElement(\n                'div',\n                { id: 'view' },\n                children\n            ),\n            React.createElement(\n                'div',\n                { id: 'footer' },\n                React.createElement(Footer, null)\n            )\n        )\n    );\n};\n\nPage.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string\n};\n\nmodule.exports = Page;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/page/www/page.jsx\n// module id = 25\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/page/www/page.jsx?");
  
  /***/ }),
  
  /***/ 26:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\n/** A simple queue that holds promises. */\nvar RequestBuffer = /** @class */ (function () {\n    function RequestBuffer() {\n        /** Internal set of queued Promises */\n        this.buffer = [];\n    }\n    /**\n     * Add a promise to the queue.\n     *\n     * @param task Can be any Promise<T>\n     * @returns The original promise.\n     */\n    RequestBuffer.prototype.add = function (task) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return tslib_1.__generator(this, function (_a) {\n                if (this.buffer.indexOf(task) === -1) {\n                    this.buffer.push(task);\n                }\n                task.then(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {\n                    return [2 /*return*/, this.remove(task)];\n                }); }); }).catch(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {\n                    return [2 /*return*/, this.remove(task)];\n                }); }); });\n                return [2 /*return*/, task];\n            });\n        });\n    };\n    /**\n     * Remove a promise to the queue.\n     *\n     * @param task Can be any Promise<T>\n     * @returns Removed promise.\n     */\n    RequestBuffer.prototype.remove = function (task) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var removedTask;\n            return tslib_1.__generator(this, function (_a) {\n                removedTask = this.buffer.splice(this.buffer.indexOf(task), 1)[0];\n                return [2 /*return*/, removedTask];\n            });\n        });\n    };\n    /**\n     * This function returns the number of unresolved promises in the queue.\n     */\n    RequestBuffer.prototype.length = function () {\n        return this.buffer.length;\n    };\n    /**\n     * This will drain the whole queue, returns true if queue is empty or drained.\n     * If timeout is provided and the queue takes longer to drain, the promise still resolves but with false.\n     *\n     * @param timeout Number in ms to wait until it resolves with false.\n     */\n    RequestBuffer.prototype.drain = function (timeout) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return tslib_1.__generator(this, function (_a) {\n                return [2 /*return*/, new Promise(function (resolve) {\n                        var capturedSetTimeout = setTimeout(function () {\n                            if (timeout && timeout > 0) {\n                                resolve(false);\n                            }\n                        }, timeout);\n                        Promise.all(_this.buffer)\n                            .then(function () {\n                            clearTimeout(capturedSetTimeout);\n                            resolve(true);\n                        })\n                            .catch(function () {\n                            resolve(true);\n                        });\n                    })];\n            });\n        });\n    };\n    return RequestBuffer;\n}());\nexports.RequestBuffer = RequestBuffer;\n//# sourceMappingURL=requestbuffer.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/requestbuffer.js\n// module id = 26\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/requestbuffer.js?");
  
  /***/ }),
  
  /***/ 27:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar misc_1 = __webpack_require__(11);\nvar object_1 = __webpack_require__(19);\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n    function Scope() {\n        /** Flag if notifiying is happening. */\n        this.notifyingListeners = false;\n        /** Callback for client to receive scope changes. */\n        this.scopeListeners = [];\n        /** Callback list that will be called after {@link applyToEvent}. */\n        this.eventProcessors = [];\n        /** Array of breadcrumbs. */\n        this.breadcrumbs = [];\n        /** User */\n        this.user = {};\n        /** Tags */\n        this.tags = {};\n        /** Extra */\n        this.extra = {};\n    }\n    /** Add internal on change listener. */\n    Scope.prototype.addScopeListener = function (callback) {\n        this.scopeListeners.push(callback);\n    };\n    /** Add new event processor that will be called after {@link applyToEvent}. */\n    Scope.prototype.addEventProcessor = function (callback) {\n        this.eventProcessors.push(callback);\n        return this;\n    };\n    /**\n     * This will be called on every set call.\n     */\n    Scope.prototype.notifyScopeListeners = function () {\n        var _this = this;\n        if (!this.notifyingListeners) {\n            this.notifyingListeners = true;\n            setTimeout(function () {\n                _this.scopeListeners.forEach(function (callback) {\n                    callback(_this);\n                });\n                _this.notifyingListeners = false;\n            }, 0);\n        }\n    };\n    /**\n     * This will be called after {@link applyToEvent} is finished.\n     */\n    Scope.prototype.notifyEventProcessors = function (event, hint) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var e_1, _a, processedEvent, _b, _c, processor, e_2, e_1_1;\n            return tslib_1.__generator(this, function (_d) {\n                switch (_d.label) {\n                    case 0:\n                        processedEvent = event;\n                        _d.label = 1;\n                    case 1:\n                        _d.trys.push([1, 8, 9, 10]);\n                        _b = tslib_1.__values(tslib_1.__spread(getGlobalEventProcessors(), this.eventProcessors)), _c = _b.next();\n                        _d.label = 2;\n                    case 2:\n                        if (!!_c.done) return [3 /*break*/, 7];\n                        processor = _c.value;\n                        _d.label = 3;\n                    case 3:\n                        _d.trys.push([3, 5, , 6]);\n                        return [4 /*yield*/, processor(tslib_1.__assign({}, processedEvent), hint)];\n                    case 4:\n                        processedEvent = _d.sent();\n                        if (processedEvent === null) {\n                            return [2 /*return*/, null];\n                        }\n                        return [3 /*break*/, 6];\n                    case 5:\n                        e_2 = _d.sent();\n                        return [3 /*break*/, 6];\n                    case 6:\n                        _c = _b.next();\n                        return [3 /*break*/, 2];\n                    case 7: return [3 /*break*/, 10];\n                    case 8:\n                        e_1_1 = _d.sent();\n                        e_1 = { error: e_1_1 };\n                        return [3 /*break*/, 10];\n                    case 9:\n                        try {\n                            if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                        }\n                        finally { if (e_1) throw e_1.error; }\n                        return [7 /*endfinally*/];\n                    case 10: return [2 /*return*/, processedEvent];\n                }\n            });\n        });\n    };\n    /**\n     * Updates user context information for future events.\n     * @param user User context object to merge into current context.\n     */\n    Scope.prototype.setUser = function (user) {\n        this.user = object_1.safeNormalize(user);\n        this.notifyScopeListeners();\n        return this;\n    };\n    /**\n     * Updates tags context information for future events.\n     * @param tags Tags context object to merge into current context.\n     */\n    Scope.prototype.setTag = function (key, value) {\n        var _a;\n        this.tags = tslib_1.__assign({}, this.tags, (_a = {}, _a[key] = object_1.safeNormalize(value), _a));\n        this.notifyScopeListeners();\n        return this;\n    };\n    /**\n     * Updates extra context information for future events.\n     * @param extra context object to merge into current context.\n     */\n    Scope.prototype.setExtra = function (key, extra) {\n        var _a;\n        this.extra = tslib_1.__assign({}, this.extra, (_a = {}, _a[key] = object_1.safeNormalize(extra), _a));\n        this.notifyScopeListeners();\n        return this;\n    };\n    /**\n     * Sets the fingerprint on the scope to send with the events.\n     * @param fingerprint string[] to group events in Sentry.\n     */\n    Scope.prototype.setFingerprint = function (fingerprint) {\n        this.fingerprint = object_1.safeNormalize(fingerprint);\n        this.notifyScopeListeners();\n        return this;\n    };\n    /**\n     * Sets the level on the scope for future events.\n     * @param level string {@link Severity}\n     */\n    Scope.prototype.setLevel = function (level) {\n        this.level = object_1.safeNormalize(level);\n        this.notifyScopeListeners();\n        return this;\n    };\n    /**\n     * Inherit values from the parent scope.\n     * @param scope to clone.\n     */\n    Scope.clone = function (scope) {\n        var newScope = new Scope();\n        object_1.assign(newScope, scope, {\n            scopeListeners: [],\n        });\n        if (scope) {\n            newScope.extra = object_1.assign(scope.extra);\n            newScope.tags = object_1.assign(scope.tags);\n            newScope.breadcrumbs = tslib_1.__spread(scope.breadcrumbs);\n            newScope.eventProcessors = tslib_1.__spread(scope.eventProcessors);\n        }\n        return newScope;\n    };\n    /** Clears the current scope and resets its properties. */\n    Scope.prototype.clear = function () {\n        this.breadcrumbs = [];\n        this.tags = {};\n        this.extra = {};\n        this.user = {};\n        this.level = undefined;\n        this.fingerprint = undefined;\n        this.notifyScopeListeners();\n    };\n    /**\n     * Sets the breadcrumbs in the scope\n     * @param breadcrumbs Breadcrumb\n     * @param maxBreadcrumbs number of max breadcrumbs to merged into event.\n     */\n    Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n        this.breadcrumbs =\n            maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n                ? tslib_1.__spread(this.breadcrumbs, [object_1.safeNormalize(breadcrumb)]).slice(-maxBreadcrumbs)\n                : tslib_1.__spread(this.breadcrumbs, [object_1.safeNormalize(breadcrumb)]);\n        this.notifyScopeListeners();\n    };\n    /**\n     * Applies fingerprint from the scope to the event if there's one,\n     * uses message if there's one instead or get rid of empty fingerprint\n     */\n    Scope.prototype.applyFingerprint = function (event) {\n        // Make sure it's an array first and we actually have something in place\n        event.fingerprint = event.fingerprint\n            ? Array.isArray(event.fingerprint)\n                ? event.fingerprint\n                : [event.fingerprint]\n            : [];\n        // If we have something on the scope, then merge it with event\n        if (this.fingerprint) {\n            event.fingerprint = event.fingerprint.concat(this.fingerprint);\n        }\n        else if (event.message) {\n            // If not, but we have message, use it instead\n            event.fingerprint = event.fingerprint.concat(event.message);\n        }\n        // If we have no data at all, remove empty array default\n        if (event.fingerprint && !event.fingerprint.length) {\n            delete event.fingerprint;\n        }\n    };\n    /**\n     * Applies the current context and fingerprint to the event.\n     * Note that breadcrumbs will be added by the client.\n     * Also if the event has already breadcrumbs on it, we do not merge them.\n     * @param event SentryEvent\n     * @param hint May contain additional informartion about the original exception.\n     * @param maxBreadcrumbs number of max breadcrumbs to merged into event.\n     */\n    Scope.prototype.applyToEvent = function (event, hint, maxBreadcrumbs) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var hasNoBreadcrumbs;\n            return tslib_1.__generator(this, function (_a) {\n                if (this.extra && Object.keys(this.extra).length) {\n                    event.extra = tslib_1.__assign({}, this.extra, event.extra);\n                }\n                if (this.tags && Object.keys(this.tags).length) {\n                    event.tags = tslib_1.__assign({}, this.tags, event.tags);\n                }\n                if (this.user && Object.keys(this.user).length) {\n                    event.user = tslib_1.__assign({}, this.user, event.user);\n                }\n                if (this.level) {\n                    event.level = this.level;\n                }\n                this.applyFingerprint(event);\n                hasNoBreadcrumbs = !event.breadcrumbs || event.breadcrumbs.length === 0;\n                if (hasNoBreadcrumbs && this.breadcrumbs.length > 0) {\n                    event.breadcrumbs =\n                        maxBreadcrumbs !== undefined && maxBreadcrumbs >= 0\n                            ? this.breadcrumbs.slice(-maxBreadcrumbs)\n                            : this.breadcrumbs;\n                }\n                return [2 /*return*/, this.notifyEventProcessors(event, hint)];\n            });\n        });\n    };\n    return Scope;\n}());\nexports.Scope = Scope;\n/**\n * Retruns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n    var global = misc_1.getGlobalObject();\n    global.__SENTRY__ = global.__SENTRY__ || {};\n    global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n    return global.__SENTRY__.globalEventProcessors;\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n    getGlobalEventProcessors().push(callback);\n}\nexports.addGlobalEventProcessor = addGlobalEventProcessor;\n//# sourceMappingURL=scope.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/hub/dist/scope.js\n// module id = 27\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/hub/dist/scope.js?");
  
  /***/ }),
  
  /***/ 28:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar is_1 = __webpack_require__(10);\n/**\n * Encodes given object into url-friendly format\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction truncate(str, max) {\n    if (max === void 0) { max = 0; }\n    if (max === 0 || !is_1.isString(str)) {\n        return str;\n    }\n    return str.length <= max ? str : str.substr(0, max) + \"\\u2026\";\n}\nexports.truncate = truncate;\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n    var newLine = line;\n    var ll = newLine.length;\n    if (ll <= 150) {\n        return newLine;\n    }\n    if (colno > ll) {\n        colno = ll; // tslint:disable-line:no-parameter-reassignment\n    }\n    var start = Math.max(colno - 60, 0);\n    if (start < 5) {\n        start = 0;\n    }\n    var end = Math.min(start + 140, ll);\n    if (end > ll - 5) {\n        end = ll;\n    }\n    if (end === ll) {\n        start = Math.max(end - 140, 0);\n    }\n    newLine = newLine.slice(start, end);\n    if (start > 0) {\n        newLine = \"'{snip} \" + newLine;\n    }\n    if (end < ll) {\n        newLine += ' {snip}';\n    }\n    return newLine;\n}\nexports.snipLine = snipLine;\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n    if (!Array.isArray(input)) {\n        return '';\n    }\n    var output = [];\n    // tslint:disable-next-line\n    for (var i = 0; i < input.length; i++) {\n        var value = input[i];\n        try {\n            output.push(String(value));\n        }\n        catch (e) {\n            output.push('[value cannot be serialized]');\n        }\n    }\n    return output.join(delimiter);\n}\nexports.safeJoin = safeJoin;\n/**\n * Checks if given value is included in the target\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill\n * @param target source string\n * @param search string to be looked for\n * @returns An answer\n */\nfunction includes(target, search) {\n    if (search.length > target.length) {\n        return false;\n    }\n    else {\n        return target.indexOf(search) !== -1;\n    }\n}\nexports.includes = includes;\n//# sourceMappingURL=string.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/string.js\n// module id = 28\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/string.js?");
  
  /***/ }),
  
  /***/ 29:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar classNames = __webpack_require__(4);\nvar onClickOutside = __webpack_require__(58).default;\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(114);\n\nvar Dropdown = function (_React$Component) {\n    _inherits(Dropdown, _React$Component);\n\n    function Dropdown(props) {\n        _classCallCheck(this, Dropdown);\n\n        var _this = _possibleConstructorReturn(this, (Dropdown.__proto__ || Object.getPrototypeOf(Dropdown)).call(this, props));\n\n        bindAll(_this, ['handleClickOutside']);\n        return _this;\n    }\n\n    _createClass(Dropdown, [{\n        key: 'handleClickOutside',\n        value: function handleClickOutside() {\n            if (this.props.isOpen) {\n                this.props.onRequestClose();\n            }\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            return React.createElement(\n                this.props.as,\n                {\n                    className: classNames('dropdown', this.props.className, {\n                        open: this.props.isOpen\n                    })\n                },\n                this.props.children\n            );\n        }\n    }]);\n\n    return Dropdown;\n}(React.Component);\n\nDropdown.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string,\n    isOpen: PropTypes.bool,\n    onRequestClose: PropTypes.func.isRequired\n};\n\nDropdown.defaultProps = {\n    as: 'div',\n    isOpen: false\n};\n\nmodule.exports = onClickOutside(Dropdown);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dropdown/dropdown.jsx\n// module id = 29\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/dropdown/dropdown.jsx?");
  
  /***/ }),
  
  /***/ 30:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\nexports.resetForTesting = resetForTesting;\n\nvar _warning = __webpack_require__(122);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\nfunction assertNodeList(nodeList, selector) {\n  if (!nodeList || !nodeList.length) {\n    throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n  }\n}\n\nfunction setElement(element) {\n  var useElement = element;\n  if (typeof useElement === \"string\") {\n    var el = document.querySelectorAll(useElement);\n    assertNodeList(el, useElement);\n    useElement = \"length\" in el ? el[0] : el;\n  }\n  globalElement = useElement || globalElement;\n  return globalElement;\n}\n\nfunction validateElement(appElement) {\n  if (!appElement && !globalElement) {\n    (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n    return false;\n  }\n\n  return true;\n}\n\nfunction hide(appElement) {\n  if (validateElement(appElement)) {\n    (appElement || globalElement).setAttribute(\"aria-hidden\", \"true\");\n  }\n}\n\nfunction show(appElement) {\n  if (validateElement(appElement)) {\n    (appElement || globalElement).removeAttribute(\"aria-hidden\");\n  }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n  globalElement = null;\n}\n\nfunction resetForTesting() {\n  globalElement = null;\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/ariaAppHider.js\n// module id = 30\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/ariaAppHider.js?");
  
  /***/ }),
  
  /***/ 31:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.get = get;\nexports.add = add;\nexports.remove = remove;\nexports.totalCount = totalCount;\nvar classListMap = {};\n\nfunction get() {\n  return classListMap;\n}\n\nfunction add(bodyClass) {\n  // Set variable and default if none\n  if (!classListMap[bodyClass]) {\n    classListMap[bodyClass] = 0;\n  }\n  classListMap[bodyClass] += 1;\n  return bodyClass;\n}\n\nfunction remove(bodyClass) {\n  if (classListMap[bodyClass]) {\n    classListMap[bodyClass] -= 1;\n  }\n  return bodyClass;\n}\n\nfunction totalCount() {\n  return Object.keys(classListMap).reduce(function (acc, curr) {\n    return acc + classListMap[curr];\n  }, 0);\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/refCount.js\n// module id = 31\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/refCount.js?");
  
  /***/ }),
  
  /***/ 32:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.canUseDOM = undefined;\n\nvar _exenv = __webpack_require__(106);\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/safeHTMLElement.js\n// module id = 32\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/safeHTMLElement.js?");
  
  /***/ }),
  
  /***/ 33:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction hidesContents(element) {\n  var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n  // If the node is empty, this is good enough\n  if (zeroSize && !element.innerHTML) return true;\n\n  // Otherwise we need to check some styles\n  var style = window.getComputedStyle(element);\n  return zeroSize ? style.getPropertyValue(\"overflow\") !== \"visible\" : style.getPropertyValue(\"display\") == \"none\";\n}\n\nfunction visible(element) {\n  var parentElement = element;\n  while (parentElement) {\n    if (parentElement === document.body) break;\n    if (hidesContents(parentElement)) return false;\n    parentElement = parentElement.parentNode;\n  }\n  return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n  var nodeName = element.nodeName.toLowerCase();\n  var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n  return res && visible(element);\n}\n\nfunction tabbable(element) {\n  var tabIndex = element.getAttribute(\"tabindex\");\n  if (tabIndex === null) tabIndex = undefined;\n  var isTabIndexNaN = isNaN(tabIndex);\n  return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n  return [].slice.call(element.querySelectorAll(\"*\"), 0).filter(tabbable);\n}\nmodule.exports = exports[\"default\"];\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-modal/lib/helpers/tabbable.js\n// module id = 33\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-modal/lib/helpers/tabbable.js?");
  
  /***/ }),
  
  /***/ 34:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(99);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./login-dropdown.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./login-dropdown.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/login-dropdown.scss\n// module id = 34\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login-dropdown.scss?");
  
  /***/ }),
  
  /***/ 35:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(39);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./button.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./button.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/forms/button.scss\n// module id = 35\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40\n\n//# sourceURL=webpack:///./src/components/forms/button.scss?");
  
  /***/ }),
  
  /***/ 38:
  /***/ (function(module, exports) {
  
  eval("module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 38\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///(webpack)/buildin/module.js?");
  
  /***/ }),
  
  /***/ 39:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n.button {\\n  display: inline-block;\\n  margin: .5em 0;\\n  border: 0;\\n  border-radius: .5rem;\\n  background-color: #4d97ff;\\n  cursor: pointer;\\n  padding: 1em 1.25em;\\n  color: white;\\n  font-size: .8rem;\\n  font-weight: bold;\\n  /* USER BUTTON STATES */\\n  /* DATA BUTTON STATES */ }\\n  .button:focus {\\n    outline: none; }\\n  .button.white {\\n    background-color: white;\\n    color: #4d97ff; }\\n  .button.pass {\\n    background-color: #0fbd8c; }\\n  .button.fail {\\n    background-color: #ffab1a; }\\n  .button:disabled {\\n    box-shadow: none; }\\n  .button.large {\\n    border-radius: .25rem;\\n    font-size: 1rem;\\n    font-family: \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n    padding: .75rem 1.25rem .8125rem; }\\n  .button.icon-right img {\\n    height: 1.25rem;\\n    margin-bottom: -.25rem;\\n    margin-left: .5rem;\\n    margin-right: -.25rem; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/forms/button.scss\n// module id = 39\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40\n\n//# sourceURL=webpack:///./src/components/forms/button.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 40:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar React = __webpack_require__(0);\nvar PropTypes = __webpack_require__(1);\nvar classNames = __webpack_require__(4);\n\n__webpack_require__(60);\n\n// Adapted from http://tobiasahlin.com/spinkit/\nvar Spinner = function Spinner(_ref) {\n    var className = _ref.className,\n        color = _ref.color;\n    return React.createElement('img', {\n        alt: 'loading animation',\n        className: classNames('studio-status-icon-spinner', className),\n        src: '/svgs/modal/spinner-' + color + '.svg'\n    });\n};\n\nSpinner.defaultProps = {\n    color: 'white'\n};\n\nSpinner.propTypes = {\n    className: PropTypes.string,\n    color: PropTypes.oneOf(['white', 'blue', 'transparent-gray'])\n};\n\nmodule.exports = Spinner;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/spinner/spinner.jsx\n// module id = 40\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/spinner/spinner.jsx?");
  
  /***/ }),
  
  /***/ 41:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.localeData = exports.isRtl = exports.localeMap = exports.default = undefined;\n\nvar _en = __webpack_require__(145);\n\nvar _en2 = _interopRequireDefault(_en);\n\nvar _am = __webpack_require__(133);\n\nvar _am2 = _interopRequireDefault(_am);\n\nvar _ar = __webpack_require__(134);\n\nvar _ar2 = _interopRequireDefault(_ar);\n\nvar _az = __webpack_require__(135);\n\nvar _az2 = _interopRequireDefault(_az);\n\nvar _be = __webpack_require__(136);\n\nvar _be2 = _interopRequireDefault(_be);\n\nvar _bg = __webpack_require__(137);\n\nvar _bg2 = _interopRequireDefault(_bg);\n\nvar _ca = __webpack_require__(138);\n\nvar _ca2 = _interopRequireDefault(_ca);\n\nvar _ckb = __webpack_require__(139);\n\nvar _ckb2 = _interopRequireDefault(_ckb);\n\nvar _cs = __webpack_require__(140);\n\nvar _cs2 = _interopRequireDefault(_cs);\n\nvar _cy = __webpack_require__(141);\n\nvar _cy2 = _interopRequireDefault(_cy);\n\nvar _da = __webpack_require__(142);\n\nvar _da2 = _interopRequireDefault(_da);\n\nvar _de = __webpack_require__(143);\n\nvar _de2 = _interopRequireDefault(_de);\n\nvar _el = __webpack_require__(144);\n\nvar _el2 = _interopRequireDefault(_el);\n\nvar _es = __webpack_require__(146);\n\nvar _es2 = _interopRequireDefault(_es);\n\nvar _et = __webpack_require__(147);\n\nvar _et2 = _interopRequireDefault(_et);\n\nvar _eu = __webpack_require__(148);\n\nvar _eu2 = _interopRequireDefault(_eu);\n\nvar _fa = __webpack_require__(149);\n\nvar _fa2 = _interopRequireDefault(_fa);\n\nvar _fi = __webpack_require__(150);\n\nvar _fi2 = _interopRequireDefault(_fi);\n\nvar _fr = __webpack_require__(151);\n\nvar _fr2 = _interopRequireDefault(_fr);\n\nvar _ga = __webpack_require__(152);\n\nvar _ga2 = _interopRequireDefault(_ga);\n\nvar _gd = __webpack_require__(153);\n\nvar _gd2 = _interopRequireDefault(_gd);\n\nvar _gl = __webpack_require__(154);\n\nvar _gl2 = _interopRequireDefault(_gl);\n\nvar _he = __webpack_require__(155);\n\nvar _he2 = _interopRequireDefault(_he);\n\nvar _hu = __webpack_require__(157);\n\nvar _hu2 = _interopRequireDefault(_hu);\n\nvar _hr = __webpack_require__(156);\n\nvar _hr2 = _interopRequireDefault(_hr);\n\nvar _id = __webpack_require__(158);\n\nvar _id2 = _interopRequireDefault(_id);\n\nvar _is = __webpack_require__(159);\n\nvar _is2 = _interopRequireDefault(_is);\n\nvar _it = __webpack_require__(160);\n\nvar _it2 = _interopRequireDefault(_it);\n\nvar _ja = __webpack_require__(161);\n\nvar _ja2 = _interopRequireDefault(_ja);\n\nvar _ko = __webpack_require__(162);\n\nvar _ko2 = _interopRequireDefault(_ko);\n\nvar _lt = __webpack_require__(163);\n\nvar _lt2 = _interopRequireDefault(_lt);\n\nvar _lv = __webpack_require__(164);\n\nvar _lv2 = _interopRequireDefault(_lv);\n\nvar _mi = __webpack_require__(165);\n\nvar _mi2 = _interopRequireDefault(_mi);\n\nvar _nl = __webpack_require__(167);\n\nvar _nl2 = _interopRequireDefault(_nl);\n\nvar _nb = __webpack_require__(166);\n\nvar _nb2 = _interopRequireDefault(_nb);\n\nvar _nn = __webpack_require__(168);\n\nvar _nn2 = _interopRequireDefault(_nn);\n\nvar _pl = __webpack_require__(169);\n\nvar _pl2 = _interopRequireDefault(_pl);\n\nvar _pt = __webpack_require__(170);\n\nvar _pt2 = _interopRequireDefault(_pt);\n\nvar _ro = __webpack_require__(171);\n\nvar _ro2 = _interopRequireDefault(_ro);\n\nvar _ru = __webpack_require__(172);\n\nvar _ru2 = _interopRequireDefault(_ru);\n\nvar _sl = __webpack_require__(174);\n\nvar _sl2 = _interopRequireDefault(_sl);\n\nvar _sk = __webpack_require__(173);\n\nvar _sk2 = _interopRequireDefault(_sk);\n\nvar _sr = __webpack_require__(175);\n\nvar _sr2 = _interopRequireDefault(_sr);\n\nvar _sv = __webpack_require__(176);\n\nvar _sv2 = _interopRequireDefault(_sv);\n\nvar _th = __webpack_require__(177);\n\nvar _th2 = _interopRequireDefault(_th);\n\nvar _tr = __webpack_require__(178);\n\nvar _tr2 = _interopRequireDefault(_tr);\n\nvar _uk = __webpack_require__(179);\n\nvar _uk2 = _interopRequireDefault(_uk);\n\nvar _vi = __webpack_require__(180);\n\nvar _vi2 = _interopRequireDefault(_vi);\n\nvar _zh = __webpack_require__(181);\n\nvar _zh2 = _interopRequireDefault(_zh);\n\nvar _zu = __webpack_require__(182);\n\nvar _zu2 = _interopRequireDefault(_zu);\n\nvar _supportedLocales = __webpack_require__(42);\n\nvar _supportedLocales2 = _interopRequireDefault(_supportedLocales);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\nlocales = {\n    'ab': {name: 'Аҧсшәа'},\n    'ca': {name: 'Català'},\n    'cs': {name: 'Česky'},\n    'cy': {name: 'Cymraeg'},\n    'de': {name: 'Deutsch'},\n    'el': {name: 'Ελληνικά'},\n    'en': {name: 'English'},\n    'es': {name: 'Español'},\n    'es-419': {name: 'Español Latinoamericano'},\n    'fr': {name: 'Français'},\n    'ga': {name: 'Gaeilge'},\n    'gd': {name: 'Gàidhlig'},\n    'he': {name: 'עִבְרִית'},\n    'it': {name: 'Italiano'},\n    'ja': {name: '日本語'},\n    'mi': {name: 'Maori'},\n    'nl': {name: 'Nederlands'},\n    'nb': {name: 'Norsk Bokmål'},\n    'pt': {name: 'Português'},\n    'pt-br': {name: 'Português Brasileiro'},\n    'sr': {name: 'Српски'},\n    'sl': {name: 'Slovenščina'},\n    'tr': {name: 'Türkçe'},\n    'uk': {name: 'Українська'},\n    'zh-cn': {name: '简体中文'},\n    'zh-tw': {name: '繁體中文'}\n*/\n\nvar localeData = [].concat(_en2.default, _am2.default, _ar2.default, _az2.default, // parent for Abkahz\n_be2.default, _bg2.default, _ca2.default, _ckb2.default, _cs2.default, _cy2.default, _da2.default, _de2.default, _el2.default, _es2.default, _et2.default, _eu2.default, _fa2.default, _fi2.default, _fr2.default, _ga2.default, _gd2.default, _gl2.default, _he2.default, _hu2.default, _hr2.default, _id2.default, _is2.default, _it2.default, _ja2.default, _ko2.default, _lt2.default, _lv2.default, _mi2.default, _nl2.default, _nb2.default, _nn2.default, _pl2.default, _pt2.default, _sl2.default, _sk2.default, _sr2.default, _sv2.default, _ro2.default, _ru2.default, _th2.default, _tr2.default, _uk2.default, _vi2.default, _zh2.default, _zu2.default); // also parent for Abkahz\n// to find locale data in react-intl, go to:\n// https://unpkg.com/react-intl/locale-data/\n\nfor (var lang in _supportedLocales.customLocales) {\n    localeData.push(_supportedLocales.customLocales[lang]);\n}\n\nexports.default = _supportedLocales2.default;\nexports.localeMap = _supportedLocales.localeMap;\nexports.isRtl = _supportedLocales.isRtl;\nexports.localeData = localeData;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/scratch-l10n/src/index.js\n// module id = 41\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./~/scratch-l10n/src/index.js?");
  
  /***/ }),
  
  /***/ 42:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\n/**\n * Currently supported locales for the Scratch Project\n * @type {Object} Key Value pairs of locale code: Language name written in the language\n */\n\nvar locales = {\n    'ab': { name: 'Аҧсшәа' },\n    'ar': { name: 'العربية' },\n    'am': { name: 'አማርኛ' },\n    'az': { name: 'Azeri' },\n    'id': { name: 'Bahasa Indonesia' },\n    'be': { name: 'беларуская' },\n    'bg': { name: 'Български' },\n    'ca': { name: 'Català' },\n    'cs': { name: 'Česky' },\n    'cy': { name: 'Cymraeg' },\n    'da': { name: 'Dansk' },\n    'de': { name: 'Deutsch' },\n    'et': { name: 'Eesti' },\n    'el': { name: 'Ελληνικά' },\n    'en': { name: 'English' },\n    'es': { name: 'Español' },\n    'es-419': { name: 'Español Latinoamericano' },\n    'eu': { name: 'Euskara' },\n    'fa': { name: 'فارسی' },\n    'fr': { name: 'Français' },\n    'ga': { name: 'Gaeilge' },\n    'gd': { name: 'Gàidhlig' },\n    'gl': { name: 'Galego' },\n    'ko': { name: '한국어' },\n    'he': { name: 'עִבְרִית' },\n    'hr': { name: 'Hrvatski' },\n    'zu': { name: 'isiZulu' },\n    'is': { name: 'Íslenska' },\n    'it': { name: 'Italiano' },\n    'ckb': { name: 'کوردیی ناوەندی' },\n    'lv': { name: 'Latviešu' },\n    'lt': { name: 'Lietuvių' },\n    'hu': { name: 'Magyar' },\n    'mi': { name: 'Māori' },\n    'nl': { name: 'Nederlands' },\n    'ja': { name: '日本語' },\n    'ja-Hira': { name: 'にほんご' },\n    'nb': { name: 'Norsk Bokmål' },\n    'nn': { name: 'Norsk Nynorsk' },\n    'th': { name: 'ไทย' },\n    'pl': { name: 'Polski' },\n    'pt': { name: 'Português' },\n    'pt-br': { name: 'Português Brasileiro' },\n    'ro': { name: 'Română' },\n    'ru': { name: 'Русский' },\n    'sr': { name: 'Српски' },\n    'sk': { name: 'Slovenčina' },\n    'sl': { name: 'Slovenščina' },\n    'fi': { name: 'Suomi' },\n    'sv': { name: 'Svenska' },\n    'vi': { name: 'Tiếng Việt' },\n    'tr': { name: 'Türkçe' },\n    'uk': { name: 'Українська' },\n    'zh-cn': { name: '简体中文' },\n    'zh-tw': { name: '繁體中文' }\n};\n\nvar customLocales = {\n    'ab': {\n        locale: 'ab',\n        parentLocale: 'az'\n    },\n    // TODO: replace zh-cn, zh-tw with zh-Hans and zh-Hant\n    'zh-cn': {\n        locale: 'zh-cn',\n        parentLocale: 'zh'\n    },\n    'zh-tw': {\n        locale: 'zh-tw',\n        parentLocale: 'zh'\n    }\n};\n\nvar localeMap = {\n    'aa-dj': 'aa_DJ',\n    'es-419': 'es_419',\n    // ja-Hira: no map - it's 'ja-Hira' on transifex\n    'pt-br': 'pt_BR',\n    'zh-cn': 'zh_CN',\n    'zh-tw': 'zh_TW'\n};\n\n// list of RTL locales supported, and a function to check whether a locale is RTL\nvar rtlLocales = ['ar', 'ckb', 'fa', 'he'];\n\nvar isRtl = function isRtl(locale) {\n    return rtlLocales.indexOf(locale) !== -1;\n};\n\nexports.default = locales;\nexports.customLocales = customLocales;\nexports.localeMap = localeMap;\nexports.rtlLocales = rtlLocales;\nexports.isRtl = isRtl;\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/scratch-l10n/src/supported-locales.js\n// module id = 42\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./~/scratch-l10n/src/supported-locales.js?");
  
  /***/ }),
  
  /***/ 43:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(51);\n\nvar FooterBox = function FooterBox(props) {\n    return React.createElement(\n        'div',\n        { className: 'inner' },\n        props.children\n    );\n};\n\nFooterBox.propTypes = {\n    children: PropTypes.node\n};\n\nmodule.exports = FooterBox;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/footer/container/footer.jsx\n// module id = 43\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/footer/container/footer.jsx?");
  
  /***/ }),
  
  /***/ 44:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar jar = __webpack_require__(131);\nvar languages = __webpack_require__(41).default;\nvar Form = __webpack_require__(21);\nvar Select = __webpack_require__(129);\n\n__webpack_require__(52);\n\n/**\n * Footer dropdown menu that allows one to change their language.\n */\n\nvar LanguageChooser = function (_React$Component) {\n    _inherits(LanguageChooser, _React$Component);\n\n    function LanguageChooser(props) {\n        _classCallCheck(this, LanguageChooser);\n\n        var _this = _possibleConstructorReturn(this, (LanguageChooser.__proto__ || Object.getPrototypeOf(LanguageChooser)).call(this, props));\n\n        bindAll(_this, ['handleSetLanguage']);\n        return _this;\n    }\n\n    _createClass(LanguageChooser, [{\n        key: 'handleSetLanguage',\n        value: function handleSetLanguage(name, value) {\n            jar.set('scratchlanguage', value);\n            window.location.reload();\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var _this2 = this;\n\n            var languageOptions = Object.keys(this.props.languages).map(function (value) {\n                return {\n                    value: value,\n                    label: _this2.props.languages[value].name\n                };\n            });\n            return React.createElement(\n                Form,\n                { className: classNames('language-chooser', this.props.className) },\n                React.createElement(Select, {\n                    required: true,\n                    name: 'language',\n                    options: languageOptions,\n                    value: this.props.locale,\n                    onChange: this.handleSetLanguage\n                })\n            );\n        }\n    }]);\n\n    return LanguageChooser;\n}(React.Component);\n\nLanguageChooser.propTypes = {\n    className: PropTypes.string,\n    languages: PropTypes.object, // eslint-disable-line react/forbid-prop-types\n    locale: PropTypes.string\n};\n\nLanguageChooser.defaultProps = {\n    languages: languages,\n    locale: 'en'\n};\n\nmodule.exports = LanguageChooser;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/languagechooser/languagechooser.jsx\n// module id = 44\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/languagechooser/languagechooser.jsx?");
  
  /***/ }),
  
  /***/ 45:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(53);\n\nvar NavigationBox = function NavigationBox(props) {\n    return React.createElement(\n        'div',\n        { className: classNames('inner', props.className) },\n        props.children\n    );\n};\n\nNavigationBox.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string\n};\n\nmodule.exports = NavigationBox;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/base/navigation.jsx\n// module id = 45\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/navigation/base/navigation.jsx?");
  
  /***/ }),
  
  /***/ 46:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.flex-row {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  -webkit-flex-direction: row;\\n      -ms-flex-direction: row;\\n          flex-direction: row;\\n  -webkit-flex-wrap: wrap;\\n      -ms-flex-wrap: wrap;\\n          flex-wrap: wrap;\\n  -webkit-justify-content: space-around;\\n      -ms-flex-pack: distribute;\\n          justify-content: space-around;\\n  -webkit-align-items: center;\\n      -ms-flex-align: center;\\n          align-items: center; }\\n  .flex-row.column {\\n    -webkit-flex-direction: column;\\n        -ms-flex-direction: column;\\n            flex-direction: column;\\n    -webkit-justify-content: center;\\n        -ms-flex-pack: center;\\n            justify-content: center; }\\n  .flex-row.uneven {\\n    -webkit-align-items: flex-start;\\n        -ms-flex-align: start;\\n                -ms-grid-row-align: flex-start;\\n            align-items: flex-start; }\\n    .flex-row.uneven .short {\\n      width: 13.75em; }\\n    .flex-row.uneven .long {\\n      width: 38.75em;\\n      text-align: left; }\\n  @media only screen and (max-width: 767px) {\\n    .flex-row {\\n      -webkit-flex-direction: column;\\n          -ms-flex-direction: column;\\n              flex-direction: column; }\\n      .flex-row.uneven .short,\\n      .flex-row.uneven .long {\\n        margin: auto;\\n        width: 90%; } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/flex-row/flex-row.scss\n// module id = 46\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/flex-row/flex-row.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 47:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n#footer {\\n  display: block;\\n  background-color: #f2f2f2;\\n  padding: 10px 0;\\n  color: #575e75;\\n  font-size: .85rem; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/footer/container/footer.scss\n// module id = 47\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/footer/container/footer.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 48:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.language-chooser .select select {\\n  width: 13.75rem;\\n  /* 3 columns */ }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/languagechooser/languagechooser.scss\n// module id = 48\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/languagechooser/languagechooser.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 49:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n#navigation {\\n  display: block;\\n  position: fixed;\\n  top: 0;\\n  left: 0;\\n  z-index: 10;\\n  border-bottom: 1px solid rgba(0, 0, 0, 0.1);\\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.25);\\n  background-color: #4d97ff;\\n  width: 100%;\\n  /* NOTE: Height should match offset settings in main.scss file */\\n  height: 50px; }\\n  #navigation.staging {\\n    background-color: #ffab1a; }\\n  .ie9 #navigation {\\n    display: table;\\n    table-layout: fixed; }\\n  #navigation .inner > ul {\\n    display: -webkit-flex;\\n    display: -ms-flexbox;\\n    display: flex;\\n    margin: 0;\\n    padding: 0;\\n    height: 50px;\\n    list-style: none;\\n    -webkit-flex-wrap: nowrap;\\n        -ms-flex-wrap: nowrap;\\n            flex-wrap: nowrap;\\n    -webkit-flex-direction: row;\\n        -ms-flex-direction: row;\\n            flex-direction: row;\\n    -webkit-justify-content: flex-start;\\n        -ms-flex-pack: start;\\n            justify-content: flex-start; }\\n    .ie9 #navigation .inner > ul {\\n      display: table-row; }\\n    #navigation .inner > ul > li {\\n      display: inline-block;\\n      position: relative;\\n      float: left;\\n      margin: 0;\\n      height: 100%;\\n      -webkit-align-self: flex-start;\\n          -ms-flex-item-align: start;\\n              align-self: flex-start; }\\n      #navigation .inner > ul > li.right {\\n        float: right;\\n        margin-left: auto;\\n        -webkit-align-self: flex-end;\\n            -ms-flex-item-align: end;\\n                align-self: flex-end; }\\n        .ie9 #navigation .inner > ul > li.right {\\n          float: none; }\\n        #navigation .inner > ul > li.right a:hover {\\n          background-color: rgba(0, 0, 0, 0.1); }\\n      .ie9 #navigation .inner > ul > li {\\n        display: table-cell;\\n        float: none;\\n        height: 50px;\\n        vertical-align: bottom; }\\n  #navigation .link > a {\\n    display: block;\\n    padding: 13px 15px 4px 15px;\\n    height: 33px;\\n    text-decoration: none;\\n    white-space: nowrap;\\n    color: white;\\n    font-size: .85rem;\\n    font-weight: bold; }\\n    #navigation .link > a:hover {\\n      background-color: rgba(0, 0, 0, 0.1); }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/navigation/base/navigation.scss\n// module id = 49\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/navigation/base/navigation.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 50:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(46);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./flex-row.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./flex-row.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/flex-row/flex-row.scss\n// module id = 50\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/flex-row/flex-row.scss?");
  
  /***/ }),
  
  /***/ 51:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(47);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./footer.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./footer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/footer/container/footer.scss\n// module id = 51\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/footer/container/footer.scss?");
  
  /***/ }),
  
  /***/ 52:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(48);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./languagechooser.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./languagechooser.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/languagechooser/languagechooser.scss\n// module id = 52\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/languagechooser/languagechooser.scss?");
  
  /***/ }),
  
  /***/ 53:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(49);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./navigation.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../../node_modules/sass-loader/lib/loader.js!./navigation.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/base/navigation.scss\n// module id = 53\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42\n\n//# sourceURL=webpack:///./src/components/navigation/base/navigation.scss?");
  
  /***/ }),
  
  /***/ 54:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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 classNames = __webpack_require__(4);\nvar omit = __webpack_require__(12);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar Avatar = function Avatar(props) {\n    return React.createElement('img', _extends({\n        className: classNames('avatar', props.className)\n    }, omit(props, ['className'])));\n};\n\nAvatar.propTypes = {\n    className: PropTypes.string,\n    src: PropTypes.string\n};\n\nAvatar.defaultProps = {\n    src: '//cdn2.scratch.mit.edu/get_image/user/2584924_24x24.png?v=1438702210.96'\n};\n\nmodule.exports = Avatar;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/avatar/avatar.jsx\n// module id = 54\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/avatar/avatar.jsx?");
  
  /***/ }),
  
  /***/ 55:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\n/* This file contains breakpoints from _frameless.scss, to be used in MediaQuery elements.\n * All units are in px, as per _frameless.scss and the MediaQuery default arguments.\n */\nvar frameless = {\n    desktop: 942,\n    mobileIntermediate: 640,\n    tabletPortrait: 768,\n    mobile: 480\n};\n\nmodule.exports = frameless;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/lib/frameless.js\n// module id = 55\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/lib/frameless.js?");
  
  /***/ }),
  
  /***/ 56:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.row label {\\n  font-weight: 500; }\\n\\n.input {\\n  transition: all .5s ease;\\n  margin-bottom: .75rem;\\n  border: 1px solid rgba(0, 0, 0, 0.1);\\n  border-radius: 5px;\\n  background-color: #fafafa;\\n  padding: 0 1rem;\\n  height: 3rem;\\n  color: #575e75;\\n  font-size: .875rem;\\n  /* IE10/11-specific style resets */ }\\n  .input:focus {\\n    transition: all .5s ease;\\n    outline: none;\\n    border: 1px solid #4d97ff; }\\n  .input.fail {\\n    border: 1px solid #ffab1a; }\\n  .input.pass {\\n    border: 1px solid #0fbd8c; }\\n  .input::-ms-reveal, .input::-ms-clear {\\n    display: none; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/forms/input.scss\n// module id = 56\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/forms/input.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 57:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \".studio-status-icon-spinner {\\n  /* This class can be used on an icon that should spin.\\n    It first plays the intro animation, then spins forever. */\\n  animation-name: intro, spin;\\n  animation-duration: .25s, .5s;\\n  animation-timing-function: cubic-bezier(0.3, -3, 0.6, 3), linear;\\n  animation-delay: 0s, .25s;\\n  animation-iteration-count: 1, infinite;\\n  -webkit-animation-direction: normal;\\n          animation-direction: normal;\\n  width: 1.4rem;\\n  /* standard is 1.4 rem but can be overwritten by parent */\\n  height: 1.4rem;\\n  -webkit-animation-name: intro, spin;\\n  -webkit-animation-duration: .25s, .5s;\\n  -webkit-animation-iteration-count: 1, infinite;\\n  -webkit-animation-delay: 0s, .25s;\\n  -webkit-animation-timing-function: cubic-bezier(0.3, -3, 0.6, 3), linear;\\n  -webkit-transform-origin: center;\\n      -ms-transform-origin: center;\\n          transform-origin: center; }\\n\\n@-webkit-keyframes intro {\\n  0% {\\n    transform: scale(0);\\n    opacity: 0;\\n    -webkit-transform: scale(0); }\\n  100% {\\n    transform: scale(1);\\n    opacity: 1;\\n    -webkit-transform: scale(1); } }\\n\\n@keyframes intro {\\n  0% {\\n    transform: scale(0);\\n    opacity: 0;\\n    -webkit-transform: scale(0); }\\n  100% {\\n    transform: scale(1);\\n    opacity: 1;\\n    -webkit-transform: scale(1); } }\\n\\n@-webkit-keyframes spin {\\n  0% {\\n    transform: rotate(0);\\n    -webkit-transform: rotate(0); }\\n  100% {\\n    transform: rotate(359deg);\\n    -webkit-transform: rotate(359deg); } }\\n\\n@keyframes spin {\\n  0% {\\n    transform: rotate(0);\\n    -webkit-transform: rotate(0); }\\n  100% {\\n    transform: rotate(359deg);\\n    -webkit-transform: rotate(359deg); } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/spinner/spinner.scss\n// module id = 57\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/spinner/spinner.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 58:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IGNORE_CLASS_NAME\", function() { return IGNORE_CLASS_NAME; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(37);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);\n\n\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/**\n * Check whether some DOM node is our Component's node.\n */\nfunction isNodeFound(current, componentNode, ignoreClass) {\n  if (current === componentNode) {\n    return true;\n  } // SVG <use/> elements do not technically reside in the rendered DOM, so\n  // they do not have classList directly, but they offer a link to their\n  // corresponding element, which can have classList. This extra check is for\n  // that case.\n  // See: http://www.w3.org/TR/SVG11/struct.html#InterfaceSVGUseElement\n  // Discussion: https://github.com/Pomax/react-onclickoutside/pull/17\n\n\n  if (current.correspondingElement) {\n    return current.correspondingElement.classList.contains(ignoreClass);\n  }\n\n  return current.classList.contains(ignoreClass);\n}\n/**\n * Try to find our node in a hierarchy of nodes, returning the document\n * node as highest node if our node is not found in the path up.\n */\n\nfunction findHighest(current, componentNode, ignoreClass) {\n  if (current === componentNode) {\n    return true;\n  } // If source=local then this event came from 'somewhere'\n  // inside and should be ignored. We could handle this with\n  // a layered approach, too, but that requires going back to\n  // thinking in terms of Dom node nesting, running counter\n  // to React's 'you shouldn't care about the DOM' philosophy.\n\n\n  while (current.parentNode) {\n    if (isNodeFound(current, componentNode, ignoreClass)) {\n      return true;\n    }\n\n    current = current.parentNode;\n  }\n\n  return current;\n}\n/**\n * Check if the browser scrollbar was clicked\n */\n\nfunction clickedScrollbar(evt) {\n  return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;\n}\n\n// ideally will get replaced with external dep\n// when rafrex/detect-passive-events#4 and rafrex/detect-passive-events#5 get merged in\nvar testPassiveEventSupport = function testPassiveEventSupport() {\n  if (typeof window === 'undefined' || typeof window.addEventListener !== 'function') {\n    return;\n  }\n\n  var passive = false;\n  var options = Object.defineProperty({}, 'passive', {\n    get: function get() {\n      passive = true;\n    }\n  });\n\n  var noop = function noop() {};\n\n  window.addEventListener('testPassiveEventSupport', noop, options);\n  window.removeEventListener('testPassiveEventSupport', noop, options);\n  return passive;\n};\n\nfunction autoInc(seed) {\n  if (seed === void 0) {\n    seed = 0;\n  }\n\n  return function () {\n    return ++seed;\n  };\n}\n\nvar uid = autoInc();\n\nvar passiveEventSupport;\nvar handlersMap = {};\nvar enabledInstances = {};\nvar touchEvents = ['touchstart', 'touchmove'];\nvar IGNORE_CLASS_NAME = 'ignore-react-onclickoutside';\n/**\n * Options for addEventHandler and removeEventHandler\n */\n\nfunction getEventHandlerOptions(instance, eventName) {\n  var handlerOptions = null;\n  var isTouchEvent = touchEvents.indexOf(eventName) !== -1;\n\n  if (isTouchEvent && passiveEventSupport) {\n    handlerOptions = {\n      passive: !instance.props.preventDefault\n    };\n  }\n\n  return handlerOptions;\n}\n/**\n * This function generates the HOC function that you'll use\n * in order to impart onOutsideClick listening to an\n * arbitrary component. It gets called at the end of the\n * bootstrapping code to yield an instance of the\n * onClickOutsideHOC function defined inside setupHOC().\n */\n\n\nfunction onClickOutsideHOC(WrappedComponent, config) {\n  var _class, _temp;\n\n  return _temp = _class =\n  /*#__PURE__*/\n  function (_Component) {\n    _inheritsLoose(onClickOutside, _Component);\n\n    function onClickOutside(props) {\n      var _this;\n\n      _this = _Component.call(this, props) || this;\n\n      _this.__outsideClickHandler = function (event) {\n        if (typeof _this.__clickOutsideHandlerProp === 'function') {\n          _this.__clickOutsideHandlerProp(event);\n\n          return;\n        }\n\n        var instance = _this.getInstance();\n\n        if (typeof instance.props.handleClickOutside === 'function') {\n          instance.props.handleClickOutside(event);\n          return;\n        }\n\n        if (typeof instance.handleClickOutside === 'function') {\n          instance.handleClickOutside(event);\n          return;\n        }\n\n        throw new Error('WrappedComponent lacks a handleClickOutside(event) function for processing outside click events.');\n      };\n\n      _this.enableOnClickOutside = function () {\n        if (typeof document === 'undefined' || enabledInstances[_this._uid]) {\n          return;\n        }\n\n        if (typeof passiveEventSupport === 'undefined') {\n          passiveEventSupport = testPassiveEventSupport();\n        }\n\n        enabledInstances[_this._uid] = true;\n        var events = _this.props.eventTypes;\n\n        if (!events.forEach) {\n          events = [events];\n        }\n\n        handlersMap[_this._uid] = function (event) {\n          if (_this.props.disableOnClickOutside) return;\n          if (_this.componentNode === null) return;\n\n          if (_this.props.preventDefault) {\n            event.preventDefault();\n          }\n\n          if (_this.props.stopPropagation) {\n            event.stopPropagation();\n          }\n\n          if (_this.props.excludeScrollbar && clickedScrollbar(event)) return;\n          var current = event.target;\n\n          if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {\n            return;\n          }\n\n          _this.__outsideClickHandler(event);\n        };\n\n        events.forEach(function (eventName) {\n          document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_this, eventName));\n        });\n      };\n\n      _this.disableOnClickOutside = function () {\n        delete enabledInstances[_this._uid];\n        var fn = handlersMap[_this._uid];\n\n        if (fn && typeof document !== 'undefined') {\n          var events = _this.props.eventTypes;\n\n          if (!events.forEach) {\n            events = [events];\n          }\n\n          events.forEach(function (eventName) {\n            return document.removeEventListener(eventName, fn, getEventHandlerOptions(_this, eventName));\n          });\n          delete handlersMap[_this._uid];\n        }\n      };\n\n      _this.getRef = function (ref) {\n        return _this.instanceRef = ref;\n      };\n\n      _this._uid = uid();\n      return _this;\n    }\n    /**\n     * Access the WrappedComponent's instance.\n     */\n\n\n    var _proto = onClickOutside.prototype;\n\n    _proto.getInstance = function getInstance() {\n      if (!WrappedComponent.prototype.isReactComponent) {\n        return this;\n      }\n\n      var ref = this.instanceRef;\n      return ref.getInstance ? ref.getInstance() : ref;\n    };\n\n    /**\n     * Add click listeners to the current document,\n     * linked to this component's state.\n     */\n    _proto.componentDidMount = function componentDidMount() {\n      // If we are in an environment without a DOM such\n      // as shallow rendering or snapshots then we exit\n      // early to prevent any unhandled errors being thrown.\n      if (typeof document === 'undefined' || !document.createElement) {\n        return;\n      }\n\n      var instance = this.getInstance();\n\n      if (config && typeof config.handleClickOutside === 'function') {\n        this.__clickOutsideHandlerProp = config.handleClickOutside(instance);\n\n        if (typeof this.__clickOutsideHandlerProp !== 'function') {\n          throw new Error('WrappedComponent lacks a function for processing outside click events specified by the handleClickOutside config option.');\n        }\n      }\n\n      this.componentNode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_react_dom__[\"findDOMNode\"])(this.getInstance());\n      this.enableOnClickOutside();\n    };\n\n    _proto.componentDidUpdate = function componentDidUpdate() {\n      this.componentNode = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_react_dom__[\"findDOMNode\"])(this.getInstance());\n    };\n    /**\n     * Remove all document's event listeners for this component\n     */\n\n\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this.disableOnClickOutside();\n    };\n    /**\n     * Can be called to explicitly enable event listening\n     * for clicks and touches outside of this element.\n     */\n\n\n    /**\n     * Pass-through render\n     */\n    _proto.render = function render() {\n      // eslint-disable-next-line no-unused-vars\n      var _props = this.props,\n          excludeScrollbar = _props.excludeScrollbar,\n          props = _objectWithoutProperties(_props, [\"excludeScrollbar\"]);\n\n      if (WrappedComponent.prototype.isReactComponent) {\n        props.ref = this.getRef;\n      } else {\n        props.wrappedRef = this.getRef;\n      }\n\n      props.disableOnClickOutside = this.disableOnClickOutside;\n      props.enableOnClickOutside = this.enableOnClickOutside;\n      return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_react__[\"createElement\"])(WrappedComponent, props);\n    };\n\n    return onClickOutside;\n  }(__WEBPACK_IMPORTED_MODULE_0_react__[\"Component\"]), _class.displayName = \"OnClickOutside(\" + (WrappedComponent.displayName || WrappedComponent.name || 'Component') + \")\", _class.defaultProps = {\n    eventTypes: ['mousedown', 'touchstart'],\n    excludeScrollbar: config && config.excludeScrollbar || false,\n    outsideClickIgnoreClass: IGNORE_CLASS_NAME,\n    preventDefault: false,\n    stopPropagation: false\n  }, _class.getClass = function () {\n    return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;\n  }, _temp;\n}\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (onClickOutsideHOC);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-onclickoutside/dist/react-onclickoutside.es.js\n// module id = 58\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-onclickoutside/dist/react-onclickoutside.es.js?");
  
  /***/ }),
  
  /***/ 59:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(56);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./input.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./input.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/forms/input.scss\n// module id = 59\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/forms/input.scss?");
  
  /***/ }),
  
  /***/ 6:
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"__extends\"] = __extends;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__assign\", function() { return __assign; });\n/* harmony export (immutable) */ __webpack_exports__[\"__rest\"] = __rest;\n/* harmony export (immutable) */ __webpack_exports__[\"__decorate\"] = __decorate;\n/* harmony export (immutable) */ __webpack_exports__[\"__param\"] = __param;\n/* harmony export (immutable) */ __webpack_exports__[\"__metadata\"] = __metadata;\n/* harmony export (immutable) */ __webpack_exports__[\"__awaiter\"] = __awaiter;\n/* harmony export (immutable) */ __webpack_exports__[\"__generator\"] = __generator;\n/* harmony export (immutable) */ __webpack_exports__[\"__exportStar\"] = __exportStar;\n/* harmony export (immutable) */ __webpack_exports__[\"__values\"] = __values;\n/* harmony export (immutable) */ __webpack_exports__[\"__read\"] = __read;\n/* harmony export (immutable) */ __webpack_exports__[\"__spread\"] = __spread;\n/* harmony export (immutable) */ __webpack_exports__[\"__await\"] = __await;\n/* harmony export (immutable) */ __webpack_exports__[\"__asyncGenerator\"] = __asyncGenerator;\n/* harmony export (immutable) */ __webpack_exports__[\"__asyncDelegator\"] = __asyncDelegator;\n/* harmony export (immutable) */ __webpack_exports__[\"__asyncValues\"] = __asyncValues;\n/* harmony export (immutable) */ __webpack_exports__[\"__makeTemplateObject\"] = __makeTemplateObject;\n/* harmony export (immutable) */ __webpack_exports__[\"__importStar\"] = __importStar;\n/* harmony export (immutable) */ __webpack_exports__[\"__importDefault\"] = __importDefault;\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n            t[p[i]] = s[p[i]];\r\n    return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n    if (m) return m.call(o);\r\n    return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n}\r\n\r\nfunction __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nfunction __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nfunction __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/tslib/tslib.es6.js\n// module id = 6\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/tslib/tslib.es6.js?");
  
  /***/ }),
  
  /***/ 60:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(57);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./spinner.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./spinner.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/spinner/spinner.scss\n// module id = 60\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/spinner/spinner.scss?");
  
  /***/ }),
  
  /***/ 61:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\n__webpack_require__(128);\n\nvar TitleBanner = function TitleBanner(props) {\n    return React.createElement(\n        'div',\n        { className: classNames('title-banner', props.className) },\n        props.children\n    );\n};\n\nTitleBanner.propTypes = {\n    children: PropTypes.node,\n    className: PropTypes.string\n};\n\nmodule.exports = TitleBanner;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/title-banner/title-banner.jsx\n// module id = 61\n// module chunks = 5 8 10 11 15 17 18 19 20 21 22 23 24 25 26 27 28 29 31 36 37 38 39 40 41\n\n//# sourceURL=webpack:///./src/components/title-banner/title-banner.jsx?");
  
  /***/ }),
  
  /***/ 62:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(0));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MediaQuery\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"MediaQuery\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_8__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \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// 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 = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n  var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n    Symbol.for &&\n    Symbol.for('react.element')) ||\n    0xeac7;\n\n  var isValidElement = function(object) {\n    return typeof object === 'object' &&\n      object !== null &&\n      object.$$typeof === REACT_ELEMENT_TYPE;\n  };\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = __webpack_require__(9)(isValidElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\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/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\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 (true) {\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/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(1);\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 (true) {\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\nmodule.exports = warning;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction hyphenateStyleName(string) {\n    return string in cache\n    ? cache[string]\n    : cache[string] = string\n      .replace(uppercasePattern, '-$&')\n      .toLowerCase()\n      .replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n/***/ }),\n/* 6 */\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar stringOrNumber = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);\n\n// properties that match media queries\nvar matchers = {\n  orientation: _propTypes2.default.oneOf(['portrait', 'landscape']),\n\n  scan: _propTypes2.default.oneOf(['progressive', 'interlace']),\n\n  aspectRatio: _propTypes2.default.string,\n  deviceAspectRatio: _propTypes2.default.string,\n\n  height: stringOrNumber,\n  deviceHeight: stringOrNumber,\n\n  width: stringOrNumber,\n  deviceWidth: stringOrNumber,\n\n  color: _propTypes2.default.bool,\n\n  colorIndex: _propTypes2.default.bool,\n\n  monochrome: _propTypes2.default.bool,\n  resolution: stringOrNumber\n\n  // media features\n};var features = _extends({\n  minAspectRatio: _propTypes2.default.string,\n  maxAspectRatio: _propTypes2.default.string,\n  minDeviceAspectRatio: _propTypes2.default.string,\n  maxDeviceAspectRatio: _propTypes2.default.string,\n\n  minHeight: stringOrNumber,\n  maxHeight: stringOrNumber,\n  minDeviceHeight: stringOrNumber,\n  maxDeviceHeight: stringOrNumber,\n\n  minWidth: stringOrNumber,\n  maxWidth: stringOrNumber,\n  minDeviceWidth: stringOrNumber,\n  maxDeviceWidth: stringOrNumber,\n\n  minColor: _propTypes2.default.number,\n  maxColor: _propTypes2.default.number,\n\n  minColorIndex: _propTypes2.default.number,\n  maxColorIndex: _propTypes2.default.number,\n\n  minMonochrome: _propTypes2.default.number,\n  maxMonochrome: _propTypes2.default.number,\n\n  minResolution: stringOrNumber,\n  maxResolution: stringOrNumber\n\n}, matchers);\n\n// media types\nvar types = {\n  all: _propTypes2.default.bool,\n  grid: _propTypes2.default.bool,\n  aural: _propTypes2.default.bool,\n  braille: _propTypes2.default.bool,\n  handheld: _propTypes2.default.bool,\n  print: _propTypes2.default.bool,\n  projection: _propTypes2.default.bool,\n  screen: _propTypes2.default.bool,\n  tty: _propTypes2.default.bool,\n  tv: _propTypes2.default.bool,\n  embossed: _propTypes2.default.bool\n};\n\nvar all = _extends({}, types, features);\n\n// add the type property\nmatchers.type = Object.keys(types);\n\nexports.default = {\n  all: all,\n  types: types,\n  matchers: matchers,\n  features: features\n};\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.toQuery = exports.default = 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 _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = __webpack_require__(8);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _matchmediaquery = __webpack_require__(12);\n\nvar _matchmediaquery2 = _interopRequireDefault(_matchmediaquery);\n\nvar _hyphenateStyleName = __webpack_require__(5);\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _mediaQuery = __webpack_require__(6);\n\nvar _mediaQuery2 = _interopRequireDefault(_mediaQuery);\n\nvar _toQuery = __webpack_require__(14);\n\nvar _toQuery2 = _interopRequireDefault(_toQuery);\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 defaultTypes = {\n  component: _propTypes2.default.node,\n  query: _propTypes2.default.string,\n  values: _propTypes2.default.shape(_mediaQuery2.default.matchers),\n  children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),\n  onChange: _propTypes2.default.func,\n  onBeforeChange: _propTypes2.default.func\n};\nvar mediaKeys = Object.keys(_mediaQuery2.default.all);\nvar excludedQueryKeys = Object.keys(defaultTypes);\nvar excludedPropKeys = excludedQueryKeys.concat(mediaKeys);\n\nfunction omit(object, keys) {\n  var newObject = _extends({}, object);\n  keys.forEach(function (key) {\n    return delete newObject[key];\n  });\n  return newObject;\n}\n\nvar MediaQuery = function (_React$Component) {\n  _inherits(MediaQuery, _React$Component);\n\n  function MediaQuery() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, MediaQuery);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MediaQuery.__proto__ || Object.getPrototypeOf(MediaQuery)).call.apply(_ref, [this].concat(args))), _this), _this.state = { matches: false }, _this.updateMatches = function () {\n      if (_this._mql.matches === _this.state.matches) {\n        return;\n      }\n      _this.setState({\n        matches: _this._mql.matches\n      });\n    }, _this.removeMql = function () {\n      if (_this._mql) {\n        _this._mql.removeListener(_this.updateMatches);\n        _this._mql.dispose();\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(MediaQuery, [{\n    key: 'componentWillMount',\n    value: function componentWillMount() {\n      this.updateQuery(this.props);\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(nextProps) {\n      this.updateQuery(nextProps);\n    }\n  }, {\n    key: 'updateQuery',\n    value: function updateQuery(props) {\n      var values = void 0;\n      if (props.query) {\n        this.query = props.query;\n      } else {\n        this.query = (0, _toQuery2.default)(omit(props, excludedQueryKeys));\n      }\n\n      if (!this.query) {\n        throw new Error('Invalid or missing MediaQuery!');\n      }\n\n      if (props.values) {\n        values = Object.keys(props.values).reduce(function (result, key) {\n          result[(0, _hyphenateStyleName2.default)(key)] = props.values[key];\n          return result;\n        }, {});\n      }\n\n      this.removeMql();\n\n      this._mql = (0, _matchmediaquery2.default)(this.query, values);\n      this._mql.addListener(this.updateMatches);\n      this.updateMatches();\n    }\n  }, {\n    key: 'componentWillUpdate',\n    value: function componentWillUpdate(_, nextState) {\n      if (this.props.onBeforeChange && this.state.matches !== nextState.matches) {\n        this.props.onBeforeChange(this.state.matches);\n      }\n    }\n  }, {\n    key: 'componentDidUpdate',\n    value: function componentDidUpdate(_, prevState) {\n      if (this.props.onChange && prevState.matches !== this.state.matches) {\n        this.props.onChange(this.state.matches);\n      }\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      this.removeMql();\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (typeof this.props.children === 'function') {\n        return this.props.children(this.state.matches);\n      }\n\n      if (this.state.matches === false) {\n        return null;\n      }\n      var props = omit(this.props, excludedPropKeys);\n      var hasMergeProps = Object.keys(props).length > 0;\n      var childrenCount = _react2.default.Children.count(this.props.children);\n      var wrapChildren = this.props.component || childrenCount > 1 || typeof this.props.children === 'string' || Array.isArray(this.props.children) && childrenCount == 1 || this.props.children === undefined;\n      if (wrapChildren) {\n        return _react2.default.createElement(this.props.component || 'div', props, this.props.children);\n      } else if (hasMergeProps) {\n        return _react2.default.cloneElement(this.props.children, props);\n      } else if (childrenCount) {\n        return this.props.children;\n      } else {\n        return null;\n      }\n    }\n  }]);\n\n  return MediaQuery;\n}(_react2.default.Component);\n\nMediaQuery.displayName = 'MediaQuery';\nMediaQuery.defaultProps = {\n  values: {}\n};\nexports.default = MediaQuery;\nexports.toQuery = _toQuery2.default;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar emptyFunction = __webpack_require__(1);\nvar invariant = __webpack_require__(2);\nvar warning = __webpack_require__(3);\nvar assign = __webpack_require__(10);\n\nvar ReactPropTypesSecret = __webpack_require__(4);\nvar checkPropTypes = __webpack_require__(11);\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    exact: createStrictShapeTypeChecker,\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 (true) {\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 (\"development\" !== '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       true ? 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       true ? 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 supplied 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 createStrictShapeTypeChecker(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      // We need to check all keys in case some are required but missing from\n      // props.\n      var allKeys = assign({}, props[propName], shapeTypes);\n      for (var key in allKeys) {\n        var checker = shapeTypes[key];\n        if (!checker) {\n          return new PropTypeError(\n            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n            '\\nBad object: ' + JSON.stringify(props[propName], null, '  ') +\n            '\\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')\n          );\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\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/* 10 */\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 */\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/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  var invariant = __webpack_require__(2);\n  var warning = __webpack_require__(3);\n  var ReactPropTypesSecret = __webpack_require__(4);\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 (true) {\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 ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[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/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar staticMatch = __webpack_require__(13).match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values){\n  var self = this;\n  if(dynamicMatch){\n    var mql = dynamicMatch.call(window, query);\n    this.matches = mql.matches;\n    this.media = mql.media;\n    // TODO: is there a time it makes sense to remove this listener?\n    mql.addListener(update);\n  } else {\n    this.matches = staticMatch(query, values);\n    this.media = query;\n  }\n\n  this.addListener = addListener;\n  this.removeListener = removeListener;\n  this.dispose = dispose;\n\n  function addListener(listener){\n    if(mql){\n      mql.addListener(listener);\n    }\n  }\n\n  function removeListener(listener){\n    if(mql){\n      mql.removeListener(listener);\n    }\n  }\n\n  // update ourselves!\n  function update(evt){\n    self.matches = evt.matches;\n    self.media = evt.media;\n  }\n\n  function dispose(){\n    if(mql){\n      mql.removeListener(update);\n    }\n  }\n}\n\nfunction matchMedia(query, values){\n  return new Mql(query, values);\n}\n\nmodule.exports = matchMedia;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY     = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n    RE_MQ_EXPRESSION   = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n    RE_MQ_FEATURE      = /^(?:(min|max)-)?(.+)/,\n    RE_LENGTH_UNIT     = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n    RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n    return parseQuery(mediaQuery).some(function (query) {\n        var inverse = query.inverse;\n\n        // Either the parsed or specified `type` is \"all\", or the types must be\n        // equal for a match.\n        var typeMatch = query.type === 'all' || values.type === query.type;\n\n        // Quit early when `type` doesn't match, but take \"not\" into account.\n        if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n            return false;\n        }\n\n        var expressionsMatch = query.expressions.every(function (expression) {\n            var feature  = expression.feature,\n                modifier = expression.modifier,\n                expValue = expression.value,\n                value    = values[feature];\n\n            // Missing or falsy values don't match.\n            if (!value) { return false; }\n\n            switch (feature) {\n                case 'orientation':\n                case 'scan':\n                    return value.toLowerCase() === expValue.toLowerCase();\n\n                case 'width':\n                case 'height':\n                case 'device-width':\n                case 'device-height':\n                    expValue = toPx(expValue);\n                    value    = toPx(value);\n                    break;\n\n                case 'resolution':\n                    expValue = toDpi(expValue);\n                    value    = toDpi(value);\n                    break;\n\n                case 'aspect-ratio':\n                case 'device-aspect-ratio':\n                case /* Deprecated */ 'device-pixel-ratio':\n                    expValue = toDecimal(expValue);\n                    value    = toDecimal(value);\n                    break;\n\n                case 'grid':\n                case 'color':\n                case 'color-index':\n                case 'monochrome':\n                    expValue = parseInt(expValue, 10) || 1;\n                    value    = parseInt(value, 10) || 0;\n                    break;\n            }\n\n            switch (modifier) {\n                case 'min': return value >= expValue;\n                case 'max': return value <= expValue;\n                default   : return value === expValue;\n            }\n        });\n\n        return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n    });\n}\n\nfunction parseQuery(mediaQuery) {\n    return mediaQuery.split(',').map(function (query) {\n        query = query.trim();\n\n        var captures    = query.match(RE_MEDIA_QUERY),\n            modifier    = captures[1],\n            type        = captures[2],\n            expressions = captures[3] || '',\n            parsed      = {};\n\n        parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n        parsed.type    = type ? type.toLowerCase() : 'all';\n\n        // Split expressions into a list.\n        expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n        parsed.expressions = expressions.map(function (expression) {\n            var captures = expression.match(RE_MQ_EXPRESSION),\n                feature  = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n            return {\n                modifier: feature[1],\n                feature : feature[2],\n                value   : captures[2]\n            };\n        });\n\n        return parsed;\n    });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n    var decimal = Number(ratio),\n        numbers;\n\n    if (!decimal) {\n        numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n        decimal = numbers[1] / numbers[2];\n    }\n\n    return decimal;\n}\n\nfunction toDpi(resolution) {\n    var value = parseFloat(resolution),\n        units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n    switch (units) {\n        case 'dpcm': return value / 2.54;\n        case 'dppx': return value * 96;\n        default    : return value;\n    }\n}\n\nfunction toPx(length) {\n    var value = parseFloat(length),\n        units = String(length).match(RE_LENGTH_UNIT)[1];\n\n    switch (units) {\n        case 'em' : return value * 16;\n        case 'rem': return value * 16;\n        case 'cm' : return value * 96 / 2.54;\n        case 'mm' : return value * 96 / 2.54 / 10;\n        case 'in' : return value * 96;\n        case 'pt' : return value * 72;\n        case 'pc' : return value * 72 / 12;\n        default   : return value;\n    }\n}\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (obj) {\n  var rules = [];\n  Object.keys(_mediaQuery2.default.all).forEach(function (k) {\n    var v = obj[k];\n    if (v != null) {\n      rules.push(keyVal(k, v));\n    }\n  });\n  return join(rules);\n};\n\nvar _hyphenateStyleName = __webpack_require__(5);\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nvar _mediaQuery = __webpack_require__(6);\n\nvar _mediaQuery2 = _interopRequireDefault(_mediaQuery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar negate = function negate(cond) {\n  return 'not ' + cond;\n};\n\nfunction keyVal(k, v) {\n  var realKey = (0, _hyphenateStyleName2.default)(k);\n\n  // px shorthand\n  if (typeof v === 'number') {\n    v = v + 'px';\n  }\n  if (v === true) {\n    return k;\n  }\n  if (v === false) {\n    return negate(k);\n  }\n  return '(' + realKey + ': ' + v + ')';\n}\n\nfunction join(conds) {\n  return conds.join(' and ');\n}\n\nmodule.exports = exports['default'];\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=react-responsive.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-responsive/dist/react-responsive.js\n// module id = 62\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/react-responsive/dist/react-responsive.js?");
  
  /***/ }),
  
  /***/ 63:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(global, process) {\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar tslib_1 = __webpack_require__(6);\nvar core = __webpack_require__(71);\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar dist = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** JSDoc */\nvar Severity;\n(function (Severity) {\n    /** JSDoc */\n    Severity[\"Fatal\"] = \"fatal\";\n    /** JSDoc */\n    Severity[\"Error\"] = \"error\";\n    /** JSDoc */\n    Severity[\"Warning\"] = \"warning\";\n    /** JSDoc */\n    Severity[\"Log\"] = \"log\";\n    /** JSDoc */\n    Severity[\"Info\"] = \"info\";\n    /** JSDoc */\n    Severity[\"Debug\"] = \"debug\";\n    /** JSDoc */\n    Severity[\"Critical\"] = \"critical\";\n})(Severity = exports.Severity || (exports.Severity = {}));\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Severity) {\n    /**\n     * Converts a string-based level into a {@link Severity}.\n     *\n     * @param level string representation of Severity\n     * @returns Severity\n     */\n    function fromString(level) {\n        switch (level) {\n            case 'debug':\n                return Severity.Debug;\n            case 'info':\n                return Severity.Info;\n            case 'warn':\n            case 'warning':\n                return Severity.Warning;\n            case 'error':\n                return Severity.Error;\n            case 'fatal':\n                return Severity.Fatal;\n            case 'critical':\n                return Severity.Critical;\n            case 'log':\n            default:\n                return Severity.Log;\n        }\n    }\n    Severity.fromString = fromString;\n})(Severity = exports.Severity || (exports.Severity = {}));\n/** The status of an event. */\nvar Status;\n(function (Status) {\n    /** The status could not be determined. */\n    Status[\"Unknown\"] = \"unknown\";\n    /** The event was skipped due to configuration or callbacks. */\n    Status[\"Skipped\"] = \"skipped\";\n    /** The event was sent to Sentry successfully. */\n    Status[\"Success\"] = \"success\";\n    /** The client is currently rate limited and will try again later. */\n    Status[\"RateLimit\"] = \"rate_limit\";\n    /** The event could not be processed. */\n    Status[\"Invalid\"] = \"invalid\";\n    /** A server-side error ocurred during submission. */\n    Status[\"Failed\"] = \"failed\";\n})(Status = exports.Status || (exports.Status = {}));\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Status) {\n    /**\n     * Converts a HTTP status code into a {@link Status}.\n     *\n     * @param code The HTTP response status code.\n     * @returns The send status or {@link Status.Unknown}.\n     */\n    function fromHttpCode(code) {\n        if (code >= 200 && code < 300) {\n            return Status.Success;\n        }\n        if (code === 429) {\n            return Status.RateLimit;\n        }\n        if (code >= 400 && code < 500) {\n            return Status.Invalid;\n        }\n        if (code >= 500) {\n            return Status.Failed;\n        }\n        return Status.Unknown;\n    }\n    Status.fromHttpCode = fromHttpCode;\n})(Status = exports.Status || (exports.Status = {}));\n\n});\n\nunwrapExports(dist);\nvar dist_1 = dist.Severity;\nvar dist_2 = dist.Status;\n\nvar is = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n    switch (Object.prototype.toString.call(wat)) {\n        case '[object Error]':\n            return true;\n        case '[object Exception]':\n            return true;\n        case '[object DOMException]':\n            return true;\n        default:\n            return wat instanceof Error;\n    }\n}\nexports.isError = isError;\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n    return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\nexports.isErrorEvent = isErrorEvent;\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n    return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\nexports.isDOMError = isDOMError;\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n    return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\nexports.isDOMException = isDOMException;\n/**\n * Checks whether given value's type is an undefined\n * {@link isUndefined}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isUndefined(wat) {\n    return wat === void 0;\n}\nexports.isUndefined = isUndefined;\n/**\n * Checks whether given value's type is a function\n * {@link isFunction}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isFunction(wat) {\n    return typeof wat === 'function';\n}\nexports.isFunction = isFunction;\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n    return Object.prototype.toString.call(wat) === '[object String]';\n}\nexports.isString = isString;\n/**\n * Checks whether given value's type is an array\n * {@link isArray}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isArray(wat) {\n    return Object.prototype.toString.call(wat) === '[object Array]';\n}\nexports.isArray = isArray;\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n    return Object.prototype.toString.call(wat) === '[object Object]';\n}\nexports.isPlainObject = isPlainObject;\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n    return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n/**\n * Checks whether given value's type is a NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n    return wat !== wat;\n}\nexports.isNaN = isNaN;\n\n});\n\nunwrapExports(is);\nvar is_1 = is.isError;\nvar is_2 = is.isErrorEvent;\nvar is_3 = is.isDOMError;\nvar is_4 = is.isDOMException;\nvar is_5 = is.isUndefined;\nvar is_6 = is.isFunction;\nvar is_7 = is.isString;\nvar is_8 = is.isArray;\nvar is_9 = is.isPlainObject;\nvar is_10 = is.isRegExp;\nvar is_11 = is.isNaN;\n\nvar misc = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n    return mod.require(request);\n}\nexports.dynamicRequire = dynamicRequire;\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n    // tslint:disable:strict-type-predicates\n    return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\nexports.isNodeEnv = isNodeEnv;\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\n// tslint:disable:strict-type-predicates\nfunction getGlobalObject() {\n    return isNodeEnv() ? commonjsGlobal : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {};\n}\nexports.getGlobalObject = getGlobalObject;\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n    var global = getGlobalObject();\n    var crypto = global.crypto || global.msCrypto;\n    if (!(crypto === void 0) && crypto.getRandomValues) {\n        // Use window.crypto API if available\n        var arr = new Uint16Array(8);\n        crypto.getRandomValues(arr);\n        // set 4 in byte 7\n        // tslint:disable-next-line:no-bitwise\n        arr[3] = (arr[3] & 0xfff) | 0x4000;\n        // set 2 most significant bits of byte 9 to '10'\n        // tslint:disable-next-line:no-bitwise\n        arr[4] = (arr[4] & 0x3fff) | 0x8000;\n        var pad = function (num) {\n            var v = num.toString(16);\n            while (v.length < 4) {\n                v = \"0\" + v;\n            }\n            return v;\n        };\n        return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n    }\n    else {\n        // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n        return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n            // tslint:disable-next-line:no-bitwise\n            var r = (Math.random() * 16) | 0;\n            // tslint:disable-next-line:no-bitwise\n            var v = c === 'x' ? r : (r & 0x3) | 0x8;\n            return v.toString(16);\n        });\n    }\n}\nexports.uuid4 = uuid4;\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem) {\n    var currentElem = elem;\n    var MAX_TRAVERSE_HEIGHT = 5;\n    var MAX_OUTPUT_LEN = 80;\n    var out = [];\n    var height = 0;\n    var len = 0;\n    var separator = ' > ';\n    var sepLength = separator.length;\n    var nextStr;\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n        nextStr = htmlElementAsString(currentElem);\n        // bail out if\n        // - nextStr is the 'html' element\n        // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n        //   (ignore this limit if we are on the first iteration)\n        if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n            break;\n        }\n        out.push(nextStr);\n        len += nextStr.length;\n        currentElem = currentElem.parentNode;\n    }\n    return out.reverse().join(separator);\n}\nexports.htmlTreeAsString = htmlTreeAsString;\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlElementAsString(elem) {\n    var out = [];\n    var className;\n    var classes;\n    var key;\n    var attr;\n    var i;\n    if (!elem || !elem.tagName) {\n        return '';\n    }\n    out.push(elem.tagName.toLowerCase());\n    if (elem.id) {\n        out.push(\"#\" + elem.id);\n    }\n    className = elem.className;\n    if (className && is.isString(className)) {\n        classes = className.split(/\\s+/);\n        for (i = 0; i < classes.length; i++) {\n            out.push(\".\" + classes[i]);\n        }\n    }\n    var attrWhitelist = ['type', 'name', 'title', 'alt'];\n    for (i = 0; i < attrWhitelist.length; i++) {\n        key = attrWhitelist[i];\n        attr = elem.getAttribute(key);\n        if (attr) {\n            out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n        }\n    }\n    return out.join('');\n}\nexports.htmlElementAsString = htmlElementAsString;\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url) {\n    if (!url) {\n        return {};\n    }\n    var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n    if (!match) {\n        return {};\n    }\n    // coerce to undefined values to empty string so we don't get 'undefined'\n    var query = match[6] || '';\n    var fragment = match[8] || '';\n    return {\n        host: match[4],\n        path: match[5],\n        protocol: match[2],\n        relative: match[5] + query + fragment,\n    };\n}\nexports.parseUrl = parseUrl;\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n    if (event.message) {\n        return event.message;\n    }\n    else if (event.exception && event.exception.values && event.exception.values[0]) {\n        var exception = event.exception.values[0];\n        if (exception.type && exception.value) {\n            return exception.type + \": \" + exception.value;\n        }\n        else {\n            return exception.type || exception.value || event.event_id || '<unknown>';\n        }\n    }\n    else {\n        return event.event_id || '<unknown>';\n    }\n}\nexports.getEventDescription = getEventDescription;\n/** JSDoc */\nfunction consoleSandbox(callback) {\n    var global = getGlobalObject();\n    var levels = ['debug', 'info', 'warn', 'error', 'log'];\n    if (!('console' in global)) {\n        return callback();\n    }\n    var originalConsole = global.console;\n    var wrappedLevels = {};\n    // Restore all wrapped console methods\n    levels.forEach(function (level) {\n        if (level in global.console && originalConsole[level].__sentry__) {\n            wrappedLevels[level] = originalConsole[level].__sentry_wrapped__;\n            originalConsole[level] = originalConsole[level].__sentry_original__;\n        }\n    });\n    // Perform callback manipulations\n    var result = callback();\n    // Revert restoration to wrapped state\n    Object.keys(wrappedLevels).forEach(function (level) {\n        originalConsole[level] = wrappedLevels[level];\n    });\n    return result;\n}\nexports.consoleSandbox = consoleSandbox;\n\n});\n\nunwrapExports(misc);\nvar misc_1 = misc.dynamicRequire;\nvar misc_2 = misc.isNodeEnv;\nvar misc_3 = misc.getGlobalObject;\nvar misc_4 = misc.uuid4;\nvar misc_5 = misc.htmlTreeAsString;\nvar misc_6 = misc.htmlElementAsString;\nvar misc_7 = misc.parseUrl;\nvar misc_8 = misc.getEventDescription;\nvar misc_9 = misc.consoleSandbox;\n\nvar logger_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n// TODO: Implement different loggers for different environments\nvar global = misc.getGlobalObject();\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n    /** JSDoc */\n    function Logger() {\n        this.enabled = false;\n    }\n    /** JSDoc */\n    Logger.prototype.disable = function () {\n        this.enabled = false;\n    };\n    /** JSDoc */\n    Logger.prototype.enable = function () {\n        this.enabled = true;\n    };\n    /** JSDoc */\n    Logger.prototype.log = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc.consoleSandbox(function () {\n            global.console.log(\"Sentry Logger [Log]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    /** JSDoc */\n    Logger.prototype.warn = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc.consoleSandbox(function () {\n            global.console.warn(\"Sentry Logger [Warn]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    /** JSDoc */\n    Logger.prototype.error = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc.consoleSandbox(function () {\n            global.console.error(\"Sentry Logger [Error]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    return Logger;\n}());\nvar logger = new Logger();\nexports.logger = logger;\n\n});\n\nunwrapExports(logger_1);\nvar logger_2 = logger_1.logger;\n\nvar supports = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n    try {\n        // tslint:disable:no-unused-expression\n        new ErrorEvent('');\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\nexports.supportsErrorEvent = supportsErrorEvent;\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n    try {\n        // It really needs 1 argument, not 0.\n        // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n        // 1 argument required, but only 0 present.\n        // @ts-ignore\n        // tslint:disable:no-unused-expression\n        new DOMError('');\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\nexports.supportsDOMError = supportsDOMError;\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n    try {\n        // tslint:disable:no-unused-expression\n        new DOMException('');\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\nexports.supportsDOMException = supportsDOMException;\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n    if (!('fetch' in misc.getGlobalObject())) {\n        return false;\n    }\n    try {\n        // tslint:disable-next-line:no-unused-expression\n        new Headers();\n        // tslint:disable-next-line:no-unused-expression\n        new Request('');\n        // tslint:disable-next-line:no-unused-expression\n        new Response();\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\nexports.supportsFetch = supportsFetch;\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsNativeFetch() {\n    if (!supportsFetch()) {\n        return false;\n    }\n    var global = misc.getGlobalObject();\n    var fetch = global.fetch;\n    // tslint:disable-next-line:no-unsafe-any\n    return fetch.toString().indexOf('native') !== -1;\n}\nexports.supportsNativeFetch = supportsNativeFetch;\n/**\n * Tells whether current environment supports sendBeacon API\n * {@link supportsBeacon}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsBeacon() {\n    var global = misc.getGlobalObject();\n    return 'navigator' in global && 'sendBeacon' in global.navigator;\n}\nexports.supportsBeacon = supportsBeacon;\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n    return 'ReportingObserver' in misc.getGlobalObject();\n}\nexports.supportsReportingObserver = supportsReportingObserver;\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n    // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n    // https://caniuse.com/#feat=referrer-policy\n    // It doesn't. And it throw exception instead of ignoring this parameter...\n    // REF: https://github.com/getsentry/raven-js/issues/1233\n    if (!supportsFetch()) {\n        return false;\n    }\n    try {\n        // tslint:disable:no-unused-expression\n        new Request('pickleRick', {\n            referrerPolicy: 'origin',\n        });\n        return true;\n    }\n    catch (e) {\n        return false;\n    }\n}\nexports.supportsReferrerPolicy = supportsReferrerPolicy;\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n    // NOTE: in Chrome App environment, touching history.pushState, *even inside\n    //       a try/catch block*, will cause Chrome to output an error to console.error\n    // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n    var global = misc.getGlobalObject();\n    var chrome = global.chrome;\n    // tslint:disable-next-line:no-unsafe-any\n    var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n    var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n    return !isChromePackagedApp && hasHistoryApi;\n}\nexports.supportsHistory = supportsHistory;\n\n});\n\nunwrapExports(supports);\nvar supports_1 = supports.supportsErrorEvent;\nvar supports_2 = supports.supportsDOMError;\nvar supports_3 = supports.supportsDOMException;\nvar supports_4 = supports.supportsFetch;\nvar supports_5 = supports.supportsNativeFetch;\nvar supports_6 = supports.supportsBeacon;\nvar supports_7 = supports.supportsReportingObserver;\nvar supports_8 = supports.supportsReferrerPolicy;\nvar supports_9 = supports.supportsHistory;\n\nvar object = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n/**\n * Serializes the given object into a string.\n * Like JSON.stringify, but doesn't throw on circular references.\n * Based on a `json-stringify-safe` package and modified to handle Errors serialization.\n *\n * The object must be serializable, i.e.:\n *  - Only primitive types are allowed (object, array, number, string, boolean)\n *  - Its depth should be considerably low for performance reasons\n *\n * @param object A JSON-serializable object.\n * @returns A string containing the serialized object.\n */\nfunction serialize(object) {\n    return JSON.stringify(object);\n}\nexports.serialize = serialize;\n/**\n * Deserializes an object from a string previously serialized with\n * {@link serialize}.\n *\n * @param str A serialized object.\n * @returns The deserialized object.\n */\nfunction deserialize(str) {\n    return JSON.parse(str);\n}\nexports.deserialize = deserialize;\n/**\n * Creates a deep copy of the given object.\n *\n * The object must be serializable, i.e.:\n *  - It must not contain any cycles\n *  - Only primitive types are allowed (object, array, number, string, boolean)\n *  - Its depth should be considerably low for performance reasons\n *\n * @param object A JSON-serializable object.\n * @returns The object clone.\n */\nfunction clone(object) {\n    return deserialize(serialize(object));\n}\nexports.clone = clone;\n/**\n * Wrap a given object method with a higher-order function\n *\n * @param source An object that contains a method to be wrapped.\n * @param name A name of method to be wrapped.\n * @param replacement A function that should be used to wrap a given method.\n * @returns void\n */\nfunction fill(source, name, replacement) {\n    if (!(name in source) || source[name].__sentry__) {\n        return;\n    }\n    var original = source[name];\n    var wrapped = replacement(original);\n    wrapped.__sentry__ = true;\n    wrapped.__sentry_original__ = original;\n    wrapped.__sentry_wrapped__ = wrapped;\n    source[name] = wrapped;\n}\nexports.fill = fill;\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n    return Object.keys(object)\n        .map(\n    // tslint:disable-next-line:no-unsafe-any\n    function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n        .join('&');\n}\nexports.urlEncode = urlEncode;\n// Default Node.js REPL depth\nvar MAX_SERIALIZE_EXCEPTION_DEPTH = 3;\n// 100kB, as 200kB is max payload size, so half sounds reasonable\nvar MAX_SERIALIZE_EXCEPTION_SIZE = 100 * 1024;\nvar MAX_SERIALIZE_KEYS_LENGTH = 40;\n/** JSDoc */\nfunction utf8Length(value) {\n    // tslint:disable-next-line:no-bitwise\n    return ~-encodeURI(value).split(/%..|./).length;\n}\n/** JSDoc */\nfunction jsonSize(value) {\n    return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nfunction serializeValue(value) {\n    var maxLength = 40;\n    if (typeof value === 'string') {\n        return value.length <= maxLength ? value : value.substr(0, maxLength - 1) + \"\\u2026\";\n    }\n    else if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined') {\n        return value;\n    }\n    else if (is.isNaN(value)) {\n        // NaN and undefined are not JSON.parseable, but we want to preserve this information\n        return '[NaN]';\n    }\n    else if (is.isUndefined(value)) {\n        return '[undefined]';\n    }\n    var type = Object.prototype.toString.call(value);\n    // Node.js REPL notation\n    if (type === '[object Object]') {\n        return '[Object]';\n    }\n    if (type === '[object Array]') {\n        return '[Array]';\n    }\n    if (type === '[object Function]') {\n        var name_1 = value.name;\n        return name_1 ? \"[Function: \" + name_1 + \"]\" : '[Function]';\n    }\n    return value;\n}\n/** JSDoc */\nfunction serializeObject(value, depth) {\n    if (depth === 0) {\n        return serializeValue(value);\n    }\n    if (is.isPlainObject(value)) {\n        var serialized_1 = {};\n        var val_1 = value;\n        Object.keys(val_1).forEach(function (key) {\n            serialized_1[key] = serializeObject(val_1[key], depth - 1);\n        });\n        return serialized_1;\n    }\n    else if (Array.isArray(value)) {\n        var val = value;\n        return val.map(function (v) { return serializeObject(v, depth - 1); });\n    }\n    return serializeValue(value);\n}\nexports.serializeObject = serializeObject;\n/** JSDoc */\nfunction limitObjectDepthToSize(object, depth, maxSize) {\n    if (depth === void 0) { depth = MAX_SERIALIZE_EXCEPTION_DEPTH; }\n    if (maxSize === void 0) { maxSize = MAX_SERIALIZE_EXCEPTION_SIZE; }\n    var serialized = serializeObject(object, depth);\n    if (jsonSize(serialize(serialized)) > maxSize) {\n        return limitObjectDepthToSize(object, depth - 1);\n    }\n    return serialized;\n}\nexports.limitObjectDepthToSize = limitObjectDepthToSize;\n/** JSDoc */\nfunction serializeKeysToEventMessage(keys, maxLength) {\n    if (maxLength === void 0) { maxLength = MAX_SERIALIZE_KEYS_LENGTH; }\n    if (!keys.length) {\n        return '[object has no keys]';\n    }\n    if (keys[0].length >= maxLength) {\n        return keys[0];\n    }\n    for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n        var serialized = keys.slice(0, includedKeys).join(', ');\n        if (serialized.length > maxLength) {\n            continue;\n        }\n        if (includedKeys === keys.length) {\n            return serialized;\n        }\n        return serialized + \"\\u2026\";\n    }\n    return '';\n}\nexports.serializeKeysToEventMessage = serializeKeysToEventMessage;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Polyfill\n/** JSDoc */\nfunction assign(target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    if (target === null || target === undefined) {\n        throw new TypeError('Cannot convert undefined or null to object');\n    }\n    var to = Object(target);\n    // tslint:disable-next-line\n    for (var i = 0; i < args.length; i++) {\n        var source = args[i];\n        if (source !== null) {\n            for (var nextKey in source) {\n                if (Object.prototype.hasOwnProperty.call(source, nextKey)) {\n                    to[nextKey] = source[nextKey];\n                }\n            }\n        }\n    }\n    return to;\n}\nexports.assign = assign;\n/**\n * Transforms Error object into an object literal with all it's attributes\n * attached to it.\n *\n * Based on: https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106\n *\n * @param error An Error containing all relevant information\n * @returns An object with all error properties\n */\nfunction objectifyError(error) {\n    // These properties are implemented as magical getters and don't show up in `for-in` loop\n    var err = {\n        message: error.message,\n        name: error.name,\n        stack: error.stack,\n    };\n    for (var i in error) {\n        if (Object.prototype.hasOwnProperty.call(error, i)) {\n            err[i] = error[i];\n        }\n    }\n    return err;\n}\n/**\n * standardizeValue()\n *\n * translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * serializes Error objects\n * filter global objects\n */\nfunction standardizeValue(value, key) {\n    if (key === 'domain' && typeof value === 'object' && value._events) {\n        return '[Domain]';\n    }\n    if (key === 'domainEmitter') {\n        return '[DomainEmitter]';\n    }\n    if (typeof commonjsGlobal !== 'undefined' && value === commonjsGlobal) {\n        return '[Global]';\n    }\n    if (typeof window !== 'undefined' && value === window) {\n        return '[Window]';\n    }\n    if (typeof document !== 'undefined' && value === document) {\n        return '[Document]';\n    }\n    if (value instanceof Date) {\n        return \"[Date] \" + value;\n    }\n    if (value instanceof Error) {\n        return objectifyError(value);\n    }\n    if (is.isNaN(value)) {\n        return '[NaN]';\n    }\n    if (is.isUndefined(value)) {\n        return '[undefined]';\n    }\n    if (typeof value === 'function') {\n        return \"[Function] \" + (value.name || '<unknown-function-name>');\n    }\n    return value;\n}\n/**\n * standardizer()\n *\n * Remove circular references,\n * translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * and takes care of Error objects serialization\n */\nfunction standardizer() {\n    var stack = [];\n    var keys = [];\n    /** recursive */\n    function cycleStandardizer(_key, value) {\n        if (stack[0] === value) {\n            return '[Circular ~]';\n        }\n        return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join('.') + \"]\";\n    }\n    return function (key, value) {\n        if (stack.length > 0) {\n            var thisPos = stack.indexOf(this);\n            if (thisPos === -1) {\n                stack.push(this);\n                keys.push(key);\n            }\n            else {\n                stack.splice(thisPos + 1);\n                keys.splice(thisPos, Infinity, key);\n            }\n            if (stack.indexOf(value) !== -1) {\n                // tslint:disable-next-line:no-parameter-reassignment\n                value = cycleStandardizer.call(this, key, value);\n            }\n        }\n        else {\n            stack.push(value);\n        }\n        return standardizeValue(value, key);\n    };\n}\n/**\n * safeNormalize()\n *\n * Creates a copy of the input by applying standardizer function on it and parsing it back to unify the data\n */\nfunction safeNormalize(input) {\n    try {\n        return JSON.parse(JSON.stringify(input, standardizer()));\n    }\n    catch (_oO) {\n        return '**non-serializable**';\n    }\n}\nexports.safeNormalize = safeNormalize;\n\n});\n\nunwrapExports(object);\nvar object_1 = object.serialize;\nvar object_2 = object.deserialize;\nvar object_3 = object.clone;\nvar object_4 = object.fill;\nvar object_5 = object.urlEncode;\nvar object_6 = object.serializeObject;\nvar object_7 = object.limitObjectDepthToSize;\nvar object_8 = object.serializeKeysToEventMessage;\nvar object_9 = object.assign;\nvar object_10 = object.safeNormalize;\n\nvar string = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction truncate(str, max) {\n    if (max === void 0) { max = 0; }\n    if (max === 0 || !is.isString(str)) {\n        return str;\n    }\n    return str.length <= max ? str : str.substr(0, max) + \"\\u2026\";\n}\nexports.truncate = truncate;\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n    var newLine = line;\n    var ll = newLine.length;\n    if (ll <= 150) {\n        return newLine;\n    }\n    if (colno > ll) {\n        colno = ll; // tslint:disable-line:no-parameter-reassignment\n    }\n    var start = Math.max(colno - 60, 0);\n    if (start < 5) {\n        start = 0;\n    }\n    var end = Math.min(start + 140, ll);\n    if (end > ll - 5) {\n        end = ll;\n    }\n    if (end === ll) {\n        start = Math.max(end - 140, 0);\n    }\n    newLine = newLine.slice(start, end);\n    if (start > 0) {\n        newLine = \"'{snip} \" + newLine;\n    }\n    if (end < ll) {\n        newLine += ' {snip}';\n    }\n    return newLine;\n}\nexports.snipLine = snipLine;\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n    if (!Array.isArray(input)) {\n        return '';\n    }\n    var output = [];\n    // tslint:disable-next-line\n    for (var i = 0; i < input.length; i++) {\n        var value = input[i];\n        try {\n            output.push(String(value));\n        }\n        catch (e) {\n            output.push('[value cannot be serialized]');\n        }\n    }\n    return output.join(delimiter);\n}\nexports.safeJoin = safeJoin;\n/**\n * Checks if given value is included in the target\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill\n * @param target source string\n * @param search string to be looked for\n * @returns An answer\n */\nfunction includes(target, search) {\n    if (search.length > target.length) {\n        return false;\n    }\n    else {\n        return target.indexOf(search) !== -1;\n    }\n}\nexports.includes = includes;\n\n});\n\nunwrapExports(string);\nvar string_1 = string.truncate;\nvar string_2 = string.snipLine;\nvar string_3 = string.safeJoin;\nvar string_4 = string.includes;\n\n// tslint:disable\r\n/*\r\n * JavaScript MD5\r\n * https://github.com/blueimp/JavaScript-MD5\r\n *\r\n * Copyright 2011, Sebastian Tschan\r\n * https://blueimp.net\r\n *\r\n * Licensed under the MIT license:\r\n * https://opensource.org/licenses/MIT\r\n *\r\n * Based on\r\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\r\n * Digest Algorithm, as defined in RFC 1321.\r\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\r\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\r\n * Distributed under the BSD License\r\n * See http://pajhome.org.uk/crypt/md5 for more info.\r\n */\r\n/**\r\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\r\n * to work around bugs in some JS interpreters.\r\n */\r\nfunction safeAdd(x, y) {\r\n    var lsw = (x & 0xffff) + (y & 0xffff);\r\n    var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r\n    return (msw << 16) | (lsw & 0xffff);\r\n}\r\n/**\r\n * Bitwise rotate a 32-bit number to the left.\r\n */\r\nfunction bitRotateLeft(num, cnt) {\r\n    return (num << cnt) | (num >>> (32 - cnt));\r\n}\r\n/**\r\n * These functions implement the four basic operations the algorithm uses.\r\n */\r\nfunction md5cmn(q, a, b, x, s, t) {\r\n    return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\r\n}\r\nfunction md5ff(a, b, c, d, x, s, t) {\r\n    return md5cmn((b & c) | (~b & d), a, b, x, s, t);\r\n}\r\nfunction md5gg(a, b, c, d, x, s, t) {\r\n    return md5cmn((b & d) | (c & ~d), a, b, x, s, t);\r\n}\r\nfunction md5hh(a, b, c, d, x, s, t) {\r\n    return md5cmn(b ^ c ^ d, a, b, x, s, t);\r\n}\r\nfunction md5ii(a, b, c, d, x, s, t) {\r\n    return md5cmn(c ^ (b | ~d), a, b, x, s, t);\r\n}\r\n/**\r\n * Calculate the MD5 of an array of little-endian words, and a bit length.\r\n */\r\nfunction binlMD5(x, len) {\r\n    /** append padding */\r\n    x[len >> 5] |= 0x80 << len % 32;\r\n    x[(((len + 64) >>> 9) << 4) + 14] = len;\r\n    var i;\r\n    var olda;\r\n    var oldb;\r\n    var oldc;\r\n    var oldd;\r\n    var a = 1732584193;\r\n    var b = -271733879;\r\n    var c = -1732584194;\r\n    var d = 271733878;\r\n    for (i = 0; i < x.length; i += 16) {\r\n        olda = a;\r\n        oldb = b;\r\n        oldc = c;\r\n        oldd = d;\r\n        a = md5ff(a, b, c, d, x[i], 7, -680876936);\r\n        d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\r\n        c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\r\n        b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\r\n        a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\r\n        d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\r\n        c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\r\n        b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\r\n        a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\r\n        d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\r\n        c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\r\n        b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\r\n        a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\r\n        d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\r\n        c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\r\n        b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\r\n        a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\r\n        d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\r\n        c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\r\n        b = md5gg(b, c, d, a, x[i], 20, -373897302);\r\n        a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\r\n        d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\r\n        c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\r\n        b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\r\n        a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\r\n        d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\r\n        c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\r\n        b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\r\n        a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\r\n        d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\r\n        c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\r\n        b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\r\n        a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\r\n        d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\r\n        c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\r\n        b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\r\n        a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\r\n        d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\r\n        c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\r\n        b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\r\n        a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\r\n        d = md5hh(d, a, b, c, x[i], 11, -358537222);\r\n        c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\r\n        b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\r\n        a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\r\n        d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\r\n        c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\r\n        b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\r\n        a = md5ii(a, b, c, d, x[i], 6, -198630844);\r\n        d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\r\n        c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\r\n        b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\r\n        a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\r\n        d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\r\n        c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\r\n        b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\r\n        a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\r\n        d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\r\n        c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\r\n        b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\r\n        a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\r\n        d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\r\n        c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\r\n        b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\r\n        a = safeAdd(a, olda);\r\n        b = safeAdd(b, oldb);\r\n        c = safeAdd(c, oldc);\r\n        d = safeAdd(d, oldd);\r\n    }\r\n    return [a, b, c, d];\r\n}\r\n/**\r\n * Convert an array of little-endian words to a string\r\n */\r\nfunction binl2rstr(input) {\r\n    var i;\r\n    var output = '';\r\n    var length32 = input.length * 32;\r\n    for (i = 0; i < length32; i += 8) {\r\n        output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff);\r\n    }\r\n    return output;\r\n}\r\n/**\r\n * Convert a raw string to an array of little-endian words\r\n * Characters >255 have their high-byte silently ignored.\r\n */\r\nfunction rstr2binl(input) {\r\n    var i;\r\n    var output = [];\r\n    output[(input.length >> 2) - 1] = undefined;\r\n    for (i = 0; i < output.length; i += 1) {\r\n        output[i] = 0;\r\n    }\r\n    var length8 = input.length * 8;\r\n    for (i = 0; i < length8; i += 8) {\r\n        output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32;\r\n    }\r\n    return output;\r\n}\r\n/**\r\n * Calculate the MD5 of a raw string\r\n */\r\nfunction rstrMD5(s) {\r\n    return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));\r\n}\r\n/**\r\n * Calculate the HMAC-MD5, of a key and some data (raw strings)\r\n */\r\nfunction rstrHMACMD5(key, data) {\r\n    var i;\r\n    var bkey = rstr2binl(key);\r\n    var ipad = [];\r\n    var opad = [];\r\n    var hash;\r\n    ipad[15] = opad[15] = undefined;\r\n    if (bkey.length > 16) {\r\n        bkey = binlMD5(bkey, key.length * 8);\r\n    }\r\n    for (i = 0; i < 16; i += 1) {\r\n        ipad[i] = bkey[i] ^ 0x36363636;\r\n        opad[i] = bkey[i] ^ 0x5c5c5c5c;\r\n    }\r\n    hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);\r\n    return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));\r\n}\r\n/**\r\n * Convert a raw string to a hex string\r\n */\r\nfunction rstr2hex(input) {\r\n    var hexTab = '0123456789abcdef';\r\n    var output = '';\r\n    var x;\r\n    var i;\r\n    for (i = 0; i < input.length; i += 1) {\r\n        x = input.charCodeAt(i);\r\n        output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f);\r\n    }\r\n    return output;\r\n}\r\n/**\r\n * Encode a string as utf-8\r\n */\r\nfunction str2rstrUTF8(input) {\r\n    return unescape(encodeURIComponent(input));\r\n}\r\n/*\r\n * Take string arguments and return either raw or hex encoded strings\r\n */\r\nfunction rawMD5(s) {\r\n    return rstrMD5(str2rstrUTF8(s));\r\n}\r\nfunction hexMD5(s) {\r\n    return rstr2hex(rawMD5(s));\r\n}\r\nfunction rawHMACMD5(k, d) {\r\n    return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));\r\n}\r\nfunction hexHMACMD5(k, d) {\r\n    return rstr2hex(rawHMACMD5(k, d));\r\n}\r\nfunction md5(string, key, raw) {\r\n    if (!key) {\r\n        if (!raw) {\r\n            return hexMD5(string);\r\n        }\r\n        return rawMD5(string);\r\n    }\r\n    if (!raw) {\r\n        return hexHMACMD5(key, string);\r\n    }\r\n    return rawHMACMD5(key, string);\r\n}\n\n// tslint:disable\r\n/**\r\n * TraceKit - Cross brower stack traces\r\n *\r\n * This was originally forked from github.com/occ/TraceKit, but has since been\r\n * largely modified and is now maintained as part of Sentry JS SDK.\r\n *\r\n * NOTE: Last merge with upstream repository\r\n * Jul 11,2018 - #f03357c\r\n *\r\n * https://github.com/csnover/TraceKit\r\n * @license MIT\r\n * @namespace TraceKit\r\n */\r\nvar window$1 = misc_3();\r\nvar TraceKit = {\r\n    wrap: function () { return function () { }; },\r\n    report: false,\r\n    collectWindowErrors: false,\r\n    computeStackTrace: false,\r\n    remoteFetching: false,\r\n    linesOfContext: false,\r\n    extendToAsynchronousCallbacks: false,\r\n};\r\n// var TraceKit: TraceKitInterface = {};\r\n// var TraceKit = {};\r\n// global reference to slice\r\nvar _slice = [].slice;\r\nvar UNKNOWN_FUNCTION = '?';\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\r\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;\r\n/**\r\n * A better form of hasOwnProperty<br/>\r\n * Example: `_has(MainHostObject, property) === true/false`\r\n *\r\n * @param {Object} object to check property\r\n * @param {string} key to check\r\n * @return {Boolean} true if the object has the key and it is not inherited\r\n */\r\nfunction _has(object, key) {\r\n    return Object.prototype.hasOwnProperty.call(object, key);\r\n}\r\n/**\r\n * A safe form of location.href<br/>\r\n *\r\n * @return {string} location.href\r\n */\r\nfunction getLocationHref() {\r\n    if (typeof document === 'undefined' || document.location == null)\r\n        return '';\r\n    return document.location.href;\r\n}\r\n/**\r\n * A safe form of location.origin<br/>\r\n *\r\n * @return {string} location.origin\r\n */\r\nfunction getLocationOrigin() {\r\n    if (typeof document === 'undefined' || document.location == null)\r\n        return '';\r\n    // Oh dear IE10...\r\n    if (!document.location.origin) {\r\n        return (document.location.protocol +\r\n            '//' +\r\n            document.location.hostname +\r\n            (document.location.port ? ':' + document.location.port : ''));\r\n    }\r\n    return document.location.origin;\r\n}\r\n/**\r\n * Wrap any function in a TraceKit reporter<br/>\r\n * Example: `func = TraceKit.wrap(func);`\r\n *\r\n * @param {Function} func Function to be wrapped\r\n * @return {Function} The wrapped func\r\n * @memberof TraceKit\r\n */\r\nTraceKit.wrap = function traceKitWrapper(func) {\r\n    function wrapped() {\r\n        try {\r\n            // @ts-ignore\r\n            return func.apply(this, arguments);\r\n        }\r\n        catch (e) {\r\n            TraceKit.report(e);\r\n            throw e;\r\n        }\r\n    }\r\n    return wrapped;\r\n};\r\n/**\r\n * Cross-browser processing of unhandled exceptions\r\n *\r\n * Syntax:\r\n * ```js\r\n *   TraceKit.report.subscribe(function(stackInfo) { ... })\r\n *   TraceKit.report.unsubscribe(function(stackInfo) { ... })\r\n *   TraceKit.report(exception)\r\n *   try { ...code... } catch(ex) { TraceKit.report(ex); }\r\n * ```\r\n *\r\n * Supports:\r\n *   - Firefox: full stack trace with line numbers, plus column number\r\n *     on top frame; column number is not guaranteed\r\n *   - Opera: full stack trace with line and column numbers\r\n *   - Chrome: full stack trace with line and column numbers\r\n *   - Safari: line and column number for the top frame only; some frames\r\n *     may be missing, and column number is not guaranteed\r\n *   - IE: line and column number for the top frame only; some frames\r\n *     may be missing, and column number is not guaranteed\r\n *\r\n * In theory, TraceKit should work on all of the following versions:\r\n *   - IE5.5+ (only 8.0 tested)\r\n *   - Firefox 0.9+ (only 3.5+ tested)\r\n *   - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\r\n *     Exceptions Have Stacktrace to be enabled in opera:config)\r\n *   - Safari 3+ (only 4+ tested)\r\n *   - Chrome 1+ (only 5+ tested)\r\n *   - Konqueror 3.5+ (untested)\r\n *\r\n * Requires TraceKit.computeStackTrace.\r\n *\r\n * Tries to catch all unhandled exceptions and report them to the\r\n * subscribed handlers. Please note that TraceKit.report will rethrow the\r\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\r\n * If the exception does not reach the top of the browser, you will only\r\n * get a stack trace from the point where TraceKit.report was called.\r\n *\r\n * Handlers receive a TraceKit.StackTrace object as described in the\r\n * TraceKit.computeStackTrace docs.\r\n *\r\n * @memberof TraceKit\r\n * @namespace\r\n */\r\nTraceKit.report = (function reportModuleWrapper() {\r\n    var handlers = [], lastException = null, lastExceptionStack = null;\r\n    /**\r\n     * Add a crash handler.\r\n     * @param {Function} handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function subscribe(handler) {\r\n        // NOTE: We call both handlers manually in browser/integrations/globalhandler.ts\r\n        // So user can choose which one he wants to attach\r\n        // installGlobalHandler();\r\n        // installGlobalUnhandledRejectionHandler();\r\n        handlers.push(handler);\r\n    }\r\n    /**\r\n     * Remove a crash handler.\r\n     * @param {Function} handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function unsubscribe(handler) {\r\n        for (var i = handlers.length - 1; i >= 0; --i) {\r\n            if (handlers[i] === handler) {\r\n                handlers.splice(i, 1);\r\n            }\r\n        }\r\n        if (handlers.length === 0) {\r\n            uninstallGlobalHandler();\r\n            uninstallGlobalUnhandledRejectionHandler();\r\n        }\r\n    }\r\n    /**\r\n     * Dispatch stack information to all handlers.\r\n     * @param {TraceKit.StackTrace} stack\r\n     * @param {boolean} isWindowError Is this a top-level window error?\r\n     * @param {Error=} error The error that's being handled (if available, null otherwise)\r\n     * @memberof TraceKit.report\r\n     * @throws An exception if an error occurs while calling an handler.\r\n     */\r\n    function notifyHandlers(stack, isWindowError, error) {\r\n        var exception = null;\r\n        if (isWindowError && !TraceKit.collectWindowErrors) {\r\n            return;\r\n        }\r\n        for (var i in handlers) {\r\n            if (_has(handlers, i)) {\r\n                try {\r\n                    handlers[i](stack, isWindowError, error);\r\n                }\r\n                catch (inner) {\r\n                    exception = inner;\r\n                }\r\n            }\r\n        }\r\n        if (exception) {\r\n            throw exception;\r\n        }\r\n    }\r\n    var _oldOnerrorHandler, _onErrorHandlerInstalled;\r\n    var _oldOnunhandledrejectionHandler, _onUnhandledRejectionHandlerInstalled;\r\n    /**\r\n     * Ensures all global unhandled exceptions are recorded.\r\n     * Supported by Gecko and IE.\r\n     * @param {string} message Error message.\r\n     * @param {string} url URL of script that generated the exception.\r\n     * @param {(number|string)} lineNo The line number at which the error occurred.\r\n     * @param {(number|string)=} columnNo The column number at which the error occurred.\r\n     * @param {Error=} errorObj The actual Error object.\r\n     * @memberof TraceKit.report\r\n     */\r\n    function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {\r\n        var stack = null;\r\n        // If 'errorObj' is ErrorEvent, get real Error from inside\r\n        errorObj = is_2(errorObj) ? errorObj.error : errorObj;\r\n        // If 'message' is ErrorEvent, get real message from inside\r\n        message = is_2(message) ? message.message : message;\r\n        if (lastExceptionStack) {\r\n            TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\r\n            processLastException();\r\n        }\r\n        else if (errorObj && is_1(errorObj)) {\r\n            stack = TraceKit.computeStackTrace(errorObj);\r\n            stack.mechanism = 'onerror';\r\n            notifyHandlers(stack, true, errorObj);\r\n        }\r\n        else {\r\n            var location = {\r\n                url: url,\r\n                line: lineNo,\r\n                column: columnNo,\r\n            };\r\n            var name;\r\n            var msg = message; // must be new var or will modify original `arguments`\r\n            if ({}.toString.call(message) === '[object String]') {\r\n                var groups = message.match(ERROR_TYPES_RE);\r\n                if (groups) {\r\n                    name = groups[1];\r\n                    msg = groups[2];\r\n                }\r\n            }\r\n            location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);\r\n            location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);\r\n            stack = {\r\n                name: name,\r\n                message: msg,\r\n                mode: 'onerror',\r\n                mechanism: 'onerror',\r\n                stack: [\r\n                    tslib_1.__assign({}, location, { \r\n                        // Firefox sometimes doesn't return url correctly and this is an old behavior\r\n                        // that I prefer to port here as well.\r\n                        // It can be altered only here, as previously it's using `location.url` for other things — Kamil\r\n                        url: location.url || getLocationHref() }),\r\n                ],\r\n            };\r\n            notifyHandlers(stack, true, null);\r\n        }\r\n        if (_oldOnerrorHandler) {\r\n            // @ts-ignore\r\n            return _oldOnerrorHandler.apply(this, arguments);\r\n        }\r\n        return false;\r\n    }\r\n    /**\r\n     * Ensures all unhandled rejections are recorded.\r\n     * @param {PromiseRejectionEvent} e event.\r\n     * @memberof TraceKit.report\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onunhandledrejection\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\r\n     */\r\n    function traceKitWindowOnUnhandledRejection(e) {\r\n        var err = (e && (e.detail ? e.detail.reason : e.reason)) || e;\r\n        var stack = TraceKit.computeStackTrace(err);\r\n        stack.mechanism = 'onunhandledrejection';\r\n        notifyHandlers(stack, true, err);\r\n    }\r\n    /**\r\n     * Install a global onerror handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function installGlobalHandler() {\r\n        if (_onErrorHandlerInstalled === true) {\r\n            return;\r\n        }\r\n        _oldOnerrorHandler = window$1.onerror;\r\n        window$1.onerror = traceKitWindowOnError;\r\n        _onErrorHandlerInstalled = true;\r\n    }\r\n    /**\r\n     * Uninstall the global onerror handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function uninstallGlobalHandler() {\r\n        if (_onErrorHandlerInstalled) {\r\n            window$1.onerror = _oldOnerrorHandler;\r\n            _onErrorHandlerInstalled = false;\r\n        }\r\n    }\r\n    /**\r\n     * Install a global onunhandledrejection handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function installGlobalUnhandledRejectionHandler() {\r\n        if (_onUnhandledRejectionHandlerInstalled === true) {\r\n            return;\r\n        }\r\n        _oldOnunhandledrejectionHandler = window$1.onunhandledrejection;\r\n        window$1.onunhandledrejection = traceKitWindowOnUnhandledRejection;\r\n        _onUnhandledRejectionHandlerInstalled = true;\r\n    }\r\n    /**\r\n     * Uninstall the global onunhandledrejection handler\r\n     * @memberof TraceKit.report\r\n     */\r\n    function uninstallGlobalUnhandledRejectionHandler() {\r\n        if (_onUnhandledRejectionHandlerInstalled) {\r\n            window$1.onerror = _oldOnunhandledrejectionHandler;\r\n            _onUnhandledRejectionHandlerInstalled = false;\r\n        }\r\n    }\r\n    /**\r\n     * Process the most recent exception\r\n     * @memberof TraceKit.report\r\n     */\r\n    function processLastException() {\r\n        var _lastExceptionStack = lastExceptionStack, _lastException = lastException;\r\n        lastExceptionStack = null;\r\n        lastException = null;\r\n        notifyHandlers(_lastExceptionStack, false, _lastException);\r\n    }\r\n    /**\r\n     * Reports an unhandled Error to TraceKit.\r\n     * @param {Error} ex\r\n     * @memberof TraceKit.report\r\n     * @throws An exception if an incomplete stack trace is detected (old IE browsers).\r\n     */\r\n    function report(ex) {\r\n        if (lastExceptionStack) {\r\n            if (lastException === ex) {\r\n                return; // already caught by an inner catch block, ignore\r\n            }\r\n            else {\r\n                processLastException();\r\n            }\r\n        }\r\n        var stack = TraceKit.computeStackTrace(ex);\r\n        lastExceptionStack = stack;\r\n        lastException = ex;\r\n        // If the stack trace is incomplete, wait for 2 seconds for\r\n        // slow slow IE to see if onerror occurs or not before reporting\r\n        // this exception; otherwise, we will end up with an incomplete\r\n        // stack trace\r\n        setTimeout(function () {\r\n            if (lastException === ex) {\r\n                processLastException();\r\n            }\r\n        }, stack.incomplete ? 2000 : 0);\r\n        throw ex; // re-throw to propagate to the top level (and cause window.onerror)\r\n    }\r\n    report.subscribe = subscribe;\r\n    report.unsubscribe = unsubscribe;\r\n    report.installGlobalHandler = installGlobalHandler;\r\n    report.installGlobalUnhandledRejectionHandler = installGlobalUnhandledRejectionHandler;\r\n    return report;\r\n})();\r\n/**\r\n * An object representing a single stack frame.\r\n * @typedef {Object} StackFrame\r\n * @property {string} url The JavaScript or HTML file URL.\r\n * @property {string} func The function name, or empty for anonymous functions (if guessing did not work).\r\n * @property {string[]?} args The arguments passed to the function, if known.\r\n * @property {number=} line The line number, if known.\r\n * @property {number=} column The column number, if known.\r\n * @property {string[]} context An array of source code lines; the middle element corresponds to the correct line#.\r\n * @memberof TraceKit\r\n */\r\n/**\r\n * An object representing a JavaScript stack trace.\r\n * @typedef {Object} StackTrace\r\n * @property {string} name The name of the thrown exception.\r\n * @property {string} message The exception error message.\r\n * @property {TraceKit.StackFrame[]} stack An array of stack frames.\r\n * @property {string} mode 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace.\r\n * @memberof TraceKit\r\n */\r\n/**\r\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\r\n *\r\n * Syntax:\r\n *   ```js\r\n *   s = TraceKit.computeStackTrace.ofCaller([depth])\r\n *   s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\r\n *   ```\r\n *\r\n * Supports:\r\n *   - Firefox:  full stack trace with line numbers and unreliable column\r\n *               number on top frame\r\n *   - Opera 10: full stack trace with line and column numbers\r\n *   - Opera 9-: full stack trace with line numbers\r\n *   - Chrome:   full stack trace with line and column numbers\r\n *   - Safari:   line and column number for the topmost stacktrace element\r\n *               only\r\n *   - IE:       no line numbers whatsoever\r\n *\r\n * Tries to guess names of anonymous functions by looking for assignments\r\n * in the source code. In IE and Safari, we have to guess source file names\r\n * by searching for function bodies inside all page scripts. This will not\r\n * work for scripts that are loaded cross-domain.\r\n * Here be dragons: some function names may be guessed incorrectly, and\r\n * duplicate functions may be mismatched.\r\n *\r\n * TraceKit.computeStackTrace should only be used for tracing purposes.\r\n * Logging of unhandled exceptions should be done with TraceKit.report,\r\n * which builds on top of TraceKit.computeStackTrace and provides better\r\n * IE support by utilizing the window.onerror event to retrieve information\r\n * about the top of the stack.\r\n *\r\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\r\n * so computeStackTrace instead walks its *own* chain of callers.\r\n * This means that:\r\n *  * in Safari, some methods may be missing from the stack trace;\r\n *  * in IE, the topmost function in the stack trace will always be the\r\n *    caller of computeStackTrace.\r\n *\r\n * This is okay for tracing (because you are likely to be calling\r\n * computeStackTrace from the function you want to be the topmost element\r\n * of the stack trace anyway), but not okay for logging unhandled\r\n * exceptions (because your catch block will likely be far away from the\r\n * inner function that actually caused the exception).\r\n *\r\n * Tracing example:\r\n *  ```js\r\n *     function trace(message) {\r\n *         var stackInfo = TraceKit.computeStackTrace.ofCaller();\r\n *         var data = message + \"\\n\";\r\n *         for(var i in stackInfo.stack) {\r\n *             var item = stackInfo.stack[i];\r\n *             data += (item.func || '[anonymous]') + \"() in \" + item.url + \":\" + (item.line || '0') + \"\\n\";\r\n *         }\r\n *         if (window.console)\r\n *             console.info(data);\r\n *         else\r\n *             alert(data);\r\n *     }\r\n * ```\r\n * @memberof TraceKit\r\n * @namespace\r\n */\r\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\r\n    var debug = false, sourceCache = {};\r\n    /**\r\n     * Attempts to retrieve source code via XMLHttpRequest, which is used\r\n     * to look up anonymous function names.\r\n     * @param {string} url URL of source code.\r\n     * @return {string} Source contents.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function loadSource(url) {\r\n        if (!TraceKit.remoteFetching) {\r\n            //Only attempt request if remoteFetching is on.\r\n            return '';\r\n        }\r\n        try {\r\n            var getXHR = function () {\r\n                try {\r\n                    return new window$1.XMLHttpRequest();\r\n                }\r\n                catch (e) {\r\n                    // explicitly bubble up the exception if not found\r\n                    return new window$1.ActiveXObject('Microsoft.XMLHTTP');\r\n                }\r\n            };\r\n            var request = getXHR();\r\n            request.open('GET', url, false);\r\n            request.send('');\r\n            return request.responseText;\r\n        }\r\n        catch (e) {\r\n            return '';\r\n        }\r\n    }\r\n    /**\r\n     * Retrieves source code from the source code cache.\r\n     * @param {string} url URL of source code.\r\n     * @return {Array.<string>} Source contents.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function getSource(url) {\r\n        if (typeof url !== 'string') {\r\n            return [];\r\n        }\r\n        if (!_has(sourceCache, url)) {\r\n            // URL needs to be able to fetched within the acceptable domain.  Otherwise,\r\n            // cross-domain errors will be triggered.\r\n            /*\r\n                        Regex matches:\r\n                        0 - Full Url\r\n                        1 - Protocol\r\n                        2 - Domain\r\n                        3 - Port (Useful for internal applications)\r\n                        4 - Path\r\n                    */\r\n            var source = '';\r\n            var domain = '';\r\n            try {\r\n                domain = window$1.document.domain;\r\n            }\r\n            catch (e) { }\r\n            var match = /(.*)\\:\\/\\/([^:\\/]+)([:\\d]*)\\/{0,1}([\\s\\S]*)/.exec(url);\r\n            if (match && match[2] === domain) {\r\n                source = loadSource(url);\r\n            }\r\n            sourceCache[url] = source ? source.split('\\n') : [];\r\n        }\r\n        return sourceCache[url];\r\n    }\r\n    /**\r\n     * Tries to use an externally loaded copy of source code to determine\r\n     * the name of a function by looking at the name of the variable it was\r\n     * assigned to, if any.\r\n     * @param {string} url URL of source code.\r\n     * @param {(string|number)} lineNo Line number in source code.\r\n     * @return {string} The function name, if discoverable.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function guessFunctionName(url, lineNo) {\r\n        var reFunctionArgNames = /function ([^(]*)\\(([^)]*)\\)/, reGuessFunction = /['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/, line = '', maxLines = 10, source = getSource(url), m;\r\n        if (!source.length) {\r\n            return UNKNOWN_FUNCTION;\r\n        }\r\n        // Walk backwards from the first line in the function until we find the line which\r\n        // matches the pattern above, which is the function definition\r\n        for (var i = 0; i < maxLines; ++i) {\r\n            line = source[lineNo - i] + line;\r\n            if (!is_5(line)) {\r\n                if ((m = reGuessFunction.exec(line))) {\r\n                    return m[1];\r\n                }\r\n                else if ((m = reFunctionArgNames.exec(line))) {\r\n                    return m[1];\r\n                }\r\n            }\r\n        }\r\n        return UNKNOWN_FUNCTION;\r\n    }\r\n    /**\r\n     * Retrieves the surrounding lines from where an exception occurred.\r\n     * @param {string} url URL of source code.\r\n     * @param {(string|number)} line Line number in source code to center around for context.\r\n     * @return {?Array.<string>} Lines of source code.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function gatherContext(url, line) {\r\n        var source = getSource(url);\r\n        if (!source.length) {\r\n            return null;\r\n        }\r\n        var context = [], \r\n        // linesBefore & linesAfter are inclusive with the offending line.\r\n        // if linesOfContext is even, there will be one extra line\r\n        //   *before* the offending line.\r\n        linesBefore = Math.floor(TraceKit.linesOfContext / 2), \r\n        // Add one extra line if linesOfContext is odd\r\n        linesAfter = linesBefore + (TraceKit.linesOfContext % 2), start = Math.max(0, line - linesBefore - 1), end = Math.min(source.length, line + linesAfter - 1);\r\n        line -= 1; // convert to 0-based index\r\n        for (var i = start; i < end; ++i) {\r\n            if (!is_5(source[i])) {\r\n                context.push(source[i]);\r\n            }\r\n        }\r\n        return context.length > 0 ? context : null;\r\n    }\r\n    /**\r\n     * Escapes special characters, except for whitespace, in a string to be\r\n     * used inside a regular expression as a string literal.\r\n     * @param {string} text The string.\r\n     * @return {string} The escaped string literal.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function escapeRegExp(text) {\r\n        return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\r\n    }\r\n    /**\r\n     * Escapes special characters in a string to be used inside a regular\r\n     * expression as a string literal. Also ensures that HTML entities will\r\n     * be matched the same as their literal friends.\r\n     * @param {string} body The string.\r\n     * @return {string} The escaped string.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function escapeCodeAsRegExpForMatchingInsideHTML(body) {\r\n        return escapeRegExp(body)\r\n            .replace('<', '(?:<|&lt;)')\r\n            .replace('>', '(?:>|&gt;)')\r\n            .replace('&', '(?:&|&amp;)')\r\n            .replace('\"', '(?:\"|&quot;)')\r\n            .replace(/\\s+/g, '\\\\s+');\r\n    }\r\n    /**\r\n     * Determines where a code fragment occurs in the source code.\r\n     * @param {RegExp} re The function definition.\r\n     * @param {Array.<string>} urls A list of URLs to search.\r\n     * @return {?Object.<string, (string|number)>} An object containing\r\n     * the url, line, and column number of the defined function.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function findSourceInUrls(re, urls) {\r\n        var source, m;\r\n        for (var i = 0, j = urls.length; i < j; ++i) {\r\n            if ((source = getSource(urls[i])).length) {\r\n                source = source.join('\\n');\r\n                if ((m = re.exec(source))) {\r\n                    return {\r\n                        url: urls[i],\r\n                        line: source.substring(0, m.index).split('\\n').length,\r\n                        column: m.index - source.lastIndexOf('\\n', m.index) - 1,\r\n                    };\r\n                }\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n    /**\r\n     * Determines at which column a code fragment occurs on a line of the\r\n     * source code.\r\n     * @param {string} fragment The code fragment.\r\n     * @param {string} url The URL to search.\r\n     * @param {(string|number)} line The line number to examine.\r\n     * @return {?number} The column number.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function findSourceInLine(fragment, url, line) {\r\n        var source = getSource(url), re = new RegExp('\\\\b' + escapeRegExp(fragment) + '\\\\b'), m;\r\n        line -= 1;\r\n        if (source && source.length > line && (m = re.exec(source[line]))) {\r\n            return m.index;\r\n        }\r\n        return null;\r\n    }\r\n    /**\r\n     * Determines where a function was defined within the source code.\r\n     * @param {(Function|string)} func A function reference or serialized\r\n     * function definition.\r\n     * @return {?Object.<string, (string|number)>} An object containing\r\n     * the url, line, and column number of the defined function.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function findSourceByFunctionBody(func) {\r\n        if (is_5(window$1 && window$1.document)) {\r\n            return;\r\n        }\r\n        var urls = [getLocationHref()], scripts = window$1.document.getElementsByTagName('script'), body, code = '' + func, codeRE = /^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/, eventRE = /^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/, re, parts, result;\r\n        for (var i = 0; i < scripts.length; ++i) {\r\n            var script = scripts[i];\r\n            if (script.src) {\r\n                urls.push(script.src);\r\n            }\r\n        }\r\n        if (!(parts = codeRE.exec(code))) {\r\n            re = new RegExp(escapeRegExp(code).replace(/\\s+/g, '\\\\s+'));\r\n        }\r\n        // not sure if this is really necessary, but I don’t have a test\r\n        // corpus large enough to confirm that and it was in the original.\r\n        else {\r\n            var name = parts[1] ? '\\\\s+' + parts[1] : '', args = parts[2].split(',').join('\\\\s*,\\\\s*');\r\n            body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\\s+/g, '\\\\s+');\r\n            re = new RegExp('function' + name + '\\\\s*\\\\(\\\\s*' + args + '\\\\s*\\\\)\\\\s*{\\\\s*' + body + '\\\\s*}');\r\n        }\r\n        // look for a normal function definition\r\n        if ((result = findSourceInUrls(re, urls))) {\r\n            return result;\r\n        }\r\n        // look for an old-school event handler function\r\n        if ((parts = eventRE.exec(code))) {\r\n            var event = parts[1];\r\n            body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]);\r\n            // look for a function defined in HTML as an onXXX handler\r\n            re = new RegExp('on' + event + '=[\\\\\\'\"]\\\\s*' + body + '\\\\s*[\\\\\\'\"]', 'i');\r\n            if ((result = findSourceInUrls(re, urls[0]))) {\r\n                return result;\r\n            }\r\n            // look for ???\r\n            re = new RegExp(body);\r\n            if ((result = findSourceInUrls(re, urls))) {\r\n                return result;\r\n            }\r\n        }\r\n        return null;\r\n    }\r\n    // Contents of Exception in various browsers.\r\n    //\r\n    // SAFARI:\r\n    // ex.message = Can't find variable: qq\r\n    // ex.line = 59\r\n    // ex.sourceId = 580238192\r\n    // ex.sourceURL = http://...\r\n    // ex.expressionBeginOffset = 96\r\n    // ex.expressionCaretOffset = 98\r\n    // ex.expressionEndOffset = 98\r\n    // ex.name = ReferenceError\r\n    //\r\n    // FIREFOX:\r\n    // ex.message = qq is not defined\r\n    // ex.fileName = http://...\r\n    // ex.lineNumber = 59\r\n    // ex.columnNumber = 69\r\n    // ex.stack = ...stack trace... (see the example below)\r\n    // ex.name = ReferenceError\r\n    //\r\n    // CHROME:\r\n    // ex.message = qq is not defined\r\n    // ex.name = ReferenceError\r\n    // ex.type = not_defined\r\n    // ex.arguments = ['aa']\r\n    // ex.stack = ...stack trace...\r\n    //\r\n    // INTERNET EXPLORER:\r\n    // ex.message = ...\r\n    // ex.name = ReferenceError\r\n    //\r\n    // OPERA:\r\n    // ex.message = ...message... (see the example below)\r\n    // ex.name = ReferenceError\r\n    // ex.opera#sourceloc = 11  (pretty much useless, duplicates the info in ex.message)\r\n    // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\r\n    /**\r\n     * Computes stack trace information from the stack property.\r\n     * Chrome and Gecko use this property.\r\n     * @param {Error} ex\r\n     * @return {?TraceKit.StackTrace} Stack trace information.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTraceFromStackProp(ex) {\r\n        if (!ex.stack) {\r\n            return null;\r\n        }\r\n        var chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i, gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\\/.*?|\\[native code\\]|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i, winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i, \r\n        // Used to additionally parse URL/line/column from eval frames\r\n        isEval, geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i, chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/, lines = ex.stack.split('\\n'), stack = [], submatch, parts, element, reference = /^(.*) is undefined$/.exec(ex.message);\r\n        for (var i = 0, j = lines.length; i < j; ++i) {\r\n            if ((parts = chrome.exec(lines[i]))) {\r\n                var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\r\n                isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\r\n                if (isEval && (submatch = chromeEval.exec(parts[2]))) {\r\n                    // throw out eval line/column and use top-most line/column number\r\n                    parts[2] = submatch[1]; // url\r\n                    // NOTE: It's messing out our integration tests in Karma, let's see if we can live with it – Kamil\r\n                    // parts[3] = submatch[2]; // line\r\n                    // parts[4] = submatch[3]; // column\r\n                }\r\n                element = {\r\n                    url: !isNative ? parts[2] : null,\r\n                    func: parts[1] || UNKNOWN_FUNCTION,\r\n                    args: isNative ? [parts[2]] : [],\r\n                    line: parts[3] ? +parts[3] : null,\r\n                    column: parts[4] ? +parts[4] : null,\r\n                };\r\n            }\r\n            else if ((parts = winjs.exec(lines[i]))) {\r\n                element = {\r\n                    url: parts[2],\r\n                    func: parts[1] || UNKNOWN_FUNCTION,\r\n                    args: [],\r\n                    line: +parts[3],\r\n                    column: parts[4] ? +parts[4] : null,\r\n                };\r\n            }\r\n            else if ((parts = gecko.exec(lines[i]))) {\r\n                isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\r\n                if (isEval && (submatch = geckoEval.exec(parts[3]))) {\r\n                    // throw out eval line/column and use top-most line number\r\n                    parts[3] = submatch[1];\r\n                    // NOTE: It's messing out our integration tests in Karma, let's see if we can live with it – Kamil\r\n                    // parts[4] = submatch[2];\r\n                    // parts[5] = null; // no column when eval\r\n                }\r\n                else if (i === 0 && !parts[5] && !is_5(ex.columnNumber)) {\r\n                    // FireFox uses this awesome columnNumber property for its top frame\r\n                    // Also note, Firefox's column number is 0-based and everything else expects 1-based,\r\n                    // so adding 1\r\n                    // NOTE: this hack doesn't work if top-most frame is eval\r\n                    stack[0].column = ex.columnNumber + 1;\r\n                }\r\n                element = {\r\n                    url: parts[3],\r\n                    func: parts[1] || UNKNOWN_FUNCTION,\r\n                    args: parts[2] ? parts[2].split(',') : [],\r\n                    line: parts[4] ? +parts[4] : null,\r\n                    column: parts[5] ? +parts[5] : null,\r\n                };\r\n            }\r\n            else {\r\n                continue;\r\n            }\r\n            if (!element.func && element.line) {\r\n                element.func = guessFunctionName(element.url, element.line);\r\n            }\r\n            if (TraceKit.remoteFetching && element.url && element.url.substr(0, 5) === 'blob:') {\r\n                // Special case for handling JavaScript loaded into a blob.\r\n                // We use a synchronous AJAX request here as a blob is already in\r\n                // memory - it's not making a network request.  This will generate a warning\r\n                // in the browser console, but there has already been an error so that's not\r\n                // that much of an issue.\r\n                var xhr = new XMLHttpRequest();\r\n                xhr.open('GET', element.url, false);\r\n                xhr.send('');\r\n                // If we failed to download the source, skip this patch\r\n                if (xhr.status === 200) {\r\n                    var source = xhr.responseText || '';\r\n                    // We trim the source down to the last 300 characters as sourceMappingURL is always at the end of the file.\r\n                    // Why 300? To be in line with: https://github.com/getsentry/sentry/blob/4af29e8f2350e20c28a6933354e4f42437b4ba42/src/sentry/lang/javascript/processor.py#L164-L175\r\n                    source = source.slice(-300);\r\n                    // Now we dig out the source map URL\r\n                    var sourceMaps = source.match(/\\/\\/# sourceMappingURL=(.*)$/);\r\n                    // If we don't find a source map comment or we find more than one, continue on to the next element.\r\n                    if (sourceMaps) {\r\n                        var sourceMapAddress = sourceMaps[1];\r\n                        // Now we check to see if it's a relative URL.\r\n                        // If it is, convert it to an absolute one.\r\n                        if (sourceMapAddress.charAt(0) === '~') {\r\n                            sourceMapAddress = getLocationOrigin() + sourceMapAddress.slice(1);\r\n                        }\r\n                        // Now we strip the '.map' off of the end of the URL and update the\r\n                        // element so that Sentry can match the map to the blob.\r\n                        element.url = sourceMapAddress.slice(0, -4);\r\n                    }\r\n                }\r\n            }\r\n            element.context = element.line ? gatherContext(element.url, element.line) : null;\r\n            stack.push(element);\r\n        }\r\n        if (!stack.length) {\r\n            return null;\r\n        }\r\n        if (stack[0] && stack[0].line && !stack[0].column && reference) {\r\n            stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line);\r\n        }\r\n        return {\r\n            mode: 'stack',\r\n            name: ex.name,\r\n            message: ex.message,\r\n            stack: stack,\r\n        };\r\n    }\r\n    /**\r\n     * Computes stack trace information from the stacktrace property.\r\n     * Opera 10+ uses this property.\r\n     * @param {Error} ex\r\n     * @return {?TraceKit.StackTrace} Stack trace information.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTraceFromStacktraceProp(ex) {\r\n        // Access and store the stacktrace property before doing ANYTHING\r\n        // else to it because Opera is not very good at providing it\r\n        // reliably in other circumstances.\r\n        var stacktrace = ex.stacktrace;\r\n        if (!stacktrace) {\r\n            return;\r\n        }\r\n        var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i, opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^\\)]+))\\((.*)\\))? in (.*):\\s*$/i, lines = stacktrace.split('\\n'), stack = [], parts;\r\n        for (var line = 0; line < lines.length; line += 2) {\r\n            var element = null;\r\n            if ((parts = opera10Regex.exec(lines[line]))) {\r\n                element = {\r\n                    url: parts[2],\r\n                    line: +parts[1],\r\n                    column: null,\r\n                    func: parts[3],\r\n                    args: [],\r\n                };\r\n            }\r\n            else if ((parts = opera11Regex.exec(lines[line]))) {\r\n                element = {\r\n                    url: parts[6],\r\n                    line: +parts[1],\r\n                    column: +parts[2],\r\n                    func: parts[3] || parts[4],\r\n                    args: parts[5] ? parts[5].split(',') : [],\r\n                };\r\n            }\r\n            if (element) {\r\n                if (!element.func && element.line) {\r\n                    element.func = guessFunctionName(element.url, element.line);\r\n                }\r\n                if (element.line) {\r\n                    try {\r\n                        element.context = gatherContext(element.url, element.line);\r\n                    }\r\n                    catch (exc) { }\r\n                }\r\n                if (!element.context) {\r\n                    element.context = [lines[line + 1]];\r\n                }\r\n                stack.push(element);\r\n            }\r\n        }\r\n        if (!stack.length) {\r\n            return null;\r\n        }\r\n        return {\r\n            mode: 'stacktrace',\r\n            name: ex.name,\r\n            message: ex.message,\r\n            stack: stack,\r\n        };\r\n    }\r\n    /**\r\n     * NOT TESTED.\r\n     * Computes stack trace information from an error message that includes\r\n     * the stack trace.\r\n     * Opera 9 and earlier use this method if the option to show stack\r\n     * traces is turned on in opera:config.\r\n     * @param {Error} ex\r\n     * @return {?TraceKit.StackTrace} Stack information.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTraceFromOperaMultiLineMessage(ex) {\r\n        // TODO: Clean this function up\r\n        // Opera includes a stack trace into the exception message. An example is:\r\n        //\r\n        // Statement on line 3: Undefined variable: undefinedFunc\r\n        // Backtrace:\r\n        //   Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz\r\n        //         undefinedFunc(a);\r\n        //   Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy\r\n        //           zzz(x, y, z);\r\n        //   Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx\r\n        //           yyy(a, a, a);\r\n        //   Line 1 of function script\r\n        //     try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); }\r\n        //   ...\r\n        var lines = ex.message.split('\\n');\r\n        if (lines.length < 4) {\r\n            return null;\r\n        }\r\n        var lineRE1 = /^\\s*Line (\\d+) of linked script ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i, lineRE2 = /^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|https?|blob)\\S+)(?:: in function (\\S+))?\\s*$/i, lineRE3 = /^\\s*Line (\\d+) of function script\\s*$/i, stack = [], scripts = window$1 && window$1.document && window$1.document.getElementsByTagName('script'), inlineScriptBlocks = [], parts;\r\n        for (var s in scripts) {\r\n            if (_has(scripts, s) && !scripts[s].src) {\r\n                inlineScriptBlocks.push(scripts[s]);\r\n            }\r\n        }\r\n        for (var line = 2; line < lines.length; line += 2) {\r\n            var item = null;\r\n            if ((parts = lineRE1.exec(lines[line]))) {\r\n                item = {\r\n                    url: parts[2],\r\n                    func: parts[3],\r\n                    args: [],\r\n                    line: +parts[1],\r\n                    column: null,\r\n                };\r\n            }\r\n            else if ((parts = lineRE2.exec(lines[line]))) {\r\n                item = {\r\n                    url: parts[3],\r\n                    func: parts[4],\r\n                    args: [],\r\n                    line: +parts[1],\r\n                    column: null,\r\n                };\r\n                var relativeLine = +parts[1]; // relative to the start of the <SCRIPT> block\r\n                var script = inlineScriptBlocks[parts[2] - 1];\r\n                if (script) {\r\n                    var source = getSource(item.url);\r\n                    if (source) {\r\n                        source = source.join('\\n');\r\n                        var pos = source.indexOf(script.innerText);\r\n                        if (pos >= 0) {\r\n                            item.line = relativeLine + source.substring(0, pos).split('\\n').length;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            else if ((parts = lineRE3.exec(lines[line]))) {\r\n                var url = getLocationHref().replace(/#.*$/, '');\r\n                var re = new RegExp(escapeCodeAsRegExpForMatchingInsideHTML(lines[line + 1]));\r\n                var src = findSourceInUrls(re, [url]);\r\n                item = {\r\n                    url: url,\r\n                    func: '',\r\n                    args: [],\r\n                    line: src ? src.line : parts[1],\r\n                    column: null,\r\n                };\r\n            }\r\n            if (item) {\r\n                if (!item.func) {\r\n                    item.func = guessFunctionName(item.url, item.line);\r\n                }\r\n                var context = gatherContext(item.url, item.line);\r\n                var midline = context ? context[Math.floor(context.length / 2)] : null;\r\n                if (context && midline.replace(/^\\s*/, '') === lines[line + 1].replace(/^\\s*/, '')) {\r\n                    item.context = context;\r\n                }\r\n                else {\r\n                    // if (context) alert(\"Context mismatch. Correct midline:\\n\" + lines[i+1] + \"\\n\\nMidline:\\n\" + midline + \"\\n\\nContext:\\n\" + context.join(\"\\n\") + \"\\n\\nURL:\\n\" + item.url);\r\n                    item.context = [lines[line + 1]];\r\n                }\r\n                stack.push(item);\r\n            }\r\n        }\r\n        if (!stack.length) {\r\n            return null; // could not parse multiline exception message as Opera stack trace\r\n        }\r\n        return {\r\n            mode: 'multiline',\r\n            name: ex.name,\r\n            message: lines[0],\r\n            stack: stack,\r\n        };\r\n    }\r\n    /**\r\n     * Adds information about the first frame to incomplete stack traces.\r\n     * Safari and IE require this to get complete data on the first frame.\r\n     * @param {TraceKit.StackTrace} stackInfo Stack trace information from\r\n     * one of the compute* methods.\r\n     * @param {string} url The URL of the script that caused an error.\r\n     * @param {(number|string)} lineNo The line number of the script that\r\n     * caused an error.\r\n     * @param {string=} message The error generated by the browser, which\r\n     * hopefully contains the name of the object that caused the error.\r\n     * @return {boolean} Whether or not the stack information was\r\n     * augmented.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {\r\n        var initial = {\r\n            url: url,\r\n            line: lineNo,\r\n        };\r\n        if (initial.url && initial.line) {\r\n            stackInfo.incomplete = false;\r\n            if (!initial.func) {\r\n                initial.func = guessFunctionName(initial.url, initial.line);\r\n            }\r\n            if (!initial.context) {\r\n                initial.context = gatherContext(initial.url, initial.line);\r\n            }\r\n            var reference = / '([^']+)' /.exec(message);\r\n            if (reference) {\r\n                initial.column = findSourceInLine(reference[1], initial.url, initial.line);\r\n            }\r\n            if (stackInfo.stack.length > 0) {\r\n                if (stackInfo.stack[0].url === initial.url) {\r\n                    if (stackInfo.stack[0].line === initial.line) {\r\n                        return false; // already in stack trace\r\n                    }\r\n                    else if (!stackInfo.stack[0].line && stackInfo.stack[0].func === initial.func) {\r\n                        stackInfo.stack[0].line = initial.line;\r\n                        stackInfo.stack[0].context = initial.context;\r\n                        return false;\r\n                    }\r\n                }\r\n            }\r\n            stackInfo.stack.unshift(initial);\r\n            stackInfo.partial = true;\r\n            return true;\r\n        }\r\n        else {\r\n            stackInfo.incomplete = true;\r\n        }\r\n        return false;\r\n    }\r\n    /**\r\n     * Computes stack trace information by walking the arguments.caller\r\n     * chain at the time the exception occurred. This will cause earlier\r\n     * frames to be missed but is the only way to get any stack trace in\r\n     * Safari and IE. The top frame is restored by\r\n     * {@link augmentStackTraceWithInitialElement}.\r\n     * @param {Error} ex\r\n     * @return {TraceKit.StackTrace=} Stack trace information.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTraceByWalkingCallerChain(ex, depth) {\r\n        var functionName = /function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i, stack = [], funcs = {}, recursion = false, parts, item, source;\r\n        for (var curr = computeStackTraceByWalkingCallerChain.caller; curr && !recursion; curr = curr.caller) {\r\n            if (curr === computeStackTrace || curr === TraceKit.report) {\r\n                continue;\r\n            }\r\n            item = {\r\n                url: null,\r\n                func: UNKNOWN_FUNCTION,\r\n                args: [],\r\n                line: null,\r\n                column: null,\r\n            };\r\n            if (curr.name) {\r\n                item.func = curr.name;\r\n            }\r\n            else if ((parts = functionName.exec(curr.toString()))) {\r\n                item.func = parts[1];\r\n            }\r\n            if (typeof item.func === 'undefined') {\r\n                try {\r\n                    item.func = parts.input.substring(0, parts.input.indexOf('{'));\r\n                }\r\n                catch (e) { }\r\n            }\r\n            if ((source = findSourceByFunctionBody(curr))) {\r\n                item.url = source.url;\r\n                item.line = source.line;\r\n                if (item.func === UNKNOWN_FUNCTION) {\r\n                    item.func = guessFunctionName(item.url, item.line);\r\n                }\r\n                var reference = / '([^']+)' /.exec(ex.message || ex.description);\r\n                if (reference) {\r\n                    item.column = findSourceInLine(reference[1], source.url, source.line);\r\n                }\r\n            }\r\n            if (funcs['' + curr]) {\r\n                recursion = true;\r\n            }\r\n            else {\r\n                funcs['' + curr] = true;\r\n            }\r\n            stack.push(item);\r\n        }\r\n        if (depth) {\r\n            stack.splice(0, depth);\r\n        }\r\n        var result = {\r\n            mode: 'callers',\r\n            name: ex.name,\r\n            message: ex.message,\r\n            stack: stack,\r\n        };\r\n        augmentStackTraceWithInitialElement(result, ex.sourceURL || ex.fileName, ex.line || ex.lineNumber, ex.message || ex.description);\r\n        return result;\r\n    }\r\n    /**\r\n     * Computes a stack trace for an exception.\r\n     * @param {Error} ex\r\n     * @param {(string|number)=} depth\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTrace(ex, depth) {\r\n        var stack = null;\r\n        depth = depth == null ? 0 : +depth;\r\n        try {\r\n            // This must be tried first because Opera 10 *destroys*\r\n            // its stacktrace property if you try to access the stack\r\n            // property first!!\r\n            stack = computeStackTraceFromStacktraceProp(ex);\r\n            if (stack) {\r\n                return stack;\r\n            }\r\n        }\r\n        catch (e) {\r\n            if (debug) {\r\n                throw e;\r\n            }\r\n        }\r\n        try {\r\n            stack = computeStackTraceFromStackProp(ex);\r\n            if (stack) {\r\n                return stack;\r\n            }\r\n        }\r\n        catch (e) {\r\n            if (debug) {\r\n                throw e;\r\n            }\r\n        }\r\n        try {\r\n            stack = computeStackTraceFromOperaMultiLineMessage(ex);\r\n            if (stack) {\r\n                return stack;\r\n            }\r\n        }\r\n        catch (e) {\r\n            if (debug) {\r\n                throw e;\r\n            }\r\n        }\r\n        try {\r\n            stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);\r\n            if (stack) {\r\n                return stack;\r\n            }\r\n        }\r\n        catch (e) {\r\n            if (debug) {\r\n                throw e;\r\n            }\r\n        }\r\n        return {\r\n            name: ex.name,\r\n            message: ex.message,\r\n            mode: 'failed',\r\n        };\r\n    }\r\n    /**\r\n     * Logs a stacktrace starting from the previous call and working down.\r\n     * @param {(number|string)=} depth How many frames deep to trace.\r\n     * @return {TraceKit.StackTrace} Stack trace information.\r\n     * @memberof TraceKit.computeStackTrace\r\n     */\r\n    function computeStackTraceOfCaller(depth) {\r\n        depth = (depth == null ? 0 : +depth) + 1; // \"+ 1\" because \"ofCaller\" should drop one frame\r\n        try {\r\n            throw new Error();\r\n        }\r\n        catch (ex) {\r\n            return computeStackTrace(ex, depth + 1);\r\n        }\r\n    }\r\n    computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;\r\n    computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;\r\n    computeStackTrace.guessFunctionName = guessFunctionName;\r\n    computeStackTrace.gatherContext = gatherContext;\r\n    computeStackTrace.ofCaller = computeStackTraceOfCaller;\r\n    computeStackTrace.getSource = getSource;\r\n    return computeStackTrace;\r\n})();\r\n/**\r\n * Extends support for global error handling for asynchronous browser\r\n * functions. Adopted from Closure Library's errorhandler.js\r\n * @memberof TraceKit\r\n */\r\nTraceKit.extendToAsynchronousCallbacks = function () {\r\n    var _helper = function _helper(fnName) {\r\n        var originalFn = window$1[fnName];\r\n        window$1[fnName] = function traceKitAsyncExtension() {\r\n            // Make a copy of the arguments\r\n            var args = _slice.call(arguments);\r\n            var originalCallback = args[0];\r\n            if (typeof originalCallback === 'function') {\r\n                args[0] = TraceKit.wrap(originalCallback);\r\n            }\r\n            // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it\r\n            // also only supports 2 argument and doesn't care what \"this\" is, so we\r\n            // can just call the original function directly.\r\n            if (originalFn.apply) {\r\n                return originalFn.apply(this, args);\r\n            }\r\n            else {\r\n                return originalFn(args[0], args[1]);\r\n            }\r\n        };\r\n    };\r\n    _helper('setTimeout');\r\n    _helper('setInterval');\r\n};\r\nTraceKit.remoteFetching = false;\r\nTraceKit.collectWindowErrors = true;\r\nTraceKit.linesOfContext = 11;\r\nvar subscribe = TraceKit.report.subscribe;\r\nvar installGlobalHandler = TraceKit.report.installGlobalHandler;\r\nvar installGlobalUnhandledRejectionHandler = TraceKit.report.installGlobalUnhandledRejectionHandler;\r\nvar computeStackTrace = TraceKit.computeStackTrace;\n\nvar STACKTRACE_LIMIT = 50;\r\n/** JSDoc */\r\nfunction exceptionFromStacktrace(stacktrace) {\r\n    var frames = prepareFramesForEvent(stacktrace.stack);\r\n    var exception = {\r\n        stacktrace: { frames: frames },\r\n        type: stacktrace.name,\r\n        value: stacktrace.message,\r\n    };\r\n    // tslint:disable-next-line:strict-type-predicates\r\n    if (exception.type === undefined && exception.value === '') {\r\n        exception.value = 'Unrecoverable error caught';\r\n    }\r\n    return exception;\r\n}\r\n/** JSDoc */\r\nfunction eventFromPlainObject(exception, syntheticException) {\r\n    var exceptionKeys = Object.keys(exception).sort();\r\n    var event = {\r\n        extra: {\r\n            __serialized__: object_7(exception),\r\n        },\r\n        fingerprint: [md5(exceptionKeys.join(''))],\r\n        message: \"Non-Error exception captured with keys: \" + object_8(exceptionKeys),\r\n    };\r\n    if (syntheticException) {\r\n        var stacktrace = computeStackTrace(syntheticException);\r\n        var frames_1 = prepareFramesForEvent(stacktrace.stack);\r\n        event.stacktrace = {\r\n            frames: frames_1,\r\n        };\r\n    }\r\n    return event;\r\n}\r\n/** JSDoc */\r\nfunction eventFromStacktrace(stacktrace) {\r\n    var exception = exceptionFromStacktrace(stacktrace);\r\n    return {\r\n        exception: {\r\n            values: [exception],\r\n        },\r\n    };\r\n}\r\n/** JSDoc */\r\nfunction prepareFramesForEvent(stack) {\r\n    if (!stack || !stack.length) {\r\n        return [];\r\n    }\r\n    var localStack = stack;\r\n    var firstFrameFunction = localStack[0].func || '';\r\n    var lastFrameFunction = localStack[localStack.length - 1].func || '';\r\n    // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\r\n    if (string_4(firstFrameFunction, 'captureMessage') || string_4(firstFrameFunction, 'captureException')) {\r\n        localStack = localStack.slice(1);\r\n    }\r\n    // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\r\n    if (string_4(lastFrameFunction, 'sentryWrapped')) {\r\n        localStack = localStack.slice(0, -1);\r\n    }\r\n    // The frame where the crash happened, should be the last entry in the array\r\n    return localStack\r\n        .map(function (frame) { return ({\r\n        colno: frame.column,\r\n        filename: frame.url || localStack[0].url,\r\n        function: frame.func || '?',\r\n        in_app: true,\r\n        lineno: frame.line,\r\n    }); })\r\n        .slice(0, STACKTRACE_LIMIT)\r\n        .reverse();\r\n}\n\n/** Base Transport class implementation */\r\nvar BaseTransport = /** @class */ (function () {\r\n    function BaseTransport(options) {\r\n        this.options = options;\r\n        this.url = new core.API(this.options.dsn).getStoreEndpointWithUrlEncodedAuth();\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BaseTransport.prototype.captureEvent = function (_) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            return tslib_1.__generator(this, function (_a) {\r\n                throw new core.SentryError('Transport Class has to implement `captureEvent` method');\r\n            });\r\n        });\r\n    };\r\n    return BaseTransport;\r\n}());\n\nvar global$1 = misc_3();\r\n/** `fetch` based transport */\r\nvar FetchTransport = /** @class */ (function (_super) {\r\n    tslib_1.__extends(FetchTransport, _super);\r\n    function FetchTransport() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    FetchTransport.prototype.captureEvent = function (event) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var defaultOptions, response;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        defaultOptions = {\r\n                            body: object_1(event),\r\n                            method: 'POST',\r\n                            // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\r\n                            // https://caniuse.com/#feat=referrer-policy\r\n                            // It doesn't. And it throw exception instead of ignoring this parameter...\r\n                            // REF: https://github.com/getsentry/raven-js/issues/1233\r\n                            referrerPolicy: (supports_8() ? 'origin' : ''),\r\n                        };\r\n                        return [4 /*yield*/, global$1.fetch(this.url, defaultOptions)];\r\n                    case 1:\r\n                        response = _a.sent();\r\n                        return [2 /*return*/, {\r\n                                status: dist_2.fromHttpCode(response.status),\r\n                            }];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    return FetchTransport;\r\n}(BaseTransport));\n\n/** `XHR` based transport */\r\nvar XHRTransport = /** @class */ (function (_super) {\r\n    tslib_1.__extends(XHRTransport, _super);\r\n    function XHRTransport() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    XHRTransport.prototype.captureEvent = function (event) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var _this = this;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                return [2 /*return*/, new Promise(function (resolve, reject) {\r\n                        var request = new XMLHttpRequest();\r\n                        request.onreadystatechange = function () {\r\n                            if (request.readyState !== 4) {\r\n                                return;\r\n                            }\r\n                            if (request.status === 200) {\r\n                                resolve({\r\n                                    status: dist_2.fromHttpCode(request.status),\r\n                                });\r\n                            }\r\n                            reject(request);\r\n                        };\r\n                        request.open('POST', _this.url);\r\n                        request.send(object_1(event));\r\n                    })];\r\n            });\r\n        });\r\n    };\r\n    return XHRTransport;\r\n}(BaseTransport));\n\nvar global$2 = misc_3();\r\n/** `sendBeacon` based transport */\r\nvar BeaconTransport = /** @class */ (function (_super) {\r\n    tslib_1.__extends(BeaconTransport, _super);\r\n    function BeaconTransport() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BeaconTransport.prototype.captureEvent = function (event) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var data, result;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                data = object_1(event);\r\n                result = global$2.navigator.sendBeacon(this.url, data);\r\n                return [2 /*return*/, {\r\n                        status: result ? dist_2.Success : dist_2.Failed,\r\n                    }];\r\n            });\r\n        });\r\n    };\r\n    return BeaconTransport;\r\n}(BaseTransport));\n\n\n\nvar index$1 = /*#__PURE__*/Object.freeze({\n\tBaseTransport: BaseTransport,\n\tFetchTransport: FetchTransport,\n\tXHRTransport: XHRTransport,\n\tBeaconTransport: BeaconTransport\n});\n\n/** The Sentry Browser SDK Backend. */\r\nvar BrowserBackend = /** @class */ (function (_super) {\r\n    tslib_1.__extends(BrowserBackend, _super);\r\n    function BrowserBackend() {\r\n        return _super !== null && _super.apply(this, arguments) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BrowserBackend.prototype.install = function () {\r\n        // We are only called by the client if the SDK is enabled and a valid Dsn\r\n        // has been configured. If no Dsn is present, this indicates a programming\r\n        // error.\r\n        var dsn = this.options.dsn;\r\n        if (!dsn) {\r\n            throw new core.SentryError('Invariant exception: install() must not be called when disabled');\r\n        }\r\n        Error.stackTraceLimit = 50;\r\n        return true;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BrowserBackend.prototype.eventFromException = function (exception, hint) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var event, ex, ex, name_1, message, ex, ex;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                switch (_a.label) {\r\n                    case 0:\r\n                        if (!(is_2(exception) && exception.error)) return [3 /*break*/, 1];\r\n                        ex = exception;\r\n                        exception = ex.error; // tslint:disable-line:no-parameter-reassignment\r\n                        event = eventFromStacktrace(computeStackTrace(exception));\r\n                        return [3 /*break*/, 7];\r\n                    case 1:\r\n                        if (!(is_3(exception) || is_4(exception))) return [3 /*break*/, 3];\r\n                        ex = exception;\r\n                        name_1 = ex.name || (is_3(ex) ? 'DOMError' : 'DOMException');\r\n                        message = ex.message ? name_1 + \": \" + ex.message : name_1;\r\n                        return [4 /*yield*/, this.eventFromMessage(message, undefined, hint)];\r\n                    case 2:\r\n                        event = _a.sent();\r\n                        return [3 /*break*/, 7];\r\n                    case 3:\r\n                        if (!is_1(exception)) return [3 /*break*/, 4];\r\n                        // we have a real Error object, do nothing\r\n                        event = eventFromStacktrace(computeStackTrace(exception));\r\n                        return [3 /*break*/, 7];\r\n                    case 4:\r\n                        if (!(is_9(exception) && hint && hint.syntheticException)) return [3 /*break*/, 5];\r\n                        ex = exception;\r\n                        event = eventFromPlainObject(ex, hint.syntheticException);\r\n                        return [3 /*break*/, 7];\r\n                    case 5:\r\n                        ex = exception;\r\n                        return [4 /*yield*/, this.eventFromMessage(ex, undefined, hint)];\r\n                    case 6:\r\n                        event = _a.sent();\r\n                        _a.label = 7;\r\n                    case 7:\r\n                        event = tslib_1.__assign({}, event, { event_id: hint && hint.event_id, exception: tslib_1.__assign({}, event.exception, { mechanism: {\r\n                                    handled: true,\r\n                                    type: 'generic',\r\n                                } }) });\r\n                        return [2 /*return*/, event];\r\n                }\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\r\n        if (level === void 0) { level = dist_1.Info; }\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var event, stacktrace, frames_1;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                event = {\r\n                    event_id: hint && hint.event_id,\r\n                    level: level,\r\n                    message: message,\r\n                };\r\n                if (this.options.attachStacktrace && hint && hint.syntheticException) {\r\n                    stacktrace = computeStackTrace(hint.syntheticException);\r\n                    frames_1 = prepareFramesForEvent(stacktrace.stack);\r\n                    event.stacktrace = {\r\n                        frames: frames_1,\r\n                    };\r\n                }\r\n                return [2 /*return*/, event];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BrowserBackend.prototype.sendEvent = function (event) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            var transportOptions;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                if (!this.options.dsn) {\r\n                    logger_2.warn(\"Event has been skipped because no Dsn is configured.\");\r\n                    // We do nothing in case there is no DSN\r\n                    return [2 /*return*/, { status: dist_2.Skipped, reason: \"Event has been skipped because no Dsn is configured.\" }];\r\n                }\r\n                if (!this.transport) {\r\n                    transportOptions = this.options.transportOptions\r\n                        ? this.options.transportOptions\r\n                        : { dsn: this.options.dsn };\r\n                    if (this.options.transport) {\r\n                        this.transport = new this.options.transport({ dsn: this.options.dsn });\r\n                    }\r\n                    else if (supports_6()) {\r\n                        this.transport = new BeaconTransport(transportOptions);\r\n                    }\r\n                    else if (supports_4()) {\r\n                        this.transport = new FetchTransport(transportOptions);\r\n                    }\r\n                    else {\r\n                        this.transport = new XHRTransport(transportOptions);\r\n                    }\r\n                }\r\n                return [2 /*return*/, this.transport.captureEvent(event)];\r\n            });\r\n        });\r\n    };\r\n    return BrowserBackend;\r\n}(core.BaseBackend));\n\nvar SDK_NAME = 'sentry.javascript.browser';\r\nvar SDK_VERSION = '4.4.2';\n\n/**\r\n * The Sentry Browser SDK Client.\r\n *\r\n * @see BrowserOptions for documentation on configuration options.\r\n * @see SentryClient for usage documentation.\r\n */\r\nvar BrowserClient = /** @class */ (function (_super) {\r\n    tslib_1.__extends(BrowserClient, _super);\r\n    /**\r\n     * Creates a new Browser SDK instance.\r\n     *\r\n     * @param options Configuration options for this SDK.\r\n     */\r\n    function BrowserClient(options) {\r\n        return _super.call(this, BrowserBackend, options) || this;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    BrowserClient.prototype.prepareEvent = function (event, scope, hint) {\r\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n            return tslib_1.__generator(this, function (_a) {\r\n                event.platform = event.platform || 'javascript';\r\n                event.sdk = tslib_1.__assign({}, event.sdk, { name: SDK_NAME, packages: tslib_1.__spread(((event.sdk && event.sdk.packages) || []), [\r\n                        {\r\n                            name: 'npm:@sentry/browser',\r\n                            version: SDK_VERSION,\r\n                        },\r\n                    ]), version: SDK_VERSION });\r\n                return [2 /*return*/, _super.prototype.prepareEvent.call(this, event, scope, hint)];\r\n            });\r\n        });\r\n    };\r\n    /**\r\n     * Show a report dialog to the user to send feedback to a specific event.\r\n     *\r\n     * @param options Set individual options for the dialog\r\n     */\r\n    BrowserClient.prototype.showReportDialog = function (options) {\r\n        if (options === void 0) { options = {}; }\r\n        // doesn't work without a document (React Native)\r\n        var document = misc_3().document;\r\n        if (!document) {\r\n            return;\r\n        }\r\n        var dsn = options.dsn || this.getDsn();\r\n        if (!options.eventId) {\r\n            throw new core.SentryError('Missing `eventId` option in showReportDialog call');\r\n        }\r\n        if (!dsn) {\r\n            throw new core.SentryError('Missing `Dsn` option in showReportDialog call');\r\n        }\r\n        var script = document.createElement('script');\r\n        script.async = true;\r\n        script.src = new core.API(dsn).getReportDialogEndpoint(options);\r\n        (document.head || document.body).appendChild(script);\r\n    };\r\n    return BrowserClient;\r\n}(core.BaseClient));\n\nvar debounceDuration = 1000;\r\nvar keypressTimeout;\r\nvar lastCapturedEvent;\r\nvar ignoreOnError = 0;\r\n/** JSDoc */\r\nfunction shouldIgnoreOnError() {\r\n    return ignoreOnError > 0;\r\n}\r\n/** JSDoc */\r\nfunction ignoreNextOnError() {\r\n    // onerror should trigger before setTimeout\r\n    ignoreOnError += 1;\r\n    setTimeout(function () {\r\n        ignoreOnError -= 1;\r\n    });\r\n}\r\n/**\r\n * Instruments the given function and sends an event to Sentry every time the\r\n * function throws an exception.\r\n *\r\n * @param fn A function to wrap.\r\n * @returns The wrapped function.\r\n */\r\nfunction wrap(fn, options, before) {\r\n    if (options === void 0) { options = {}; }\r\n    if (!is_6(fn)) {\r\n        return fn;\r\n    }\r\n    try {\r\n        // We don't wanna wrap it twice\r\n        if (fn.__sentry__) {\r\n            return fn;\r\n        }\r\n        // If this has already been wrapped in the past, return that wrapped function\r\n        if (fn.__sentry_wrapped__) {\r\n            return fn.__sentry_wrapped__;\r\n        }\r\n    }\r\n    catch (e) {\r\n        // Just accessing custom props in some Selenium environments\r\n        // can cause a \"Permission denied\" exception (see raven-js#495).\r\n        // Bail on wrapping and return the function as-is (defers to window.onerror).\r\n        return fn;\r\n    }\r\n    var sentryWrapped = function () {\r\n        var _this = this;\r\n        if (before && is_6(before)) {\r\n            before.apply(this, arguments);\r\n        }\r\n        var args = Array.prototype.slice.call(arguments);\r\n        try {\r\n            // Attempt to invoke user-land function\r\n            // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\r\n            //       means Raven caught an error invoking your application code. This is\r\n            //       expected behavior and NOT indicative of a bug with Raven.js.\r\n            var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\r\n            if (fn.handleEvent) {\r\n                return fn.handleEvent.apply(this, wrappedArguments);\r\n            }\r\n            else {\r\n                return fn.apply(this, wrappedArguments);\r\n            }\r\n        }\r\n        catch (ex) {\r\n            ignoreNextOnError();\r\n            core.withScope(function (scope) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n                var _this = this;\r\n                return tslib_1.__generator(this, function (_a) {\r\n                    scope.addEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n                        var processedEvent;\r\n                        return tslib_1.__generator(this, function (_a) {\r\n                            processedEvent = tslib_1.__assign({}, event);\r\n                            if (options.mechanism) {\r\n                                processedEvent.exception = processedEvent.exception || {};\r\n                                processedEvent.exception.mechanism = options.mechanism;\r\n                            }\r\n                            processedEvent.extra = tslib_1.__assign({}, processedEvent.extra, { arguments: object_6(args, 2) });\r\n                            return [2 /*return*/, processedEvent];\r\n                        });\r\n                    }); });\r\n                    core.captureException(ex);\r\n                    return [2 /*return*/];\r\n                });\r\n            }); });\r\n            throw ex;\r\n        }\r\n    };\r\n    // Accessing some objects may throw\r\n    // ref: https://github.com/getsentry/sentry-javascript/issues/1168\r\n    try {\r\n        for (var property in fn) {\r\n            if (Object.prototype.hasOwnProperty.call(fn, property)) {\r\n                sentryWrapped[property] = fn[property];\r\n            }\r\n        }\r\n    }\r\n    catch (_oO) { } // tslint:disable-line:no-empty\r\n    sentryWrapped.prototype = fn.prototype;\r\n    fn.__sentry_wrapped__ = sentryWrapped;\r\n    // Signal that this function has been wrapped/filled already\r\n    // for both debugging and to prevent it to being wrapped/filled twice\r\n    sentryWrapped.__sentry__ = true;\r\n    sentryWrapped.__sentry_original__ = fn;\r\n    return sentryWrapped;\r\n}\r\n/**\r\n * Wraps addEventListener to capture UI breadcrumbs\r\n * @param eventName the event name (e.g. \"click\")\r\n * @returns wrapped breadcrumb events handler\r\n */\r\nfunction breadcrumbEventHandler(eventName) {\r\n    return function (event) {\r\n        // reset keypress timeout; e.g. triggering a 'click' after\r\n        // a 'keypress' will reset the keypress debounce so that a new\r\n        // set of keypresses can be recorded\r\n        keypressTimeout = undefined;\r\n        // It's possible this handler might trigger multiple times for the same\r\n        // event (e.g. event propagation through node ancestors). Ignore if we've\r\n        // already captured the event.\r\n        if (lastCapturedEvent === event) {\r\n            return;\r\n        }\r\n        lastCapturedEvent = event;\r\n        // try/catch both:\r\n        // - accessing event.target (see getsentry/raven-js#838, #768)\r\n        // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\r\n        //   can throw an exception in some circumstances.\r\n        var target;\r\n        try {\r\n            target = misc_5(event.target);\r\n        }\r\n        catch (e) {\r\n            target = '<unknown>';\r\n        }\r\n        core.getCurrentHub().addBreadcrumb({\r\n            category: \"ui.\" + eventName,\r\n            message: target,\r\n        }, {\r\n            event: event,\r\n            name: eventName,\r\n        });\r\n    };\r\n}\r\n/**\r\n * Wraps addEventListener to capture keypress UI events\r\n * @returns wrapped keypress events handler\r\n */\r\nfunction keypressEventHandler() {\r\n    // TODO: if somehow user switches keypress target before\r\n    //       debounce timeout is triggered, we will only capture\r\n    //       a single breadcrumb from the FIRST target (acceptable?)\r\n    return function (event) {\r\n        var target;\r\n        try {\r\n            target = event.target;\r\n        }\r\n        catch (e) {\r\n            // just accessing event properties can throw an exception in some rare circumstances\r\n            // see: https://github.com/getsentry/raven-js/issues/838\r\n            return;\r\n        }\r\n        var tagName = target && target.tagName;\r\n        // only consider keypress events on actual input elements\r\n        // this will disregard keypresses targeting body (e.g. tabbing\r\n        // through elements, hotkeys, etc)\r\n        if (!tagName || (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)) {\r\n            return;\r\n        }\r\n        // record first keypress in a series, but ignore subsequent\r\n        // keypresses until debounce clears\r\n        if (!keypressTimeout) {\r\n            breadcrumbEventHandler('input')(event);\r\n        }\r\n        clearTimeout(keypressTimeout);\r\n        keypressTimeout = setTimeout(function () {\r\n            keypressTimeout = undefined;\r\n        }, debounceDuration);\r\n    };\r\n}\n\n/** Global handlers */\r\nvar GlobalHandlers = /** @class */ (function () {\r\n    /** JSDoc */\r\n    function GlobalHandlers(options) {\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = GlobalHandlers.id;\r\n        this.options = tslib_1.__assign({ onerror: true, onunhandledrejection: true }, options);\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    GlobalHandlers.prototype.setupOnce = function () {\r\n        subscribe(function (stack, _, error) {\r\n            // TODO: use stack.context to get a valuable information from TraceKit, eg.\r\n            // [\r\n            //   0: \"  })\"\r\n            //   1: \"\"\r\n            //   2: \"  function foo () {\"\r\n            //   3: \"    Sentry.captureException('some error')\"\r\n            //   4: \"    Sentry.captureMessage('some message')\"\r\n            //   5: \"    throw 'foo'\"\r\n            //   6: \"  }\"\r\n            //   7: \"\"\r\n            //   8: \"  function bar () {\"\r\n            //   9: \"    foo();\"\r\n            //   10: \"  }\"\r\n            // ]\r\n            if (shouldIgnoreOnError()) {\r\n                return;\r\n            }\r\n            var self = core.getCurrentHub().getIntegration(GlobalHandlers);\r\n            if (self) {\r\n                core.getCurrentHub().captureEvent(self.eventFromGlobalHandler(stack), { originalException: error, data: { stack: stack } });\r\n            }\r\n        });\r\n        if (this.options.onerror) {\r\n            logger_2.log('Global Handler attached: onerror');\r\n            installGlobalHandler();\r\n        }\r\n        if (this.options.onunhandledrejection) {\r\n            logger_2.log('Global Handler attached: onunhandledrejection');\r\n            installGlobalUnhandledRejectionHandler();\r\n        }\r\n    };\r\n    /** JSDoc */\r\n    GlobalHandlers.prototype.eventFromGlobalHandler = function (stacktrace) {\r\n        var event = eventFromStacktrace(stacktrace);\r\n        return tslib_1.__assign({}, event, { exception: tslib_1.__assign({}, event.exception, { mechanism: {\r\n                    data: {\r\n                        mode: stacktrace.mode,\r\n                    },\r\n                    handled: false,\r\n                    type: stacktrace.mechanism,\r\n                } }) });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    GlobalHandlers.id = 'GlobalHandlers';\r\n    return GlobalHandlers;\r\n}());\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\r\nvar TryCatch = /** @class */ (function () {\r\n    function TryCatch() {\r\n        /** JSDoc */\r\n        this.ignoreOnError = 0;\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = TryCatch.id;\r\n    }\r\n    /** JSDoc */\r\n    TryCatch.prototype.wrapTimeFunction = function (original) {\r\n        return function () {\r\n            var args = [];\r\n            for (var _i = 0; _i < arguments.length; _i++) {\r\n                args[_i] = arguments[_i];\r\n            }\r\n            var originalCallback = args[0];\r\n            args[0] = wrap(originalCallback, {\r\n                mechanism: {\r\n                    data: { function: original.name || '<anonymous>' },\r\n                    handled: true,\r\n                    type: 'instrument',\r\n                },\r\n            });\r\n            return original.apply(this, args);\r\n        };\r\n    };\r\n    /** JSDoc */\r\n    TryCatch.prototype.wrapRAF = function (original) {\r\n        return function (callback) {\r\n            return original(wrap(callback, {\r\n                mechanism: {\r\n                    data: {\r\n                        function: 'requestAnimationFrame',\r\n                        handler: (original && original.name) || '<anonymous>',\r\n                    },\r\n                    handled: true,\r\n                    type: 'instrument',\r\n                },\r\n            }));\r\n        };\r\n    };\r\n    /** JSDoc */\r\n    TryCatch.prototype.wrapEventTarget = function (target) {\r\n        var global = misc_3();\r\n        var proto = global[target] && global[target].prototype;\r\n        if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\r\n            return;\r\n        }\r\n        object_4(proto, 'addEventListener', function (original) {\r\n            return function (eventName, fn, options) {\r\n                try {\r\n                    fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\r\n                        mechanism: {\r\n                            data: {\r\n                                function: 'handleEvent',\r\n                                handler: (fn && fn.name) || '<anonymous>',\r\n                                target: target,\r\n                            },\r\n                            handled: true,\r\n                            type: 'instrument',\r\n                        },\r\n                    });\r\n                }\r\n                catch (err) {\r\n                    // can sometimes get 'Permission denied to access property \"handle Event'\r\n                }\r\n                // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`\r\n                // so that we don't have more than one wrapper function\r\n                var before;\r\n                var clickHandler;\r\n                var keypressHandler;\r\n                if (target === 'EventTarget' || target === 'Node') {\r\n                    // NOTE: generating multiple handlers per addEventListener invocation, should\r\n                    //       revisit and verify we can just use one (almost certainly)\r\n                    clickHandler = breadcrumbEventHandler('click');\r\n                    keypressHandler = keypressEventHandler();\r\n                    before = function (event) {\r\n                        // need to intercept every DOM event in `before` argument, in case that\r\n                        // same wrapped method is re-used for different events (e.g. mousemove THEN click)\r\n                        // see #724\r\n                        if (!event) {\r\n                            return;\r\n                        }\r\n                        var eventType;\r\n                        try {\r\n                            eventType = event.type;\r\n                        }\r\n                        catch (e) {\r\n                            // just accessing event properties can throw an exception in some rare circumstances\r\n                            // see: https://github.com/getsentry/raven-js/issues/838\r\n                            return;\r\n                        }\r\n                        if (eventType === 'click') {\r\n                            return clickHandler(event);\r\n                        }\r\n                        else if (eventType === 'keypress') {\r\n                            return keypressHandler(event);\r\n                        }\r\n                    };\r\n                }\r\n                return original.call(this, eventName, wrap(fn, {\r\n                    mechanism: {\r\n                        data: {\r\n                            function: 'addEventListener',\r\n                            handler: (fn && fn.name) || '<anonymous>',\r\n                            target: target,\r\n                        },\r\n                        handled: true,\r\n                        type: 'instrument',\r\n                    },\r\n                }, before), options);\r\n            };\r\n        });\r\n        object_4(proto, 'removeEventListener', function (original) {\r\n            return function (eventName, fn, options) {\r\n                var callback = fn;\r\n                try {\r\n                    callback = callback && (callback.__sentry_wrapped__ || callback);\r\n                }\r\n                catch (e) {\r\n                    // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\r\n                }\r\n                return original.call(this, eventName, callback, options);\r\n            };\r\n        });\r\n    };\r\n    /**\r\n     * Wrap timer functions and event targets to catch errors\r\n     * and provide better metadata.\r\n     */\r\n    TryCatch.prototype.setupOnce = function () {\r\n        this.ignoreOnError = this.ignoreOnError;\r\n        var global = misc_3();\r\n        object_4(global, 'setTimeout', this.wrapTimeFunction.bind(this));\r\n        object_4(global, 'setInterval', this.wrapTimeFunction.bind(this));\r\n        object_4(global, 'requestAnimationFrame', this.wrapRAF.bind(this));\r\n        [\r\n            'EventTarget',\r\n            'Window',\r\n            'Node',\r\n            'ApplicationCache',\r\n            'AudioTrackList',\r\n            'ChannelMergerNode',\r\n            'CryptoOperation',\r\n            'EventSource',\r\n            'FileReader',\r\n            'HTMLUnknownElement',\r\n            'IDBDatabase',\r\n            'IDBRequest',\r\n            'IDBTransaction',\r\n            'KeyOperation',\r\n            'MediaController',\r\n            'MessagePort',\r\n            'ModalWindow',\r\n            'Notification',\r\n            'SVGElementInstance',\r\n            'Screen',\r\n            'TextTrack',\r\n            'TextTrackCue',\r\n            'TextTrackList',\r\n            'WebSocket',\r\n            'WebSocketWorker',\r\n            'Worker',\r\n            'XMLHttpRequest',\r\n            'XMLHttpRequestEventTarget',\r\n            'XMLHttpRequestUpload',\r\n        ].forEach(this.wrapEventTarget.bind(this));\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    TryCatch.id = 'TryCatch';\r\n    return TryCatch;\r\n}());\n\nvar global$3 = misc_3();\r\nvar lastHref;\r\n/** Default Breadcrumbs instrumentations */\r\nvar Breadcrumbs = /** @class */ (function () {\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    function Breadcrumbs(options) {\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = Breadcrumbs.id;\r\n        this.options = tslib_1.__assign({ beacon: true, console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\r\n    }\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentBeacon = function () {\r\n        if (!supports_6()) {\r\n            return;\r\n        }\r\n        /** JSDoc */\r\n        function beaconReplacementFunction(originalBeaconFunction) {\r\n            return function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var url = args[0];\r\n                var data = args[1];\r\n                // If the browser successfully queues the request for delivery, the method returns \"true\" and returns \"false\" otherwise.\r\n                // https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API/Using_the_Beacon_API\r\n                var result = originalBeaconFunction.apply(this, args);\r\n                var client = core.getCurrentHub().getClient();\r\n                var dsn = client && client.getDsn();\r\n                if (dsn) {\r\n                    var filterUrl = new core.API(dsn).getStoreEndpoint();\r\n                    // if Sentry key appears in URL, don't capture it as a request\r\n                    // but rather as our own 'sentry' type breadcrumb\r\n                    if (filterUrl && string_4(url, filterUrl)) {\r\n                        addSentryBreadcrumb(data);\r\n                        return result;\r\n                    }\r\n                }\r\n                // What is wrong with you TypeScript...\r\n                var breadcrumbData = {\r\n                    category: 'beacon',\r\n                    data: data,\r\n                    type: 'http',\r\n                };\r\n                if (!result) {\r\n                    breadcrumbData.level = dist_1.Error;\r\n                }\r\n                Breadcrumbs.addBreadcrumb(breadcrumbData, {\r\n                    input: args,\r\n                    result: result,\r\n                });\r\n                return result;\r\n            };\r\n        }\r\n        object_4(global$3.navigator, 'sendBeacon', beaconReplacementFunction);\r\n    };\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentConsole = function () {\r\n        if (!('console' in global$3)) {\r\n            return;\r\n        }\r\n        ['debug', 'info', 'warn', 'error', 'log'].forEach(function (level) {\r\n            if (!(level in global$3.console)) {\r\n                return;\r\n            }\r\n            object_4(global$3.console, level, function (originalConsoleLevel) {\r\n                return function () {\r\n                    var args = [];\r\n                    for (var _i = 0; _i < arguments.length; _i++) {\r\n                        args[_i] = arguments[_i];\r\n                    }\r\n                    var breadcrumbData = {\r\n                        category: 'console',\r\n                        data: {\r\n                            extra: {\r\n                                arguments: object_6(args, 2),\r\n                            },\r\n                            logger: 'console',\r\n                        },\r\n                        level: dist_1.fromString(level),\r\n                        message: string_3(args, ' '),\r\n                    };\r\n                    if (level === 'assert') {\r\n                        if (args[0] === false) {\r\n                            breadcrumbData.message = \"Assertion failed: \" + (string_3(args.slice(1), ' ') || 'console.assert');\r\n                            breadcrumbData.data.extra.arguments = object_6(args.slice(1), 2);\r\n                        }\r\n                    }\r\n                    Breadcrumbs.addBreadcrumb(breadcrumbData, {\r\n                        input: args,\r\n                        level: level,\r\n                    });\r\n                    // this fails for some browsers. :(\r\n                    if (originalConsoleLevel) {\r\n                        Function.prototype.apply.call(originalConsoleLevel, global$3.console, args);\r\n                    }\r\n                };\r\n            });\r\n        });\r\n    };\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentDOM = function () {\r\n        if (!('document' in global$3)) {\r\n            return;\r\n        }\r\n        // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\r\n        // to the document. Do this before we instrument addEventListener.\r\n        global$3.document.addEventListener('click', breadcrumbEventHandler('click'), false);\r\n        global$3.document.addEventListener('keypress', keypressEventHandler(), false);\r\n    };\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentFetch = function () {\r\n        if (!supports_5()) {\r\n            return;\r\n        }\r\n        object_4(global$3, 'fetch', function (originalFetch) {\r\n            return function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var fetchInput = args[0];\r\n                var method = 'GET';\r\n                var url;\r\n                if (typeof fetchInput === 'string') {\r\n                    url = fetchInput;\r\n                }\r\n                else if ('Request' in global$3 && fetchInput instanceof Request) {\r\n                    url = fetchInput.url;\r\n                    if (fetchInput.method) {\r\n                        method = fetchInput.method;\r\n                    }\r\n                }\r\n                else {\r\n                    url = String(fetchInput);\r\n                }\r\n                if (args[1] && args[1].method) {\r\n                    method = args[1].method;\r\n                }\r\n                var client = core.getCurrentHub().getClient();\r\n                var dsn = client && client.getDsn();\r\n                if (dsn) {\r\n                    var filterUrl = new core.API(dsn).getStoreEndpoint();\r\n                    // if Sentry key appears in URL, don't capture it as a request\r\n                    // but rather as our own 'sentry' type breadcrumb\r\n                    if (filterUrl && string_4(url, filterUrl)) {\r\n                        if (method === 'POST' && args[1] && args[1].body) {\r\n                            addSentryBreadcrumb(args[1].body);\r\n                        }\r\n                        return originalFetch.apply(global$3, args);\r\n                    }\r\n                }\r\n                var fetchData = {\r\n                    method: method,\r\n                    url: url,\r\n                };\r\n                return originalFetch\r\n                    .apply(global$3, args)\r\n                    .then(function (response) {\r\n                    fetchData.status_code = response.status;\r\n                    Breadcrumbs.addBreadcrumb({\r\n                        category: 'fetch',\r\n                        data: fetchData,\r\n                        type: 'http',\r\n                    }, {\r\n                        input: args,\r\n                        response: response,\r\n                    });\r\n                    return response;\r\n                })\r\n                    .catch(function (error) {\r\n                    Breadcrumbs.addBreadcrumb({\r\n                        category: 'fetch',\r\n                        data: fetchData,\r\n                        level: dist_1.Error,\r\n                        type: 'http',\r\n                    }, {\r\n                        error: error,\r\n                        input: args,\r\n                    });\r\n                    throw error;\r\n                });\r\n            };\r\n        });\r\n    };\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentHistory = function () {\r\n        var _this = this;\r\n        if (!supports_9()) {\r\n            return;\r\n        }\r\n        var captureUrlChange = function (from, to) {\r\n            var parsedLoc = misc_7(global$3.location.href);\r\n            var parsedTo = misc_7(to);\r\n            var parsedFrom = misc_7(from);\r\n            // Initial pushState doesn't provide `from` information\r\n            if (!parsedFrom.path) {\r\n                parsedFrom = parsedLoc;\r\n            }\r\n            // because onpopstate only tells you the \"new\" (to) value of location.href, and\r\n            // not the previous (from) value, we need to track the value of the current URL\r\n            // state ourselves\r\n            lastHref = to;\r\n            // Use only the path component of the URL if the URL matches the current\r\n            // document (almost all the time when using pushState)\r\n            if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\r\n                // tslint:disable-next-line:no-parameter-reassignment\r\n                to = parsedTo.relative;\r\n            }\r\n            if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\r\n                // tslint:disable-next-line:no-parameter-reassignment\r\n                from = parsedFrom.relative;\r\n            }\r\n            Breadcrumbs.addBreadcrumb({\r\n                category: 'navigation',\r\n                data: {\r\n                    from: from,\r\n                    to: to,\r\n                },\r\n            });\r\n        };\r\n        // record navigation (URL) changes\r\n        var oldOnPopState = global$3.onpopstate;\r\n        global$3.onpopstate = function () {\r\n            var args = [];\r\n            for (var _i = 0; _i < arguments.length; _i++) {\r\n                args[_i] = arguments[_i];\r\n            }\r\n            var currentHref = global$3.location.href;\r\n            captureUrlChange(lastHref, currentHref);\r\n            if (oldOnPopState) {\r\n                return oldOnPopState.apply(_this, args);\r\n            }\r\n        };\r\n        /** JSDoc */\r\n        function historyReplacementFunction(originalHistoryFunction) {\r\n            // note history.pushState.length is 0; intentionally not declaring\r\n            // params to preserve 0 arity\r\n            return function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var url = args.length > 2 ? args[2] : undefined;\r\n                // url argument is optional\r\n                if (url) {\r\n                    // coerce to string (this is what pushState does)\r\n                    captureUrlChange(lastHref, String(url));\r\n                }\r\n                return originalHistoryFunction.apply(this, args);\r\n            };\r\n        }\r\n        object_4(global$3.history, 'pushState', historyReplacementFunction);\r\n        object_4(global$3.history, 'replaceState', historyReplacementFunction);\r\n    };\r\n    /** JSDoc */\r\n    Breadcrumbs.prototype.instrumentXHR = function () {\r\n        if (!('XMLHttpRequest' in global$3)) {\r\n            return;\r\n        }\r\n        /** JSDoc */\r\n        function wrapProp(prop, xhr) {\r\n            // TODO: Fix XHR types\r\n            if (prop in xhr && is_6(xhr[prop])) {\r\n                object_4(xhr, prop, function (original) {\r\n                    return wrap(original, {\r\n                        mechanism: {\r\n                            data: {\r\n                                function: prop,\r\n                                handler: (original && original.name) || '<anonymous>',\r\n                            },\r\n                            handled: true,\r\n                            type: 'instrument',\r\n                        },\r\n                    });\r\n                });\r\n            }\r\n        }\r\n        var xhrproto = XMLHttpRequest.prototype;\r\n        object_4(xhrproto, 'open', function (originalOpen) {\r\n            return function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var url = args[1];\r\n                this.__sentry_xhr__ = {\r\n                    method: args[0],\r\n                    url: args[1],\r\n                };\r\n                var client = core.getCurrentHub().getClient();\r\n                var dsn = client && client.getDsn();\r\n                if (dsn) {\r\n                    var filterUrl = new core.API(dsn).getStoreEndpoint();\r\n                    // if Sentry key appears in URL, don't capture it as a request\r\n                    // but rather as our own 'sentry' type breadcrumb\r\n                    if (is_7(url) && (filterUrl && string_4(url, filterUrl))) {\r\n                        this.__sentry_own_request__ = true;\r\n                    }\r\n                }\r\n                return originalOpen.apply(this, args);\r\n            };\r\n        });\r\n        object_4(xhrproto, 'send', function (originalSend) {\r\n            return function () {\r\n                var args = [];\r\n                for (var _i = 0; _i < arguments.length; _i++) {\r\n                    args[_i] = arguments[_i];\r\n                }\r\n                var xhr = this; // tslint:disable-line:no-this-assignment\r\n                if (xhr.__sentry_own_request__) {\r\n                    addSentryBreadcrumb(args[0]);\r\n                }\r\n                /** JSDoc */\r\n                function onreadystatechangeHandler() {\r\n                    if (xhr.readyState === 4) {\r\n                        if (xhr.__sentry_own_request__) {\r\n                            return;\r\n                        }\r\n                        try {\r\n                            // touching statusCode in some platforms throws\r\n                            // an exception\r\n                            if (xhr.__sentry_xhr__) {\r\n                                xhr.__sentry_xhr__.status_code = xhr.status;\r\n                            }\r\n                        }\r\n                        catch (e) {\r\n                            /* do nothing */\r\n                        }\r\n                        Breadcrumbs.addBreadcrumb({\r\n                            category: 'xhr',\r\n                            data: xhr.__sentry_xhr__,\r\n                            type: 'http',\r\n                        }, {\r\n                            xhr: xhr,\r\n                        });\r\n                    }\r\n                }\r\n                ['onload', 'onerror', 'onprogress'].forEach(function (prop) {\r\n                    wrapProp(prop, xhr);\r\n                });\r\n                if ('onreadystatechange' in xhr && is_6(xhr.onreadystatechange)) {\r\n                    object_4(xhr, 'onreadystatechange', function (original) {\r\n                        return wrap(original, {\r\n                            mechanism: {\r\n                                data: {\r\n                                    function: 'onreadystatechange',\r\n                                    handler: (original && original.name) || '<anonymous>',\r\n                                },\r\n                                handled: true,\r\n                                type: 'instrument',\r\n                            },\r\n                        }, onreadystatechangeHandler);\r\n                    });\r\n                }\r\n                else {\r\n                    // if onreadystatechange wasn't actually set by the page on this xhr, we\r\n                    // are free to set our own and capture the breadcrumb\r\n                    xhr.onreadystatechange = onreadystatechangeHandler;\r\n                }\r\n                return originalSend.apply(this, args);\r\n            };\r\n        });\r\n    };\r\n    /**\r\n     * Helper that checks if integration is enabled on the client.\r\n     * @param breadcrumb Breadcrumb\r\n     * @param hint SentryBreadcrumbHint\r\n     */\r\n    Breadcrumbs.addBreadcrumb = function (breadcrumb, hint) {\r\n        if (core.getCurrentHub().getIntegration(Breadcrumbs)) {\r\n            core.getCurrentHub().addBreadcrumb(breadcrumb, hint);\r\n        }\r\n    };\r\n    /**\r\n     * Instrument browser built-ins w/ breadcrumb capturing\r\n     *  - Console API\r\n     *  - DOM API (click/typing)\r\n     *  - XMLHttpRequest API\r\n     *  - Fetch API\r\n     *  - History API\r\n     */\r\n    Breadcrumbs.prototype.setupOnce = function () {\r\n        if (this.options.console) {\r\n            this.instrumentConsole();\r\n        }\r\n        if (this.options.dom) {\r\n            this.instrumentDOM();\r\n        }\r\n        if (this.options.xhr) {\r\n            this.instrumentXHR();\r\n        }\r\n        if (this.options.fetch) {\r\n            this.instrumentFetch();\r\n        }\r\n        if (this.options.beacon) {\r\n            this.instrumentBeacon();\r\n        }\r\n        if (this.options.history) {\r\n            this.instrumentHistory();\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Breadcrumbs.id = 'Breadcrumbs';\r\n    return Breadcrumbs;\r\n}());\r\n/** JSDoc */\r\nfunction addSentryBreadcrumb(serializedData) {\r\n    // There's always something that can go wrong with deserialization...\r\n    try {\r\n        var event_1 = object_2(serializedData);\r\n        Breadcrumbs.addBreadcrumb({\r\n            category: 'sentry',\r\n            event_id: event_1.event_id,\r\n            level: event_1.level || dist_1.fromString('error'),\r\n            message: misc_8(event_1),\r\n        }, {\r\n            event: event_1,\r\n        });\r\n    }\r\n    catch (_oO) {\r\n        logger_2.error('Error while adding sentry type breadcrumb');\r\n    }\r\n}\n\nvar DEFAULT_KEY = 'cause';\r\nvar DEFAULT_LIMIT = 5;\r\n/** Adds SDK info to an event. */\r\nvar LinkedErrors = /** @class */ (function () {\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    function LinkedErrors(options) {\r\n        if (options === void 0) { options = {}; }\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = LinkedErrors.id;\r\n        this.key = options.key || DEFAULT_KEY;\r\n        this.limit = options.limit || DEFAULT_LIMIT;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LinkedErrors.prototype.setupOnce = function () {\r\n        var _this = this;\r\n        core.addGlobalEventProcessor(function (event, hint) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n            var self;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                self = core.getCurrentHub().getIntegration(LinkedErrors);\r\n                if (self) {\r\n                    return [2 /*return*/, self.handler(event, hint)];\r\n                }\r\n                return [2 /*return*/, event];\r\n            });\r\n        }); });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LinkedErrors.prototype.handler = function (event, hint) {\r\n        if (!event.exception || !event.exception.values || !hint || !(hint.originalException instanceof Error)) {\r\n            return event;\r\n        }\r\n        var linkedErrors = this.walkErrorTree(hint.originalException, this.key);\r\n        event.exception.values = tslib_1.__spread(linkedErrors, event.exception.values);\r\n        return event;\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LinkedErrors.prototype.walkErrorTree = function (error, key, stack) {\r\n        if (stack === void 0) { stack = []; }\r\n        if (!(error[key] instanceof Error) || stack.length + 1 >= this.limit) {\r\n            return stack;\r\n        }\r\n        var stacktrace = computeStackTrace(error[key]);\r\n        var exception = exceptionFromStacktrace(stacktrace);\r\n        return this.walkErrorTree(error[key], key, tslib_1.__spread([exception], stack));\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    LinkedErrors.id = 'LinkedErrors';\r\n    return LinkedErrors;\r\n}());\n\nvar global$4 = misc_3();\r\n/** UserAgent */\r\nvar UserAgent = /** @class */ (function () {\r\n    function UserAgent() {\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = UserAgent.id;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    UserAgent.prototype.setupOnce = function () {\r\n        var _this = this;\r\n        core.addGlobalEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n            var request;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                if (core.getCurrentHub().getIntegration(UserAgent)) {\r\n                    if (!global$4.navigator || !global$4.location) {\r\n                        return [2 /*return*/, event];\r\n                    }\r\n                    request = event.request || {};\r\n                    request.url = request.url || global$4.location.href;\r\n                    request.headers = request.headers || {};\r\n                    request.headers['User-Agent'] = global$4.navigator.userAgent;\r\n                    return [2 /*return*/, tslib_1.__assign({}, event, { request: request })];\r\n                }\r\n                return [2 /*return*/, event];\r\n            });\r\n        }); });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    UserAgent.id = 'UserAgent';\r\n    return UserAgent;\r\n}());\n\n/** JSDoc */\r\nvar Ember = /** @class */ (function () {\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    function Ember(options) {\r\n        if (options === void 0) { options = {}; }\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = Ember.id;\r\n        this.Ember =\r\n            options.Ember ||\r\n                misc_3().Ember;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Ember.prototype.setupOnce = function () {\r\n        var _this = this;\r\n        if (!this.Ember) {\r\n            return;\r\n        }\r\n        var oldOnError = this.Ember.onerror;\r\n        this.Ember.onerror = function (error) {\r\n            if (core.getCurrentHub().getIntegration(Ember)) {\r\n                core.withScope(function (scope) {\r\n                    _this.addIntegrationToSdkInfo(scope);\r\n                    core.captureException(error);\r\n                });\r\n            }\r\n            if (typeof oldOnError === 'function') {\r\n                oldOnError.call(_this.Ember, error);\r\n            }\r\n            else if (_this.Ember.testing) {\r\n                throw error;\r\n            }\r\n        };\r\n        this.Ember.RSVP.on('error', function (reason) {\r\n            if (core.getCurrentHub().getIntegration(Ember)) {\r\n                core.withScope(function (scope) {\r\n                    if (reason instanceof Error) {\r\n                        scope.setExtra('context', 'Unhandled Promise error detected');\r\n                        _this.addIntegrationToSdkInfo(scope);\r\n                        core.captureException(reason);\r\n                    }\r\n                    else {\r\n                        scope.setExtra('reason', reason);\r\n                        _this.addIntegrationToSdkInfo(scope);\r\n                        core.captureMessage('Unhandled Promise error detected');\r\n                    }\r\n                });\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Appends SDK integrations\r\n     * @param scope The scope currently used.\r\n     */\r\n    Ember.prototype.addIntegrationToSdkInfo = function (scope) {\r\n        var _this = this;\r\n        scope.addEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n            var integrations;\r\n            return tslib_1.__generator(this, function (_a) {\r\n                if (event.sdk) {\r\n                    integrations = event.sdk.integrations || [];\r\n                    event.sdk = tslib_1.__assign({}, event.sdk, { integrations: tslib_1.__spread(integrations, ['ember']) });\r\n                }\r\n                return [2 /*return*/, event];\r\n            });\r\n        }); });\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Ember.id = 'Ember';\r\n    return Ember;\r\n}());\n\n/** JSDoc */\r\nvar Vue = /** @class */ (function () {\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    function Vue(options) {\r\n        if (options === void 0) { options = {}; }\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = Vue.id;\r\n        this.Vue =\r\n            options.Vue ||\r\n                misc_3().Vue;\r\n    }\r\n    /** JSDoc */\r\n    Vue.prototype.formatComponentName = function (vm) {\r\n        if (vm.$root === vm) {\r\n            return 'root instance';\r\n        }\r\n        var name = vm._isVue ? vm.$options.name || vm.$options._componentTag : vm.name;\r\n        return ((name ? \"component <\" + name + \">\" : 'anonymous component') +\r\n            (vm._isVue && vm.$options.__file ? \" at \" + vm.$options.__file : ''));\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Vue.prototype.setupOnce = function () {\r\n        var _this = this;\r\n        if (!this.Vue || !this.Vue.config) {\r\n            return;\r\n        }\r\n        var oldOnError = this.Vue.config.errorHandler;\r\n        this.Vue.config.errorHandler = function (error, vm, info) {\r\n            var metadata = {};\r\n            if (is_9(vm)) {\r\n                metadata.componentName = _this.formatComponentName(vm);\r\n                metadata.propsData = vm.$options.propsData;\r\n            }\r\n            if (!is_5(info)) {\r\n                metadata.lifecycleHook = info;\r\n            }\r\n            if (core.getCurrentHub().getIntegration(Vue)) {\r\n                core.withScope(function (scope) {\r\n                    Object.keys(metadata).forEach(function (key) {\r\n                        scope.setExtra(key, metadata[key]);\r\n                    });\r\n                    scope.addEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\r\n                        var integrations;\r\n                        return tslib_1.__generator(this, function (_a) {\r\n                            if (event.sdk) {\r\n                                integrations = event.sdk.integrations || [];\r\n                                event.sdk = tslib_1.__assign({}, event.sdk, { integrations: tslib_1.__spread(integrations, ['vue']) });\r\n                            }\r\n                            return [2 /*return*/, event];\r\n                        });\r\n                    }); });\r\n                    core.captureException(error);\r\n                });\r\n            }\r\n            if (typeof oldOnError === 'function') {\r\n                oldOnError.call(_this.Vue, error, vm, info);\r\n            }\r\n        };\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    Vue.id = 'Vue';\r\n    return Vue;\r\n}());\n\n/** JSDoc */\r\nvar ReportTypes;\r\n(function (ReportTypes) {\r\n    /** JSDoc */\r\n    ReportTypes[\"Crash\"] = \"crash\";\r\n    /** JSDoc */\r\n    ReportTypes[\"Deprecation\"] = \"deprecation\";\r\n    /** JSDoc */\r\n    ReportTypes[\"Intervention\"] = \"intervention\";\r\n})(ReportTypes || (ReportTypes = {}));\r\n/** Reporting API integration - https://w3c.github.io/reporting/ */\r\nvar ReportingObserver = /** @class */ (function () {\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    function ReportingObserver(options) {\r\n        if (options === void 0) { options = {\r\n            types: [ReportTypes.Crash, ReportTypes.Deprecation, ReportTypes.Intervention],\r\n        }; }\r\n        this.options = options;\r\n        /**\r\n         * @inheritDoc\r\n         */\r\n        this.name = ReportingObserver.id;\r\n    }\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ReportingObserver.prototype.setupOnce = function () {\r\n        if (!supports_7()) {\r\n            return;\r\n        }\r\n        var observer = new (misc_3().ReportingObserver)(this.handler.bind(this), {\r\n            buffered: true,\r\n            types: this.options.types,\r\n        });\r\n        observer.observe();\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ReportingObserver.prototype.handler = function (reports) {\r\n        var e_1, _a;\r\n        if (!core.getCurrentHub().getIntegration(ReportingObserver)) {\r\n            return;\r\n        }\r\n        var _loop_1 = function (report) {\r\n            core.withScope(function (scope) {\r\n                scope.setExtra('url', report.url);\r\n                var label = \"ReportingObserver [\" + report.type + \"]\";\r\n                var details = 'No details available';\r\n                if (report.body) {\r\n                    // Object.keys doesn't work on ReportBody, as all properties are inheirted\r\n                    var plainBody = {};\r\n                    // tslint:disable-next-line:forin\r\n                    for (var prop in report.body) {\r\n                        plainBody[prop] = report.body[prop];\r\n                    }\r\n                    scope.setExtra('body', plainBody);\r\n                    if (report.type === ReportTypes.Crash) {\r\n                        var body = report.body;\r\n                        // A fancy way to create a message out of crashId OR reason OR both OR fallback\r\n                        details = [body.crashId || '', body.reason || ''].join(' ').trim() || details;\r\n                    }\r\n                    else {\r\n                        var body = report.body;\r\n                        details = body.message || details;\r\n                    }\r\n                }\r\n                core.captureMessage(label + \": \" + details);\r\n            });\r\n        };\r\n        try {\r\n            for (var reports_1 = tslib_1.__values(reports), reports_1_1 = reports_1.next(); !reports_1_1.done; reports_1_1 = reports_1.next()) {\r\n                var report = reports_1_1.value;\r\n                _loop_1(report);\r\n            }\r\n        }\r\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\r\n        finally {\r\n            try {\r\n                if (reports_1_1 && !reports_1_1.done && (_a = reports_1.return)) _a.call(reports_1);\r\n            }\r\n            finally { if (e_1) throw e_1.error; }\r\n        }\r\n    };\r\n    /**\r\n     * @inheritDoc\r\n     */\r\n    ReportingObserver.id = 'ReportingObserver';\r\n    return ReportingObserver;\r\n}());\n\n\n\nvar BrowserIntegrations = /*#__PURE__*/Object.freeze({\n\tGlobalHandlers: GlobalHandlers,\n\tTryCatch: TryCatch,\n\tBreadcrumbs: Breadcrumbs,\n\tLinkedErrors: LinkedErrors,\n\tUserAgent: UserAgent,\n\tEmber: Ember,\n\tVue: Vue,\n\tReportingObserver: ReportingObserver\n});\n\nvar defaultIntegrations = [\r\n    // Common\r\n    new core.Integrations.Dedupe(),\r\n    new core.Integrations.InboundFilters(),\r\n    new core.Integrations.FunctionToString(),\r\n    new core.Integrations.ExtraErrorData(),\r\n    // Native Wrappers\r\n    new TryCatch(),\r\n    new Breadcrumbs(),\r\n    // Global Handlers\r\n    new GlobalHandlers(),\r\n    // Misc\r\n    new LinkedErrors(),\r\n    new UserAgent(),\r\n];\r\n/**\r\n * The Sentry Browser SDK Client.\r\n *\r\n * To use this SDK, call the {@link init} function as early as possible when\r\n * loading the web page. To set context information or send manual events, use\r\n * the provided methods.\r\n *\r\n * @example\r\n * import { init } from '@sentry/browser';\r\n *\r\n * init({\r\n *   dsn: '__DSN__',\r\n *   // ...\r\n * });\r\n *\r\n * @example\r\n * import { configureScope } from '@sentry/browser';\r\n * configureScope((scope: Scope) => {\r\n *   scope.setExtra({ battery: 0.7 });\r\n *   scope.setTag({ user_mode: 'admin' });\r\n *   scope.setUser({ id: '4711' });\r\n * });\r\n *\r\n * @example\r\n * import { addBreadcrumb } from '@sentry/browser';\r\n * addBreadcrumb({\r\n *   message: 'My Breadcrumb',\r\n *   // ...\r\n * });\r\n *\r\n * @example\r\n * import * as Sentry from '@sentry/browser';\r\n * Sentry.captureMessage('Hello, world!');\r\n * Sentry.captureException(new Error('Good bye'));\r\n * Sentry.captureEvent({\r\n *   message: 'Manual',\r\n *   stacktrace: [\r\n *     // ...\r\n *   ],\r\n * });\r\n *\r\n * @see BrowserOptions for documentation on configuration options.\r\n */\r\nfunction init(options) {\r\n    if (options === void 0) { options = {}; }\r\n    if (options.defaultIntegrations === undefined) {\r\n        options.defaultIntegrations = defaultIntegrations;\r\n    }\r\n    core.initAndBind(BrowserClient, options);\r\n}\r\n/**\r\n * Present the user with a report dialog.\r\n *\r\n * @param options Everything is optional, we try to fetch all info need from the global scope.\r\n */\r\nfunction showReportDialog(options) {\r\n    if (options === void 0) { options = {}; }\r\n    if (!options.eventId) {\r\n        options.eventId = core.getCurrentHub().lastEventId();\r\n    }\r\n    core.getCurrentHub().getClient().showReportDialog(options);\r\n}\r\n/**\r\n * This is the getter for lastEventId.\r\n *\r\n * @returns The last event id of a captured event.\r\n */\r\nfunction lastEventId() {\r\n    return core.getCurrentHub().lastEventId();\r\n}\r\n/**\r\n * This function is here to be API compatible with the loader\r\n */\r\nfunction forceLoad() {\r\n    // Noop\r\n}\r\n/**\r\n * This function is here to be API compatible with the loader\r\n */\r\nfunction onLoad(callback) {\r\n    callback();\r\n}\n\nvar INTEGRATIONS = tslib_1.__assign({}, core.Integrations, BrowserIntegrations);\n\nexports.addGlobalEventProcessor = core.addGlobalEventProcessor;\nexports.addBreadcrumb = core.addBreadcrumb;\nexports.captureException = core.captureException;\nexports.captureEvent = core.captureEvent;\nexports.captureMessage = core.captureMessage;\nexports.configureScope = core.configureScope;\nexports.withScope = core.withScope;\nexports.getHubFromCarrier = core.getHubFromCarrier;\nexports.getCurrentHub = core.getCurrentHub;\nexports.Hub = core.Hub;\nexports.Scope = core.Scope;\nexports.Integrations = INTEGRATIONS;\nexports.Transports = index$1;\nexports.Severity = dist_1;\nexports.Status = dist_2;\nexports.BrowserBackend = BrowserBackend;\nexports.BrowserClient = BrowserClient;\nexports.defaultIntegrations = defaultIntegrations;\nexports.forceLoad = forceLoad;\nexports.init = init;\nexports.lastEventId = lastEventId;\nexports.onLoad = onLoad;\nexports.showReportDialog = showReportDialog;\nexports.SDK_NAME = SDK_NAME;\nexports.SDK_VERSION = SDK_VERSION;\n//# sourceMappingURL=index.js.map\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20), __webpack_require__(23)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/browser/dist/index.js\n// module id = 63\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/browser/dist/index.js?");
  
  /***/ }),
  
  /***/ 64:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar React = __webpack_require__(0);\nvar connect = __webpack_require__(13).connect;\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar PropTypes = __webpack_require__(1);\nvar injectIntl = __webpack_require__(5).injectIntl;\nvar intlShape = __webpack_require__(5).intlShape;\n\nvar navigationActions = __webpack_require__(16);\nvar Modal = __webpack_require__(24);\n\nvar CanceledDeletionModal = function CanceledDeletionModal(_ref) {\n    var canceledDeletionOpen = _ref.canceledDeletionOpen,\n        handleCloseCanceledDeletion = _ref.handleCloseCanceledDeletion,\n        intl = _ref.intl;\n    return React.createElement(\n        Modal,\n        {\n            isOpen: canceledDeletionOpen,\n            style: {\n                content: {\n                    padding: 15\n                }\n            },\n            onRequestClose: handleCloseCanceledDeletion\n        },\n        React.createElement(\n            'h4',\n            null,\n            React.createElement(FormattedMessage, { id: 'general.noDeletionTitle' })\n        ),\n        React.createElement(\n            'p',\n            null,\n            React.createElement(FormattedMessage, {\n                id: 'general.noDeletionDescription',\n                values: {\n                    resetLink: React.createElement(\n                        'a',\n                        { href: '/accounts/password_reset/' },\n                        intl.formatMessage({ id: 'general.noDeletionLink' })\n                    )\n                }\n            })\n        )\n    );\n};\n\nCanceledDeletionModal.propTypes = {\n    canceledDeletionOpen: PropTypes.bool,\n    handleCloseCanceledDeletion: PropTypes.func,\n    intl: intlShape\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n    return {\n        canceledDeletionOpen: state.navigation && state.navigation.canceledDeletionOpen\n    };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n    return {\n        handleCloseCanceledDeletion: function handleCloseCanceledDeletion() {\n            dispatch(navigationActions.setCanceledDeletionOpen(false));\n        }\n    };\n};\n\nvar ConnectedCanceledDeletionModal = connect(mapStateToProps, mapDispatchToProps)(CanceledDeletionModal);\n\nmodule.exports = injectIntl(ConnectedCanceledDeletionModal);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/canceled-deletion-modal.jsx\n// module id = 64\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/canceled-deletion-modal.jsx?");
  
  /***/ }),
  
  /***/ 65:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar connect = __webpack_require__(13).connect;\n\nvar Login = __webpack_require__(93);\n\n__webpack_require__(34);\n\nvar ConnectedLogin = function ConnectedLogin(_ref) {\n    var error = _ref.error,\n        onLogIn = _ref.onLogIn;\n    return React.createElement(Login, {\n        error: error,\n        key: 'login-dropdown-presentation',\n        onLogIn: onLogIn\n    });\n};\n\nConnectedLogin.propTypes = {\n    error: PropTypes.string,\n    onLogIn: PropTypes.func\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n    return {\n        error: state.navigation && state.navigation.loginError\n    };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps() {\n    return {};\n};\n\nmodule.exports = connect(mapStateToProps, mapDispatchToProps)(ConnectedLogin);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/connected-login.jsx\n// module id = 65\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/connected-login.jsx?");
  
  /***/ }),
  
  /***/ 66:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar omit = __webpack_require__(12);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar Modal = __webpack_require__(24);\n\n__webpack_require__(118);\n\nvar IframeModal = function IframeModal(props) {\n    return React.createElement(\n        Modal,\n        omit(props, ['src']),\n        React.createElement('iframe', {\n            className: classNames('modal-content-iframe', props.className),\n            ref: props.componentRef,\n            src: props.src\n        })\n    );\n};\n\nIframeModal.propTypes = {\n    className: PropTypes.string,\n    componentRef: PropTypes.func,\n    isOpen: PropTypes.bool,\n    onRequestClose: PropTypes.func,\n    src: PropTypes.string\n};\n\nmodule.exports = IframeModal;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/modal/iframe/modal.jsx\n// module id = 66\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/modal/iframe/modal.jsx?");
  
  /***/ }),
  
  /***/ 67:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar connect = __webpack_require__(13).connect;\n\nvar IframeModal = __webpack_require__(66);\nvar navigationActions = __webpack_require__(16);\n\n__webpack_require__(121);\n\nvar Registration = function (_React$Component) {\n    _inherits(Registration, _React$Component);\n\n    function Registration(props) {\n        _classCallCheck(this, Registration);\n\n        var _this = _possibleConstructorReturn(this, (Registration.__proto__ || Object.getPrototypeOf(Registration)).call(this, props));\n\n        bindAll(_this, ['handleMessage', 'toggleMessageListener']);\n        return _this;\n    }\n\n    _createClass(Registration, [{\n        key: 'componentDidMount',\n        value: function componentDidMount() {\n            if (this.props.isOpen) this.toggleMessageListener(true);\n        }\n    }, {\n        key: 'componentDidUpdate',\n        value: function componentDidUpdate(prevProps) {\n            this.toggleMessageListener(this.props.isOpen && !prevProps.isOpen);\n        }\n    }, {\n        key: 'componentWillUnmount',\n        value: function componentWillUnmount() {\n            this.toggleMessageListener(false);\n        }\n    }, {\n        key: 'handleMessage',\n        value: function handleMessage(e) {\n            if (e.origin !== window.location.origin) return;\n            if (e.source !== this.registrationIframe.contentWindow) return;\n            if (e.data === 'registration-done') this.props.handleCompleteRegistration();\n            if (e.data === 'registration-relaunch') {\n                this.registrationIframe.contentWindow.location.reload();\n            }\n        }\n    }, {\n        key: 'toggleMessageListener',\n        value: function toggleMessageListener(present) {\n            if (present) {\n                window.addEventListener('message', this.handleMessage);\n            } else {\n                window.removeEventListener('message', this.handleMessage);\n            }\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var _this2 = this;\n\n            return React.createElement(IframeModal, {\n                className: 'mod-registration',\n                componentRef: function componentRef(iframe) {\n                    // eslint-disable-line react/jsx-no-bind\n                    _this2.registrationIframe = iframe;\n                },\n                isOpen: this.props.isOpen,\n                src: '/accounts/standalone-registration/',\n                onRequestClose: this.props.handleCloseRegistration\n            });\n        }\n    }]);\n\n    return Registration;\n}(React.Component);\n\nRegistration.propTypes = {\n    handleCloseRegistration: PropTypes.func,\n    handleCompleteRegistration: PropTypes.func,\n    isOpen: PropTypes.bool\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n    return {\n        isOpen: state.navigation.registrationOpen\n    };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n    return {\n        handleCloseRegistration: function handleCloseRegistration() {\n            dispatch(navigationActions.setRegistrationOpen(false));\n        },\n        handleCompleteRegistration: function handleCompleteRegistration() {\n            dispatch(navigationActions.handleCompleteRegistration());\n        }\n    };\n};\n\nmodule.exports = connect(mapStateToProps, mapDispatchToProps)(Registration);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/registration/registration.jsx\n// module id = 67\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/registration/registration.jsx?");
  
  /***/ }),
  
  /***/ 673:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(865);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// add the styles to the DOM\nvar update = __webpack_require__(3)(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./credits.scss\", function() {\n\t\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/postcss-loader/lib/index.js??ref--1-2!../../../node_modules/sass-loader/lib/loader.js!./credits.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/credits/credits.scss\n// module id = 673\n// module chunks = 22\n\n//# sourceURL=webpack:///./src/views/credits/credits.scss?");
  
  /***/ }),
  
  /***/ 68:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar object_1 = __webpack_require__(19);\nvar dsn_1 = __webpack_require__(17);\nvar SENTRY_API_VERSION = '7';\n/** Helper class to provide urls to different Sentry endpoints. */\nvar API = /** @class */ (function () {\n    /** Create a new instance of API */\n    function API(dsn) {\n        this.dsn = dsn;\n        this.dsnObject = new dsn_1.Dsn(dsn);\n    }\n    /** Returns the Dsn object. */\n    API.prototype.getDsn = function () {\n        return this.dsnObject;\n    };\n    /** Returns a string with auth headers in the url to the store endpoint. */\n    API.prototype.getStoreEndpoint = function () {\n        return \"\" + this.getBaseUrl() + this.getStoreEndpointPath();\n    };\n    /** Returns the store endpoint with auth added in url encoded. */\n    API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n        var dsn = this.dsnObject;\n        var auth = {\n            sentry_key: dsn.user,\n            sentry_version: SENTRY_API_VERSION,\n        };\n        // Auth is intentionally sent as part of query string (NOT as custom HTTP header)\n        // to avoid preflight CORS requests\n        return this.getStoreEndpoint() + \"?\" + object_1.urlEncode(auth);\n    };\n    /** Returns the base path of the url including the port. */\n    API.prototype.getBaseUrl = function () {\n        var dsn = this.dsnObject;\n        var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n        var port = dsn.port ? \":\" + dsn.port : '';\n        return protocol + \"//\" + dsn.host + port;\n    };\n    /** Returns only the path component for the store endpoint. */\n    API.prototype.getStoreEndpointPath = function () {\n        var dsn = this.dsnObject;\n        return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n    };\n    /** Returns an object that can be used in request headers. */\n    API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n        var dsn = this.dsnObject;\n        var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n        header.push(\"sentry_timestamp=\" + new Date().getTime());\n        header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n        header.push(\"sentry_key=\" + dsn.user);\n        if (dsn.pass) {\n            header.push(\"sentry_secret=\" + dsn.pass);\n        }\n        return {\n            'Content-Type': 'application/json',\n            'X-Sentry-Auth': header.join(', '),\n        };\n    };\n    /** Returns the url to the report dialog endpoint. */\n    API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n        if (dialogOptions === void 0) { dialogOptions = {}; }\n        var dsn = this.dsnObject;\n        var endpoint = \"\" + this.getBaseUrl() + (dsn.path ? \"/\" + dsn.path : '') + \"/api/embed/error-page/\";\n        var encodedOptions = [];\n        encodedOptions.push(\"dsn=\" + dsn.toString());\n        for (var key in dialogOptions) {\n            if (key === 'user') {\n                if (!dialogOptions.user) {\n                    continue;\n                }\n                if (dialogOptions.user.name) {\n                    encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n                }\n                if (dialogOptions.user.email) {\n                    encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n                }\n            }\n            else {\n                encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n            }\n        }\n        if (encodedOptions.length) {\n            return endpoint + \"?\" + encodedOptions.join('&');\n        }\n        return endpoint;\n    };\n    return API;\n}());\nexports.API = API;\n//# sourceMappingURL=api.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/api.js\n// module id = 68\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/api.js?");
  
  /***/ }),
  
  /***/ 69:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar logger_1 = __webpack_require__(7);\nvar error_1 = __webpack_require__(18);\nvar requestbuffer_1 = __webpack_require__(26);\n/**\n * This is the base implemention of a Backend.\n */\nvar BaseBackend = /** @class */ (function () {\n    /** Creates a new browser backend instance. */\n    function BaseBackend(options) {\n        /** A simple buffer holding all requests. */\n        this.buffer = new requestbuffer_1.RequestBuffer();\n        this.options = options;\n        if (!this.options.dsn) {\n            logger_1.logger.warn('No DSN provided, backend will not do anything.');\n        }\n    }\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            return tslib_1.__generator(this, function (_a) {\n                throw new error_1.SentryError('Backend has to implement `eventFromException` method');\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            return tslib_1.__generator(this, function (_a) {\n                throw new error_1.SentryError('Backend has to implement `eventFromMessage` method');\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.sendEvent = function (_event) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            return tslib_1.__generator(this, function (_a) {\n                throw new error_1.SentryError('Backend has to implement `sendEvent` method');\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.storeBreadcrumb = function (_) {\n        return true;\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.storeScope = function (_) {\n        // Noop\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseBackend.prototype.getBuffer = function () {\n        return this.buffer;\n    };\n    return BaseBackend;\n}());\nexports.BaseBackend = BaseBackend;\n//# sourceMappingURL=basebackend.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/basebackend.js\n// module id = 69\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/basebackend.js?");
  
  /***/ }),
  
  /***/ 694:
  /***/ (function(module, exports) {
  
  eval("module.exports = [{\"userName\":\"labdalla\",\"userId\":35687410,\"name\":\"Lena Abdalla\"},{\"userName\":\"shaanmasala\",\"userId\":29995562,\"name\":\"Yusuf Ahmad\"},{\"userName\":\"ceebee\",\"userId\":2755634,\"name\":\"Christan Balch\"},{\"userName\":\"Zinnea\",\"userId\":35911243,\"name\":\"Zoë Bentley\"},{\"userName\":\"designerd\",\"userId\":3581881,\"name\":\"Carl Bowman\"},{\"userName\":\"leoburd\",\"userId\":385,\"name\":\"Leo Burd\"},{\"userName\":\"FredDog\",\"userId\":2496866,\"name\":\"Jolie Castellucci\"},{\"userName\":\"kittyloaf\",\"userId\":27383273,\"name\":\"Karishma Chadha\"},{\"userName\":\"SunnyDay4aBlueJay\",\"userId\":24164779,\"name\":\"Ellen Daoust\"},{\"userName\":\"shruti\",\"userId\":3714374,\"name\":\"Shruti Dhariwal\"},{\"userName\":\"Champ99\",\"userId\":900283,\"name\":\"Champika Fernando\"},{\"userName\":\"LiFaytheGoblin\",\"userId\":1048810,\"name\":\"Linda Fernsel\"},{\"userName\":\"dietbacon\",\"userId\":24137617,\"name\":\"Mark Ferrell\"},{\"userName\":\"rmiel\",\"userId\":34557192,\"name\":\"Elizabeth Foster\"},{\"userName\":\"lilyland\",\"userId\":17184580,\"name\":\"Lily Gabaree\"},{\"userName\":\"chrisg\",\"userId\":1494,\"name\":\"Chris Garrity\"},{\"userName\":\"Paddle2See\",\"userId\":49156,\"name\":\"Mark Goff\"},{\"userName\":\"GulpTea\",\"userId\":26249744,\"name\":\"Joel Gritter\"},{\"userName\":\"codubee\",\"userId\":10866958,\"name\":\"Colby Gutierrez-Kraybill\"},{\"userName\":\"khanning\",\"userId\":1553886,\"name\":\"Kreg Hanning\"},{\"userName\":\"pizzafordessert\",\"userId\":22183577,\"name\":\"Sean Hickey\"},{\"userName\":\"theladynico\",\"userId\":35550237,\"name\":\"Nicole Hughes\"},{\"userName\":\"sgcc_\",\"userId\":21986973,\"name\":\"Paul Kaplan\"},{\"userName\":\"dsquare\",\"userId\":527836,\"name\":\"DD Liu\"},{\"userName\":\"dinopickles\",\"userId\":34607790,\"name\":\"Katelyn Mann\"},{\"userName\":\"harakou\",\"userId\":373646,\"name\":\"Dalton Miner\"},{\"userName\":\"mwikali\",\"userId\":24838781,\"name\":\"Marian Muthui\"},{\"userName\":\"me_win\",\"userId\":7664502,\"name\":\"My Nguyen\"},{\"userName\":\"lob12\",\"userId\":2860339,\"name\":\"Lisa O'Brien\"},{\"userName\":\"\",\"userId\":\"\",\"name\":\"Abisola Okuk\"},{\"userName\":\"KayOh\",\"userId\":3018280,\"name\":\"Kristin Osiecki\"},{\"userName\":\"scmb1\",\"userId\":246290,\"name\":\"Sarah Otts\"},{\"userName\":\"tarmelop\",\"userId\":2286560,\"name\":\"Carmelo Presicce\"},{\"userName\":\"quacht\",\"userId\":25500116,\"name\":\"Tina Quach\"},{\"userName\":\"mres\",\"userId\":167,\"name\":\"Mitchel Resnick\"},{\"userName\":\"ericr\",\"userId\":159,\"name\":\"Eric Rosenbaum\"},{\"userName\":\"natalie\",\"userId\":169,\"name\":\"Natalie Rusk\"},{\"userName\":\"raimondious\",\"userId\":2584924,\"name\":\"Ray Schamp\"},{\"userName\":\"speakvisually\",\"userId\":3484484,\"name\":\"Eric Schilling\"},{\"userName\":\"thisandagain\",\"userId\":1709047,\"name\":\"Andrew Sliwinski\"},{\"userName\":\"BrycedTea\",\"userId\":2029640,\"name\":\"Bryce Taylor\"},{\"userName\":\"jaleesa\",\"userId\":2374106,\"name\":\"Jaleesa Trapp\"},{\"userName\":\"cheddargirl\",\"userId\":159139,\"name\":\"Franchette Viloria\"},{\"userName\":\"wheelsonfire\",\"userId\":10001044,\"name\":\"Ben Wheeler\"},{\"userName\":\"achouse\",\"userId\":4747093,\"name\":\"Annie Whitehouse\"},{\"userName\":\"cwillisf\",\"userId\":3532363,\"name\":\"Chris Willis-Ford\"},{\"userName\":\"pondermake\",\"userId\":26779669,\"name\":\"Kathy Wu\"},{\"userName\":\"stymphalianbirb\",\"userId\":2796185,\"name\":\"Julia Zimmerman\"}]\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/credits/people.json\n// module id = 694\n// module chunks = 22\n\n//# sourceURL=webpack:///./src/views/credits/people.json?");
  
  /***/ }),
  
  /***/ 695:
  /***/ (function(module, exports) {
  
  eval("module.exports = [{\"logoSrc\":\"/images/credits/siegelfamily.png\",\"logoDestination\":\"https://www.siegelendowment.org\",\"width\":\"146px\"},{\"logoSrc\":\"/images/credits/smilegate.png\",\"logoDestination\":\"https://www.smilegate.com/\",\"width\":\"162px\"},{\"logoSrc\":\"/svgs/credits/google.svg\",\"logoDestination\":\"https://google.com/\",\"width\":\"124px\"},{\"textLogo\":\"Little Bluebridge Foundation\",\"logoDestination\":\"\"},{\"logoSrc\":\"/images/credits/legofoundation.png\",\"logoDestination\":\"https://www.legofoundation.com\",\"width\":\"240px\"},{\"logoSrc\":\"/images/credits/lemann.png\",\"logoDestination\":\"https://fundacaolemann.org.br/en/co-invest\",\"width\":\"156px\"},{\"logoSrc\":\"/svgs/credits/fastly.svg\",\"logoDestination\":\"https://www.fastly.com/\",\"width\":\"108px\"},{\"logoSrc\":\"/images/credits/taledu.png\",\"logoDestination\":\"https://en.100tal.com/\",\"width\":\"188px\"},{\"logoSrc\":\"/images/credits/lego-education.png\",\"logoDestination\":\"https://education.lego.com\",\"width\":\"194px\"},{\"logoSrc\":\"/svgs/credits/cartoonnetwork.svg\",\"logoDestination\":\"https://www.cartoonnetwork.com/\",\"width\":\"78px\"},{\"logoSrc\":\"/images/credits/brainpop.png\",\"logoDestination\":\"https://www.brainpop.com/\",\"width\":\"78px\"},{\"logoSrc\":\"/svgs/credits/amazonws.svg\",\"logoDestination\":\"https://aws.amazon.com/\",\"width\":\"82px\"}]\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/credits/supporters.json\n// module id = 695\n// module chunks = 22\n\n//# sourceURL=webpack:///./src/views/credits/supporters.json?");
  
  /***/ }),
  
  /***/ 7:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar misc_1 = __webpack_require__(11);\n// TODO: Implement different loggers for different environments\nvar global = misc_1.getGlobalObject();\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n    /** JSDoc */\n    function Logger() {\n        this.enabled = false;\n    }\n    /** JSDoc */\n    Logger.prototype.disable = function () {\n        this.enabled = false;\n    };\n    /** JSDoc */\n    Logger.prototype.enable = function () {\n        this.enabled = true;\n    };\n    /** JSDoc */\n    Logger.prototype.log = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc_1.consoleSandbox(function () {\n            global.console.log(\"Sentry Logger [Log]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    /** JSDoc */\n    Logger.prototype.warn = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc_1.consoleSandbox(function () {\n            global.console.warn(\"Sentry Logger [Warn]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    /** JSDoc */\n    Logger.prototype.error = function () {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (!this.enabled) {\n            return;\n        }\n        misc_1.consoleSandbox(function () {\n            global.console.error(\"Sentry Logger [Error]: \" + args.join(' ')); // tslint:disable-line:no-console\n        });\n    };\n    return Logger;\n}());\nvar logger = new Logger();\nexports.logger = logger;\n//# sourceMappingURL=logger.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/logger.js\n// module id = 7\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/logger.js?");
  
  /***/ }),
  
  /***/ 70:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar types_1 = __webpack_require__(85);\nvar async_1 = __webpack_require__(86);\nvar logger_1 = __webpack_require__(7);\nvar misc_1 = __webpack_require__(11);\nvar string_1 = __webpack_require__(28);\nvar dsn_1 = __webpack_require__(17);\nvar integration_1 = __webpack_require__(72);\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 30;\n/**\n * Absolute maximum number of breadcrumbs added to an event. The\n * `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * By default, truncates URL values to 250 chars\n */\nvar MAX_URL_LENGTH = 250;\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient.prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n *   public constructor(options: NodeOptions) {\n *     super(NodeBackend, options);\n *   }\n *\n *   // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n    /**\n     * Initializes this client instance.\n     *\n     * @param backendClass A constructor function to create the backend.\n     * @param options Options for the client.\n     */\n    function BaseClient(backendClass, options) {\n        this.backend = new backendClass(options);\n        this.options = options;\n        if (options.dsn) {\n            this.dsn = new dsn_1.Dsn(options.dsn);\n        }\n        // We have to setup the integrations in the constructor since we do not want\n        // that anyone needs to call client.install();\n        this.integrations = integration_1.setupIntegrations(this.options);\n    }\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.install = function () {\n        if (!this.isEnabled()) {\n            return (this.installed = false);\n        }\n        var backend = this.getBackend();\n        if (!this.installed && backend.install) {\n            backend.install();\n        }\n        return (this.installed = true);\n    };\n    /**\n     * Internal helper function to buffer promises.\n     *\n     * @param promise Any promise, but in this case Promise<SentryResponse>.\n     */\n    BaseClient.prototype.buffer = function (promise) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            return tslib_1.__generator(this, function (_a) {\n                return [2 /*return*/, this.getBackend()\n                        .getBuffer()\n                        .add(promise)];\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.captureException = function (exception, hint, scope) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return tslib_1.__generator(this, function (_a) {\n                return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n                        var event;\n                        return tslib_1.__generator(this, function (_a) {\n                            switch (_a.label) {\n                                case 0: return [4 /*yield*/, this.getBackend().eventFromException(exception, hint)];\n                                case 1:\n                                    event = _a.sent();\n                                    return [2 /*return*/, this.captureEvent(event, hint, scope)];\n                            }\n                        });\n                    }); })())];\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return tslib_1.__generator(this, function (_a) {\n                return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n                        var event;\n                        return tslib_1.__generator(this, function (_a) {\n                            switch (_a.label) {\n                                case 0: return [4 /*yield*/, this.getBackend().eventFromMessage(message, level, hint)];\n                                case 1:\n                                    event = _a.sent();\n                                    return [2 /*return*/, this.captureEvent(event, hint, scope)];\n                            }\n                        });\n                    }); })())];\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.captureEvent = function (event, hint, scope) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _this = this;\n            return tslib_1.__generator(this, function (_a) {\n                // Adding this here is technically not correct since if you call captureMessage/captureException it's already\n                // buffered. But since we not really need the count and we only need to know if the buffer is full or not,\n                // This is fine...\n                return [2 /*return*/, this.buffer((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n                        var _this = this;\n                        return tslib_1.__generator(this, function (_a) {\n                            return [2 /*return*/, this.processEvent(event, function (finalEvent) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {\n                                    return [2 /*return*/, this.getBackend().sendEvent(finalEvent)];\n                                }); }); }, hint, scope)];\n                        });\n                    }); })())];\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.addBreadcrumb = function (breadcrumb, hint, scope) {\n        var _a = this.getOptions(), beforeBreadcrumb = _a.beforeBreadcrumb, _b = _a.maxBreadcrumbs, maxBreadcrumbs = _b === void 0 ? DEFAULT_BREADCRUMBS : _b;\n        if (maxBreadcrumbs <= 0) {\n            return;\n        }\n        var timestamp = new Date().getTime() / 1000;\n        var mergedBreadcrumb = tslib_1.__assign({ timestamp: timestamp }, breadcrumb);\n        var finalBreadcrumb = beforeBreadcrumb\n            ? misc_1.consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n            : mergedBreadcrumb;\n        if (finalBreadcrumb === null) {\n            return;\n        }\n        if (this.getBackend().storeBreadcrumb(finalBreadcrumb) && scope) {\n            scope.addBreadcrumb(finalBreadcrumb, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS));\n        }\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.getDsn = function () {\n        return this.dsn;\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.getOptions = function () {\n        return this.options;\n    };\n    /** Returns the current backend. */\n    BaseClient.prototype.getBackend = function () {\n        return this.backend;\n    };\n    /** Determines whether this SDK is enabled and a valid Dsn is present. */\n    BaseClient.prototype.isEnabled = function () {\n        return this.getOptions().enabled !== false && this.dsn !== undefined;\n    };\n    /**\n     * Adds common information to events.\n     *\n     * The information includes release and environment from `options`,\n     * breadcrumbs and context (extra, tags and user) from the scope.\n     *\n     * Information that is already present in the event is never overwritten. For\n     * nested objects, such as the context, keys are merged.\n     *\n     * @param event The original event.\n     * @param hint May contain additional informartion about the original exception.\n     * @param scope A scope containing event metadata.\n     * @returns A new event with more information.\n     */\n    BaseClient.prototype.prepareEvent = function (event, scope, hint) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _a, environment, _b, maxBreadcrumbs, release, dist, prepared, exception, request;\n            return tslib_1.__generator(this, function (_c) {\n                _a = this.getOptions(), environment = _a.environment, _b = _a.maxBreadcrumbs, maxBreadcrumbs = _b === void 0 ? DEFAULT_BREADCRUMBS : _b, release = _a.release, dist = _a.dist;\n                prepared = tslib_1.__assign({}, event);\n                if (prepared.environment === undefined && environment !== undefined) {\n                    prepared.environment = environment;\n                }\n                if (prepared.release === undefined && release !== undefined) {\n                    prepared.release = release;\n                }\n                if (prepared.dist === undefined && dist !== undefined) {\n                    prepared.dist = dist;\n                }\n                if (prepared.message) {\n                    prepared.message = string_1.truncate(prepared.message, MAX_URL_LENGTH);\n                }\n                exception = prepared.exception && prepared.exception.values && prepared.exception.values[0];\n                if (exception && exception.value) {\n                    exception.value = string_1.truncate(exception.value, MAX_URL_LENGTH);\n                }\n                request = prepared.request;\n                if (request && request.url) {\n                    request.url = string_1.truncate(request.url, MAX_URL_LENGTH);\n                }\n                if (prepared.event_id === undefined) {\n                    prepared.event_id = misc_1.uuid4();\n                }\n                // This should be the last thing called, since we want that\n                // {@link Hub.addEventProcessor} gets the finished prepared event.\n                if (scope) {\n                    return [2 /*return*/, scope.applyToEvent(prepared, hint, Math.min(maxBreadcrumbs, MAX_BREADCRUMBS))];\n                }\n                return [2 /*return*/, prepared];\n            });\n        });\n    };\n    /**\n     * Processes an event (either error or message) and sends it to Sentry.\n     *\n     * This also adds breadcrumbs and context information to the event. However,\n     * platform specific meta data (such as the User's IP address) must be added\n     * by the SDK implementor.\n     *\n     * The returned event status offers clues to whether the event was sent to\n     * Sentry and accepted there. If the {@link Options.shouldSend} hook returns\n     * `false`, the status will be {@link SendStatus.Skipped}. If the rate limit\n     * was exceeded, the status will be {@link SendStatus.RateLimit}.\n     *\n     * @param event The event to send to Sentry.\n     * @param send A function to actually send the event.\n     * @param scope A scope containing event metadata.\n     * @param hint May contain additional informartion about the original exception.\n     * @returns A Promise that resolves with the event status.\n     */\n    BaseClient.prototype.processEvent = function (event, send, hint, scope) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var _a, beforeSend, sampleRate, prepared, finalEvent, isInternalException, exception_1, response;\n            return tslib_1.__generator(this, function (_b) {\n                switch (_b.label) {\n                    case 0:\n                        if (!this.isEnabled()) {\n                            return [2 /*return*/, {\n                                    status: types_1.Status.Skipped,\n                                }];\n                        }\n                        _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n                        // 1.0 === 100% events are sent\n                        // 0.0 === 0% events are sent\n                        if (typeof sampleRate === 'number' && Math.random() > sampleRate) {\n                            return [2 /*return*/, {\n                                    status: types_1.Status.Skipped,\n                                }];\n                        }\n                        return [4 /*yield*/, this.prepareEvent(event, scope, hint)];\n                    case 1:\n                        prepared = _b.sent();\n                        if (prepared === null) {\n                            return [2 /*return*/, {\n                                    status: types_1.Status.Skipped,\n                                }];\n                        }\n                        finalEvent = prepared;\n                        _b.label = 2;\n                    case 2:\n                        _b.trys.push([2, 5, , 6]);\n                        isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n                        if (!(!isInternalException && beforeSend)) return [3 /*break*/, 4];\n                        return [4 /*yield*/, beforeSend(prepared, hint)];\n                    case 3:\n                        finalEvent = _b.sent();\n                        if (typeof finalEvent === 'undefined') {\n                            logger_1.logger.error('`beforeSend` method has to return `null` or a valid event');\n                        }\n                        _b.label = 4;\n                    case 4: return [3 /*break*/, 6];\n                    case 5:\n                        exception_1 = _b.sent();\n                        async_1.forget(this.captureException(exception_1, {\n                            data: {\n                                __sentry__: true,\n                            },\n                            originalException: exception_1,\n                        }));\n                        return [2 /*return*/, {\n                                reason: 'Event processing in beforeSend method threw an exception',\n                                status: types_1.Status.Invalid,\n                            }];\n                    case 6:\n                        if (finalEvent === null) {\n                            return [2 /*return*/, {\n                                    reason: 'Event dropped due to being discarded by beforeSend method',\n                                    status: types_1.Status.Skipped,\n                                }];\n                        }\n                        return [4 /*yield*/, send(finalEvent)];\n                    case 7:\n                        response = _b.sent();\n                        response.event = finalEvent;\n                        if (response.status === types_1.Status.RateLimit) {\n                            // TODO: Handle rate limits and maintain a queue. For now, we require SDK\n                            // implementors to override this method and handle it themselves.\n                        }\n                        return [2 /*return*/, response];\n                }\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.close = function (timeout) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            return tslib_1.__generator(this, function (_a) {\n                return [2 /*return*/, this.getBackend()\n                        .getBuffer()\n                        .drain(timeout)];\n            });\n        });\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.getIntegrations = function () {\n        return this.integrations || {};\n    };\n    /**\n     * @inheritDoc\n     */\n    BaseClient.prototype.getIntegration = function (integration) {\n        try {\n            return this.integrations[integration.id] || null;\n        }\n        catch (_oO) {\n            logger_1.logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n            return null;\n        }\n    };\n    return BaseClient;\n}());\nexports.BaseClient = BaseClient;\n//# sourceMappingURL=baseclient.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/baseclient.js\n// module id = 70\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/baseclient.js?");
  
  /***/ }),
  
  /***/ 71:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar minimal_1 = __webpack_require__(84);\nexports.addBreadcrumb = minimal_1.addBreadcrumb;\nexports.captureException = minimal_1.captureException;\nexports.captureEvent = minimal_1.captureEvent;\nexports.captureMessage = minimal_1.captureMessage;\nexports.configureScope = minimal_1.configureScope;\nexports.withScope = minimal_1.withScope;\nvar hub_1 = __webpack_require__(8);\nexports.addGlobalEventProcessor = hub_1.addGlobalEventProcessor;\nexports.getCurrentHub = hub_1.getCurrentHub;\nexports.Hub = hub_1.Hub;\nexports.getHubFromCarrier = hub_1.getHubFromCarrier;\nexports.Scope = hub_1.Scope;\nvar api_1 = __webpack_require__(68);\nexports.API = api_1.API;\nvar baseclient_1 = __webpack_require__(70);\nexports.BaseClient = baseclient_1.BaseClient;\nvar basebackend_1 = __webpack_require__(69);\nexports.BaseBackend = basebackend_1.BaseBackend;\nvar dsn_1 = __webpack_require__(17);\nexports.Dsn = dsn_1.Dsn;\nvar error_1 = __webpack_require__(18);\nexports.SentryError = error_1.SentryError;\nvar requestbuffer_1 = __webpack_require__(26);\nexports.RequestBuffer = requestbuffer_1.RequestBuffer;\nvar interfaces_1 = __webpack_require__(81);\nexports.LogLevel = interfaces_1.LogLevel;\nvar sdk_1 = __webpack_require__(82);\nexports.initAndBind = sdk_1.initAndBind;\nvar Integrations = __webpack_require__(77);\nexports.Integrations = Integrations;\n//# sourceMappingURL=index.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/index.js\n// module id = 71\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/index.js?");
  
  /***/ }),
  
  /***/ 72:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar logger_1 = __webpack_require__(7);\nexports.installedIntegrations = [];\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n    var e_1, _a, e_2, _b;\n    var defaultIntegrations = (options.defaultIntegrations && tslib_1.__spread(options.defaultIntegrations)) || [];\n    var userIntegrations = options.integrations;\n    var integrations = [];\n    if (Array.isArray(userIntegrations)) {\n        var userIntegrationsNames = userIntegrations.map(function (i) { return i.name; });\n        var pickedIntegrationsNames = [];\n        try {\n            // Leave only unique default integrations, that were not overridden with provided user integrations\n            for (var defaultIntegrations_1 = tslib_1.__values(defaultIntegrations), defaultIntegrations_1_1 = defaultIntegrations_1.next(); !defaultIntegrations_1_1.done; defaultIntegrations_1_1 = defaultIntegrations_1.next()) {\n                var defaultIntegration = defaultIntegrations_1_1.value;\n                if (userIntegrationsNames.indexOf(getIntegrationName(defaultIntegration)) === -1 &&\n                    pickedIntegrationsNames.indexOf(getIntegrationName(defaultIntegration)) === -1) {\n                    integrations.push(defaultIntegration);\n                    pickedIntegrationsNames.push(getIntegrationName(defaultIntegration));\n                }\n            }\n        }\n        catch (e_1_1) { e_1 = { error: e_1_1 }; }\n        finally {\n            try {\n                if (defaultIntegrations_1_1 && !defaultIntegrations_1_1.done && (_a = defaultIntegrations_1.return)) _a.call(defaultIntegrations_1);\n            }\n            finally { if (e_1) throw e_1.error; }\n        }\n        try {\n            // Don't add same user integration twice\n            for (var userIntegrations_1 = tslib_1.__values(userIntegrations), userIntegrations_1_1 = userIntegrations_1.next(); !userIntegrations_1_1.done; userIntegrations_1_1 = userIntegrations_1.next()) {\n                var userIntegration = userIntegrations_1_1.value;\n                if (pickedIntegrationsNames.indexOf(getIntegrationName(userIntegration)) === -1) {\n                    integrations.push(userIntegration);\n                    pickedIntegrationsNames.push(getIntegrationName(userIntegration));\n                }\n            }\n        }\n        catch (e_2_1) { e_2 = { error: e_2_1 }; }\n        finally {\n            try {\n                if (userIntegrations_1_1 && !userIntegrations_1_1.done && (_b = userIntegrations_1.return)) _b.call(userIntegrations_1);\n            }\n            finally { if (e_2) throw e_2.error; }\n        }\n    }\n    else if (typeof userIntegrations === 'function') {\n        integrations = userIntegrations(defaultIntegrations);\n        integrations = Array.isArray(integrations) ? integrations : [integrations];\n    }\n    else {\n        return tslib_1.__spread(defaultIntegrations);\n    }\n    return integrations;\n}\nexports.getIntegrationsToSetup = getIntegrationsToSetup;\n/** Setup given integration */\nfunction setupIntegration(integration, options) {\n    if (exports.installedIntegrations.indexOf(getIntegrationName(integration)) !== -1) {\n        return;\n    }\n    try {\n        integration.setupOnce();\n    }\n    catch (_Oo) {\n        /** @deprecated */\n        // TODO: Remove in v5\n        logger_1.logger.warn(\"Integration \" + getIntegrationName(integration) + \": The install method is deprecated. Use \\\"setupOnce\\\".\");\n        // tslint:disable:deprecation\n        if (integration.install) {\n            integration.install(options);\n        }\n        // tslint:enable:deprecation\n    }\n    exports.installedIntegrations.push(getIntegrationName(integration));\n    logger_1.logger.log(\"Integration installed: \" + getIntegrationName(integration));\n}\nexports.setupIntegration = setupIntegration;\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(options) {\n    var integrations = {};\n    getIntegrationsToSetup(options).forEach(function (integration) {\n        integrations[getIntegrationName(integration)] = integration;\n        setupIntegration(integration, options);\n    });\n    return integrations;\n}\nexports.setupIntegrations = setupIntegrations;\n/**\n * Returns the integration static id.\n * @param integration Integration to retrieve id\n */\nfunction getIntegrationName(integration) {\n    /**\n     * @depracted\n     */\n    // tslint:disable-next-line:no-unsafe-any\n    return integration.constructor.id || integration.name;\n}\n//# sourceMappingURL=integration.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integration.js\n// module id = 72\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integration.js?");
  
  /***/ }),
  
  /***/ 73:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\nvar logger_1 = __webpack_require__(7);\nvar misc_1 = __webpack_require__(11);\n/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n    function Dedupe() {\n        /**\n         * @inheritDoc\n         */\n        this.name = Dedupe.id;\n    }\n    /**\n     * @inheritDoc\n     */\n    Dedupe.prototype.setupOnce = function () {\n        var _this = this;\n        hub_1.addGlobalEventProcessor(function (currentEvent) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var self;\n            return tslib_1.__generator(this, function (_a) {\n                self = hub_1.getCurrentHub().getIntegration(Dedupe);\n                if (self) {\n                    // Juuust in case something goes wrong\n                    try {\n                        if (self.shouldDropEvent(currentEvent, self.previousEvent)) {\n                            return [2 /*return*/, null];\n                        }\n                    }\n                    catch (_oO) {\n                        return [2 /*return*/, (self.previousEvent = currentEvent)];\n                    }\n                    return [2 /*return*/, (self.previousEvent = currentEvent)];\n                }\n                return [2 /*return*/, currentEvent];\n            });\n        }); });\n    };\n    /** JSDoc */\n    Dedupe.prototype.shouldDropEvent = function (currentEvent, previousEvent) {\n        if (!previousEvent) {\n            return false;\n        }\n        if (this.isSameMessageEvent(currentEvent, previousEvent)) {\n            logger_1.logger.warn(\"Event dropped due to being a duplicate of previous event (same message).\\nEvent: \" + misc_1.getEventDescription(currentEvent));\n            return true;\n        }\n        if (this.isSameExceptionEvent(currentEvent, previousEvent)) {\n            logger_1.logger.warn(\"Event dropped due to being a duplicate of previous event (same exception).\\nEvent: \" + misc_1.getEventDescription(currentEvent));\n            return true;\n        }\n        return false;\n    };\n    /** JSDoc */\n    Dedupe.prototype.isSameMessageEvent = function (currentEvent, previousEvent) {\n        var currentMessage = currentEvent.message;\n        var previousMessage = previousEvent.message;\n        // If no event has a message, they were both exceptions, so bail out\n        if (!currentMessage && !previousMessage) {\n            return false;\n        }\n        // If only one event has a stacktrace, but not the other one, they are not the same\n        if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n            return false;\n        }\n        if (currentMessage !== previousMessage) {\n            return false;\n        }\n        if (!this.isSameFingerprint(currentEvent, previousEvent)) {\n            return false;\n        }\n        if (!this.isSameStacktrace(currentEvent, previousEvent)) {\n            return false;\n        }\n        return true;\n    };\n    /** JSDoc */\n    Dedupe.prototype.getFramesFromEvent = function (event) {\n        var exception = event.exception;\n        if (exception) {\n            try {\n                // @ts-ignore\n                return exception.values[0].stacktrace.frames;\n            }\n            catch (_oO) {\n                return undefined;\n            }\n        }\n        else if (event.stacktrace) {\n            return event.stacktrace.frames;\n        }\n        else {\n            return undefined;\n        }\n    };\n    /** JSDoc */\n    Dedupe.prototype.isSameStacktrace = function (currentEvent, previousEvent) {\n        var currentFrames = this.getFramesFromEvent(currentEvent);\n        var previousFrames = this.getFramesFromEvent(previousEvent);\n        // If no event has a fingerprint, they are assumed to be the same\n        if (!currentFrames && !previousFrames) {\n            return true;\n        }\n        // If only one event has a stacktrace, but not the other one, they are not the same\n        if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n            return false;\n        }\n        currentFrames = currentFrames;\n        previousFrames = previousFrames;\n        // If number of frames differ, they are not the same\n        if (previousFrames.length !== currentFrames.length) {\n            return false;\n        }\n        // Otherwise, compare the two\n        for (var i = 0; i < previousFrames.length; i++) {\n            var frameA = previousFrames[i];\n            var frameB = currentFrames[i];\n            if (frameA.filename !== frameB.filename ||\n                frameA.lineno !== frameB.lineno ||\n                frameA.colno !== frameB.colno ||\n                frameA.function !== frameB.function) {\n                return false;\n            }\n        }\n        return true;\n    };\n    /** JSDoc */\n    Dedupe.prototype.getExceptionFromEvent = function (event) {\n        return event.exception && event.exception.values && event.exception.values[0];\n    };\n    /** JSDoc */\n    Dedupe.prototype.isSameExceptionEvent = function (currentEvent, previousEvent) {\n        var previousException = this.getExceptionFromEvent(previousEvent);\n        var currentException = this.getExceptionFromEvent(currentEvent);\n        if (!previousException || !currentException) {\n            return false;\n        }\n        if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n            return false;\n        }\n        if (!this.isSameFingerprint(currentEvent, previousEvent)) {\n            return false;\n        }\n        if (!this.isSameStacktrace(currentEvent, previousEvent)) {\n            return false;\n        }\n        return true;\n    };\n    /** JSDoc */\n    Dedupe.prototype.isSameFingerprint = function (currentEvent, previousEvent) {\n        var currentFingerprint = currentEvent.fingerprint;\n        var previousFingerprint = previousEvent.fingerprint;\n        // If no event has a fingerprint, they are assumed to be the same\n        if (!currentFingerprint && !previousFingerprint) {\n            return true;\n        }\n        // If only one event has a fingerprint, but not the other one, they are not the same\n        if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n            return false;\n        }\n        currentFingerprint = currentFingerprint;\n        previousFingerprint = previousFingerprint;\n        // Otherwise, compare the two\n        try {\n            return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n        }\n        catch (_oO) {\n            return false;\n        }\n    };\n    /**\n     * @inheritDoc\n     */\n    Dedupe.id = 'Dedupe';\n    return Dedupe;\n}());\nexports.Dedupe = Dedupe;\n//# sourceMappingURL=dedupe.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/dedupe.js\n// module id = 73\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/dedupe.js?");
  
  /***/ }),
  
  /***/ 74:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\nvar is_1 = __webpack_require__(10);\nvar logger_1 = __webpack_require__(7);\n/** Patch toString calls to return proper name for wrapped functions */\nvar ExtraErrorData = /** @class */ (function () {\n    function ExtraErrorData() {\n        /**\n         * @inheritDoc\n         */\n        this.name = ExtraErrorData.id;\n    }\n    /**\n     * @inheritDoc\n     */\n    ExtraErrorData.prototype.setupOnce = function () {\n        var _this = this;\n        hub_1.addGlobalEventProcessor(function (event, hint) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var self;\n            return tslib_1.__generator(this, function (_a) {\n                self = hub_1.getCurrentHub().getIntegration(ExtraErrorData);\n                if (!self || !hint || !hint.originalException) {\n                    return [2 /*return*/, event];\n                }\n                return [2 /*return*/, this.enhanceEventWithErrorData(event, hint.originalException)];\n            });\n        }); });\n    };\n    /**\n     * Attaches extracted information from the Error object to extra field in the SentryEvent\n     */\n    ExtraErrorData.prototype.enhanceEventWithErrorData = function (event, error) {\n        var errorData = this.extractErrorData(error);\n        if (errorData) {\n            return tslib_1.__assign({}, event, { extra: tslib_1.__assign({}, event.extra, errorData) });\n        }\n        return event;\n    };\n    /**\n     * Extract extra information from the Error object\n     */\n    ExtraErrorData.prototype.extractErrorData = function (error) {\n        var e_1, _a, _b;\n        // We are trying to enhance already existing event, so no harm done if it won't succeed\n        try {\n            var nativeKeys_1 = ['name', 'message', 'stack', 'line', 'column', 'fileName', 'lineNumber', 'columnNumber'];\n            var name_1 = error.name || error.constructor.name;\n            var errorKeys = Object.keys(error).filter(function (key) { return nativeKeys_1.indexOf(key) === -1; });\n            if (errorKeys.length) {\n                var extraErrorInfo = {};\n                try {\n                    for (var errorKeys_1 = tslib_1.__values(errorKeys), errorKeys_1_1 = errorKeys_1.next(); !errorKeys_1_1.done; errorKeys_1_1 = errorKeys_1.next()) {\n                        var key = errorKeys_1_1.value;\n                        var value = error[key];\n                        if (is_1.isError(value)) {\n                            value = value.name || value.constructor.name;\n                        }\n                        extraErrorInfo[key] = value;\n                    }\n                }\n                catch (e_1_1) { e_1 = { error: e_1_1 }; }\n                finally {\n                    try {\n                        if (errorKeys_1_1 && !errorKeys_1_1.done && (_a = errorKeys_1.return)) _a.call(errorKeys_1);\n                    }\n                    finally { if (e_1) throw e_1.error; }\n                }\n                return _b = {},\n                    _b[name_1] = extraErrorInfo,\n                    _b;\n            }\n            return null;\n        }\n        catch (oO) {\n            logger_1.logger.error('Unable to extract extra data from the Error object:', oO);\n            return null;\n        }\n    };\n    /**\n     * @inheritDoc\n     */\n    ExtraErrorData.id = 'ExtraErrorData';\n    return ExtraErrorData;\n}());\nexports.ExtraErrorData = ExtraErrorData;\n//# sourceMappingURL=extraerrordata.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/extraerrordata.js\n// module id = 74\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/extraerrordata.js?");
  
  /***/ }),
  
  /***/ 747:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar React = __webpack_require__(0);\nvar render = __webpack_require__(36);\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar injectIntl = __webpack_require__(5).injectIntl;\nvar Avatar = __webpack_require__(54);\nvar Page = __webpack_require__(25);\nvar People = __webpack_require__(694);\nvar Supporters = __webpack_require__(695);\nvar TitleBanner = __webpack_require__(61);\n\n__webpack_require__(673);\n\nvar Credits = function Credits() {\n    return React.createElement(\n        'div',\n        { className: 'credits' },\n        React.createElement(\n            TitleBanner,\n            { className: 'masthead mod-blue-bg' },\n            React.createElement(\n                'h1',\n                { className: 'title-banner-h1' },\n                React.createElement(FormattedMessage, { id: 'credits.title' })\n            )\n        ),\n        React.createElement(\n            'div',\n            { className: 'content' },\n            React.createElement(\n                'div',\n                { className: 'people' },\n                React.createElement(\n                    'div',\n                    { className: 'mid-header' },\n                    React.createElement(\n                        'h2',\n                        null,\n                        'MIT Scratch Team'\n                    ),\n                    React.createElement(\n                        'p',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'credits.developers' })\n                    )\n                ),\n                React.createElement(\n                    'ul',\n                    { className: 'avatar-grid' },\n                    People.map(function (person, index) {\n                        return React.createElement(\n                            'li',\n                            {\n                                className: 'avatar-item',\n                                key: 'person-' + index\n                            },\n                            React.createElement(\n                                'div',\n                                null,\n                                React.createElement(\n                                    'a',\n                                    { href: 'https://scratch.mit.edu/users/' + person.userName + '/' },\n                                    React.createElement(Avatar, {\n                                        alt: '',\n                                        src: 'https://cdn.scratch.mit.edu/get_image/user/' + (person.userId || 'default') + '_80x80.png'\n                                    })\n                                )\n                            ),\n                            React.createElement(\n                                'span',\n                                { className: 'avatar-text' },\n                                person.name\n                            )\n                        );\n                    })\n                )\n            ),\n            React.createElement(\n                'div',\n                { className: 'supporters' },\n                React.createElement(\n                    'div',\n                    { className: 'mid-header' },\n                    React.createElement(\n                        'h2',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'credits.currentSponsors' })\n                    ),\n                    React.createElement(\n                        'p',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'credits.currentFinancialSupport' })\n                    )\n                ),\n                React.createElement(\n                    'div',\n                    { className: 'logo-grid' },\n                    Supporters.map(function (supporter, index) {\n                        return React.createElement(\n                            'span',\n                            {\n                                className: 'logo',\n                                key: 'logo-' + index\n                            },\n                            supporter.logoDestination ? React.createElement(\n                                'a',\n                                { href: supporter.logoDestination },\n                                supporter.logoSrc ? React.createElement('img', {\n                                    alt: '',\n                                    src: supporter.logoSrc,\n                                    width: supporter.width\n                                }) : React.createElement(\n                                    'div',\n                                    { className: 'text-logo' },\n                                    supporter.textLogo\n                                )\n                            ) : supporter.logoSrc ? React.createElement('img', {\n                                alt: '',\n                                src: supporter.logoSrc,\n                                width: supporter.width\n                            }) : React.createElement(\n                                'div',\n                                { className: 'text-logo' },\n                                supporter.textLogo\n                            )\n                        );\n                    })\n                )\n            ),\n            React.createElement(\n                'div',\n                { className: 'acknowledge-content' },\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.translationsTitle' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, {\n                        id: 'credits.acknowledgementsTranslators',\n                        values: {\n                            translatorsLink: React.createElement(\n                                'a',\n                                { href: 'http://wiki.scratch.mit.edu/wiki/Translators' },\n                                React.createElement(FormattedMessage, { id: 'credits.acknowledgementsTranslatorsLinkText' })\n                            )\n                        }\n                    })\n                ),\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.illustrationsTitle' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsIllustrations' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    'Natalie Rosalinda Hall, Wren McDonald, Leigh McG, Andrew Rae, Daria Skrybchenko, Robert Hunter, Alex Eben Meyer, Ding Ding Hu, Owen Davey.'\n                ),\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.soundsTitle' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsSounds' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.soundsThanks' }),\n                    ' ',\n                    'acclivity, belloisec, Benboncan, Calcuttan, coby12388, copyc4t, cs272, Flick3r, FreqMan, gelo_papas, han1, InspectorJ, jiserte, junggle, juskiddink, klankbeeld, LittleRobotSoundFactory, LloydEvans09, lonemonk, rhodesmas, sandyrb, themfish, tyops.'\n                ),\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.pastContributors' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.pastContributorsThanks' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.otherContributors' }),\n                    ' ',\n                    'Ben Berg, Amos Blanton, Karen Brennan, Juanita Buitrago, Leo Burd, Gaia Carini, Kasia Chmielinski, Michelle Chung, Shane Clements, Hannah Cole, Sayamindu Dasgupta, Margarita Dekoli, Evelyn Eastmond, Dave Feinberg, Chris Graves, Megan Haddadi, Connor Hudson, Christina Huang, Tony Hwang, Abdulrahman Idlbi, Randy Jou, Lily Kim, Tauntaun Kim, Saskia Leggett, Tim Mickel, Amon Millner, Ricarose Roque, Andrea Saxman, Jay Silver, Tammy Stern, Lis Sylvan, Hanako Tjia, Claudia Urrea, Oren Zuckerman.'\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.partnersBody' })\n                ),\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.researchersTitle' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, {\n                        id: 'credits.researchersBody',\n                        values: {\n                            scratchResearchLink: React.createElement(\n                                'a',\n                                { href: 'https://scratch.mit.edu/info/research/' },\n                                React.createElement(FormattedMessage, { id: 'credits.researchLinkText' })\n                            )\n                        }\n                    })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, {\n                        id: 'credits.researchersContributors',\n                        values: {\n                            nsfLink: React.createElement(\n                                'a',\n                                { href: 'http://www.nsf.gov/awardsearch/showAward?AWD_ID=0325828' },\n                                React.createElement(FormattedMessage, { id: 'credits.researchNSFLinkText' })\n                            ),\n                            scratchEdLink: React.createElement(\n                                'a',\n                                { href: 'http://scratched.gse.harvard.edu/' },\n                                React.createElement(FormattedMessage, { id: 'credits.researchScratchEdLinkText' })\n                            )\n                        }\n                    })\n                ),\n                React.createElement(\n                    'h2',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsTitle' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsContributors' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    'Susan Abend, Robbie Berg, Lauren Bessen, Keith Braadfladt, Katie Broida, Susan Carillo, Will Denton, Nathan Dinsmore, Catherine Feldman, Rachel Fenichel, Jodi Finch, Ioana Fineberg, Corey Frang, JT Galla, Rachel Garber, Cassy Gibbs, Z Goddard, Brian Harvey, Roland Hebert, Tracy Ho, Benjamin Howe, Kapaya Katongo, Evan Karatzas, Christine Kim, Joren Lauwers, Mike Lee, Jeff Lieberman, Mark Loughridge, Kelly Liu, Anthony Lu, Danny Lutz, David Malan Wayne Marshall, John McIntosh, Paul Medlock-Walton, Dongfang (Tian) Mi, Ximena Miranda, Jens Moenig, Evan Moore, Geetha Narayanan, Kate Nazemi, Liddy Nevile, Wing Ngan, Derek O\\'Connell, Tim Radvan, Karen Randall, Ian Reynolds, Miriam Ruiz, Boaz Sender, Chinua Shaw, Ed Shems, Cynthia Solomon, Marie Staver, Daniel Strimpel, Kilmer Sweazy, John Henry Thompson, Ubong Ukoh, Vladimir Vuksan, Han Xu.'\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsInfluencers' })\n                ),\n                React.createElement(\n                    'p',\n                    null,\n                    React.createElement(FormattedMessage, { id: 'credits.acknowledgementsCommunity' })\n                )\n            )\n        )\n    );\n};\n\nvar WrappedCredits = injectIntl(Credits);\nrender(React.createElement(\n    Page,\n    null,\n    React.createElement(WrappedCredits, null)\n), document.getElementById('app'));\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/credits/credits.jsx\n// module id = 747\n// module chunks = 22\n\n//# sourceURL=webpack:///./src/views/credits/credits.jsx?");
  
  /***/ }),
  
  /***/ 75:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n    function FunctionToString() {\n        /**\n         * @inheritDoc\n         */\n        this.name = FunctionToString.id;\n    }\n    /**\n     * @inheritDoc\n     */\n    FunctionToString.prototype.setupOnce = function () {\n        originalFunctionToString = Function.prototype.toString;\n        Function.prototype.toString = function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            var context = this.__sentry__ ? this.__sentry_original__ : this;\n            // tslint:disable-next-line:no-unsafe-any\n            return originalFunctionToString.apply(context, args);\n        };\n    };\n    /**\n     * @inheritDoc\n     */\n    FunctionToString.id = 'FunctionToString';\n    return FunctionToString;\n}());\nexports.FunctionToString = FunctionToString;\n//# sourceMappingURL=functiontostring.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/functiontostring.js\n// module id = 75\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/functiontostring.js?");
  
  /***/ }),
  
  /***/ 76:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\nvar is_1 = __webpack_require__(10);\nvar logger_1 = __webpack_require__(7);\nvar misc_1 = __webpack_require__(11);\nvar string_1 = __webpack_require__(28);\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n    function InboundFilters(options) {\n        if (options === void 0) { options = {}; }\n        this.options = options;\n        /**\n         * @inheritDoc\n         */\n        this.name = InboundFilters.id;\n    }\n    /**\n     * @inheritDoc\n     */\n    InboundFilters.prototype.setupOnce = function () {\n        var _this = this;\n        hub_1.addGlobalEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var hub, self, client, clientOptions, options;\n            return tslib_1.__generator(this, function (_a) {\n                hub = hub_1.getCurrentHub();\n                if (!hub) {\n                    return [2 /*return*/, event];\n                }\n                self = hub.getIntegration(InboundFilters);\n                if (self) {\n                    client = hub.getClient();\n                    clientOptions = client ? client.getOptions() : {};\n                    options = self.mergeOptions(clientOptions);\n                    if (self.shouldDropEvent(event, options)) {\n                        return [2 /*return*/, null];\n                    }\n                }\n                return [2 /*return*/, event];\n            });\n        }); });\n    };\n    /** JSDoc */\n    InboundFilters.prototype.shouldDropEvent = function (event, options) {\n        if (this.isSentryError(event, options)) {\n            logger_1.logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + misc_1.getEventDescription(event));\n            return true;\n        }\n        if (this.isIgnoredError(event, options)) {\n            logger_1.logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + misc_1.getEventDescription(event));\n            return true;\n        }\n        if (this.isBlacklistedUrl(event, options)) {\n            logger_1.logger.warn(\"Event dropped due to being matched by `blacklistUrls` option.\\nEvent: \" + misc_1.getEventDescription(event) + \".\\nUrl: \" + this.getEventFilterUrl(event));\n            return true;\n        }\n        if (!this.isWhitelistedUrl(event, options)) {\n            logger_1.logger.warn(\"Event dropped due to not being matched by `whitelistUrls` option.\\nEvent: \" + misc_1.getEventDescription(event) + \".\\nUrl: \" + this.getEventFilterUrl(event));\n            return true;\n        }\n        return false;\n    };\n    /** JSDoc */\n    InboundFilters.prototype.isSentryError = function (event, options) {\n        if (options === void 0) { options = {}; }\n        if (!options.ignoreInternal) {\n            return false;\n        }\n        try {\n            // tslint:disable-next-line:no-unsafe-any\n            return event.exception.values[0].type === 'SentryError';\n        }\n        catch (_oO) {\n            return false;\n        }\n    };\n    /** JSDoc */\n    InboundFilters.prototype.isIgnoredError = function (event, options) {\n        var _this = this;\n        if (options === void 0) { options = {}; }\n        if (!options.ignoreErrors || !options.ignoreErrors.length) {\n            return false;\n        }\n        return this.getPossibleEventMessages(event).some(function (message) {\n            // Not sure why TypeScript complains here...\n            return options.ignoreErrors.some(function (pattern) { return _this.isMatchingPattern(message, pattern); });\n        });\n    };\n    /** JSDoc */\n    InboundFilters.prototype.isBlacklistedUrl = function (event, options) {\n        var _this = this;\n        if (options === void 0) { options = {}; }\n        // TODO: Use Glob instead?\n        if (!options.blacklistUrls || !options.blacklistUrls.length) {\n            return false;\n        }\n        var url = this.getEventFilterUrl(event);\n        return !url ? false : options.blacklistUrls.some(function (pattern) { return _this.isMatchingPattern(url, pattern); });\n    };\n    /** JSDoc */\n    InboundFilters.prototype.isWhitelistedUrl = function (event, options) {\n        var _this = this;\n        if (options === void 0) { options = {}; }\n        // TODO: Use Glob instead?\n        if (!options.whitelistUrls || !options.whitelistUrls.length) {\n            return true;\n        }\n        var url = this.getEventFilterUrl(event);\n        return !url ? true : options.whitelistUrls.some(function (pattern) { return _this.isMatchingPattern(url, pattern); });\n    };\n    /** JSDoc */\n    InboundFilters.prototype.mergeOptions = function (clientOptions) {\n        if (clientOptions === void 0) { clientOptions = {}; }\n        return {\n            blacklistUrls: tslib_1.__spread((this.options.blacklistUrls || []), (clientOptions.blacklistUrls || [])),\n            ignoreErrors: tslib_1.__spread((this.options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n            ignoreInternal: typeof this.options.ignoreInternal !== 'undefined' ? this.options.ignoreInternal : true,\n            whitelistUrls: tslib_1.__spread((this.options.whitelistUrls || []), (clientOptions.whitelistUrls || [])),\n        };\n    };\n    /** JSDoc */\n    InboundFilters.prototype.isMatchingPattern = function (value, pattern) {\n        if (is_1.isRegExp(pattern)) {\n            return pattern.test(value);\n        }\n        else if (typeof pattern === 'string') {\n            return string_1.includes(value, pattern);\n        }\n        else {\n            return false;\n        }\n    };\n    /** JSDoc */\n    InboundFilters.prototype.getPossibleEventMessages = function (event) {\n        if (event.message) {\n            return [event.message];\n        }\n        else if (event.exception) {\n            try {\n                // tslint:disable-next-line:no-unsafe-any\n                var _a = event.exception.values[0], type = _a.type, value = _a.value;\n                return [\"\" + value, type + \": \" + value];\n            }\n            catch (oO) {\n                logger_1.logger.error(\"Cannot extract message for event \" + misc_1.getEventDescription(event));\n                return [];\n            }\n        }\n        else {\n            return [];\n        }\n    };\n    /** JSDoc */\n    InboundFilters.prototype.getEventFilterUrl = function (event) {\n        try {\n            if (event.stacktrace) {\n                // tslint:disable-next-line:no-unsafe-any\n                return event.stacktrace.frames[0].filename;\n            }\n            else if (event.exception) {\n                // tslint:disable-next-line:no-unsafe-any\n                return event.exception.values[0].stacktrace.frames[0].filename;\n            }\n            else {\n                return null;\n            }\n        }\n        catch (oO) {\n            logger_1.logger.error(\"Cannot extract url for event \" + misc_1.getEventDescription(event));\n            return null;\n        }\n    };\n    /**\n     * @inheritDoc\n     */\n    InboundFilters.id = 'InboundFilters';\n    return InboundFilters;\n}());\nexports.InboundFilters = InboundFilters;\n//# sourceMappingURL=inboundfilters.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/inboundfilters.js\n// module id = 76\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/inboundfilters.js?");
  
  /***/ }),
  
  /***/ 77:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dedupe_1 = __webpack_require__(73);\nexports.Dedupe = dedupe_1.Dedupe;\nvar functiontostring_1 = __webpack_require__(75);\nexports.FunctionToString = functiontostring_1.FunctionToString;\nvar sdkinformation_1 = __webpack_require__(80);\nexports.SDKInformation = sdkinformation_1.SDKInformation;\nvar inboundfilters_1 = __webpack_require__(76);\nexports.InboundFilters = inboundfilters_1.InboundFilters;\nvar extraerrordata_1 = __webpack_require__(74);\nexports.ExtraErrorData = extraerrordata_1.ExtraErrorData;\nvar debug_1 = __webpack_require__(78);\nexports.Debug = debug_1.Debug;\nvar rewriteframes_1 = __webpack_require__(79);\nexports.RewriteFrames = rewriteframes_1.RewriteFrames;\n//# sourceMappingURL=index.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/index.js\n// module id = 77\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/index.js?");
  
  /***/ }),
  
  /***/ 78:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\n/** JSDoc */\nvar Debug = /** @class */ (function () {\n    /**\n     * @inheritDoc\n     */\n    function Debug(options) {\n        /**\n         * @inheritDoc\n         */\n        this.name = Debug.id;\n        this.options = tslib_1.__assign({ debugger: false, stringify: false }, options);\n    }\n    /**\n     * @inheritDoc\n     */\n    Debug.prototype.setupOnce = function () {\n        var _this = this;\n        hub_1.addGlobalEventProcessor(function (event, hint) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var self;\n            return tslib_1.__generator(this, function (_a) {\n                self = hub_1.getCurrentHub().getIntegration(Debug);\n                if (self) {\n                    // tslint:disable:no-console\n                    // tslint:disable:no-debugger\n                    if (self.options.debugger) {\n                        debugger;\n                    }\n                    if (self.options.stringify) {\n                        console.log(JSON.stringify(event, null, 2));\n                        if (hint) {\n                            console.log(JSON.stringify(hint, null, 2));\n                        }\n                    }\n                    else {\n                        console.log(event);\n                        if (hint) {\n                            console.log(hint);\n                        }\n                    }\n                }\n                return [2 /*return*/, event];\n            });\n        }); });\n    };\n    /**\n     * @inheritDoc\n     */\n    Debug.id = 'Debug';\n    return Debug;\n}());\nexports.Debug = Debug;\n//# sourceMappingURL=debug.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/pluggable/debug.js\n// module id = 78\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/pluggable/debug.js?");
  
  /***/ }),
  
  /***/ 79:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\nvar path_1 = __webpack_require__(87);\n/** Rewrite event frames paths */\nvar RewriteFrames = /** @class */ (function () {\n    /**\n     * @inheritDoc\n     */\n    function RewriteFrames(options) {\n        if (options === void 0) { options = {}; }\n        var _this = this;\n        /**\n         * @inheritDoc\n         */\n        this.name = RewriteFrames.id;\n        /**\n         * @inheritDoc\n         */\n        this.iteratee = function (frame) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var base;\n            return tslib_1.__generator(this, function (_a) {\n                if (frame.filename && frame.filename.startsWith('/')) {\n                    base = this.root ? path_1.relative(this.root, frame.filename) : path_1.basename(frame.filename);\n                    frame.filename = \"app:///\" + base;\n                }\n                return [2 /*return*/, frame];\n            });\n        }); };\n        if (options.root) {\n            this.root = options.root;\n        }\n        if (options.iteratee) {\n            this.iteratee = options.iteratee;\n        }\n    }\n    /**\n     * @inheritDoc\n     */\n    RewriteFrames.prototype.setupOnce = function () {\n        var _this = this;\n        hub_1.addGlobalEventProcessor(function (event) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n            var self;\n            return tslib_1.__generator(this, function (_a) {\n                self = hub_1.getCurrentHub().getIntegration(RewriteFrames);\n                if (self) {\n                    return [2 /*return*/, self.process(event)];\n                }\n                return [2 /*return*/, event];\n            });\n        }); });\n    };\n    /** JSDoc */\n    RewriteFrames.prototype.process = function (event) {\n        return tslib_1.__awaiter(this, void 0, void 0, function () {\n            var frames, _a, _b, _i, i, _c, _d;\n            return tslib_1.__generator(this, function (_e) {\n                switch (_e.label) {\n                    case 0:\n                        frames = this.getFramesFromEvent(event);\n                        if (!frames) return [3 /*break*/, 4];\n                        _a = [];\n                        for (_b in frames)\n                            _a.push(_b);\n                        _i = 0;\n                        _e.label = 1;\n                    case 1:\n                        if (!(_i < _a.length)) return [3 /*break*/, 4];\n                        i = _a[_i];\n                        // tslint:disable-next-line\n                        _c = frames;\n                        _d = i;\n                        return [4 /*yield*/, this.iteratee(frames[i])];\n                    case 2:\n                        // tslint:disable-next-line\n                        _c[_d] = _e.sent();\n                        _e.label = 3;\n                    case 3:\n                        _i++;\n                        return [3 /*break*/, 1];\n                    case 4: return [2 /*return*/, event];\n                }\n            });\n        });\n    };\n    /** JSDoc */\n    RewriteFrames.prototype.getFramesFromEvent = function (event) {\n        var exception = event.exception;\n        if (exception) {\n            try {\n                // tslint:disable-next-line:no-unsafe-any\n                return exception.values[0].stacktrace.frames;\n            }\n            catch (_oO) {\n                return undefined;\n            }\n        }\n        else if (event.stacktrace) {\n            return event.stacktrace.frames;\n        }\n        else {\n            return undefined;\n        }\n    };\n    /**\n     * @inheritDoc\n     */\n    RewriteFrames.id = 'RewriteFrames';\n    return RewriteFrames;\n}());\nexports.RewriteFrames = RewriteFrames;\n//# sourceMappingURL=rewriteframes.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/pluggable/rewriteframes.js\n// module id = 79\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/pluggable/rewriteframes.js?");
  
  /***/ }),
  
  /***/ 8:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar scope_1 = __webpack_require__(27);\nexports.addGlobalEventProcessor = scope_1.addGlobalEventProcessor;\nexports.Scope = scope_1.Scope;\nvar hub_1 = __webpack_require__(83);\nexports.getCurrentHub = hub_1.getCurrentHub;\nexports.getHubFromCarrier = hub_1.getHubFromCarrier;\nexports.getMainCarrier = hub_1.getMainCarrier;\nexports.Hub = hub_1.Hub;\nexports.setHubOnCarrier = hub_1.setHubOnCarrier;\n//# sourceMappingURL=index.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/hub/dist/index.js\n// module id = 8\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/hub/dist/index.js?");
  
  /***/ }),
  
  /***/ 80:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar logger_1 = __webpack_require__(7);\n/**\n * @deprecated\n * This file can be safely removed in the next major bump\n */\n/** Adds SDK info to an event. */\nvar SDKInformation = /** @class */ (function () {\n    function SDKInformation() {\n        /**\n         * @inheritDoc\n         */\n        this.name = 'SDKInformation';\n    }\n    /**\n     * @inheritDoc\n     */\n    SDKInformation.prototype.setupOnce = function () {\n        logger_1.logger.warn(\"SDKInformation Integration is deprecated and can be safely removed. It's functionality has been merged into the SDK's core.\");\n    };\n    return SDKInformation;\n}());\nexports.SDKInformation = SDKInformation;\n//# sourceMappingURL=sdkinformation.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/integrations/sdkinformation.js\n// module id = 80\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/integrations/sdkinformation.js?");
  
  /***/ }),
  
  /***/ 81:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** Console logging verbosity for the SDK. */\nvar LogLevel;\n(function (LogLevel) {\n    /** No logs will be generated. */\n    LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n    /** Only SDK internal errors will be logged. */\n    LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n    /** Information useful for debugging the SDK will be logged. */\n    LogLevel[LogLevel[\"Debug\"] = 2] = \"Debug\";\n    /** All SDK actions will be logged. */\n    LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\n//# sourceMappingURL=interfaces.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/interfaces.js\n// module id = 81\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/interfaces.js?");
  
  /***/ }),
  
  /***/ 82:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hub_1 = __webpack_require__(8);\nvar logger_1 = __webpack_require__(7);\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instanciate.\n * @param options Options to pass to the client.\n * @returns The installed and bound client instance.\n */\nfunction initAndBind(clientClass, options) {\n    if (options.debug === true) {\n        logger_1.logger.enable();\n    }\n    if (hub_1.getCurrentHub().getClient()) {\n        return;\n    }\n    var client = new clientClass(options);\n    hub_1.getCurrentHub().bindClient(client);\n    client.install();\n}\nexports.initAndBind = initAndBind;\n//# sourceMappingURL=sdk.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/core/dist/sdk.js\n// module id = 82\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/core/dist/sdk.js?");
  
  /***/ }),
  
  /***/ 83:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(module) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar logger_1 = __webpack_require__(7);\nvar misc_1 = __webpack_require__(11);\nvar scope_1 = __webpack_require__(27);\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be incresed when the global interface\n * changes a and new methods are introduced.\n */\nexports.API_VERSION = 3;\n/**\n * Internal class used to make sure we always have the latest internal functions\n * working in case we have a version conflict.\n */\nvar Hub = /** @class */ (function () {\n    /**\n     * Creates a new instance of the hub, will push one {@link Layer} into the\n     * internal stack on creation.\n     *\n     * @param client bound to the hub.\n     * @param scope bound to the hub.\n     * @param version number, higher number means higher priority.\n     */\n    function Hub(client, scope, version) {\n        if (scope === void 0) { scope = new scope_1.Scope(); }\n        if (version === void 0) { version = exports.API_VERSION; }\n        this.version = version;\n        /** Is a {@link Layer}[] containing the client and scope */\n        this.stack = [];\n        this.stack.push({ client: client, scope: scope });\n    }\n    /**\n     * Internal helper function to call a method on the top client if it exists.\n     *\n     * @param method The method to call on the client/client.\n     * @param args Arguments to pass to the client/frontend.\n     */\n    Hub.prototype.invokeClient = function (method) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        var _a;\n        var top = this.getStackTop();\n        if (top && top.client && top.client[method]) {\n            (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope]));\n        }\n    };\n    /**\n     * Internal helper function to call an async method on the top client if it\n     * exists.\n     *\n     * @param method The method to call on the client/client.\n     * @param args Arguments to pass to the client/frontend.\n     */\n    Hub.prototype.invokeClientAsync = function (method) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        var _a;\n        var top = this.getStackTop();\n        if (top && top.client && top.client[method]) {\n            (_a = top.client)[method].apply(_a, tslib_1.__spread(args, [top.scope])).catch(function (err) {\n                logger_1.logger.error(err);\n            });\n        }\n    };\n    /**\n     * Checks if this hub's version is older than the given version.\n     *\n     * @param version A version number to compare to.\n     * @return True if the given version is newer; otherwise false.\n     */\n    Hub.prototype.isOlderThan = function (version) {\n        return this.version < version;\n    };\n    /**\n     * This binds the given client to the current scope.\n     * @param client An SDK client (client) instance.\n     */\n    Hub.prototype.bindClient = function (client) {\n        var top = this.getStackTop();\n        top.client = client;\n        if (top && top.scope && client) {\n            top.scope.addScopeListener(function (s) {\n                if (client.getBackend) {\n                    try {\n                        client.getBackend().storeScope(s);\n                    }\n                    catch (_a) {\n                        // Do nothing\n                    }\n                }\n            });\n        }\n    };\n    /**\n     * Create a new scope to store context information.\n     *\n     * The scope will be layered on top of the current one. It is isolated, i.e. all\n     * breadcrumbs and context information added to this scope will be removed once\n     * the scope ends. Be sure to always remove this scope with {@link this.popScope}\n     * when the operation finishes or throws.\n     *\n     * @returns Scope, the new cloned scope\n     */\n    Hub.prototype.pushScope = function () {\n        // We want to clone the content of prev scope\n        var stack = this.getStack();\n        var parentScope = stack.length > 0 ? stack[stack.length - 1].scope : undefined;\n        var scope = scope_1.Scope.clone(parentScope);\n        this.getStack().push({\n            client: this.getClient(),\n            scope: scope,\n        });\n        return scope;\n    };\n    /**\n     * Removes a previously pushed scope from the stack.\n     *\n     * This restores the state before the scope was pushed. All breadcrumbs and\n     * context information added since the last call to {@link this.pushScope} are\n     * discarded.\n     */\n    Hub.prototype.popScope = function () {\n        return this.getStack().pop() !== undefined;\n    };\n    /**\n     * Creates a new scope with and executes the given operation within.\n     * The scope is automatically removed once the operation\n     * finishes or throws.\n     *\n     * This is essentially a convenience function for:\n     *\n     *     pushScope();\n     *     callback();\n     *     popScope();\n     *\n     * @param callback that will be enclosed into push/popScope.\n     */\n    Hub.prototype.withScope = function (callback) {\n        var scope = this.pushScope();\n        try {\n            callback(scope);\n        }\n        finally {\n            this.popScope();\n        }\n    };\n    /** Returns the client of the top stack. */\n    Hub.prototype.getClient = function () {\n        return this.getStackTop().client;\n    };\n    /** Returns the scope of the top stack. */\n    Hub.prototype.getScope = function () {\n        return this.getStackTop().scope;\n    };\n    /** Returns the scope stack for domains or the process. */\n    Hub.prototype.getStack = function () {\n        return this.stack;\n    };\n    /** Returns the topmost scope layer in the order domain > local > process. */\n    Hub.prototype.getStackTop = function () {\n        return this.stack[this.stack.length - 1];\n    };\n    /**\n     * Captures an exception event and sends it to Sentry.\n     *\n     * @param exception An exception-like object.\n     * @param hint May contain additional information about the original exception.\n     * @returns The generated eventId.\n     */\n    Hub.prototype.captureException = function (exception, hint) {\n        var eventId = (this._lastEventId = misc_1.uuid4());\n        this.invokeClientAsync('captureException', exception, tslib_1.__assign({}, hint, { event_id: eventId }));\n        return eventId;\n    };\n    /**\n     * Captures a message event and sends it to Sentry.\n     *\n     * @param message The message to send to Sentry.\n     * @param level Define the level of the message.\n     * @param hint May contain additional information about the original exception.\n     * @returns The generated eventId.\n     */\n    Hub.prototype.captureMessage = function (message, level, hint) {\n        var eventId = (this._lastEventId = misc_1.uuid4());\n        this.invokeClientAsync('captureMessage', message, level, tslib_1.__assign({}, hint, { event_id: eventId }));\n        return eventId;\n    };\n    /**\n     * Captures a manually created event and sends it to Sentry.\n     *\n     * @param event The event to send to Sentry.\n     * @param hint May contain additional information about the original exception.\n     */\n    Hub.prototype.captureEvent = function (event, hint) {\n        var eventId = (this._lastEventId = misc_1.uuid4());\n        this.invokeClientAsync('captureEvent', event, tslib_1.__assign({}, hint, { event_id: eventId }));\n        return eventId;\n    };\n    /**\n     * This is the getter for lastEventId.\n     *\n     * @returns The last event id of a captured event.\n     */\n    Hub.prototype.lastEventId = function () {\n        return this._lastEventId;\n    };\n    /**\n     * Records a new breadcrumb which will be attached to future events.\n     *\n     * Breadcrumbs will be added to subsequent events to provide more context on\n     * user's actions prior to an error or crash.\n     *\n     * @param breadcrumb The breadcrumb to record.\n     * @param hint May contain additional information about the original breadcrumb.\n     */\n    Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n        this.invokeClient('addBreadcrumb', breadcrumb, tslib_1.__assign({}, hint));\n    };\n    /**\n     * Callback to set context information onto the scope.\n     *\n     * @param callback Callback function that receives Scope.\n     */\n    Hub.prototype.configureScope = function (callback) {\n        var top = this.getStackTop();\n        if (top.scope && top.client) {\n            // TODO: freeze flag\n            callback(top.scope);\n        }\n    };\n    /**\n     * For the duraction of the callback, this hub will be set as the global current Hub.\n     * This function is useful if you want to run your own client and hook into an already initialized one\n     * e.g.: Reporting issues to your own sentry when running in your component while still using the users configuration.\n     */\n    Hub.prototype.run = function (callback) {\n        var oldHub = makeMain(this);\n        try {\n            callback(this);\n        }\n        finally {\n            makeMain(oldHub);\n        }\n    };\n    /** Returns the integration if installed on the current client. */\n    Hub.prototype.getIntegration = function (integration) {\n        try {\n            return this.getClient().getIntegration(integration);\n        }\n        catch (_oO) {\n            logger_1.logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n            return null;\n        }\n    };\n    return Hub;\n}());\nexports.Hub = Hub;\n/** Returns the global shim registry. */\nfunction getMainCarrier() {\n    var carrier = misc_1.getGlobalObject();\n    carrier.__SENTRY__ = carrier.__SENTRY__ || {\n        hub: undefined,\n    };\n    return carrier;\n}\nexports.getMainCarrier = getMainCarrier;\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n    var registry = getMainCarrier();\n    var oldHub = getHubFromCarrier(registry);\n    setHubOnCarrier(registry, hub);\n    return oldHub;\n}\nexports.makeMain = makeMain;\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n    // Get main carrier (global for every environment)\n    var registry = getMainCarrier();\n    // If there's no hub, or its an old API, assign a new one\n    if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(exports.API_VERSION)) {\n        setHubOnCarrier(registry, new Hub());\n    }\n    // Prefer domains over global if they are there\n    try {\n        // We need to use `dynamicRequire` because `require` on it's own will be optimized by webpack.\n        // We do not want this to happen, we need to try to `require` the domain node module and fail if we are in browser\n        // for example so we do not have to shim it and use `getCurrentHub` universally.\n        var domain = misc_1.dynamicRequire(module, 'domain');\n        var activeDomain = domain.active;\n        // If there no active domain, just return global hub\n        if (!activeDomain) {\n            return getHubFromCarrier(registry);\n        }\n        // If there's no hub on current domain, or its an old API, assign a new one\n        if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(exports.API_VERSION)) {\n            var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n            setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, scope_1.Scope.clone(registryHubTopStack.scope)));\n        }\n        // Return hub that lives on a domain\n        return getHubFromCarrier(activeDomain);\n    }\n    catch (_Oo) {\n        // Return hub that lives on a global object\n        return getHubFromCarrier(registry);\n    }\n}\nexports.getCurrentHub = getCurrentHub;\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n    if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n        return true;\n    }\n    else {\n        return false;\n    }\n}\nexports.hasHubOnCarrier = hasHubOnCarrier;\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n */\nfunction getHubFromCarrier(carrier) {\n    if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub) {\n        return carrier.__SENTRY__.hub;\n    }\n    else {\n        carrier.__SENTRY__ = {};\n        carrier.__SENTRY__.hub = new Hub();\n        return carrier.__SENTRY__.hub;\n    }\n}\nexports.getHubFromCarrier = getHubFromCarrier;\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n */\nfunction setHubOnCarrier(carrier, hub) {\n    if (!carrier) {\n        return false;\n    }\n    carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n    carrier.__SENTRY__.hub = hub;\n    return true;\n}\nexports.setHubOnCarrier = setHubOnCarrier;\n//# sourceMappingURL=hub.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38)(module)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/hub/dist/hub.js\n// module id = 83\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/hub/dist/hub.js?");
  
  /***/ }),
  
  /***/ 84:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\nvar hub_1 = __webpack_require__(8);\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\nfunction callOnHub(method) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    var hub = hub_1.getCurrentHub();\n    if (hub && hub[method]) {\n        // tslint:disable-next-line:no-unsafe-any\n        return hub[method].apply(hub, tslib_1.__spread(args));\n    }\n    throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\nfunction captureException(exception) {\n    var syntheticException;\n    try {\n        throw new Error('Sentry syntheticException');\n    }\n    catch (exception) {\n        syntheticException = exception;\n    }\n    return callOnHub('captureException', exception, {\n        originalException: exception,\n        syntheticException: syntheticException,\n    });\n}\nexports.captureException = captureException;\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(message, level) {\n    var syntheticException;\n    try {\n        throw new Error(message);\n    }\n    catch (exception) {\n        syntheticException = exception;\n    }\n    return callOnHub('captureMessage', message, level, {\n        originalException: message,\n        syntheticException: syntheticException,\n    });\n}\nexports.captureMessage = captureMessage;\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event) {\n    return callOnHub('captureEvent', event);\n}\nexports.captureEvent = captureEvent;\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n    callOnHub('addBreadcrumb', breadcrumb);\n}\nexports.addBreadcrumb = addBreadcrumb;\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n    callOnHub('configureScope', callback);\n}\nexports.configureScope = configureScope;\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n *     pushScope();\n *     callback();\n *     popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n    callOnHub('withScope', callback);\n}\nexports.withScope = withScope;\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n */\nfunction _callOnClient(method) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    callOnHub.apply(void 0, tslib_1.__spread(['invokeClient', method], args));\n}\nexports._callOnClient = _callOnClient;\n//# sourceMappingURL=index.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/minimal/dist/index.js\n// module id = 84\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/minimal/dist/index.js?");
  
  /***/ }),
  
  /***/ 85:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** JSDoc */\nvar Severity;\n(function (Severity) {\n    /** JSDoc */\n    Severity[\"Fatal\"] = \"fatal\";\n    /** JSDoc */\n    Severity[\"Error\"] = \"error\";\n    /** JSDoc */\n    Severity[\"Warning\"] = \"warning\";\n    /** JSDoc */\n    Severity[\"Log\"] = \"log\";\n    /** JSDoc */\n    Severity[\"Info\"] = \"info\";\n    /** JSDoc */\n    Severity[\"Debug\"] = \"debug\";\n    /** JSDoc */\n    Severity[\"Critical\"] = \"critical\";\n})(Severity = exports.Severity || (exports.Severity = {}));\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Severity) {\n    /**\n     * Converts a string-based level into a {@link Severity}.\n     *\n     * @param level string representation of Severity\n     * @returns Severity\n     */\n    function fromString(level) {\n        switch (level) {\n            case 'debug':\n                return Severity.Debug;\n            case 'info':\n                return Severity.Info;\n            case 'warn':\n            case 'warning':\n                return Severity.Warning;\n            case 'error':\n                return Severity.Error;\n            case 'fatal':\n                return Severity.Fatal;\n            case 'critical':\n                return Severity.Critical;\n            case 'log':\n            default:\n                return Severity.Log;\n        }\n    }\n    Severity.fromString = fromString;\n})(Severity = exports.Severity || (exports.Severity = {}));\n/** The status of an event. */\nvar Status;\n(function (Status) {\n    /** The status could not be determined. */\n    Status[\"Unknown\"] = \"unknown\";\n    /** The event was skipped due to configuration or callbacks. */\n    Status[\"Skipped\"] = \"skipped\";\n    /** The event was sent to Sentry successfully. */\n    Status[\"Success\"] = \"success\";\n    /** The client is currently rate limited and will try again later. */\n    Status[\"RateLimit\"] = \"rate_limit\";\n    /** The event could not be processed. */\n    Status[\"Invalid\"] = \"invalid\";\n    /** A server-side error ocurred during submission. */\n    Status[\"Failed\"] = \"failed\";\n})(Status = exports.Status || (exports.Status = {}));\n// tslint:disable:no-unnecessary-qualifier no-namespace\n(function (Status) {\n    /**\n     * Converts a HTTP status code into a {@link Status}.\n     *\n     * @param code The HTTP response status code.\n     * @returns The send status or {@link Status.Unknown}.\n     */\n    function fromHttpCode(code) {\n        if (code >= 200 && code < 300) {\n            return Status.Success;\n        }\n        if (code === 429) {\n            return Status.RateLimit;\n        }\n        if (code >= 400 && code < 500) {\n            return Status.Invalid;\n        }\n        if (code >= 500) {\n            return Status.Failed;\n        }\n        return Status.Unknown;\n    }\n    Status.fromHttpCode = fromHttpCode;\n})(Status = exports.Status || (exports.Status = {}));\n//# sourceMappingURL=index.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/types/dist/index.js\n// module id = 85\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/types/dist/index.js?");
  
  /***/ }),
  
  /***/ 86:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = __webpack_require__(6);\n/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\nfunction forget(promise) {\n    promise.catch(function (e) {\n        // TODO: Use a better logging mechanism\n        console.error(e);\n    });\n}\nexports.forget = forget;\n/**\n * Helper to filter an array with asynchronous callbacks.\n *\n * @param array An array containing items to filter.\n * @param predicate An async predicate evaluated on every item.\n * @param thisArg Optional value passed as \"this\" into the callback.\n * @returns An array containing only values where the callback returned true.\n */\nfunction filterAsync(array, predicate, thisArg) {\n    return tslib_1.__awaiter(this, void 0, void 0, function () {\n        var verdicts;\n        return tslib_1.__generator(this, function (_a) {\n            switch (_a.label) {\n                case 0: return [4 /*yield*/, Promise.all(array.map(predicate, thisArg))];\n                case 1:\n                    verdicts = _a.sent();\n                    return [2 /*return*/, array.filter(function (_, index) { return verdicts[index]; })];\n            }\n        });\n    });\n}\nexports.filterAsync = filterAsync;\n//# sourceMappingURL=async.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/async.js\n// module id = 86\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/async.js?");
  
  /***/ }),
  
  /***/ 865:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n#view {\\n  padding: 0;\\n  text-align: left; }\\n\\n.credits .avatar-grid {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  margin: 0 auto;\\n  padding: 64px 0;\\n  max-width: 864px;\\n  list-style: none;\\n  -webkit-flex-wrap: wrap;\\n      -ms-flex-wrap: wrap;\\n          flex-wrap: wrap;\\n  -webkit-flex-flow: row wrap;\\n      -ms-flex-flow: row wrap;\\n          flex-flow: row wrap;\\n  -webkit-justify-content: center;\\n      -ms-flex-pack: center;\\n          justify-content: center; }\\n\\n.credits .content {\\n  padding-top: 40px; }\\n\\n.credits .avatar-item {\\n  display: inline-block;\\n  margin: 0;\\n  padding-bottom: 32px;\\n  text-align: center;\\n  line-height: 1.25rem; }\\n  .credits .avatar-item img {\\n    border: 2px solid rgba(0, 0, 0, 0.05);\\n    border-radius: 8px;\\n    background-color: white;\\n    width: 80px;\\n    height: 80px; }\\n  .credits .avatar-item .avatar-text {\\n    display: inline-block;\\n    width: 144px;\\n    font-size: .875rem;\\n    word-wrap: break-word; }\\n\\n.credits .acknowledge-content {\\n  margin: 0 176px;\\n  padding: 2.5rem 0 5.75rem 0;\\n  max-width: 520px; }\\n  .credits .acknowledge-content p {\\n    margin: 0;\\n    padding-bottom: 1.875rem;\\n    line-height: 1.5rem; }\\n  .credits .acknowledge-content h2 {\\n    padding: 3rem 0 1.5rem;\\n    line-height: 1.2em;\\n    font-size: 2rem; }\\n\\n.credits .text-logo {\\n  max-width: 140px;\\n  text-align: center;\\n  font-size: 16px;\\n  font-weight: bold; }\\n\\n.credits .mid-header {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  margin: 0 88px;\\n  -webkit-flex-direction: column;\\n      -ms-flex-direction: column;\\n          flex-direction: column;\\n  -webkit-align-items: center;\\n      -ms-flex-align: center;\\n          align-items: center; }\\n  .credits .mid-header h2 {\\n    line-height: 1.2em; }\\n\\n.credits .logo-grid {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  margin: 0 auto;\\n  max-width: 864px;\\n  -webkit-flex-wrap: wrap;\\n      -ms-flex-wrap: wrap;\\n          flex-wrap: wrap;\\n  -webkit-justify-content: space-around;\\n      -ms-flex-pack: distribute;\\n          justify-content: space-around;\\n  -webkit-align-items: center;\\n      -ms-flex-align: center;\\n          align-items: center; }\\n\\n.credits .supporters {\\n  background-color: #f7f6f8;\\n  padding: 5.25rem 0; }\\n\\n.credits .logo {\\n  padding: 84px 24px 0; }\\n\\n.credits .title-banner {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  padding: 0;\\n  height: 152px;\\n  -webkit-align-items: center;\\n      -ms-flex-align: center;\\n          align-items: center; }\\n\\n.credits .title-banner-h1 {\\n  font-size: 2rem; }\\n\\n@media only screen and (min-width: 477px) and (max-width: 768px) {\\n  .credits .acknowledge-content {\\n    margin: 0 88px; } }\\n\\n@media only screen and (min-width: 365px) and (max-width: 476px) {\\n  .credits .avatar-item {\\n    padding-bottom: 16px; }\\n    .credits .avatar-item .avatar-text {\\n      width: 112px; }\\n  .credits .acknowledge-content,\\n  .credits .mid-header {\\n    margin: 0 44px; } }\\n\\n@media only screen and (max-width: 364px) {\\n  .credits .avatar-item {\\n    padding-bottom: 16px; }\\n    .credits .avatar-item img {\\n      width: 56px;\\n      height: 56px; }\\n    .credits .avatar-item .avatar-text {\\n      width: 96px; }\\n  .credits .logo-grid {\\n    -webkit-flex-direction: column;\\n        -ms-flex-direction: column;\\n            flex-direction: column; }\\n  .credits .acknowledge-content {\\n    margin: 0 12px; }\\n  .credits .logo {\\n    padding: 36px; }\\n  .credits .avatar-grid {\\n    margin: 0 12px; } }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/views/credits/credits.scss\n// module id = 865\n// module chunks = 22\n\n//# sourceURL=webpack:///./src/views/credits/credits.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 87:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://raw.githubusercontent.com/calvinmetcalf/rollup-plugin-node-builtins/master/src/es6/path.js\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** JSDoc */\nfunction normalizeArray(parts, allowAboveRoot) {\n    // if the path tries to go above the root, `up` ends up > 0\n    var up = 0;\n    for (var i = parts.length - 1; i >= 0; i--) {\n        var last = parts[i];\n        if (last === '.') {\n            parts.splice(i, 1);\n        }\n        else if (last === '..') {\n            parts.splice(i, 1);\n            up++;\n        }\n        else if (up) {\n            parts.splice(i, 1);\n            up--;\n        }\n    }\n    // if the path is allowed to go above the root, restore leading ..s\n    if (allowAboveRoot) {\n        for (; up--; up) {\n            parts.unshift('..');\n        }\n    }\n    return parts;\n}\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n/** JSDoc */\nfunction splitPath(filename) {\n    var parts = splitPathRe.exec(filename);\n    return parts ? parts.slice(1) : [];\n}\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nfunction resolve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    var resolvedPath = '';\n    var resolvedAbsolute = false;\n    for (var i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n        var path = i >= 0 ? args[i] : '/';\n        // Skip empty entries\n        if (!path) {\n            continue;\n        }\n        resolvedPath = path + \"/\" + resolvedPath;\n        resolvedAbsolute = path.charAt(0) === '/';\n    }\n    // At this point the path should be resolved to a full absolute path, but\n    // handle relative paths to be safe (might happen when process.cwd() fails)\n    // Normalize the path\n    resolvedPath = normalizeArray(resolvedPath.split('/').filter(function (p) { return !!p; }), !resolvedAbsolute).join('/');\n    return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\nexports.resolve = resolve;\n/** JSDoc */\nfunction trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n        if (arr[start] !== '') {\n            break;\n        }\n    }\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n        if (arr[end] !== '') {\n            break;\n        }\n    }\n    if (start > end) {\n        return [];\n    }\n    return arr.slice(start, end - start + 1);\n}\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nfunction relative(from, to) {\n    // tslint:disable:no-parameter-reassignment\n    from = resolve(from).substr(1);\n    to = resolve(to).substr(1);\n    var fromParts = trim(from.split('/'));\n    var toParts = trim(to.split('/'));\n    var length = Math.min(fromParts.length, toParts.length);\n    var samePartsLength = length;\n    for (var i = 0; i < length; i++) {\n        if (fromParts[i] !== toParts[i]) {\n            samePartsLength = i;\n            break;\n        }\n    }\n    var outputParts = [];\n    for (var i = samePartsLength; i < fromParts.length; i++) {\n        outputParts.push('..');\n    }\n    outputParts = outputParts.concat(toParts.slice(samePartsLength));\n    return outputParts.join('/');\n}\nexports.relative = relative;\n// path.normalize(path)\n// posix version\n/** JSDoc */\nfunction normalize(path) {\n    var isPathAbsolute = isAbsolute(path);\n    var trailingSlash = path.substr(-1) === '/';\n    // Normalize the path\n    var normalizedPath = normalizeArray(path.split('/').filter(function (p) { return !!p; }), !isPathAbsolute).join('/');\n    if (!normalizedPath && !isPathAbsolute) {\n        normalizedPath = '.';\n    }\n    if (normalizedPath && trailingSlash) {\n        normalizedPath += '/';\n    }\n    return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\nexports.normalize = normalize;\n// posix version\n/** JSDoc */\nfunction isAbsolute(path) {\n    return path.charAt(0) === '/';\n}\nexports.isAbsolute = isAbsolute;\n// posix version\n/** JSDoc */\nfunction join() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    return normalize(args.join('/'));\n}\nexports.join = join;\n/** JSDoc */\nfunction dirname(path) {\n    var result = splitPath(path);\n    var root = result[0];\n    var dir = result[1];\n    if (!root && !dir) {\n        // No dirname whatsoever\n        return '.';\n    }\n    if (dir) {\n        // It has a dirname, strip trailing slash\n        dir = dir.substr(0, dir.length - 1);\n    }\n    return root + dir;\n}\nexports.dirname = dirname;\n/** JSDoc */\nfunction basename(path, ext) {\n    var f = splitPath(path)[2];\n    if (ext && f.substr(ext.length * -1) === ext) {\n        f = f.substr(0, f.length - ext.length);\n    }\n    return f;\n}\nexports.basename = basename;\n//# sourceMappingURL=path.js.map\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@sentry/utils/path.js\n// module id = 87\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./~/@sentry/utils/path.js?");
  
  /***/ }),
  
  /***/ 88:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\n\nvar Button = __webpack_require__(15);\n\n__webpack_require__(113);\n\nvar CrashMessage = function CrashMessage(props) {\n    return React.createElement(\n        'div',\n        { className: classNames(['crash-container', props.className]) },\n        React.createElement('img', {\n            className: '',\n            src: '/images/unhandled.png'\n        }),\n        React.createElement(\n            'div',\n            { className: 'crash-message' },\n            React.createElement(\n                'h2',\n                null,\n                React.createElement(FormattedMessage, { id: 'general.error' })\n            ),\n            React.createElement(\n                'p',\n                null,\n                React.createElement(FormattedMessage, { id: 'general.unhandledError' })\n            ),\n            props.eventId && React.createElement(\n                'p',\n                null,\n                React.createElement(FormattedMessage, {\n                    id: 'general.errorIdentifier',\n                    values: {\n                        errorId: props.eventId\n                    }\n                })\n            ),\n            React.createElement(\n                Button,\n                {\n                    className: '',\n                    onClick: props.onBack\n                },\n                React.createElement(FormattedMessage, { id: 'general.back' })\n            )\n        )\n    );\n};\n\nCrashMessage.propTypes = {\n    className: PropTypes.string,\n    eventId: PropTypes.string,\n    onBack: PropTypes.func\n};\n\nmodule.exports = CrashMessage;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/crashmessage/crashmessage.jsx\n// module id = 88\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/crashmessage/crashmessage.jsx?");
  
  /***/ }),
  
  /***/ 89:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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 _log = __webpack_require__(183);\n\nvar _log2 = _interopRequireDefault(_log);\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 PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar Sentry = __webpack_require__(63);\n\nvar CrashMessageComponent = __webpack_require__(88);\n\nvar ErrorBoundary = function (_React$Component) {\n    _inherits(ErrorBoundary, _React$Component);\n\n    function ErrorBoundary(props) {\n        _classCallCheck(this, ErrorBoundary);\n\n        var _this = _possibleConstructorReturn(this, (ErrorBoundary.__proto__ || Object.getPrototypeOf(ErrorBoundary)).call(this, props));\n\n        _this.state = {\n            hasError: false,\n            errorId: null\n        };\n        return _this;\n    }\n\n    _createClass(ErrorBoundary, [{\n        key: 'componentDidCatch',\n        value: function componentDidCatch(error, errorInfo) {\n            // Display fallback UI\n            Sentry.withScope(function (scope) {\n                Object.keys(errorInfo).forEach(function (key) {\n                    scope.setExtra(key, errorInfo[key]);\n                });\n                Sentry.captureException(error);\n            });\n            this.setState({\n                hasError: true,\n                errorId: Sentry.lastEventId()\n            });\n            _log2.default.error('Unhandled Error: ' + error + ', info: ' + errorInfo);\n        }\n    }, {\n        key: 'handleBack',\n        value: function handleBack() {\n            window.history.back();\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            if (this.state.hasError) {\n                return React.createElement(CrashMessageComponent, {\n                    eventId: this.state.errorId,\n                    onBack: this.handleBack\n                });\n            }\n            return this.props.children;\n        }\n    }]);\n\n    return ErrorBoundary;\n}(React.Component);\n\nErrorBoundary.propTypes = {\n    children: PropTypes.node\n};\n\nmodule.exports = ErrorBoundary;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/errorboundary/errorboundary.jsx\n// module id = 89\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/errorboundary/errorboundary.jsx?");
  
  /***/ }),
  
  /***/ 90:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar injectIntl = __webpack_require__(5).injectIntl;\nvar intlShape = __webpack_require__(5).intlShape;\nvar MediaQuery = __webpack_require__(62).default;\nvar React = __webpack_require__(0);\n\nvar FooterBox = __webpack_require__(43);\nvar LanguageChooser = __webpack_require__(44);\n\nvar frameless = __webpack_require__(55);\n\n__webpack_require__(115);\n\nvar Footer = function Footer(props) {\n    return React.createElement(\n        FooterBox,\n        null,\n        React.createElement(\n            MediaQuery,\n            { maxWidth: frameless.mobileIntermediate - 1 },\n            React.createElement(\n                'div',\n                { className: 'lists' },\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/about' },\n                            React.createElement(FormattedMessage, { id: 'general.aboutScratch' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/jobs' },\n                            React.createElement(FormattedMessage, { id: 'general.jobs' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/contact-us/' },\n                            React.createElement(FormattedMessage, { id: 'general.contactUs' })\n                        )\n                    )\n                ),\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/terms_of_use' },\n                            React.createElement(FormattedMessage, { id: 'general.termsOfUse' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/privacy_policy' },\n                            React.createElement(FormattedMessage, { id: 'general.privacyPolicy' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/community_guidelines' },\n                            React.createElement(FormattedMessage, { id: 'general.guidelines' })\n                        )\n                    )\n                )\n            )\n        ),\n        React.createElement(\n            MediaQuery,\n            { minWidth: frameless.mobileIntermediate },\n            React.createElement(\n                'div',\n                { className: 'lists' },\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dt',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'general.about' })\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/about' },\n                            React.createElement(FormattedMessage, { id: 'general.aboutScratch' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/parents/' },\n                            React.createElement(FormattedMessage, { id: 'general.forParents' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/educators' },\n                            React.createElement(FormattedMessage, { id: 'general.forEducators' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/developers' },\n                            React.createElement(FormattedMessage, { id: 'general.forDevelopers' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/credits' },\n                            React.createElement(FormattedMessage, { id: 'general.credits' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/jobs' },\n                            React.createElement(FormattedMessage, { id: 'general.jobs' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'https://www.scratchfoundation.org/media-kit/' },\n                            React.createElement(FormattedMessage, { id: 'general.press' })\n                        )\n                    )\n                ),\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dt',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'general.community' })\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/community_guidelines' },\n                            React.createElement(FormattedMessage, { id: 'general.guidelines' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/discuss/' },\n                            React.createElement(FormattedMessage, { id: 'footer.discuss' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'https://en.scratch-wiki.info/' },\n                            React.createElement(FormattedMessage, { id: 'general.wiki' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/statistics/' },\n                            React.createElement(FormattedMessage, { id: 'general.statistics' })\n                        )\n                    )\n                ),\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dt',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'general.support' })\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/ideas' },\n                            React.createElement(FormattedMessage, { id: 'general.ideas' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/info/faq' },\n                            React.createElement(FormattedMessage, { id: 'general.faq' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/download' },\n                            React.createElement(FormattedMessage, { id: 'general.offlineEditor' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/contact-us/' },\n                            React.createElement(FormattedMessage, { id: 'general.contactUs' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/store' },\n                            React.createElement(FormattedMessage, { id: 'general.scratchStore' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'https://secure.donationpay.org/scratchfoundation/' },\n                            React.createElement(FormattedMessage, { id: 'general.donate' })\n                        )\n                    )\n                ),\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dt',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'general.legal' })\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/terms_of_use' },\n                            React.createElement(FormattedMessage, { id: 'general.termsOfUse' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/privacy_policy' },\n                            React.createElement(FormattedMessage, { id: 'general.privacyPolicy' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/DMCA' },\n                            React.createElement(FormattedMessage, { id: 'general.dmca' })\n                        )\n                    )\n                ),\n                React.createElement(\n                    'dl',\n                    null,\n                    React.createElement(\n                        'dt',\n                        null,\n                        React.createElement(FormattedMessage, { id: 'footer.scratchFamily' })\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'http://scratched.gse.harvard.edu/' },\n                            React.createElement(FormattedMessage, { id: 'general.scratchEd' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'https://www.scratchjr.org/' },\n                            React.createElement(FormattedMessage, { id: 'general.scratchJr' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'http://day.scratch.mit.edu/' },\n                            'Scratch Day'\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: '/conference' },\n                            React.createElement(FormattedMessage, { id: 'general.scratchConference' })\n                        )\n                    ),\n                    React.createElement(\n                        'dd',\n                        null,\n                        React.createElement(\n                            'a',\n                            { href: 'http://www.scratchfoundation.org/' },\n                            React.createElement(FormattedMessage, { id: 'general.scratchFoundation' })\n                        )\n                    )\n                )\n            )\n        ),\n        React.createElement(LanguageChooser, { locale: props.intl.locale }),\n        React.createElement(\n            'div',\n            { className: 'copyright' },\n            React.createElement(\n                'p',\n                null,\n                React.createElement(FormattedMessage, { id: 'general.copyright' })\n            )\n        )\n    );\n};\n\nFooter.propTypes = {\n    intl: intlShape.isRequired\n};\n\nmodule.exports = injectIntl(Footer);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/footer/www/footer.jsx\n// module id = 90\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/footer/www/footer.jsx?");
  
  /***/ }),
  
  /***/ 92:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\nvar connect = __webpack_require__(13).connect;\n\nvar navigationActions = __webpack_require__(16);\nvar Dropdown = __webpack_require__(29);\nvar ConnectedLogin = __webpack_require__(65);\n\n__webpack_require__(34);\n\nvar LoginDropdown = function LoginDropdown(_ref) {\n    var isOpen = _ref.isOpen,\n        onClose = _ref.onClose,\n        onLogIn = _ref.onLogIn;\n    return React.createElement(\n        Dropdown,\n        {\n            className: 'with-arrow',\n            isOpen: isOpen,\n            key: 'login-dropdown',\n            onRequestClose: onClose\n        },\n        React.createElement(ConnectedLogin, {\n            onLogIn: onLogIn\n        })\n    );\n};\n\nLoginDropdown.propTypes = {\n    isOpen: PropTypes.bool,\n    onClose: PropTypes.func,\n    onLogIn: PropTypes.func\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n    return {\n        isOpen: state.navigation && state.navigation.loginOpen\n    };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n    return {\n        onClose: function onClose() {\n            dispatch(navigationActions.setLoginOpen(false));\n        },\n        onLogIn: function onLogIn(formData, callback) {\n            dispatch(navigationActions.handleLogIn(formData, callback));\n        }\n    };\n};\n\nmodule.exports = connect(mapStateToProps, mapDispatchToProps)(LoginDropdown);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/login-dropdown.jsx\n// module id = 92\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login-dropdown.jsx?");
  
  /***/ }),
  
  /***/ 93:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar Form = __webpack_require__(21);\nvar Input = __webpack_require__(22);\nvar Button = __webpack_require__(15);\nvar Spinner = __webpack_require__(40);\nvar FlexRow = __webpack_require__(14);\n\n__webpack_require__(116);\n\nvar Login = function (_React$Component) {\n    _inherits(Login, _React$Component);\n\n    function Login(props) {\n        _classCallCheck(this, Login);\n\n        var _this = _possibleConstructorReturn(this, (Login.__proto__ || Object.getPrototypeOf(Login)).call(this, props));\n\n        bindAll(_this, ['handleSubmit']);\n        _this.state = {\n            waiting: false\n        };\n        return _this;\n    }\n\n    _createClass(Login, [{\n        key: 'handleSubmit',\n        value: function handleSubmit(formData) {\n            var _this2 = this;\n\n            this.setState({ waiting: true });\n            this.props.onLogIn(formData, function () {\n                _this2.setState({ waiting: false });\n            });\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var error = void 0;\n            if (this.props.error) {\n                error = React.createElement(\n                    'div',\n                    { className: 'error' },\n                    this.props.error\n                );\n            }\n            return React.createElement(\n                'div',\n                { className: 'login' },\n                React.createElement(\n                    Form,\n                    { onSubmit: this.handleSubmit },\n                    React.createElement(\n                        'label',\n                        {\n                            htmlFor: 'username',\n                            key: 'usernameLabel'\n                        },\n                        React.createElement(FormattedMessage, { id: 'general.username' })\n                    ),\n                    React.createElement(Input, {\n                        required: true,\n                        key: 'usernameInput',\n                        maxLength: '30',\n                        name: 'username',\n                        type: 'text'\n                    }),\n                    React.createElement(\n                        'label',\n                        {\n                            htmlFor: 'password',\n                            key: 'passwordLabel'\n                        },\n                        React.createElement(FormattedMessage, { id: 'general.password' })\n                    ),\n                    React.createElement(Input, {\n                        required: true,\n                        key: 'passwordInput',\n                        name: 'password',\n                        type: 'password'\n                    }),\n                    React.createElement(\n                        FlexRow,\n                        { className: 'submit-row' },\n                        this.state.waiting ? [React.createElement(\n                            Button,\n                            {\n                                className: 'submit-button white',\n                                disabled: 'disabled',\n                                key: 'submitButton',\n                                type: 'submit'\n                            },\n                            React.createElement(Spinner, {\n                                className: 'spinner',\n                                color: 'blue'\n                            })\n                        )] : [React.createElement(\n                            Button,\n                            {\n                                className: 'submit-button white',\n                                key: 'submitButton',\n                                type: 'submit'\n                            },\n                            React.createElement(FormattedMessage, { id: 'general.signIn' })\n                        )],\n                        React.createElement(\n                            'a',\n                            {\n                                href: '/accounts/password_reset/',\n                                key: 'passwordResetLink'\n                            },\n                            React.createElement(FormattedMessage, { id: 'login.needHelp' })\n                        )\n                    ),\n                    error\n                )\n            );\n        }\n    }]);\n\n    return Login;\n}(React.Component);\n\nLogin.propTypes = {\n    error: PropTypes.string,\n    onLogIn: PropTypes.func\n};\n\nmodule.exports = Login;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/login/login.jsx\n// module id = 93\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login.jsx?");
  
  /***/ }),
  
  /***/ 94:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nvar classNames = __webpack_require__(4);\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar injectIntl = __webpack_require__(5).injectIntl;\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar Avatar = __webpack_require__(54);\nvar Dropdown = __webpack_require__(29);\n\n__webpack_require__(119);\n\nvar AccountNav = function AccountNav(_ref) {\n    var classroomId = _ref.classroomId,\n        isEducator = _ref.isEducator,\n        isOpen = _ref.isOpen,\n        isStudent = _ref.isStudent,\n        profileUrl = _ref.profileUrl,\n        thumbnailUrl = _ref.thumbnailUrl,\n        username = _ref.username,\n        onClick = _ref.onClick,\n        onClickLogout = _ref.onClickLogout,\n        onClose = _ref.onClose;\n    return React.createElement(\n        'div',\n        { className: 'account-nav' },\n        React.createElement(\n            'a',\n            {\n                className: classNames(['ignore-react-onclickoutside', 'user-info', { open: isOpen }]),\n                href: '#',\n                onClick: onClick\n            },\n            React.createElement(Avatar, {\n                alt: '',\n                src: thumbnailUrl\n            }),\n            React.createElement(\n                'span',\n                { className: 'profile-name' },\n                username\n            )\n        ),\n        React.createElement(\n            Dropdown,\n            {\n                as: 'ul',\n                className: \"development\",\n                isOpen: isOpen,\n                onRequestClose: onClose\n            },\n            React.createElement(\n                'li',\n                null,\n                React.createElement(\n                    'a',\n                    { href: profileUrl },\n                    React.createElement(FormattedMessage, { id: 'general.profile' })\n                )\n            ),\n            React.createElement(\n                'li',\n                null,\n                React.createElement(\n                    'a',\n                    { href: '/mystuff/' },\n                    React.createElement(FormattedMessage, { id: 'general.myStuff' })\n                )\n            ),\n            isEducator ? [React.createElement(\n                'li',\n                { key: 'my-classes-li' },\n                React.createElement(\n                    'a',\n                    { href: '/educators/classes/' },\n                    React.createElement(FormattedMessage, { id: 'general.myClasses' })\n                )\n            )] : [],\n            isStudent ? [React.createElement(\n                'li',\n                { key: 'my-class-li' },\n                React.createElement(\n                    'a',\n                    { href: '/classes/' + classroomId + '/' },\n                    React.createElement(FormattedMessage, { id: 'general.myClass' })\n                )\n            )] : [],\n            React.createElement(\n                'li',\n                null,\n                React.createElement(\n                    'a',\n                    { href: '/accounts/settings/' },\n                    React.createElement(FormattedMessage, { id: 'general.accountSettings' })\n                )\n            ),\n            React.createElement(\n                'li',\n                { className: 'divider' },\n                React.createElement(\n                    'a',\n                    {\n                        href: '#',\n                        onClick: onClickLogout\n                    },\n                    React.createElement(FormattedMessage, { id: 'navigation.signOut' })\n                )\n            )\n        )\n    );\n};\n\nAccountNav.propTypes = {\n    classroomId: PropTypes.string,\n    isEducator: PropTypes.bool,\n    isOpen: PropTypes.bool,\n    isStudent: PropTypes.bool,\n    onClick: PropTypes.func,\n    onClickLogout: PropTypes.func,\n    onClose: PropTypes.func,\n    profileUrl: PropTypes.string,\n    thumbnailUrl: PropTypes.string,\n    username: PropTypes.string\n};\n\nmodule.exports = injectIntl(AccountNav);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/www/accountnav.jsx\n// module id = 94\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/accountnav.jsx?");
  
  /***/ }),
  
  /***/ 95:
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\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\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 bindAll = __webpack_require__(9);\nvar classNames = __webpack_require__(4);\nvar connect = __webpack_require__(13).connect;\nvar FormattedMessage = __webpack_require__(5).FormattedMessage;\nvar injectIntl = __webpack_require__(5).injectIntl;\nvar intlShape = __webpack_require__(5).intlShape;\nvar PropTypes = __webpack_require__(1);\nvar React = __webpack_require__(0);\n\nvar messageCountActions = __webpack_require__(184);\nvar navigationActions = __webpack_require__(16);\nvar sessionActions = __webpack_require__(130);\n\nvar Button = __webpack_require__(15);\nvar Form = __webpack_require__(21);\nvar Input = __webpack_require__(22);\nvar LoginDropdown = __webpack_require__(92);\nvar CanceledDeletionModal = __webpack_require__(64);\nvar NavigationBox = __webpack_require__(45);\nvar Registration = __webpack_require__(67);\nvar AccountNav = __webpack_require__(94);\n\n__webpack_require__(120);\n\nvar Navigation = function (_React$Component) {\n    _inherits(Navigation, _React$Component);\n\n    function Navigation(props) {\n        _classCallCheck(this, Navigation);\n\n        var _this = _possibleConstructorReturn(this, (Navigation.__proto__ || Object.getPrototypeOf(Navigation)).call(this, props));\n\n        bindAll(_this, ['getProfileUrl', 'handleSearchSubmit']);\n        _this.state = {\n            messageCountIntervalId: -1 // javascript method interval id for getting messsage count.\n        };\n        return _this;\n    }\n\n    _createClass(Navigation, [{\n        key: 'componentDidMount',\n        value: function componentDidMount() {\n            var _this2 = this;\n\n            if (this.props.user) {\n                var intervalId = setInterval(function () {\n                    _this2.props.getMessageCount(_this2.props.user.username);\n                }, 120000); // check for new messages every 2 mins.\n                this.setState({ // eslint-disable-line react/no-did-mount-set-state\n                    messageCountIntervalId: intervalId\n                });\n            }\n        }\n    }, {\n        key: 'componentDidUpdate',\n        value: function componentDidUpdate(prevProps) {\n            var _this3 = this;\n\n            if (prevProps.user !== this.props.user) {\n                this.props.closeAccountMenus();\n                if (this.props.user) {\n                    var intervalId = setInterval(function () {\n                        _this3.props.getMessageCount(_this3.props.user.username);\n                    }, 120000); // check for new messages every 2 mins.\n                    this.setState({ // eslint-disable-line react/no-did-update-set-state\n                        messageCountIntervalId: intervalId\n                    });\n                } else {\n                    // clear message count check, and set to default id.\n                    clearInterval(this.state.messageCountIntervalId);\n                    this.props.setMessageCount(0);\n                    this.setState({ // eslint-disable-line react/no-did-update-set-state\n                        messageCountIntervalId: -1\n                    });\n                }\n            }\n        }\n    }, {\n        key: 'componentWillUnmount',\n        value: function componentWillUnmount() {\n            // clear message interval if it exists\n            if (this.state.messageCountIntervalId !== -1) {\n                clearInterval(this.state.messageCountIntervalId);\n                this.props.setMessageCount(0);\n                this.setState({\n                    messageCountIntervalId: -1\n                });\n            }\n        }\n    }, {\n        key: 'getProfileUrl',\n        value: function getProfileUrl() {\n            if (!this.props.user) return;\n            return '/users/' + this.props.user.username + '/';\n        }\n    }, {\n        key: 'handleSearchSubmit',\n        value: function handleSearchSubmit(formData) {\n            window.location.href = '/search/projects?q=' + encodeURIComponent(formData.q);\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var createLink = this.props.user ? '/projects/editor/' : '/projects/editor/?tutorial=getStarted';\n            return React.createElement(\n                NavigationBox,\n                {\n                    className: classNames({\n                        'logged-in': this.props.user\n                    })\n                },\n                React.createElement(\n                    'ul',\n                    null,\n                    React.createElement(\n                        'li',\n                        { className: 'logo' },\n                        React.createElement('a', {\n                            'aria-label': 'Scratch',\n                            href: '/'\n                        })\n                    ),\n                    React.createElement(\n                        'li',\n                        { className: 'link create' },\n                        React.createElement(\n                            'a',\n                            { href: createLink },\n                            React.createElement(FormattedMessage, { id: 'general.create' })\n                        )\n                    ),\n                    React.createElement(\n                        'li',\n                        { className: 'link explore' },\n                        React.createElement(\n                            'a',\n                            { href: '/explore/projects/all' },\n                            React.createElement(FormattedMessage, { id: 'general.explore' })\n                        )\n                    ),\n                    React.createElement(\n                        'li',\n                        { className: 'link ideas' },\n                        React.createElement(\n                            'a',\n                            { href: '/ideas' },\n                            React.createElement(FormattedMessage, { id: 'general.ideas' })\n                        )\n                    ),\n                    React.createElement(\n                        'li',\n                        { className: 'link about' },\n                        React.createElement(\n                            'a',\n                            { href: '/about' },\n                            React.createElement(FormattedMessage, { id: 'general.about' })\n                        )\n                    ),\n                    React.createElement(\n                        'li',\n                        { className: 'search' },\n                        React.createElement(\n                            Form,\n                            { onSubmit: this.handleSearchSubmit },\n                            React.createElement(Button, {\n                                className: 'btn-search',\n                                type: 'submit'\n                            }),\n                            React.createElement(Input, {\n                                'aria-label': this.props.intl.formatMessage({ id: 'general.search' }),\n                                name: 'q',\n                                placeholder: this.props.intl.formatMessage({ id: 'general.search' }),\n                                type: 'text',\n                                value: this.props.searchTerm\n                            })\n                        )\n                    ),\n                    this.props.session.status === sessionActions.Status.FETCHED ? this.props.user ? [React.createElement(\n                        'li',\n                        {\n                            className: 'link right messages',\n                            key: 'messages'\n                        },\n                        React.createElement(\n                            'a',\n                            {\n                                href: '/messages/',\n                                title: this.props.intl.formatMessage({ id: 'general.messages' })\n                            },\n                            React.createElement(\n                                'span',\n                                {\n                                    className: classNames({\n                                        'message-count': true,\n                                        'show': this.props.unreadMessageCount > 0\n                                    })\n                                },\n                                this.props.unreadMessageCount,\n                                ' '\n                            ),\n                            React.createElement(FormattedMessage, { id: 'general.messages' })\n                        )\n                    ), React.createElement(\n                        'li',\n                        {\n                            className: 'link right mystuff',\n                            key: 'mystuff'\n                        },\n                        React.createElement(\n                            'a',\n                            {\n                                href: '/mystuff/',\n                                title: this.props.intl.formatMessage({ id: 'general.myStuff' })\n                            },\n                            React.createElement(FormattedMessage, { id: 'general.myStuff' })\n                        )\n                    ), React.createElement(\n                        'li',\n                        {\n                            className: 'link right account-nav',\n                            key: 'account-nav'\n                        },\n                        React.createElement(AccountNav, {\n                            classroomId: this.props.user.classroomId,\n                            isEducator: this.props.permissions.educator,\n                            isOpen: this.props.accountNavOpen,\n                            isStudent: this.props.permissions.student,\n                            profileUrl: this.getProfileUrl(),\n                            thumbnailUrl: this.props.user.thumbnailUrl,\n                            username: this.props.user.username,\n                            onClick: this.props.handleToggleAccountNav,\n                            onClickLogout: this.props.handleLogOut,\n                            onClose: this.props.handleCloseAccountNav\n                        })\n                    )] : [React.createElement(\n                        'li',\n                        {\n                            className: 'link right join',\n                            key: 'join'\n                        },\n                        React.createElement(\n                            'a',\n                            {\n                                href: '#',\n                                onClick: this.props.handleOpenRegistration\n                            },\n                            React.createElement(FormattedMessage, { id: 'general.joinScratch' })\n                        )\n                    ), React.createElement(Registration, {\n                        key: 'registration'\n                    }), React.createElement(\n                        'li',\n                        {\n                            className: 'link right login-item',\n                            key: 'login'\n                        },\n                        React.createElement(\n                            'a',\n                            {\n                                className: 'ignore-react-onclickoutside',\n                                href: '#',\n                                key: 'login-link',\n                                onClick: this.props.handleToggleLoginOpen\n                            },\n                            React.createElement(FormattedMessage, { id: 'general.signIn' })\n                        ),\n                        React.createElement(LoginDropdown, {\n                            key: 'login-dropdown'\n                        })\n                    )] : []\n                ),\n                React.createElement(CanceledDeletionModal, null)\n            );\n        }\n    }]);\n\n    return Navigation;\n}(React.Component);\n\nNavigation.propTypes = {\n    accountNavOpen: PropTypes.bool,\n    closeAccountMenus: PropTypes.func,\n    getMessageCount: PropTypes.func,\n    handleCloseAccountNav: PropTypes.func,\n    handleLogOut: PropTypes.func,\n    handleOpenRegistration: PropTypes.func,\n    handleToggleAccountNav: PropTypes.func,\n    handleToggleLoginOpen: PropTypes.func,\n    intl: intlShape,\n    permissions: PropTypes.shape({\n        admin: PropTypes.bool,\n        social: PropTypes.bool,\n        educator: PropTypes.bool,\n        educator_invitee: PropTypes.bool,\n        student: PropTypes.bool\n    }),\n    searchTerm: PropTypes.string,\n    session: PropTypes.shape({\n        status: PropTypes.string\n    }),\n    setMessageCount: PropTypes.func,\n    unreadMessageCount: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n    user: PropTypes.shape({\n        classroomId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n        thumbnailUrl: PropTypes.string,\n        username: PropTypes.string\n    })\n};\n\nNavigation.defaultProps = {\n    session: {},\n    unreadMessageCount: 0, // bubble number to display how many notifications someone has.\n    searchTerm: ''\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n    return {\n        accountNavOpen: state.navigation && state.navigation.accountNavOpen,\n        session: state.session,\n        permissions: state.permissions,\n        searchTerm: state.navigation.searchTerm,\n        unreadMessageCount: state.messageCount.messageCount,\n        user: state.session && state.session.session && state.session.session.user\n    };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n    return {\n        closeAccountMenus: function closeAccountMenus() {\n            dispatch(navigationActions.closeAccountMenus());\n        },\n        getMessageCount: function getMessageCount(username) {\n            dispatch(messageCountActions.getCount(username));\n        },\n        handleToggleAccountNav: function handleToggleAccountNav(event) {\n            event.preventDefault();\n            dispatch(navigationActions.handleToggleAccountNav());\n        },\n        handleCloseAccountNav: function handleCloseAccountNav() {\n            dispatch(navigationActions.setAccountNavOpen(false));\n        },\n        handleOpenRegistration: function handleOpenRegistration(event) {\n            event.preventDefault();\n            dispatch(navigationActions.setRegistrationOpen(true));\n        },\n        handleLogOut: function handleLogOut(event) {\n            event.preventDefault();\n            dispatch(navigationActions.handleLogOut());\n        },\n        handleToggleLoginOpen: function handleToggleLoginOpen(event) {\n            event.preventDefault();\n            dispatch(navigationActions.toggleLoginOpen());\n        },\n        setMessageCount: function setMessageCount(newCount) {\n            dispatch(messageCountActions.setCount(newCount));\n        }\n    };\n};\n\nvar ConnectedNavigation = connect(mapStateToProps, mapDispatchToProps)(Navigation);\n\nmodule.exports = injectIntl(ConnectedNavigation);\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/navigation/www/navigation.jsx\n// module id = 95\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/navigation/www/navigation.jsx?");
  
  /***/ }),
  
  /***/ 96:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \".crash-container {\\n  /* UI Primary Colors */\\n  /* #FF661A */\\n  /* UI Secondary Colors */\\n  /* 3.0 colors */\\n  /* Using www naming convention for now, should be consistent with gui */\\n  /* modals */\\n  /* Overlay UI Gray Colors */\\n  /* Typography Colors */\\n  /* Down Deep */\\n  /*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n  /* Media Queries */\\n  /* Width */\\n  /*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n  /* Height */\\n  margin: 3rem auto;\\n  border: 1px solid #d9d9d9;\\n  border-radius: 10px;\\n  background-color: #fcfcfc;\\n  width: 60%;\\n  overflow: hidden;\\n  text-align: center; }\\n  @media only screen and (max-width: 479px) {\\n    .crash-container #view {\\n      text-align: center; }\\n    .crash-container .inner {\\n      margin: 0 auto;\\n      width: 100%; } }\\n  @media only screen and (min-width: 480px) and (max-width: 767px) {\\n    .crash-container #view {\\n      text-align: center; }\\n    .crash-container .inner {\\n      margin: 0 auto;\\n      width: 480px; } }\\n  @media only screen and (min-width: 768px) and (max-width: 941px) {\\n    .crash-container #view {\\n      text-align: center; }\\n    .crash-container .inner {\\n      margin: 0 auto;\\n      width: 768px; } }\\n  @media only screen and (min-width: 942px) {\\n    .crash-container .inner {\\n      margin: 0 auto;\\n      width: 942px; } }\\n  .crash-container img {\\n    width: 100%; }\\n  .crash-container .crash-message {\\n    margin: 2rem; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/crashmessage/crashmessage.scss\n// module id = 96\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/crashmessage/crashmessage.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 97:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n.dropdown {\\n  display: none;\\n  position: absolute;\\n  right: 0;\\n  border: 1px solid rgba(0, 0, 0, 0.1);\\n  border-radius: 0 0 5px 5px;\\n  background-color: #4d97ff;\\n  padding: 10px;\\n  min-width: 9rem;\\n  max-width: 16.25rem;\\n  overflow: visible;\\n  color: white;\\n  font-size: .8125rem;\\n  font-weight: normal; }\\n  .dropdown.staging {\\n    background-color: #ffab1a; }\\n  .dropdown.open {\\n    display: block; }\\n  .dropdown a:link, .dropdown a:visited, .dropdown a:active {\\n    background-color: transparent;\\n    color: white; }\\n  .dropdown input {\\n    margin-bottom: 12px;\\n    width: calc(100% - 30px); }\\n  .dropdown label {\\n    display: block;\\n    margin-bottom: 5px; }\\n  .dropdown > li {\\n    display: block;\\n    line-height: 30px; }\\n    .dropdown > li.divider {\\n      margin-top: 10px;\\n      border-top: 1px solid rgba(0, 0, 0, 0.1); }\\n    .dropdown > li a {\\n      display: block;\\n      padding: 0 10px; }\\n      .dropdown > li a:hover {\\n        background-color: rgba(0, 0, 0, 0.1);\\n        text-decoration: none; }\\n  .dropdown.with-arrow {\\n    margin-top: 14px;\\n    border-radius: 5px;\\n    overflow: visible; }\\n    .dropdown.with-arrow:before {\\n      display: block;\\n      position: absolute;\\n      top: -7px;\\n      right: 10%;\\n      -webkit-transform: rotate(45deg);\\n          -ms-transform: rotate(45deg);\\n              transform: rotate(45deg);\\n      border-top: 1px solid rgba(0, 0, 0, 0.1);\\n      border-left: 1px solid rgba(0, 0, 0, 0.1);\\n      border-radius: 5px;\\n      background-color: #4d97ff;\\n      width: 14px;\\n      height: 14px;\\n      content: \\\"\\\"; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/dropdown/dropdown.scss\n// module id = 97\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/dropdown/dropdown.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 98:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"/* UI Primary Colors */\\n/* #FF661A */\\n/* UI Secondary Colors */\\n/* 3.0 colors */\\n/* Using www naming convention for now, should be consistent with gui */\\n/* modals */\\n/* Overlay UI Gray Colors */\\n/* Typography Colors */\\n/* Down Deep */\\n/*\\n    Frameless           <http://framelessgrid.com/>\\n    by Joni Korpi       <http://jonikorpi.com/>\\n    licensed under CC0  <http://creativecommons.org/publicdomain/zero/1.0/>\\n*/\\n/* Media Queries */\\n/* Width */\\n/*\\n* ... small | medium     | intermediate | big ...\\n* ... medium-and-smaller |\\n*          ... intermediate-and-smaller |\\n*/\\n/* Height */\\n@media only screen and (max-width: 479px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 100%; } }\\n\\n@media only screen and (min-width: 480px) and (max-width: 767px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 480px; } }\\n\\n@media only screen and (min-width: 768px) and (max-width: 941px) {\\n  #view {\\n    text-align: center; }\\n  .inner {\\n    margin: 0 auto;\\n    width: 768px; } }\\n\\n@media only screen and (min-width: 942px) {\\n  .inner {\\n    margin: 0 auto;\\n    width: 942px; } }\\n\\n#footer .lists {\\n  display: -webkit-flex;\\n  display: -ms-flexbox;\\n  display: flex;\\n  text-align: center;\\n  -webkit-flex-direction: row;\\n      -ms-flex-direction: row;\\n          flex-direction: row;\\n  -webkit-flex-wrap: nowrap;\\n      -ms-flex-wrap: nowrap;\\n          flex-wrap: nowrap;\\n  -webkit-justify-content: space-between;\\n      -ms-flex-pack: justify;\\n          justify-content: space-between; }\\n  #footer .lists dl {\\n    display: inline-block;\\n    vertical-align: top;\\n    text-align: left;\\n    font-size: .8rem; }\\n  #footer .lists dt {\\n    display: block;\\n    margin-bottom: 8px; }\\n  #footer .lists dd {\\n    display: block;\\n    margin: 5px 0;\\n    line-height: 1.2rem; }\\n    #footer .lists dd a {\\n      font-weight: 400; }\\n\\n#footer .copyright {\\n  display: block;\\n  width: 100%;\\n  text-align: center; }\\n  #footer .copyright p {\\n    font-size: .7rem; }\\n\\n#footer .language-chooser {\\n  text-align: center; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/footer/www/footer.scss\n// module id = 98\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/footer/www/footer.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ }),
  
  /***/ 99:
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(2)();\n// imports\n\n\n// module\nexports.push([module.i, \"\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader!./~/postcss-loader/lib?{}!./~/sass-loader/lib/loader.js!./src/components/login/login-dropdown.scss\n// module id = 99\n// module chunks = 0 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35\n\n//# sourceURL=webpack:///./src/components/login/login-dropdown.scss?./~/css-loader!./~/postcss-loader/lib?%7B%7D!./~/sass-loader/lib/loader.js");
  
  /***/ })
  
  },[747]);