@excalidraw/excalidraw 0.12.0-792f238 → 0.12.0-9c37b25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/excalidraw-assets/vendor-a9598c709179a54ea2cd.js +2 -0
- package/dist/excalidraw-assets/vendor-a9598c709179a54ea2cd.js.LICENSE.txt +14 -0
- package/dist/excalidraw.development.js +9 -9
- package/dist/excalidraw.production.min.js +1 -1
- package/dist/excalidraw.production.min.js.LICENSE.txt +2 -0
- package/package.json +4 -6
- package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.d.ts → vendor-a9598c709179a54ea2cd.d.ts} +0 -0
- package/dist/excalidraw-assets/vendor-52b1f3361986b6c6a4fe.js +0 -2
- package/dist/excalidraw-assets/vendor-52b1f3361986b6c6a4fe.js.LICENSE.txt +0 -12
|
@@ -1600,7 +1600,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1600
1600
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1601
1601
|
|
|
1602
1602
|
"use strict";
|
|
1603
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.excalidraw .ToolIcon--plain {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon--plain .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:hover,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .ToolIcon__icon + .ToolIcon__label {\\n margin-inline-start: 0;\\n}\\n.excalidraw .ToolIcon__icon svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n}\\n.excalidraw .ToolIcon__label .Spinner {\\n margin-left: 0.6em;\\n}\\n.excalidraw .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button,\\n.excalidraw .Modal .ToolIcon_type_button,\\n.excalidraw .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:focus-visible,\\n.excalidraw .Modal .ToolIcon_type_button:focus-visible,\\n.excalidraw .ToolIcon_type_button:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:hover,\\n.excalidraw .Modal .ToolIcon_type_button:hover,\\n.excalidraw .ToolIcon_type_button:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:active,\\n.excalidraw .Modal .ToolIcon_type_button:active,\\n.excalidraw .ToolIcon_type_button:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--show,\\n.excalidraw .Modal .ToolIcon_type_button--show,\\n.excalidraw .ToolIcon_type_button--show {\\n visibility: visible;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--hide,\\n.excalidraw .Modal .ToolIcon_type_button--hide,\\n.excalidraw .ToolIcon_type_button--hide {\\n visibility: hidden;\\n}\\n.excalidraw .ToolIcon_type_radio,\\n.excalidraw .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_radio:focus-visible + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .ToolIcon_type_radio:active + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_floating {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:hover {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:active {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n@media (max-width: 425px) {\\n .excalidraw .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n .excalidraw .Shape .ToolIcon__icon svg {\\n height: 0.8em;\\n }\\n}\\n@media (max-width: 760px) {\\n .excalidraw .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:hover {\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:active {\\n background-color: var(--button-gray-2);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating svg {\\n position: static;\\n }\\n .excalidraw .ToolIcon.ToolIcon__library {\\n top: 100px;\\n }\\n .excalidraw .ToolIcon.ToolIcon__lock {\\n margin-inline-end: 0;\\n top: 60px;\\n }\\n .excalidraw .ToolIcon.ToolIcon__penMode {\\n margin-inline-end: 0;\\n top: 140px;\\n }\\n}\\n:root[dir=ltr] .excalidraw .unlocked-icon {\\n left: 2px;\\n}\\n:root[dir=rtl] .excalidraw .unlocked-icon {\\n right: 2px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ToolIcon.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AACE;EACE,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,wCAAA;EACA,yBAAA;UAAA,iBAAA;AAEJ;AACE;EACE,6BAAA;AACJ;AAAI;EACE,WAAA;EACA,YAAA;AAEN;AAII;;EACE,sCAAA;AADN;AAGM;;EACE,sCAAA;AAAR;AAEM;;EACE,sCAAA;AACR;AAIE;EACE,aAAA;EACA,cAAA;EACA,6BAAA;EAEA,aAAA;EACA,uBAAA;EACA,mBAAA;EAEA,sCAAA;AAJJ;AAMI;EACE,sBAAA;AAJN;AAOI;EACE,kBAAA;EACA,WAAA;EACA,4BAAA;EACA,6BAAA;AALN;AASE;EACE,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,2BAAA;EACA,eAAA;EACA,uBAAA;AAPJ;AASI;EACE,kBAAA;AAPN;AAWE;EACE,WAAA;EACA,YAAA;EACA,gBAAA;AATJ;AAYE;;;EAGE,UAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;AAVJ;AAYI;;;EACE,kDAAA;AARN;AAWI;;;EACE,sCAAA;AAPN;AASM;;;EACE,sCAAA;AALR;AASI;;;EACE,sCAAA;AALN;AAQI;;;EACE,sCAAA;AAJN;AAOI;;;EACE,mBAAA;AAHN;AAMI;;;EACE,kBAAA;AAFN;AAME;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AAJJ;AAMI;;EACE,sCAAA;AAHN;AAIM;;EACE,sCAAA;AADR;AAKI;;EACE,kDAAA;AAFN;AAKI;;EACE,sCAAA;AAFN;AAME;EACE,6BAAA;AAJJ;AAMI;EACE,6BAAA;AAJN;AAOI;EACE,6BAAA;AALN;AAQI;EACE,sCAAA;EAQA,WAAA;EACA,YAAA;AAbN;AAKM;EACE,sCAAA;AAHR;AAKM;EACE,sCAAA;AAHR;AAWE;EACE,kBAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,2BAAA;EACA,yBAAA;UAAA,iBAAA;AATJ;AAaE;EACE;IACE,WAAA;IACA,YAAA;EAXJ;EAaI;IACE,aAAA;EAXN;AACF;AAiBE;EACE;IACE,qBAAA;IACA,kBAAA;IACA,WAAA;IAEA,cAAA;IACA,4BAAA;IACA,UAAA;IAEA,sCAAA;EAjBJ;EAmBI;IACE,sCAAA;EAjBN;EAoBI;IACE,sCAAA;EAlBN;EAqBI;IACE,sBAAA;EAnBN;EAsBI;IACE,gBAAA;EApBN;EAuBE;IACE,UAAA;EArBJ;EAwBE;IACE,oBAAA;IACA,SAAA;EAtBJ;EAwBE;IACE,oBAAA;IACA,UAAA;EAtBJ;AACF;AA0BI;EACE,SAAA;AAxBN;AA2BI;EACE,UAAA;AAzBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n user-select: none;\\n }\\n\\n .ToolIcon--plain {\\n background-color: transparent;\\n .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n border-radius: var(--border-radius-lg);\\n\\n & + .ToolIcon__label {\\n margin-inline-start: 0;\\n }\\n\\n svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n }\\n }\\n\\n .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n\\n .Spinner {\\n margin-left: 0.6em;\\n }\\n }\\n\\n .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n }\\n\\n .excalidraw .ToolIcon_type_button,\\n .Modal .ToolIcon_type_button,\\n .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n\\n &:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &--show {\\n visibility: visible;\\n }\\n\\n &--hide {\\n visibility: hidden;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n\\n &:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n .ToolIcon_type_floating {\\n background-color: transparent;\\n\\n &:hover {\\n background-color: transparent;\\n }\\n\\n &:active {\\n background-color: transparent;\\n }\\n\\n .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n user-select: none;\\n }\\n\\n // shrink shape icons on small viewports to make them fit\\n @media (max-width: 425px) {\\n .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n\\n svg {\\n height: 0.8em;\\n }\\n }\\n }\\n\\n // move the lock button out of the way on small viewports\\n // it begins to collide with the GitHub icon before we switch to mobile mode\\n @media (max-width: 760px) {\\n .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-1);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n\\n .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n\\n svg {\\n position: static;\\n }\\n }\\n .ToolIcon.ToolIcon__library {\\n top: 100px;\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n margin-inline-end: 0;\\n top: 60px;\\n }\\n .ToolIcon.ToolIcon__penMode {\\n margin-inline-end: 0;\\n top: 140px;\\n }\\n }\\n\\n .unlocked-icon {\\n :root[dir=\\\"ltr\\\"] & {\\n left: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 2px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsMkJBQTJCLHlCQUF5Qix3QkFBd0IsdUJBQXVCLG9CQUFvQiw2Q0FBNkMsOEJBQThCLDhCQUE4QixHQUFHLGdDQUFnQyxrQ0FBa0MsR0FBRyxnREFBZ0QsZ0JBQWdCLGlCQUFpQixHQUFHLDhHQUE4RywyQ0FBMkMsR0FBRywwSEFBMEgsMkNBQTJDLEdBQUcsNEhBQTRILDJDQUEyQyxHQUFHLCtCQUErQixrQkFBa0IsbUJBQW1CLGtDQUFrQyxrQkFBa0IsNEJBQTRCLHdCQUF3QiwyQ0FBMkMsR0FBRyxrREFBa0QsMkJBQTJCLEdBQUcsbUNBQW1DLHVCQUF1QixnQkFBZ0IsaUNBQWlDLGtDQUFrQyxHQUFHLGdDQUFnQyxrQkFBa0Isd0JBQXdCLGtDQUFrQyxnQ0FBZ0Msb0JBQW9CLDRCQUE0QixHQUFHLHlDQUF5Qyx1QkFBdUIsR0FBRyxvREFBb0QsZ0JBQWdCLGlCQUFpQixxQkFBcUIsR0FBRyxnSUFBZ0ksZUFBZSxpQkFBaUIsY0FBYyx1QkFBdUIsR0FBRywwS0FBMEssdURBQXVELEdBQUcseUxBQXlMLDJDQUEyQyxHQUFHLDhNQUE4TSwyQ0FBMkMsR0FBRyxrSkFBa0osMkNBQTJDLEdBQUcscUpBQXFKLDJDQUEyQyxHQUFHLGtKQUFrSix3QkFBd0IsR0FBRyxrSkFBa0osdUJBQXVCLEdBQUcsMEVBQTBFLHVCQUF1QixlQUFlLHlCQUF5QixHQUFHLHdM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cUNBQXFDLG1CQUFtQixpREFBaUQsbUJBQW1CLGlEQUFpRCxTQUFTLG9CQUFvQixpREFBaUQsU0FBUywyQkFBMkIsaUNBQWlDLFNBQVMsZUFBZSwyQkFBMkIsU0FBUyxPQUFPLG1DQUFtQyxtQkFBbUIsT0FBTyxrQ0FBa0MsNkJBQTZCLGtCQUFrQixPQUFPLG1DQUFtQyw2QkFBNkIsbUJBQW1CLE9BQU8sS0FBSyxzQkFBc0IsNEJBQTRCLGtCQUFrQixPQUFPLDhCQUE4QixtQkFBbUIsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQzM2YTtBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzcz9hMGQ3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9wYWNrYWdlcy9leGNhbGlkcmF3L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IGludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiAzMDJweDtcXG59XFxuXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uLS1wbGFpbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uLS1wbGFpbiAuVG9vbEljb25fX2ljb24ge1xcbiAgd2lkdGg6IDJyZW07XFxuICBoZWlnaHQ6IDJyZW07XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94ICsgLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbjpob3ZlcixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94ICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAyLjVyZW07XFxuICBoZWlnaHQ6IDIuNXJlbTtcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbGcpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2ljb24gKyAuVG9vbEljb25fX2xhYmVsIHtcXG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxZW07XFxuICBmaWxsOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gIG1hcmdpbjogMCAwLjhlbTtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2xhYmVsIC5TcGlubmVyIHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjZlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3NpemVfc21hbGwgLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAycmVtO1xcbiAgaGVpZ2h0OiAycmVtO1xcbiAgZm9udC1zaXplOiAwLjhlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24sXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjpmb2N1cy12aXNpYmxlLFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZCxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZCxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24uVG9vbEljb24tLXNlbGVjdGVkOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZDphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZDphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlcixcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmhvdmVyLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3csXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi0tc2hvdyxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3cge1xcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlLFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24tLWhpZGUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgb3BhY2l0eTogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzpub3QoLlRvb2xJY29uX3RvZ2dsZV9vcGFxdWUpOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzpub3QoLlRvb2xJY29uX3RvZ2dsZV9vcGFxdWUpOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Zm9jdXMtdmlzaWJsZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86YWN0aXZlICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZzphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gIHdpZHRoOiAycmVtO1xcbiAgaGVpZ2h0OiAycmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDJweDtcXG4gIHJpZ2h0OiAzcHg7XFxuICBmb250LXNpemU6IDAuNWVtO1xcbiAgY29sb3I6IHZhcigtLWtleWJpbmRpbmctY29sb3IpO1xcbiAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA0MjVweCkge1xcbiAgLmV4Y2FsaWRyYXcgLlNoYXBlIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgIHdpZHRoOiAycmVtO1xcbiAgICBoZWlnaHQ6IDJyZW07XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuU2hhcGUgLlRvb2xJY29uX19pY29uIHN2ZyB7XFxuICAgIGhlaWdodDogMC44ZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcmlnaHQ6IC04cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4IDAgMCAyMHB4O1xcbiAgICB6LWluZGV4OiAxO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nOmhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZzphY3RpdmUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyBzdmcge1xcbiAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19saWJyYXJ5IHtcXG4gICAgdG9wOiAxMDBweDtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fbG9jayB7XFxuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xcbiAgICB0b3A6IDYwcHg7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fX3Blbk1vZGUge1xcbiAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG4gICAgdG9wOiAxNDBweDtcXG4gIH1cXG59XFxuOnJvb3RbZGlyPWx0cl0gLmV4Y2FsaWRyYXcgLnVubG9ja2VkLWljb24ge1xcbiAgbGVmdDogMnB4O1xcbn1cXG46cm9vdFtkaXI9cnRsXSAuZXhjYWxpZHJhdyAudW5sb2NrZWQtaWNvbiB7XFxuICByaWdodDogMnB4O1xcbn1cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jc3MvdmFyaWFibGVzLm1vZHVsZS5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBaUNBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQ2hDRjs7QUFDRTtFQUNFLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSx3Q0FBQTtFQUNBLHlCQUFBO1VBQUEsaUJBQUE7QUFFSjtBQUNFO0VBQ0UsNkJBQUE7QUFDSjtBQUFJO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QUFFTjtBQUlJOztFQUNFLHNDQUFBO0FBRE47QUFHTTs7RUFDRSxzQ0FBQTtBQUFSO0FBRU07O0VBQ0Usc0NBQUE7QUFDUjtBQUlFO0VBQ0UsYUFBQTtFQUNBLGNBQUE7RUFDQSw2QkFBQTtFQUVBLGFBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBRUEsc0NBQUE7QUFKSjtBQU1JO0VBQ0Usc0JBQUE7QUFKTjtBQU9JO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsNEJBQUE7RUFDQSw2QkFBQTtBQUxOO0FBU0U7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSw2QkFBQTtFQUNBLDJCQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0FBUEo7QUFTSTtFQUNFLGtCQUFBO0FBUE47QUFXRTtFQUNFLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QUFUSjtBQVlFOzs7RUFHRSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtBQVZKO0FBWUk7OztFQUNFLGtEQUFBO0FBUk47QUFXSTs7O0VBQ0Usc0NBQUE7QUFQTjtBQVNNOzs7RUFDRSxzQ0FBQTtBQUxSO0FBU0k7OztFQUNFLHNDQUFBO0FBTE47QUFRSTs7O0VBQ0Usc0NBQUE7QUFKTjtBQU9JOzs7RUFDRSxtQkFBQTtBQUhOO0FBTUk7OztFQUNFLGtCQUFBO0FBRk47QUFNRTs7RUFFRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxvQkFBQTtBQUpKO0FBTUk7O0VBQ0Usc0NBQUE7QUFITjtBQUlNOztFQUNFLHNDQUFBO0FBRFI7QUFLSTs7RUFDRSxrREFBQTtBQUZOO0FBS0k7O0VBQ0Usc0NBQUE7QUFGTjtBQU1FO0VBQ0UsNkJBQUE7QUFKSjtBQU1JO0VBQ0UsNkJBQUE7QUFKTjtBQU9JO0VBQ0UsNkJBQUE7QUFMTjtBQVFJO0VBQ0Usc0NBQUE7RUFRQSxXQUFBO0VBQ0EsWUFBQTtBQWJOO0FBS007RUFDRSxzQ0FBQTtBQUhSO0FBS007RUFDRSxzQ0FBQTtBQUhSO0FBV0U7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLDJCQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtBQVRKO0FBYUU7RUFDRTtJQUNFLFdBQUE7SUFDQSxZQUFBO0VBWEo7RUFhSTtJQUNFLGFBQUE7RUFYTjtBQUNGO0FBaUJFO0VBQ0U7SUFDRSxxQkFBQTtJQUNBLGtCQUFBO0lBQ0EsV0FBQTtJQUVBLGNBQUE7SUFDQSw0QkFBQTtJQUNBLFVBQUE7SUFFQSxzQ0FBQTtFQWpCSjtFQW1CSTtJQUNFLHNDQUFBO0VBakJOO0VBb0JJO0lBQ0Usc0NBQUE7RUFsQk47RUFxQkk7SUFDRSxzQkFBQTtFQW5CTjtFQXNCSTtJQUNFLGdCQUFBO0VBcEJOO0VBdUJFO0lBQ0UsVUFBQTtFQXJCSjtFQXdCRTtJQUNFLG9CQUFBO0lBQ0EsU0FBQTtFQXRCSjtFQXdCRTtJQUNFLG9CQUFBO0lBQ0EsVUFBQTtFQXRCSjtBQUNGO0FBMEJJO0VBQ0UsU0FBQTtBQXhCTjtBQTJCSTtFQUNFLFVBQUE7QUF6Qk5cIixcInNvdXJjZXNDb250ZW50XCI6W1wiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcblxcbkBtaXhpbiBpc01vYmlsZSgpIHtcXG4gIEBhdC1yb290IC5leGNhbGlkcmF3LS1tb2JpbGUjeyZ9IHtcXG4gICAgQGNvbnRlbnQ7XFxuICB9XFxufVxcblxcbkBtaXhpbiB0b29sYmFyQnV0dG9uQ29sb3JTdGF0ZXMge1xcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG4gICAgfVxcbiAgICAmOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgICAgIC0taWNvbi1maWxsLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy13aGl0ZX07XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBib3R0b206IDRweDtcXG4gICAgcmlnaHQ6IDRweDtcXG4gIH1cXG59XFxuXFxuJHRoZW1lLWZpbHRlcjogXFxcImludmVydCg5MyUpIGh1ZS1yb3RhdGUoMTgwZGVnKVxcXCI7XFxuJHJpZ2h0LXNpZGViYXItd2lkdGg6IFxcXCIzMDJweFxcXCI7XFxuXFxuOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogdW5xdW90ZSgkdGhlbWUtZmlsdGVyKTtcXG4gIHJpZ2h0U2lkZWJhcldpZHRoOiB1bnF1b3RlKCRyaWdodC1zaWRlYmFyLXdpZHRoKTtcXG59XFxuXCIsXCJAaW1wb3J0IFxcXCJvcGVuLWNvbG9yL29wZW4tY29sb3Iuc2Nzc1xcXCI7XFxuQGltcG9ydCBcXFwiLi4vY3NzL3ZhcmlhYmxlcy5tb2R1bGVcXFwiO1xcblxcbi5leGNhbGlkcmF3IHtcXG4gIC5Ub29sSWNvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB9XFxuXFxuICAuVG9vbEljb24tLXBsYWluIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgd2lkdGg6IDJyZW07XFxuICAgICAgaGVpZ2h0OiAycmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gICAgJiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICB9XFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMi41cmVtO1xcbiAgICBoZWlnaHQ6IDIuNXJlbTtcXG4gICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXG5cXG4gICAgJiArIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgaGVpZ2h0OiAxZW07XFxuICAgICAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19sYWJlbCB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICAgIG1hcmdpbjogMCAwLjhlbTtcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuXFxuICAgIC5TcGlubmVyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMC42ZW07XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9zaXplX3NtYWxsIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgIHdpZHRoOiAycmVtO1xcbiAgICBoZWlnaHQ6IDJyZW07XFxuICAgIGZvbnQtc2l6ZTogMC44ZW07XFxuICB9XFxuXFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b24sXFxuICAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbiAgLlRvb2xJY29uX3R5cGVfYnV0dG9uIHtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG5cXG4gICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmLlRvb2xJY29uLS1zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuXFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgfVxcblxcbiAgICAmLS1zaG93IHtcXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICB9XFxuXFxuICAgICYtLWhpZGUge1xcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuXFxuICAgICY6bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgfVxcblxcbiAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG5cXG4gICAgICB3aWR0aDogMnJlbTtcXG4gICAgICBoZWlnaHQ6IDJyZW07XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAycHg7XFxuICAgIHJpZ2h0OiAzcHg7XFxuICAgIGZvbnQtc2l6ZTogMC41ZW07XFxuICAgIGNvbG9yOiB2YXIoLS1rZXliaW5kaW5nLWNvbG9yKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIH1cXG5cXG4gIC8vIHNocmluayBzaGFwZSBpY29ucyBvbiBzbWFsbCB2aWV3cG9ydHMgdG8gbWFrZSB0aGVtIGZpdFxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQyNXB4KSB7XFxuICAgIC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIHdpZHRoOiAycmVtO1xcbiAgICAgIGhlaWdodDogMnJlbTtcXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgaGVpZ2h0OiAwLjhlbTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC8vIG1vdmUgdGhlIGxvY2sgYnV0dG9uIG91dCBvZiB0aGUgd2F5IG9uIHNtYWxsIHZpZXdwb3J0c1xcbiAgLy8gaXQgYmVnaW5zIHRvIGNvbGxpZGUgd2l0aCB0aGUgR2l0SHViIGljb24gYmVmb3JlIHdlIHN3aXRjaCB0byBtb2JpbGUgbW9kZVxcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2MHB4KSB7XFxuICAgIC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHJpZ2h0OiAtOHB4O1xcblxcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMCAwIDIwcHg7XFxuICAgICAgei1pbmRleDogMTtcXG5cXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgICAgIH1cXG5cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICAgICAgfVxcblxcbiAgICAgIHN2ZyB7XFxuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAuVG9vbEljb24uVG9vbEljb25fX2xpYnJhcnkge1xcbiAgICAgIHRvcDogMTAwcHg7XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG4gICAgICB0b3A6IDYwcHg7XFxuICAgIH1cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19wZW5Nb2RlIHtcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcXG4gICAgICB0b3A6IDE0MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICAudW5sb2NrZWQtaWNvbiB7XFxuICAgIDpyb290W2Rpcj1cXFwibHRyXFxcIl0gJiB7XFxuICAgICAgbGVmdDogMnB4O1xcbiAgICB9XFxuXFxuICAgIDpyb290W2Rpcj1cXFwicnRsXFxcIl0gJiB7XFxuICAgICAgcmlnaHQ6IDJweDtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ToolIcon.scss\n");
|
|
1603
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n.excalidraw .ToolIcon--plain {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon--plain .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:hover,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .ToolIcon__icon + .ToolIcon__label {\\n margin-inline-start: 0;\\n}\\n.excalidraw .ToolIcon__icon svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n}\\n.excalidraw .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n}\\n.excalidraw .ToolIcon__label .Spinner {\\n margin-left: 0.6em;\\n}\\n.excalidraw .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button,\\n.excalidraw .Modal .ToolIcon_type_button,\\n.excalidraw .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:focus-visible,\\n.excalidraw .Modal .ToolIcon_type_button:focus-visible,\\n.excalidraw .ToolIcon_type_button:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .Modal .ToolIcon_type_button.ToolIcon--selected:active,\\n.excalidraw .ToolIcon_type_button.ToolIcon--selected:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:hover,\\n.excalidraw .Modal .ToolIcon_type_button:hover,\\n.excalidraw .ToolIcon_type_button:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button:active,\\n.excalidraw .Modal .ToolIcon_type_button:active,\\n.excalidraw .ToolIcon_type_button:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--show,\\n.excalidraw .Modal .ToolIcon_type_button--show,\\n.excalidraw .ToolIcon_type_button--show {\\n visibility: visible;\\n}\\n.excalidraw .excalidraw .ToolIcon_type_button--hide,\\n.excalidraw .Modal .ToolIcon_type_button--hide,\\n.excalidraw .ToolIcon_type_button--hide {\\n visibility: hidden;\\n}\\n.excalidraw .ToolIcon_type_radio,\\n.excalidraw .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_radio:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active,\\n.excalidraw .ToolIcon_type_checkbox:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_radio:focus-visible + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .ToolIcon_type_radio:active + .ToolIcon__icon,\\n.excalidraw .ToolIcon_type_checkbox:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon_type_floating {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:hover {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating:active {\\n background-color: transparent;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n width: 2rem;\\n height: 2rem;\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:hover {\\n background-color: var(--button-gray-2);\\n}\\n.excalidraw .ToolIcon_type_floating .ToolIcon__icon:active {\\n background-color: var(--button-gray-3);\\n}\\n.excalidraw .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n -webkit-user-select: none;\\n user-select: none;\\n}\\n@media (max-width: 425px) {\\n .excalidraw .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n .excalidraw .Shape .ToolIcon__icon svg {\\n height: 0.8em;\\n }\\n}\\n@media (max-width: 760px) {\\n .excalidraw .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:hover {\\n background-color: var(--button-gray-1);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating:active {\\n background-color: var(--button-gray-2);\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n .excalidraw .ToolIcon.ToolIcon_type_floating svg {\\n position: static;\\n }\\n .excalidraw .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .excalidraw .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n}\\n:root[dir=ltr] .excalidraw .unlocked-icon {\\n left: 2px;\\n}\\n:root[dir=rtl] .excalidraw .unlocked-icon {\\n right: 2px;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/ToolIcon.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;AACE;EACE,oBAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,wCAAA;EACA,yBAAA;UAAA,iBAAA;AAEJ;AACE;EACE,6BAAA;AACJ;AAAI;EACE,WAAA;EACA,YAAA;AAEN;AAII;;EACE,sCAAA;AADN;AAGM;;EACE,sCAAA;AAAR;AAEM;;EACE,sCAAA;AACR;AAIE;EACE,aAAA;EACA,cAAA;EACA,6BAAA;EAEA,aAAA;EACA,uBAAA;EACA,mBAAA;EAEA,sCAAA;AAJJ;AAMI;EACE,sBAAA;AAJN;AAOI;EACE,kBAAA;EACA,WAAA;EACA,4BAAA;EACA,6BAAA;AALN;AASE;EACE,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,2BAAA;EACA,eAAA;EACA,uBAAA;AAPJ;AASI;EACE,kBAAA;AAPN;AAWE;EACE,WAAA;EACA,YAAA;EACA,gBAAA;AATJ;AAYE;;;EAGE,UAAA;EACA,YAAA;EACA,SAAA;EACA,kBAAA;AAVJ;AAYI;;;EACE,kDAAA;AARN;AAWI;;;EACE,sCAAA;AAPN;AASM;;;EACE,sCAAA;AALR;AASI;;;EACE,sCAAA;AALN;AAQI;;;EACE,sCAAA;AAJN;AAOI;;;EACE,mBAAA;AAHN;AAMI;;;EACE,kBAAA;AAFN;AAME;;EAEE,kBAAA;EACA,UAAA;EACA,oBAAA;AAJJ;AAMI;;EACE,sCAAA;AAHN;AAIM;;EACE,sCAAA;AADR;AAKI;;EACE,kDAAA;AAFN;AAKI;;EACE,sCAAA;AAFN;AAME;EACE,6BAAA;AAJJ;AAMI;EACE,6BAAA;AAJN;AAOI;EACE,6BAAA;AALN;AAQI;EACE,sCAAA;EAQA,WAAA;EACA,YAAA;AAbN;AAKM;EACE,sCAAA;AAHR;AAKM;EACE,sCAAA;AAHR;AAWE;EACE,kBAAA;EACA,WAAA;EACA,UAAA;EACA,gBAAA;EACA,8BAAA;EACA,2BAAA;EACA,yBAAA;UAAA,iBAAA;AATJ;AAaE;EACE;IACE,WAAA;IACA,YAAA;EAXJ;EAaI;IACE,aAAA;EAXN;AACF;AAiBE;EACE;IACE,qBAAA;IACA,kBAAA;IACA,WAAA;IAEA,cAAA;IACA,4BAAA;IACA,UAAA;IAEA,sCAAA;EAjBJ;EAmBI;IACE,sCAAA;EAjBN;EAoBI;IACE,sCAAA;EAlBN;EAqBI;IACE,sBAAA;EAnBN;EAsBI;IACE,gBAAA;EApBN;EAuBE;IACE,6BAAA;EArBJ;EAwBE;IACE,4BAAA;EAtBJ;EAwBE;IACE,6BAAA;EAtBJ;AACF;AA0BI;EACE,SAAA;AAxBN;AA2BI;EACE,UAAA;AAzBN\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .ToolIcon {\\n display: inline-flex;\\n align-items: center;\\n position: relative;\\n cursor: pointer;\\n -webkit-tap-highlight-color: transparent;\\n user-select: none;\\n }\\n\\n .ToolIcon--plain {\\n background-color: transparent;\\n .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n }\\n\\n .ToolIcon__icon {\\n width: 2.5rem;\\n height: 2.5rem;\\n color: var(--icon-fill-color);\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n border-radius: var(--border-radius-lg);\\n\\n & + .ToolIcon__label {\\n margin-inline-start: 0;\\n }\\n\\n svg {\\n position: relative;\\n height: 1em;\\n fill: var(--icon-fill-color);\\n color: var(--icon-fill-color);\\n }\\n }\\n\\n .ToolIcon__label {\\n display: flex;\\n align-items: center;\\n color: var(--icon-fill-color);\\n font-family: var(--ui-font);\\n margin: 0 0.8em;\\n text-overflow: ellipsis;\\n\\n .Spinner {\\n margin-left: 0.6em;\\n }\\n }\\n\\n .ToolIcon_size_small .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n font-size: 0.8em;\\n }\\n\\n .excalidraw .ToolIcon_type_button,\\n .Modal .ToolIcon_type_button,\\n .ToolIcon_type_button {\\n padding: 0;\\n border: none;\\n margin: 0;\\n font-size: inherit;\\n\\n &:focus-visible {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &.ToolIcon--selected {\\n background-color: var(--button-gray-2);\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n &--show {\\n visibility: visible;\\n }\\n\\n &--hide {\\n visibility: hidden;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n position: absolute;\\n opacity: 0;\\n pointer-events: none;\\n\\n &:not(.ToolIcon_toggle_opaque):checked + .ToolIcon__icon {\\n background-color: var(--button-gray-2);\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n &:focus-visible + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n\\n &:active + .ToolIcon__icon {\\n background-color: var(--button-gray-3);\\n }\\n }\\n\\n .ToolIcon_type_floating {\\n background-color: transparent;\\n\\n &:hover {\\n background-color: transparent;\\n }\\n\\n &:active {\\n background-color: transparent;\\n }\\n\\n .ToolIcon__icon {\\n background-color: var(--button-gray-1);\\n &:hover {\\n background-color: var(--button-gray-2);\\n }\\n &:active {\\n background-color: var(--button-gray-3);\\n }\\n\\n width: 2rem;\\n height: 2rem;\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n position: absolute;\\n bottom: 2px;\\n right: 3px;\\n font-size: 0.5em;\\n color: var(--keybinding-color);\\n font-family: var(--ui-font);\\n user-select: none;\\n }\\n\\n // shrink shape icons on small viewports to make them fit\\n @media (max-width: 425px) {\\n .Shape .ToolIcon__icon {\\n width: 2rem;\\n height: 2rem;\\n\\n svg {\\n height: 0.8em;\\n }\\n }\\n }\\n\\n // move the lock button out of the way on small viewports\\n // it begins to collide with the GitHub icon before we switch to mobile mode\\n @media (max-width: 760px) {\\n .ToolIcon.ToolIcon_type_floating {\\n display: inline-block;\\n position: absolute;\\n right: -8px;\\n\\n margin-left: 0;\\n border-radius: 20px 0 0 20px;\\n z-index: 1;\\n\\n background-color: var(--button-gray-1);\\n\\n &:hover {\\n background-color: var(--button-gray-1);\\n }\\n\\n &:active {\\n background-color: var(--button-gray-2);\\n }\\n\\n .ToolIcon__icon {\\n border-radius: inherit;\\n }\\n\\n svg {\\n position: static;\\n }\\n }\\n .ToolIcon.ToolIcon__library {\\n top: calc(var(--sat) + 100px);\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n top: calc(var(--sat) + 60px);\\n }\\n .ToolIcon.ToolIcon__penMode {\\n top: calc(var(--sat) + 140px);\\n }\\n }\\n\\n .unlocked-icon {\\n :root[dir=\\\"ltr\\\"] & {\\n left: 2px;\\n }\\n\\n :root[dir=\\\"rtl\\\"] & {\\n right: 2px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sSWNvbi5zY3NzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDOEg7QUFDakI7QUFDN0csOEJBQThCLHVHQUEyQixDQUFDLGdIQUFxQztBQUMvRjtBQUNBLG1EQUFtRCxnREFBZ0QsNkJBQTZCLEdBQUcsMkJBQTJCLHlCQUF5Qix3QkFBd0IsdUJBQXVCLG9CQUFvQiw2Q0FBNkMsOEJBQThCLDhCQUE4QixHQUFHLGdDQUFnQyxrQ0FBa0MsR0FBRyxnREFBZ0QsZ0JBQWdCLGlCQUFpQixHQUFHLDhHQUE4RywyQ0FBMkMsR0FBRywwSEFBMEgsMkNBQTJDLEdBQUcsNEhBQTRILDJDQUEyQyxHQUFHLCtCQUErQixrQkFBa0IsbUJBQW1CLGtDQUFrQyxrQkFBa0IsNEJBQTRCLHdCQUF3QiwyQ0FBMkMsR0FBRyxrREFBa0QsMkJBQTJCLEdBQUcsbUNBQW1DLHVCQUF1QixnQkFBZ0IsaUNBQWlDLGtDQUFrQyxHQUFHLGdDQUFnQyxrQkFBa0Isd0JBQXdCLGtDQUFrQyxnQ0FBZ0Msb0JBQW9CLDRCQUE0QixHQUFHLHlDQUF5Qyx1QkFBdUIsR0FBRyxvREFBb0QsZ0JBQWdCLGlCQUFpQixxQkFBcUIsR0FBRyxnSUFBZ0ksZUFBZSxpQkFBaUIsY0FBYyx1QkFBdUIsR0FBRywwS0FBMEssdURBQXVELEdBQUcseUxBQXlMLDJDQUEyQyxHQUFHLDhNQUE4TSwyQ0FBMkMsR0FBRyxrSkFBa0osMkNBQTJDLEdBQUcscUpBQXFKLDJDQUEyQyxHQUFHLGtKQUFrSix3QkFBd0IsR0FBRyxrSkFBa0osdUJBQXVCLEdBQUcsMEVBQTBFLHVCQUF1QixlQUFlLHlCQUF5QixHQUFHLHdM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QW1CLGlEQUFpRCxTQUFTLG9CQUFvQixpREFBaUQsU0FBUywyQkFBMkIsaUNBQWlDLFNBQVMsZUFBZSwyQkFBMkIsU0FBUyxPQUFPLG1DQUFtQyxzQ0FBc0MsT0FBTyxrQ0FBa0MscUNBQXFDLE9BQU8sbUNBQW1DLHNDQUFzQyxPQUFPLEtBQUssc0JBQXNCLDRCQUE0QixrQkFBa0IsT0FBTyw4QkFBOEIsbUJBQW1CLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUMxNWE7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL1Rvb2xJY29uLnNjc3M/YTBkNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbi0tcGxhaW4gLlRvb2xJY29uX19pY29uIHtcXG4gIHdpZHRoOiAycmVtO1xcbiAgaGVpZ2h0OiAycmVtO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbyArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMi41cmVtO1xcbiAgaGVpZ2h0OiAyLjVyZW07XFxuICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLWxnKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19pY29uICsgLlRvb2xJY29uX19sYWJlbCB7XFxuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2ljb24gc3ZnIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMWVtO1xcbiAgZmlsbDogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2xhYmVsIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICBmb250LWZhbWlseTogdmFyKC0tdWktZm9udCk7XFxuICBtYXJnaW46IDAgMC44ZW07XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX19sYWJlbCAuU3Bpbm5lciB7XFxuICBtYXJnaW4tbGVmdDogMC42ZW07XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl9zaXplX3NtYWxsIC5Ub29sSWNvbl9faWNvbiB7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG4gIGZvbnQtc2l6ZTogMC44ZW07XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxuICBwYWRkaW5nOiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246Zm9jdXMtdmlzaWJsZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLlRvb2xJY29uLS1zZWxlY3RlZDphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi5Ub29sSWNvbi0tc2VsZWN0ZWQ6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjpob3ZlcixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9idXR0b246aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG59XFxuLmV4Y2FsaWRyYXcgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93LFxcbi5leGNhbGlkcmF3IC5Nb2RhbCAuVG9vbEljb25fdHlwZV9idXR0b24tLXNob3csXFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1zaG93IHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5leGNhbGlkcmF3IC5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSxcXG4uZXhjYWxpZHJhdyAuTW9kYWwgLlRvb2xJY29uX3R5cGVfYnV0dG9uLS1oaWRlLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2J1dHRvbi0taGlkZSB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIG9wYWNpdHk6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfcmFkaW86bm90KC5Ub29sSWNvbl90b2dnbGVfb3BhcXVlKTpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpub3QoLlRvb2xJY29uX3RvZ2dsZV9vcGFxdWUpOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9yYWRpbzpmb2N1cy12aXNpYmxlICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmZvY3VzLXZpc2libGUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX3JhZGlvOmFjdGl2ZSArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9jaGVja2JveDphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxufVxcbi5leGNhbGlkcmF3IC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB3aWR0aDogMnJlbTtcXG4gIGhlaWdodDogMnJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19pY29uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbn1cXG4uZXhjYWxpZHJhdyAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAycHg7XFxuICByaWdodDogM3B4O1xcbiAgZm9udC1zaXplOiAwLjVlbTtcXG4gIGNvbG9yOiB2YXIoLS1rZXliaW5kaW5nLWNvbG9yKTtcXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNDI1cHgpIHtcXG4gIC5leGNhbGlkcmF3IC5TaGFwZSAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMnJlbTtcXG4gICAgaGVpZ2h0OiAycmVtO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlNoYXBlIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgICBoZWlnaHQ6IDAuOGVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzYwcHgpIHtcXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHJpZ2h0OiAtOHB4O1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgYm9yZGVyLXJhZGl1czogMjBweCAwIDAgMjBweDtcXG4gICAgei1pbmRleDogMTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZzpob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6YWN0aXZlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICB9XFxuICAuZXhjYWxpZHJhdyAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgc3ZnIHtcXG4gICAgcG9zaXRpb246IHN0YXRpYztcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fbGlicmFyeSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTAwcHgpO1xcbiAgfVxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgdG9wOiBjYWxjKHZhcigtLXNhdCkgKyA2MHB4KTtcXG4gIH1cXG4gIC5leGNhbGlkcmF3IC5Ub29sSWNvbi5Ub29sSWNvbl9fcGVuTW9kZSB7XFxuICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgMTQwcHgpO1xcbiAgfVxcbn1cXG46cm9vdFtkaXI9bHRyXSAuZXhjYWxpZHJhdyAudW5sb2NrZWQtaWNvbiB7XFxuICBsZWZ0OiAycHg7XFxufVxcbjpyb290W2Rpcj1ydGxdIC5leGNhbGlkcmF3IC51bmxvY2tlZC1pY29uIHtcXG4gIHJpZ2h0OiAycHg7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbEljb24uc2Nzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFpQ0E7RUFDRSwyQ0FBQTtFQUNBLHdCQUFBO0FDaENGOztBQUNFO0VBQ0Usb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLHdDQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtBQUVKO0FBQ0U7RUFDRSw2QkFBQTtBQUNKO0FBQUk7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBQUVOO0FBSUk7O0VBQ0Usc0NBQUE7QUFETjtBQUdNOztFQUNFLHNDQUFBO0FBQVI7QUFFTTs7RUFDRSxzQ0FBQTtBQUNSO0FBSUU7RUFDRSxhQUFBO0VBQ0EsY0FBQTtFQUNBLDZCQUFBO0VBRUEsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFFQSxzQ0FBQTtBQUpKO0FBTUk7RUFDRSxzQkFBQTtBQUpOO0FBT0k7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0FBTE47QUFTRTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsMkJBQUE7RUFDQSxlQUFBO0VBQ0EsdUJBQUE7QUFQSjtBQVNJO0VBQ0Usa0JBQUE7QUFQTjtBQVdFO0VBQ0UsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtBQVRKO0FBWUU7OztFQUdFLFVBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0FBVko7QUFZSTs7O0VBQ0Usa0RBQUE7QUFSTjtBQVdJOzs7RUFDRSxzQ0FBQTtBQVBOO0FBU007OztFQUNFLHNDQUFBO0FBTFI7QUFTSTs7O0VBQ0Usc0NBQUE7QUFMTjtBQVFJOzs7RUFDRSxzQ0FBQTtBQUpOO0FBT0k7OztFQUNFLG1CQUFBO0FBSE47QUFNSTs7O0VBQ0Usa0JBQUE7QUFGTjtBQU1FOztFQUVFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLG9CQUFBO0FBSko7QUFNSTs7RUFDRSxzQ0FBQTtBQUhOO0FBSU07O0VBQ0Usc0NBQUE7QUFEUjtBQUtJOztFQUNFLGtEQUFBO0FBRk47QUFLSTs7RUFDRSxzQ0FBQTtBQUZOO0FBTUU7RUFDRSw2QkFBQTtBQUpKO0FBTUk7RUFDRSw2QkFBQTtBQUpOO0FBT0k7RUFDRSw2QkFBQTtBQUxOO0FBUUk7RUFDRSxzQ0FBQTtFQVFBLFdBQUE7RUFDQSxZQUFBO0FBYk47QUFLTTtFQUNFLHNDQUFBO0FBSFI7QUFLTTtFQUNFLHNDQUFBO0FBSFI7QUFXRTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSx5QkFBQTtVQUFBLGlCQUFBO0FBVEo7QUFhRTtFQUNFO0lBQ0UsV0FBQTtJQUNBLFlBQUE7RUFYSjtFQWFJO0lBQ0UsYUFBQTtFQVhOO0FBQ0Y7QUFpQkU7RUFDRTtJQUNFLHFCQUFBO0lBQ0Esa0JBQUE7SUFDQSxXQUFBO0lBRUEsY0FBQTtJQUNBLDRCQUFBO0lBQ0EsVUFBQTtJQUVBLHNDQUFBO0VBakJKO0VBbUJJO0lBQ0Usc0NBQUE7RUFqQk47RUFvQkk7SUFDRSxzQ0FBQTtFQWxCTjtFQXFCSTtJQUNFLHNCQUFBO0VBbkJOO0VBc0JJO0lBQ0UsZ0JBQUE7RUFwQk47RUF1QkU7SUFDRSw2QkFBQTtFQXJCSjtFQXdCRTtJQUNFLDRCQUFBO0VBdEJKO0VBd0JFO0lBQ0UsNkJBQUE7RUF0Qko7QUFDRjtBQTBCSTtFQUNFLFNBQUE7QUF4Qk47QUEyQkk7RUFDRSxVQUFBO0FBekJOXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcbkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuVG9vbEljb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgfVxcblxcbiAgLlRvb2xJY29uLS1wbGFpbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIHdpZHRoOiAycmVtO1xcbiAgICAgIGhlaWdodDogMnJlbTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX3R5cGVfcmFkaW8sXFxuICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICYgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTEpO1xcblxcbiAgICAgICY6aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgd2lkdGg6IDIuNXJlbTtcXG4gICAgaGVpZ2h0OiAyLjVyZW07XFxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWZpbGwtY29sb3IpO1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuXFxuICAgICYgKyAuVG9vbEljb25fX2xhYmVsIHtcXG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xcbiAgICB9XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIGhlaWdodDogMWVtO1xcbiAgICAgIGZpbGw6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICAgICAgY29sb3I6IHZhcigtLWljb24tZmlsbC1jb2xvcik7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl9fbGFiZWwge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBjb2xvcjogdmFyKC0taWNvbi1maWxsLWNvbG9yKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLXVpLWZvbnQpO1xcbiAgICBtYXJnaW46IDAgMC44ZW07XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcblxcbiAgICAuU3Bpbm5lciB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDAuNmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fc2l6ZV9zbWFsbCAuVG9vbEljb25fX2ljb24ge1xcbiAgICB3aWR0aDogMnJlbTtcXG4gICAgaGVpZ2h0OiAycmVtO1xcbiAgICBmb250LXNpemU6IDAuOGVtO1xcbiAgfVxcblxcbiAgLmV4Y2FsaWRyYXcgLlRvb2xJY29uX3R5cGVfYnV0dG9uLFxcbiAgLk1vZGFsIC5Ub29sSWNvbl90eXBlX2J1dHRvbixcXG4gIC5Ub29sSWNvbl90eXBlX2J1dHRvbiB7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG5cXG4gICAgJi5Ub29sSWNvbi0tc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcblxcbiAgICAgICY6YWN0aXZlIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0yKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgIH1cXG5cXG4gICAgJi0tc2hvdyB7XFxuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgfVxcblxcbiAgICAmLS1oaWRlIHtcXG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcblxcbiAgICAmOm5vdCguVG9vbEljb25fdG9nZ2xlX29wYXF1ZSk6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMyk7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUgKyAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTMpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ncmF5LTIpO1xcbiAgICAgIH1cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0zKTtcXG4gICAgICB9XFxuXFxuICAgICAgd2lkdGg6IDJyZW07XFxuICAgICAgaGVpZ2h0OiAycmVtO1xcbiAgICB9XFxuICB9XFxuXFxuICAuVG9vbEljb25fX2tleWJpbmRpbmcge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMnB4O1xcbiAgICByaWdodDogM3B4O1xcbiAgICBmb250LXNpemU6IDAuNWVtO1xcbiAgICBjb2xvcjogdmFyKC0ta2V5YmluZGluZy1jb2xvcik7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS11aS1mb250KTtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB9XFxuXFxuICAvLyBzaHJpbmsgc2hhcGUgaWNvbnMgb24gc21hbGwgdmlld3BvcnRzIHRvIG1ha2UgdGhlbSBmaXRcXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0MjVweCkge1xcbiAgICAuU2hhcGUgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICB3aWR0aDogMnJlbTtcXG4gICAgICBoZWlnaHQ6IDJyZW07XFxuXFxuICAgICAgc3ZnIHtcXG4gICAgICAgIGhlaWdodDogMC44ZW07XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAvLyBtb3ZlIHRoZSBsb2NrIGJ1dHRvbiBvdXQgb2YgdGhlIHdheSBvbiBzbWFsbCB2aWV3cG9ydHNcXG4gIC8vIGl0IGJlZ2lucyB0byBjb2xsaWRlIHdpdGggdGhlIEdpdEh1YiBpY29uIGJlZm9yZSB3ZSBzd2l0Y2ggdG8gbW9iaWxlIG1vZGVcXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjBweCkge1xcbiAgICAuVG9vbEljb24uVG9vbEljb25fdHlwZV9mbG9hdGluZyB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICByaWdodDogLThweDtcXG5cXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDAgMCAyMHB4O1xcbiAgICAgIHotaW5kZXg6IDE7XFxuXFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMSk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24tZ3JheS0xKTtcXG4gICAgICB9XFxuXFxuICAgICAgJjphY3RpdmUge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWdyYXktMik7XFxuICAgICAgfVxcblxcbiAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgICAgIH1cXG5cXG4gICAgICBzdmcge1xcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcXG4gICAgICB9XFxuICAgIH1cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19saWJyYXJ5IHtcXG4gICAgICB0b3A6IGNhbGModmFyKC0tc2F0KSArIDEwMHB4KTtcXG4gICAgfVxcblxcbiAgICAuVG9vbEljb24uVG9vbEljb25fX2xvY2sge1xcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1zYXQpICsgNjBweCk7XFxuICAgIH1cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19wZW5Nb2RlIHtcXG4gICAgICB0b3A6IGNhbGModmFyKC0tc2F0KSArIDE0MHB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnVubG9ja2VkLWljb24ge1xcbiAgICA6cm9vdFtkaXI9XFxcImx0clxcXCJdICYge1xcbiAgICAgIGxlZnQ6IDJweDtcXG4gICAgfVxcblxcbiAgICA6cm9vdFtkaXI9XFxcInJ0bFxcXCJdICYge1xcbiAgICAgIHJpZ2h0OiAycHg7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/ToolIcon.scss\n");
|
|
1604
1604
|
|
|
1605
1605
|
/***/ }),
|
|
1606
1606
|
|
|
@@ -1611,7 +1611,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
1611
1611
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
1612
1612
|
|
|
1613
1613
|
"use strict";
|
|
1614
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:checked + .ToolIcon__icon,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n --keybinding-color: #ffffff;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:checked + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating:not(.is-mobile) .ToolIcon__icon {\\n padding: 1px;\\n background-color: var(--island-bg-color);\\n box-shadow: 1px 3px 4px 0px rgba(0, 0, 0, 0.15);\\n border-radius: 50%;\\n transition: box-shadow 0.5s ease, transform 0.5s ease;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:focus-within + .ToolIcon__icon,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:focus-within + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon__hidden {\\n box-shadow: none !important;\\n background-color: transparent !important;\\n pointer-events: none !important;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon.ToolIcon__lock {\\n margin-inline-end: var(--space-factor);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon.ToolIcon__lock.ToolIcon_type_floating {\\n margin-left: 0.1rem;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon__library {\\n margin-inline-start: var(--space-factor);\\n}\\n.excalidraw .App-toolbar-container.zen-mode .ToolIcon_type_floating .ToolIcon__icon {\\n box-shadow: none;\\n transform: scale(0.9);\\n}\\n.excalidraw .App-toolbar-container.zen-mode .ToolIcon_type_floating .ToolIcon_type_checkbox:not(:checked):not(:hover):not(:active) + .ToolIcon__icon svg {\\n fill: #adb5bd;\\n color: #adb5bd;\\n}\\n.excalidraw .App-toolbar {\\n border-radius: var(--border-radius-lg);\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgba(0, 0, 0, 0.15);\\n}\\n.excalidraw .App-toolbar .ToolIcon:hover {\\n --icon-fill-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n --keybinding-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n}\\n.excalidraw .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #212529;\\n --keybinding-color: #212529;\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon__icon {\\n background: transparent;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio:checked + .ToolIcon__icon,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n --keybinding-color: #ffffff;\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio:checked + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n}\\n.excalidraw .App-toolbar.zen-mode .ToolIcon__keybinding,\\n.excalidraw .App-toolbar.zen-mode .HintViewer {\\n display: none;\\n}\\n.excalidraw.theme--dark .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #dee2e6;\\n --keybinding-color: #dee2e6;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Toolbar.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;ADQI;;EACE,sCAAA;ACJN;ADMI;;EACE,gCAAA;EACA,0BAAA;EACA,2BAAA;ACHN;ADKI;;EACE,uCAAA;ACFN;ADME;EACE,WAAA;EACA,UAAA;ACJJ;AAbQ;EACE,YAAA;EACA,wCAAA;EACA,+CAAA;EACA,kBAAA;EACA,qDAAA;AAeV;AATQ;;EAEE,kDAAA;AAWV;AANI;EACE,2BAAA;EACA,wCAAA;EACA,+BAAA;AAQN;AALI;EACE,sCAAA;AAON;AANM;EACE,mBAAA;AAQR;AAJI;EACE,wCAAA;AAMN;AADQ;EACE,gBAAA;EACA,qBAAA;AAGV;AACY;EACE,aCjBF;EDkBE,cClBF;ADmBZ;AAOE;EACE,sCAAA;EACA,0EAAA;AALJ;AAQM;EACE;;;GAAA;EAIA;;;GAAA;AAHR;AAQM;EACE,0BAAA;EACA,2BAAA;AANR;AASM;EACE,uBAAA;EACA,sCAAA;AAPR;ADlEI;;EACE,sCAAA;ACqEN;ADnEI;;EACE,gCAAA;EACA,0BAAA;EACA,2BAAA;ACsEN;ADpEI;;EACE,uCAAA;ACuEN;ADnEE;EACE,WAAA;EACA,UAAA;ACqEJ;AAJM;;EAEE,aAAA;AAMR;AADE;EACE,0BAAA;EACA,2BAAA;AAGJ\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .App-toolbar-container {\\n .ToolIcon_type_floating {\\n @include toolbarButtonColorStates;\\n\\n &:not(.is-mobile) {\\n .ToolIcon__icon {\\n padding: 1px;\\n background-color: var(--island-bg-color);\\n box-shadow: 1px 3px 4px 0px rgb(0 0 0 / 15%);\\n border-radius: 50%;\\n transition: box-shadow 0.5s ease, transform 0.5s ease;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n &:focus-within + .ToolIcon__icon {\\n // override for custom floating button shadow\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n }\\n\\n .ToolIcon__hidden {\\n box-shadow: none !important;\\n background-color: transparent !important;\\n pointer-events: none !important;\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n margin-inline-end: var(--space-factor);\\n &.ToolIcon_type_floating {\\n margin-left: 0.1rem;\\n }\\n }\\n\\n .ToolIcon__library {\\n margin-inline-start: var(--space-factor);\\n }\\n\\n &.zen-mode {\\n .ToolIcon_type_floating {\\n .ToolIcon__icon {\\n box-shadow: none;\\n transform: scale(0.9);\\n }\\n .ToolIcon_type_checkbox:not(:checked):not(:hover):not(:active) {\\n & + .ToolIcon__icon {\\n svg {\\n fill: $oc-gray-5;\\n color: $oc-gray-5;\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .App-toolbar {\\n border-radius: var(--border-radius-lg);\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 15%);\\n\\n .ToolIcon {\\n &:hover {\\n --icon-fill-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n --keybinding-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n }\\n &:active {\\n --icon-fill-color: #{$oc-gray-9};\\n --keybinding-color: #{$oc-gray-9};\\n }\\n\\n .ToolIcon__icon {\\n background: transparent;\\n border-radius: var(--border-radius-lg);\\n }\\n\\n @include toolbarButtonColorStates;\\n }\\n\\n &.zen-mode {\\n .ToolIcon__keybinding,\\n .HintViewer {\\n display: none;\\n }\\n }\\n }\\n\\n &.theme--dark .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #{$oc-gray-3};\\n --keybinding-color: #{$oc-gray-3};\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUM3Ryw4QkFBOEIsdUdBQTJCLENBQUMsZ0hBQXFDO0FBQy9GO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRyw0TkFBNE4sMkNBQTJDLEdBQUcsNE5BQTROLHFDQUFxQywrQkFBK0IsZ0NBQWdDLEdBQUcsME9BQTBPLDRDQUE0QyxHQUFHLG9GQUFvRixnQkFBZ0IsZUFBZSxHQUFHLDhGQUE4RixpQkFBaUIsNkNBQTZDLG9EQUFvRCx1QkFBdUIsMERBQTBELEdBQUcsc09BQXNPLHVEQUF1RCxHQUFHLHdEQUF3RCxnQ0FBZ0MsNkNBQTZDLG9DQUFvQyxHQUFHLCtEQUErRCwyQ0FBMkMsR0FBRyxzRkFBc0Ysd0JBQXdCLEdBQUcseURBQXlELDZDQUE2QyxHQUFHLHVGQUF1RixxQkFBcUIsMEJBQTBCLEdBQUcsNEpBQTRKLGtCQUFrQixtQkFBbUIsR0FBRyw0QkFBNEIsMkNBQTJDLCtFQUErRSxHQUFHLDRDQUE0QyxpR0FBaUcsa0dBQWtHLEdBQUcsNkNBQTZDLCtCQUErQixnQ0FBZ0MsR0FBRyxzREFBc0QsNEJBQTRCLDJDQUEyQyxHQUFHLDBLQUEwSywyQ0FBMkMsR0FBRyw0S0FBNEsscUNBQXFDLCtCQUErQixnQ0FBZ0MsR0FBRywwTEFBMEwsNENBQTRDLEdBQUcsNERBQTRELGdCQUFnQixlQUFlLEdBQUcsMkdBQTJHLGtCQUFrQixHQUFHLHlEQUF5RCwrQkFBK0IsZ0NBQWdDLEdBQUcsT0FBTyw4TUFBOE0sV0FBVyxXQUFXLE9BQU8sTUFBTSxXQUFXLEtBQUssTUFBTSxXQUFXLFdBQVcsV0FBVyxLQUFLLE1BQU0sV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxNQUFNLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLEtBQUssS0FBSyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsWUFBWSxNQUFNLEtBQUssV0FBVyxXQUFXLEtBQUssS0FBSyxPQUFPLEtBQUssT0FBTyxLQUFLLEtBQUssS0FBSyxXQUFXLFdBQVcsS0FBSyxLQUFLLFdBQVcsV0FBVyxLQUFLLE9BQU8sV0FBVyxNQUFNLE9BQU8sV0FBVyxXQUFXLFdBQVcsTUFBTSxPQUFPLFdBQVcsTUFBTSxNQUFNLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssV0FBVyxXQUFXLGdFQUFnRSx1QkFBdUIsa0NBQWtDLElBQUksZUFBZSxLQUFLLEdBQUcscUNBQXFDLHNEQUFzRCxrQ0FBa0MsK0NBQStDLE9BQU8sbUNBQW1DLHlDQUF5Qyw2QkFBNkIsV0FBVyw4QkFBOEIsV0FBVyxPQUFPLDBDQUEwQyxnREFBZ0QsT0FBTyxLQUFLLDZCQUE2QixrQkFBa0IsaUJBQWlCLEtBQUssR0FBRyxzREFBc0Qsa0NBQWtDLGFBQWEsd0NBQXdDLHFEQUFxRCxHQUFHLDRDQUE0QyxzQ0FBc0MsaUJBQWlCLDRCQUE0QiwrQkFBK0IsMENBQTBDLDZCQUE2QiwyQkFBMkIseUJBQXlCLHFEQUFxRCx5REFBeUQsK0JBQStCLGtFQUFrRSxXQUFXLFNBQVMsZ0VBQWdFLDRDQUE0Qyx3SEFBd0gsV0FBVyxTQUFTLE9BQU8sMkJBQTJCLG9DQUFvQyxpREFBaUQsd0NBQXdDLE9BQU8sa0NBQWtDLCtDQUErQyxrQ0FBa0MsOEJBQThCLFNBQVMsT0FBTyw0QkFBNEIsaURBQWlELE9BQU8sb0JBQW9CLGlDQUFpQywyQkFBMkIsNkJBQTZCLGtDQUFrQyxXQUFXLDBFQUEwRSxpQ0FBaUMsbUJBQW1CLGlDQUFpQyxrQ0FBa0MsZUFBZSxhQUFhLFdBQVcsU0FBUyxPQUFPLEtBQUssb0JBQW9CLDZDQUE2Qyw4RUFBOEUsbUJBQW1CLGlCQUFpQix5SEFBeUgsMEhBQTBILFNBQVMsa0JBQWtCLCtCQUErQixZQUFZLGdDQUFnQyxZQUFZLFNBQVMsMkJBQTJCLGtDQUFrQyxpREFBaUQsU0FBUyw0Q0FBNEMsT0FBTyxvQkFBb0IsbURBQW1ELHdCQUF3QixTQUFTLE9BQU8sS0FBSyxtREFBbUQsMkJBQTJCLFlBQVksNEJBQTRCLFlBQVksS0FBSyxHQUFHLGtMQUFrTCw2QkFBNkIsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QywwUUFBMFEsNENBQTRDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDBDQUEwQywwQ0FBMEMsMENBQTBDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRRQUE0USw4Q0FBOEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsOFFBQThRLGdEQUFnRCw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw0UUFBNFEsOENBQThDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ1JBQWdSLGtEQUFrRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCx5RkFBeUYsdWRBQXVkLHFCQUFxQjtBQUN6MWtCO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3M/OWFkYiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vcGFja2FnZXMvZXhjYWxpZHJhdy9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCI6ZXhwb3J0IHtcXG4gIHRoZW1lRmlsdGVyOiBpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZyk7XFxuICByaWdodFNpZGViYXJXaWR0aDogMzAycHg7XFxufVxcblxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNmZmZmZmY7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNmZmZmZmY7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfcmFkaW86Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gIGJvdHRvbTogNHB4O1xcbiAgcmlnaHQ6IDRweDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZzpub3QoLmlzLW1vYmlsZSkgLlRvb2xJY29uX19pY29uIHtcXG4gIHBhZGRpbmc6IDFweDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlzbGFuZC1iZy1jb2xvcik7XFxuICBib3gtc2hhZG93OiAxcHggM3B4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cyBlYXNlLCB0cmFuc2Zvcm0gMC41cyBlYXNlO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvOmZvY3VzLXdpdGhpbiArIC5Ub29sSWNvbl9faWNvbixcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94OmZvY3VzLXdpdGhpbiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fX2hpZGRlbiB7XFxuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb24uVG9vbEljb25fX2xvY2sge1xcbiAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNwYWNlLWZhY3Rvcik7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgbWFyZ2luLWxlZnQ6IDAuMXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fX2xpYnJhcnkge1xcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lci56ZW4tbW9kZSAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lci56ZW4tbW9kZSAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpub3QoOmNoZWNrZWQpOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKSArIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgZmlsbDogI2FkYjViZDtcXG4gIGNvbG9yOiAjYWRiNWJkO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIge1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbjpob3ZlciB7XFxuICAtLWljb24tZmlsbC1jb2xvcjogdmFyKFxcbiAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KVxcbiAgKTtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogdmFyKFxcbiAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KVxcbiAgKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICMyMTI1Mjk7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICMyMTI1Mjk7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLlRvb2xJY29uIC5Ub29sSWNvbl90eXBlX3JhZGlvOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNmZmZmZmY7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNmZmZmZmY7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW86Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gIGJvdHRvbTogNHB4O1xcbiAgcmlnaHQ6IDRweDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLnplbi1tb2RlIC5Ub29sSWNvbl9fa2V5YmluZGluZyxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIuemVuLW1vZGUgLkhpbnRWaWV3ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNkZWUyZTY7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNkZWUyZTY7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBaUNBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQ2hDRjs7QURRSTs7RUFDRSxzQ0FBQTtBQ0pOO0FETUk7O0VBQ0UsZ0NBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FDSE47QURLSTs7RUFDRSx1Q0FBQTtBQ0ZOO0FETUU7RUFDRSxXQUFBO0VBQ0EsVUFBQTtBQ0pKO0FBYlE7RUFDRSxZQUFBO0VBQ0Esd0NBQUE7RUFDQSwrQ0FBQTtFQUNBLGtCQUFBO0VBQ0EscURBQUE7QUFlVjtBQVRROztFQUVFLGtEQUFBO0FBV1Y7QUFOSTtFQUNFLDJCQUFBO0VBQ0Esd0NBQUE7RUFDQSwrQkFBQTtBQVFOO0FBTEk7RUFDRSxzQ0FBQTtBQU9OO0FBTk07RUFDRSxtQkFBQTtBQVFSO0FBSkk7RUFDRSx3Q0FBQTtBQU1OO0FBRFE7RUFDRSxnQkFBQTtFQUNBLHFCQUFBO0FBR1Y7QUFDWTtFQUNFLGFDakJGO0VEa0JFLGNDbEJGO0FEbUJaO0FBT0U7RUFDRSxzQ0FBQTtFQUNBLDBFQUFBO0FBTEo7QUFRTTtFQUNFOzs7R0FBQTtFQUlBOzs7R0FBQTtBQUhSO0FBUU07RUFDRSwwQkFBQTtFQUNBLDJCQUFBO0FBTlI7QUFTTTtFQUNFLHVCQUFBO0VBQ0Esc0NBQUE7QUFQUjtBRGxFSTs7RUFDRSxzQ0FBQTtBQ3FFTjtBRG5FSTs7RUFDRSxnQ0FBQTtFQUNBLDBCQUFBO0VBQ0EsMkJBQUE7QUNzRU47QURwRUk7O0VBQ0UsdUNBQUE7QUN1RU47QURuRUU7RUFDRSxXQUFBO0VBQ0EsVUFBQTtBQ3FFSjtBQUpNOztFQUVFLGFBQUE7QUFNUjtBQURFO0VBQ0UsMEJBQUE7RUFDQSwyQkFBQTtBQUdKXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcbkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuQXBwLXRvb2xiYXItY29udGFpbmVyIHtcXG4gICAgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgICAgIEBpbmNsdWRlIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcztcXG5cXG4gICAgICAmOm5vdCguaXMtbW9iaWxlKSB7XFxuICAgICAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlzbGFuZC1iZy1jb2xvcik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggNHB4IDBweCByZ2IoMCAwIDAgLyAxNSUpO1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cyBlYXNlLCB0cmFuc2Zvcm0gMC41cyBlYXNlO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gICAgICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICAgICAmOmZvY3VzLXdpdGhpbiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgIC8vIG92ZXJyaWRlIGZvciBjdXN0b20gZmxvYXRpbmcgYnV0dG9uIHNoYWRvd1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19oaWRkZW4ge1xcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG4gICAgICAmLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMXJlbTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19saWJyYXJ5IHtcXG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcbiAgICB9XFxuXFxuICAgICYuemVuLW1vZGUge1xcbiAgICAgIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcXG4gICAgICAgIH1cXG4gICAgICAgIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCg6Y2hlY2tlZCk6bm90KDpob3Zlcik6bm90KDphY3RpdmUpIHtcXG4gICAgICAgICAgJiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZpbGw6ICRvYy1ncmF5LTU7XFxuICAgICAgICAgICAgICBjb2xvcjogJG9jLWdyYXktNTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5BcHAtdG9vbGJhciB7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbGcpO1xcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTUlKTtcXG5cXG4gICAgLlRvb2xJY29uIHtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIC0taWNvbi1maWxsLWNvbG9yOiB2YXIoXFxuICAgICAgICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdC1vZmZzZXQsXFxuICAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxuICAgICAgICApO1xcbiAgICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiB2YXIoXFxuICAgICAgICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdC1vZmZzZXQsXFxuICAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxuICAgICAgICApO1xcbiAgICAgIH1cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2MtZ3JheS05fTtcXG4gICAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS05fTtcXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuICAgICAgfVxcblxcbiAgICAgIEBpbmNsdWRlIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcztcXG4gICAgfVxcblxcbiAgICAmLnplbi1tb2RlIHtcXG4gICAgICAuVG9vbEljb25fX2tleWJpbmRpbmcsXFxuICAgICAgLkhpbnRWaWV3ZXIge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gICYudGhlbWUtLWRhcmsgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2MtZ3JheS0zfTtcXG4gICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy1ncmF5LTN9O1xcbiAgfVxcbn1cXG5cIixcIi8vXFxuLy9cXG4vLyAg8J2XliDwnZeiIPCdl58g8J2XoiDwnZelXFxuLy8gIHYgMS45LjFcXG4vL1xcbi8vICDilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIFcXG5cXG5cXG4vLyAgR2VuZXJhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXG5cXG5cXG4vLyAgR3JheVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JheS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGY5ZmEsXFxuICBcXFwiMVxcXCI6ICNmMWYzZjUsXFxuICBcXFwiMlxcXCI6ICNlOWVjZWYsXFxuICBcXFwiM1xcXCI6ICNkZWUyZTYsXFxuICBcXFwiNFxcXCI6ICNjZWQ0ZGEsXFxuICBcXFwiNVxcXCI6ICNhZGI1YmQsXFxuICBcXFwiNlxcXCI6ICM4NjhlOTYsXFxuICBcXFwiN1xcXCI6ICM0OTUwNTcsXFxuICBcXFwiOFxcXCI6ICMzNDNhNDAsXFxuICBcXFwiOVxcXCI6ICMyMTI1MjlcXG4pO1xcblxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUmVkXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1yZWQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNWY1LFxcbiAgXFxcIjFcXFwiOiAjZmZlM2UzLFxcbiAgXFxcIjJcXFwiOiAjZmZjOWM5LFxcbiAgXFxcIjNcXFwiOiAjZmZhOGE4LFxcbiAgXFxcIjRcXFwiOiAjZmY4Nzg3LFxcbiAgXFxcIjVcXFwiOiAjZmY2YjZiLFxcbiAgXFxcIjZcXFwiOiAjZmE1MjUyLFxcbiAgXFxcIjdcXFwiOiAjZjAzZTNlLFxcbiAgXFxcIjhcXFwiOiAjZTAzMTMxLFxcbiAgXFxcIjlcXFwiOiAjYzkyYTJhXFxuKTtcXG5cXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBQaW5rXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1waW5rLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjBmNixcXG4gIFxcXCIxXFxcIjogI2ZmZGVlYixcXG4gIFxcXCIyXFxcIjogI2ZjYzJkNyxcXG4gIFxcXCIzXFxcIjogI2ZhYTJjMSxcXG4gIFxcXCI0XFxcIjogI2Y3ODNhYyxcXG4gIFxcXCI1XFxcIjogI2YwNjU5NSxcXG4gIFxcXCI2XFxcIjogI2U2NDk4MCxcXG4gIFxcXCI3XFxcIjogI2Q2MzM2YyxcXG4gIFxcXCI4XFxcIjogI2MyMjU1YyxcXG4gIFxcXCI5XFxcIjogI2E2MWU0ZFxcbik7XFxuXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmFwZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JhcGUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmMGZjLFxcbiAgXFxcIjFcXFwiOiAjZjNkOWZhLFxcbiAgXFxcIjJcXFwiOiAjZWViZWZhLFxcbiAgXFxcIjNcXFwiOiAjZTU5OWY3LFxcbiAgXFxcIjRcXFwiOiAjZGE3N2YyLFxcbiAgXFxcIjVcXFwiOiAjY2M1ZGU4LFxcbiAgXFxcIjZcXFwiOiAjYmU0YmRiLFxcbiAgXFxcIjdcXFwiOiAjYWUzZWM5LFxcbiAgXFxcIjhcXFwiOiAjOWMzNmI1LFxcbiAgXFxcIjlcXFwiOiAjODYyZTljXFxuKTtcXG5cXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVmlvbGV0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy12aW9sZXQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjNmMGZmLFxcbiAgXFxcIjFcXFwiOiAjZTVkYmZmLFxcbiAgXFxcIjJcXFwiOiAjZDBiZmZmLFxcbiAgXFxcIjNcXFwiOiAjYjE5N2ZjLFxcbiAgXFxcIjRcXFwiOiAjOTc3NWZhLFxcbiAgXFxcIjVcXFwiOiAjODQ1ZWY3LFxcbiAgXFxcIjZcXFwiOiAjNzk1MGYyLFxcbiAgXFxcIjdcXFwiOiAjNzA0OGU4LFxcbiAgXFxcIjhcXFwiOiAjNjc0MWQ5LFxcbiAgXFxcIjlcXFwiOiAjNWYzZGM0XFxuKTtcXG5cXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBJbmRpZ29cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWluZGlnby1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlZGYyZmYsXFxuICBcXFwiMVxcXCI6ICNkYmU0ZmYsXFxuICBcXFwiMlxcXCI6ICNiYWM4ZmYsXFxuICBcXFwiM1xcXCI6ICM5MWE3ZmYsXFxuICBcXFwiNFxcXCI6ICM3NDhmZmMsXFxuICBcXFwiNVxcXCI6ICM1YzdjZmEsXFxuICBcXFwiNlxcXCI6ICM0YzZlZjUsXFxuICBcXFwiN1xcXCI6ICM0MjYzZWIsXFxuICBcXFwiOFxcXCI6ICMzYjViZGIsXFxuICBcXFwiOVxcXCI6ICMzNjRmYzdcXG4pO1xcblxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEJsdWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWJsdWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTdmNWZmLFxcbiAgXFxcIjFcXFwiOiAjZDBlYmZmLFxcbiAgXFxcIjJcXFwiOiAjYTVkOGZmLFxcbiAgXFxcIjNcXFwiOiAjNzRjMGZjLFxcbiAgXFxcIjRcXFwiOiAjNGRhYmY3LFxcbiAgXFxcIjVcXFwiOiAjMzM5YWYwLFxcbiAgXFxcIjZcXFwiOiAjMjI4YmU2LFxcbiAgXFxcIjdcXFwiOiAjMWM3ZWQ2LFxcbiAgXFxcIjhcXFwiOiAjMTk3MWMyLFxcbiAgXFxcIjlcXFwiOiAjMTg2NGFiXFxuKTtcXG5cXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEN5YW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWN5YW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTNmYWZjLFxcbiAgXFxcIjFcXFwiOiAjYzVmNmZhLFxcbiAgXFxcIjJcXFwiOiAjOTllOWYyLFxcbiAgXFxcIjNcXFwiOiAjNjZkOWU4LFxcbiAgXFxcIjRcXFwiOiAjM2JjOWRiLFxcbiAgXFxcIjVcXFwiOiAjMjJiOGNmLFxcbiAgXFxcIjZcXFwiOiAjMTVhYWJmLFxcbiAgXFxcIjdcXFwiOiAjMTA5OGFkLFxcbiAgXFxcIjhcXFwiOiAjMGM4NTk5LFxcbiAgXFxcIjlcXFwiOiAjMGI3Mjg1XFxuKTtcXG5cXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFRlYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXRlYWwtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTZmY2Y1LFxcbiAgXFxcIjFcXFwiOiAjYzNmYWU4LFxcbiAgXFxcIjJcXFwiOiAjOTZmMmQ3LFxcbiAgXFxcIjNcXFwiOiAjNjNlNmJlLFxcbiAgXFxcIjRcXFwiOiAjMzhkOWE5LFxcbiAgXFxcIjVcXFwiOiAjMjBjOTk3LFxcbiAgXFxcIjZcXFwiOiAjMTJiODg2LFxcbiAgXFxcIjdcXFwiOiAjMGNhNjc4LFxcbiAgXFxcIjhcXFwiOiAjMDk5MjY4LFxcbiAgXFxcIjlcXFwiOiAjMDg3ZjViXFxuKTtcXG5cXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyZWVuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmVlbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlYmZiZWUsXFxuICBcXFwiMVxcXCI6ICNkM2Y5ZDgsXFxuICBcXFwiMlxcXCI6ICNiMmYyYmIsXFxuICBcXFwiM1xcXCI6ICM4Y2U5OWEsXFxuICBcXFwiNFxcXCI6ICM2OWRiN2MsXFxuICBcXFwiNVxcXCI6ICM1MWNmNjYsXFxuICBcXFwiNlxcXCI6ICM0MGMwNTcsXFxuICBcXFwiN1xcXCI6ICMzN2IyNGQsXFxuICBcXFwiOFxcXCI6ICMyZjllNDQsXFxuICBcXFwiOVxcXCI6ICMyYjhhM2VcXG4pO1xcblxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBMaW1lXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1saW1lLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y0ZmNlMyxcXG4gIFxcXCIxXFxcIjogI2U5ZmFjOCxcXG4gIFxcXCIyXFxcIjogI2Q4ZjVhMixcXG4gIFxcXCIzXFxcIjogI2MwZWI3NSxcXG4gIFxcXCI0XFxcIjogI2E5ZTM0YixcXG4gIFxcXCI1XFxcIjogIzk0ZDgyZCxcXG4gIFxcXCI2XFxcIjogIzgyYzkxZSxcXG4gIFxcXCI3XFxcIjogIzc0YjgxNixcXG4gIFxcXCI4XFxcIjogIzY2YTgwZixcXG4gIFxcXCI5XFxcIjogIzVjOTQwZFxcbik7XFxuXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBZZWxsb3dcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXllbGxvdy1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY5ZGIsXFxuICBcXFwiMVxcXCI6ICNmZmYzYmYsXFxuICBcXFwiMlxcXCI6ICNmZmVjOTksXFxuICBcXFwiM1xcXCI6ICNmZmUwNjYsXFxuICBcXFwiNFxcXCI6ICNmZmQ0M2IsXFxuICBcXFwiNVxcXCI6ICNmY2M0MTksXFxuICBcXFwiNlxcXCI6ICNmYWIwMDUsXFxuICBcXFwiN1xcXCI6ICNmNTlmMDAsXFxuICBcXFwiOFxcXCI6ICNmMDhjMDAsXFxuICBcXFwiOVxcXCI6ICNlNjc3MDBcXG4pO1xcblxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIE9yYW5nZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjRlNixcXG4gIFxcXCIxXFxcIjogI2ZmZThjYyxcXG4gIFxcXCIyXFxcIjogI2ZmZDhhOCxcXG4gIFxcXCIzXFxcIjogI2ZmYzA3OCxcXG4gIFxcXCI0XFxcIjogI2ZmYTk0ZCxcXG4gIFxcXCI1XFxcIjogI2ZmOTIyYixcXG4gIFxcXCI2XFxcIjogI2ZkN2UxNCxcXG4gIFxcXCI3XFxcIjogI2Y3NjcwNyxcXG4gIFxcXCI4XFxcIjogI2U4NTkwYyxcXG4gIFxcXCI5XFxcIjogI2Q5NDgwZlxcbik7XFxuXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ29sb3IgbGlzdFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXG5cXG4kb2MtY29sb3ItbGlzdDogKFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFwiZ3JheVxcXCIsXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcInJlZFxcXCIsXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXCJwaW5rXFxcIixcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXCJncmFwZVxcXCIsXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcInZpb2xldFxcXCIsXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcImluZGlnb1xcXCIsXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXCJibHVlXFxcIixcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcImN5YW5cXFwiLFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFwidGVhbFxcXCIsXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFwiZ3JlZW5cXFwiLFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFwibGltZVxcXCIsXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcInllbGxvd1xcXCIsXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcIm9yYW5nZVxcXCJcXG4pO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Toolbar.scss\n");
|
|
1614
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/sourceMaps.js */ \"./node_modules/css-loader/dist/runtime/sourceMaps.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../packages/excalidraw/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _packages_excalidraw_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_packages_excalidraw_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":export {\\n themeFilter: invert(93%) hue-rotate(180deg);\\n rightSidebarWidth: 302px;\\n}\\n\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:checked + .ToolIcon__icon,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n --keybinding-color: #ffffff;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:checked + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating:not(.is-mobile) .ToolIcon__icon {\\n padding: 1px;\\n background-color: var(--island-bg-color);\\n box-shadow: 1px 3px 4px 0px rgba(0, 0, 0, 0.15);\\n border-radius: 50%;\\n transition: box-shadow 0.5s ease, transform 0.5s ease;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_radio:focus-within + .ToolIcon__icon,\\n.excalidraw .App-toolbar-container .ToolIcon_type_floating .ToolIcon_type_checkbox:focus-within + .ToolIcon__icon {\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n}\\n.excalidraw .App-toolbar-container .ToolIcon__hidden {\\n box-shadow: none !important;\\n background-color: transparent !important;\\n pointer-events: none !important;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon.ToolIcon__lock.ToolIcon_type_floating {\\n margin-left: 0.1rem;\\n}\\n.excalidraw .App-toolbar-container .ToolIcon__library {\\n margin-inline-start: var(--space-factor);\\n}\\n.excalidraw .App-toolbar-container.zen-mode .ToolIcon_type_floating .ToolIcon__icon {\\n box-shadow: none;\\n transform: scale(0.9);\\n}\\n.excalidraw .App-toolbar-container.zen-mode .ToolIcon_type_floating .ToolIcon_type_checkbox:not(:checked):not(:hover):not(:active) + .ToolIcon__icon svg {\\n fill: #adb5bd;\\n color: #adb5bd;\\n}\\n.excalidraw .App-toolbar {\\n border-radius: var(--border-radius-lg);\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgba(0, 0, 0, 0.15);\\n}\\n.excalidraw .App-toolbar .ToolIcon:hover {\\n --icon-fill-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n --keybinding-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n}\\n.excalidraw .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #212529;\\n --keybinding-color: #212529;\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon__icon {\\n background: transparent;\\n border-radius: var(--border-radius-lg);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio:checked + .ToolIcon__icon,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #ffffff;\\n --keybinding-color: #ffffff;\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_radio:checked + .ToolIcon__icon:active,\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon_type_checkbox:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n}\\n.excalidraw .App-toolbar .ToolIcon .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n}\\n.excalidraw .App-toolbar.zen-mode .ToolIcon__keybinding,\\n.excalidraw .App-toolbar.zen-mode .HintViewer {\\n display: none;\\n}\\n.excalidraw.theme--dark .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #dee2e6;\\n --keybinding-color: #dee2e6;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../css/variables.module.scss\",\"webpack://./../../components/Toolbar.scss\",\"webpack://./../../../node_modules/open-color/open-color.scss\"],\"names\":[],\"mappings\":\"AAiCA;EACE,2CAAA;EACA,wBAAA;AChCF;;ADQI;;EACE,sCAAA;ACJN;ADMI;;EACE,gCAAA;EACA,0BAAA;EACA,2BAAA;ACHN;ADKI;;EACE,uCAAA;ACFN;ADME;EACE,WAAA;EACA,UAAA;ACJJ;AAbQ;EACE,YAAA;EACA,wCAAA;EACA,+CAAA;EACA,kBAAA;EACA,qDAAA;AAeV;AATQ;;EAEE,kDAAA;AAWV;AANI;EACE,2BAAA;EACA,wCAAA;EACA,+BAAA;AAQN;AAJM;EACE,mBAAA;AAMR;AAFI;EACE,wCAAA;AAIN;AACQ;EACE,gBAAA;EACA,qBAAA;AACV;AAGY;EACE,aChBF;EDiBE,cCjBF;ADgBZ;AASE;EACE,sCAAA;EACA,0EAAA;AAPJ;AAUM;EACE;;;GAAA;EAIA;;;GAAA;AALR;AAUM;EACE,0BAAA;EACA,2BAAA;AARR;AAWM;EACE,uBAAA;EACA,sCAAA;AATR;AD/DI;;EACE,sCAAA;ACkEN;ADhEI;;EACE,gCAAA;EACA,0BAAA;EACA,2BAAA;ACmEN;ADjEI;;EACE,uCAAA;ACoEN;ADhEE;EACE,WAAA;EACA,UAAA;ACkEJ;AAFM;;EAEE,aAAA;AAIR;AACE;EACE,0BAAA;EACA,2BAAA;AACJ\",\"sourcesContent\":[\"@import \\\"open-color/open-color.scss\\\";\\n\\n@mixin isMobile() {\\n @at-root .excalidraw--mobile#{&} {\\n @content;\\n }\\n}\\n\\n@mixin toolbarButtonColorStates {\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n & + .ToolIcon__icon:active {\\n background: var(--color-primary-light);\\n }\\n &:checked + .ToolIcon__icon {\\n background: var(--color-primary);\\n --icon-fill-color: #{$oc-white};\\n --keybinding-color: #{$oc-white};\\n }\\n &:checked + .ToolIcon__icon:active {\\n background: var(--color-primary-darker);\\n }\\n }\\n\\n .ToolIcon__keybinding {\\n bottom: 4px;\\n right: 4px;\\n }\\n}\\n\\n$theme-filter: \\\"invert(93%) hue-rotate(180deg)\\\";\\n$right-sidebar-width: \\\"302px\\\";\\n\\n:export {\\n themeFilter: unquote($theme-filter);\\n rightSidebarWidth: unquote($right-sidebar-width);\\n}\\n\",\"@import \\\"open-color/open-color.scss\\\";\\n@import \\\"../css/variables.module\\\";\\n\\n.excalidraw {\\n .App-toolbar-container {\\n .ToolIcon_type_floating {\\n @include toolbarButtonColorStates;\\n\\n &:not(.is-mobile) {\\n .ToolIcon__icon {\\n padding: 1px;\\n background-color: var(--island-bg-color);\\n box-shadow: 1px 3px 4px 0px rgb(0 0 0 / 15%);\\n border-radius: 50%;\\n transition: box-shadow 0.5s ease, transform 0.5s ease;\\n }\\n }\\n\\n .ToolIcon_type_radio,\\n .ToolIcon_type_checkbox {\\n &:focus-within + .ToolIcon__icon {\\n // override for custom floating button shadow\\n box-shadow: 0 0 0 2px var(--focus-highlight-color);\\n }\\n }\\n }\\n\\n .ToolIcon__hidden {\\n box-shadow: none !important;\\n background-color: transparent !important;\\n pointer-events: none !important;\\n }\\n\\n .ToolIcon.ToolIcon__lock {\\n &.ToolIcon_type_floating {\\n margin-left: 0.1rem;\\n }\\n }\\n\\n .ToolIcon__library {\\n margin-inline-start: var(--space-factor);\\n }\\n\\n &.zen-mode {\\n .ToolIcon_type_floating {\\n .ToolIcon__icon {\\n box-shadow: none;\\n transform: scale(0.9);\\n }\\n .ToolIcon_type_checkbox:not(:checked):not(:hover):not(:active) {\\n & + .ToolIcon__icon {\\n svg {\\n fill: $oc-gray-5;\\n color: $oc-gray-5;\\n }\\n }\\n }\\n }\\n }\\n }\\n\\n .App-toolbar {\\n border-radius: var(--border-radius-lg);\\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.01), 1px 1px 5px rgb(0 0 0 / 15%);\\n\\n .ToolIcon {\\n &:hover {\\n --icon-fill-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n --keybinding-color: var(\\n --color-primary-contrast-offset,\\n var(--color-primary)\\n );\\n }\\n &:active {\\n --icon-fill-color: #{$oc-gray-9};\\n --keybinding-color: #{$oc-gray-9};\\n }\\n\\n .ToolIcon__icon {\\n background: transparent;\\n border-radius: var(--border-radius-lg);\\n }\\n\\n @include toolbarButtonColorStates;\\n }\\n\\n &.zen-mode {\\n .ToolIcon__keybinding,\\n .HintViewer {\\n display: none;\\n }\\n }\\n }\\n\\n &.theme--dark .App-toolbar .ToolIcon:active {\\n --icon-fill-color: #{$oc-gray-3};\\n --keybinding-color: #{$oc-gray-3};\\n }\\n}\\n\",\"//\\n//\\n// 𝗖 𝗢 𝗟 𝗢 𝗥\\n// v 1.9.1\\n//\\n// ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\n\\n\\n// General\\n// ───────────────────────────────────\\n\\n$oc-white: #ffffff;\\n$oc-black: #000000;\\n\\n\\n// Gray\\n// ───────────────────────────────────\\n\\n$oc-gray-list: (\\n \\\"0\\\": #f8f9fa,\\n \\\"1\\\": #f1f3f5,\\n \\\"2\\\": #e9ecef,\\n \\\"3\\\": #dee2e6,\\n \\\"4\\\": #ced4da,\\n \\\"5\\\": #adb5bd,\\n \\\"6\\\": #868e96,\\n \\\"7\\\": #495057,\\n \\\"8\\\": #343a40,\\n \\\"9\\\": #212529\\n);\\n\\n$oc-gray-0: map-get($oc-gray-list, \\\"0\\\");\\n$oc-gray-1: map-get($oc-gray-list, \\\"1\\\");\\n$oc-gray-2: map-get($oc-gray-list, \\\"2\\\");\\n$oc-gray-3: map-get($oc-gray-list, \\\"3\\\");\\n$oc-gray-4: map-get($oc-gray-list, \\\"4\\\");\\n$oc-gray-5: map-get($oc-gray-list, \\\"5\\\");\\n$oc-gray-6: map-get($oc-gray-list, \\\"6\\\");\\n$oc-gray-7: map-get($oc-gray-list, \\\"7\\\");\\n$oc-gray-8: map-get($oc-gray-list, \\\"8\\\");\\n$oc-gray-9: map-get($oc-gray-list, \\\"9\\\");\\n\\n\\n// Red\\n// ───────────────────────────────────\\n\\n$oc-red-list: (\\n \\\"0\\\": #fff5f5,\\n \\\"1\\\": #ffe3e3,\\n \\\"2\\\": #ffc9c9,\\n \\\"3\\\": #ffa8a8,\\n \\\"4\\\": #ff8787,\\n \\\"5\\\": #ff6b6b,\\n \\\"6\\\": #fa5252,\\n \\\"7\\\": #f03e3e,\\n \\\"8\\\": #e03131,\\n \\\"9\\\": #c92a2a\\n);\\n\\n$oc-red-0: map-get($oc-red-list, \\\"0\\\");\\n$oc-red-1: map-get($oc-red-list, \\\"1\\\");\\n$oc-red-2: map-get($oc-red-list, \\\"2\\\");\\n$oc-red-3: map-get($oc-red-list, \\\"3\\\");\\n$oc-red-4: map-get($oc-red-list, \\\"4\\\");\\n$oc-red-5: map-get($oc-red-list, \\\"5\\\");\\n$oc-red-6: map-get($oc-red-list, \\\"6\\\");\\n$oc-red-7: map-get($oc-red-list, \\\"7\\\");\\n$oc-red-8: map-get($oc-red-list, \\\"8\\\");\\n$oc-red-9: map-get($oc-red-list, \\\"9\\\");\\n\\n\\n// Pink\\n// ───────────────────────────────────\\n\\n$oc-pink-list: (\\n \\\"0\\\": #fff0f6,\\n \\\"1\\\": #ffdeeb,\\n \\\"2\\\": #fcc2d7,\\n \\\"3\\\": #faa2c1,\\n \\\"4\\\": #f783ac,\\n \\\"5\\\": #f06595,\\n \\\"6\\\": #e64980,\\n \\\"7\\\": #d6336c,\\n \\\"8\\\": #c2255c,\\n \\\"9\\\": #a61e4d\\n);\\n\\n$oc-pink-0: map-get($oc-pink-list, \\\"0\\\");\\n$oc-pink-1: map-get($oc-pink-list, \\\"1\\\");\\n$oc-pink-2: map-get($oc-pink-list, \\\"2\\\");\\n$oc-pink-3: map-get($oc-pink-list, \\\"3\\\");\\n$oc-pink-4: map-get($oc-pink-list, \\\"4\\\");\\n$oc-pink-5: map-get($oc-pink-list, \\\"5\\\");\\n$oc-pink-6: map-get($oc-pink-list, \\\"6\\\");\\n$oc-pink-7: map-get($oc-pink-list, \\\"7\\\");\\n$oc-pink-8: map-get($oc-pink-list, \\\"8\\\");\\n$oc-pink-9: map-get($oc-pink-list, \\\"9\\\");\\n\\n\\n// Grape\\n// ───────────────────────────────────\\n\\n$oc-grape-list: (\\n \\\"0\\\": #f8f0fc,\\n \\\"1\\\": #f3d9fa,\\n \\\"2\\\": #eebefa,\\n \\\"3\\\": #e599f7,\\n \\\"4\\\": #da77f2,\\n \\\"5\\\": #cc5de8,\\n \\\"6\\\": #be4bdb,\\n \\\"7\\\": #ae3ec9,\\n \\\"8\\\": #9c36b5,\\n \\\"9\\\": #862e9c\\n);\\n\\n$oc-grape-0: map-get($oc-grape-list, \\\"0\\\");\\n$oc-grape-1: map-get($oc-grape-list, \\\"1\\\");\\n$oc-grape-2: map-get($oc-grape-list, \\\"2\\\");\\n$oc-grape-3: map-get($oc-grape-list, \\\"3\\\");\\n$oc-grape-4: map-get($oc-grape-list, \\\"4\\\");\\n$oc-grape-5: map-get($oc-grape-list, \\\"5\\\");\\n$oc-grape-6: map-get($oc-grape-list, \\\"6\\\");\\n$oc-grape-7: map-get($oc-grape-list, \\\"7\\\");\\n$oc-grape-8: map-get($oc-grape-list, \\\"8\\\");\\n$oc-grape-9: map-get($oc-grape-list, \\\"9\\\");\\n\\n\\n// Violet\\n// ───────────────────────────────────\\n\\n$oc-violet-list: (\\n \\\"0\\\": #f3f0ff,\\n \\\"1\\\": #e5dbff,\\n \\\"2\\\": #d0bfff,\\n \\\"3\\\": #b197fc,\\n \\\"4\\\": #9775fa,\\n \\\"5\\\": #845ef7,\\n \\\"6\\\": #7950f2,\\n \\\"7\\\": #7048e8,\\n \\\"8\\\": #6741d9,\\n \\\"9\\\": #5f3dc4\\n);\\n\\n$oc-violet-0: map-get($oc-violet-list, \\\"0\\\");\\n$oc-violet-1: map-get($oc-violet-list, \\\"1\\\");\\n$oc-violet-2: map-get($oc-violet-list, \\\"2\\\");\\n$oc-violet-3: map-get($oc-violet-list, \\\"3\\\");\\n$oc-violet-4: map-get($oc-violet-list, \\\"4\\\");\\n$oc-violet-5: map-get($oc-violet-list, \\\"5\\\");\\n$oc-violet-6: map-get($oc-violet-list, \\\"6\\\");\\n$oc-violet-7: map-get($oc-violet-list, \\\"7\\\");\\n$oc-violet-8: map-get($oc-violet-list, \\\"8\\\");\\n$oc-violet-9: map-get($oc-violet-list, \\\"9\\\");\\n\\n\\n// Indigo\\n// ───────────────────────────────────\\n\\n$oc-indigo-list: (\\n \\\"0\\\": #edf2ff,\\n \\\"1\\\": #dbe4ff,\\n \\\"2\\\": #bac8ff,\\n \\\"3\\\": #91a7ff,\\n \\\"4\\\": #748ffc,\\n \\\"5\\\": #5c7cfa,\\n \\\"6\\\": #4c6ef5,\\n \\\"7\\\": #4263eb,\\n \\\"8\\\": #3b5bdb,\\n \\\"9\\\": #364fc7\\n);\\n\\n$oc-indigo-0: map-get($oc-indigo-list, \\\"0\\\");\\n$oc-indigo-1: map-get($oc-indigo-list, \\\"1\\\");\\n$oc-indigo-2: map-get($oc-indigo-list, \\\"2\\\");\\n$oc-indigo-3: map-get($oc-indigo-list, \\\"3\\\");\\n$oc-indigo-4: map-get($oc-indigo-list, \\\"4\\\");\\n$oc-indigo-5: map-get($oc-indigo-list, \\\"5\\\");\\n$oc-indigo-6: map-get($oc-indigo-list, \\\"6\\\");\\n$oc-indigo-7: map-get($oc-indigo-list, \\\"7\\\");\\n$oc-indigo-8: map-get($oc-indigo-list, \\\"8\\\");\\n$oc-indigo-9: map-get($oc-indigo-list, \\\"9\\\");\\n\\n\\n// Blue\\n// ───────────────────────────────────\\n\\n$oc-blue-list: (\\n \\\"0\\\": #e7f5ff,\\n \\\"1\\\": #d0ebff,\\n \\\"2\\\": #a5d8ff,\\n \\\"3\\\": #74c0fc,\\n \\\"4\\\": #4dabf7,\\n \\\"5\\\": #339af0,\\n \\\"6\\\": #228be6,\\n \\\"7\\\": #1c7ed6,\\n \\\"8\\\": #1971c2,\\n \\\"9\\\": #1864ab\\n);\\n\\n$oc-blue-0: map-get($oc-blue-list, \\\"0\\\");\\n$oc-blue-1: map-get($oc-blue-list, \\\"1\\\");\\n$oc-blue-2: map-get($oc-blue-list, \\\"2\\\");\\n$oc-blue-3: map-get($oc-blue-list, \\\"3\\\");\\n$oc-blue-4: map-get($oc-blue-list, \\\"4\\\");\\n$oc-blue-5: map-get($oc-blue-list, \\\"5\\\");\\n$oc-blue-6: map-get($oc-blue-list, \\\"6\\\");\\n$oc-blue-7: map-get($oc-blue-list, \\\"7\\\");\\n$oc-blue-8: map-get($oc-blue-list, \\\"8\\\");\\n$oc-blue-9: map-get($oc-blue-list, \\\"9\\\");\\n\\n\\n// Cyan\\n// ───────────────────────────────────\\n\\n$oc-cyan-list: (\\n \\\"0\\\": #e3fafc,\\n \\\"1\\\": #c5f6fa,\\n \\\"2\\\": #99e9f2,\\n \\\"3\\\": #66d9e8,\\n \\\"4\\\": #3bc9db,\\n \\\"5\\\": #22b8cf,\\n \\\"6\\\": #15aabf,\\n \\\"7\\\": #1098ad,\\n \\\"8\\\": #0c8599,\\n \\\"9\\\": #0b7285\\n);\\n\\n$oc-cyan-0: map-get($oc-cyan-list, \\\"0\\\");\\n$oc-cyan-1: map-get($oc-cyan-list, \\\"1\\\");\\n$oc-cyan-2: map-get($oc-cyan-list, \\\"2\\\");\\n$oc-cyan-3: map-get($oc-cyan-list, \\\"3\\\");\\n$oc-cyan-4: map-get($oc-cyan-list, \\\"4\\\");\\n$oc-cyan-5: map-get($oc-cyan-list, \\\"5\\\");\\n$oc-cyan-6: map-get($oc-cyan-list, \\\"6\\\");\\n$oc-cyan-7: map-get($oc-cyan-list, \\\"7\\\");\\n$oc-cyan-8: map-get($oc-cyan-list, \\\"8\\\");\\n$oc-cyan-9: map-get($oc-cyan-list, \\\"9\\\");\\n\\n\\n// Teal\\n// ───────────────────────────────────\\n\\n$oc-teal-list: (\\n \\\"0\\\": #e6fcf5,\\n \\\"1\\\": #c3fae8,\\n \\\"2\\\": #96f2d7,\\n \\\"3\\\": #63e6be,\\n \\\"4\\\": #38d9a9,\\n \\\"5\\\": #20c997,\\n \\\"6\\\": #12b886,\\n \\\"7\\\": #0ca678,\\n \\\"8\\\": #099268,\\n \\\"9\\\": #087f5b\\n);\\n\\n$oc-teal-0: map-get($oc-teal-list, \\\"0\\\");\\n$oc-teal-1: map-get($oc-teal-list, \\\"1\\\");\\n$oc-teal-2: map-get($oc-teal-list, \\\"2\\\");\\n$oc-teal-3: map-get($oc-teal-list, \\\"3\\\");\\n$oc-teal-4: map-get($oc-teal-list, \\\"4\\\");\\n$oc-teal-5: map-get($oc-teal-list, \\\"5\\\");\\n$oc-teal-6: map-get($oc-teal-list, \\\"6\\\");\\n$oc-teal-7: map-get($oc-teal-list, \\\"7\\\");\\n$oc-teal-8: map-get($oc-teal-list, \\\"8\\\");\\n$oc-teal-9: map-get($oc-teal-list, \\\"9\\\");\\n\\n\\n// Green\\n// ───────────────────────────────────\\n\\n$oc-green-list: (\\n \\\"0\\\": #ebfbee,\\n \\\"1\\\": #d3f9d8,\\n \\\"2\\\": #b2f2bb,\\n \\\"3\\\": #8ce99a,\\n \\\"4\\\": #69db7c,\\n \\\"5\\\": #51cf66,\\n \\\"6\\\": #40c057,\\n \\\"7\\\": #37b24d,\\n \\\"8\\\": #2f9e44,\\n \\\"9\\\": #2b8a3e\\n);\\n\\n$oc-green-0: map-get($oc-green-list, \\\"0\\\");\\n$oc-green-1: map-get($oc-green-list, \\\"1\\\");\\n$oc-green-2: map-get($oc-green-list, \\\"2\\\");\\n$oc-green-3: map-get($oc-green-list, \\\"3\\\");\\n$oc-green-4: map-get($oc-green-list, \\\"4\\\");\\n$oc-green-5: map-get($oc-green-list, \\\"5\\\");\\n$oc-green-6: map-get($oc-green-list, \\\"6\\\");\\n$oc-green-7: map-get($oc-green-list, \\\"7\\\");\\n$oc-green-8: map-get($oc-green-list, \\\"8\\\");\\n$oc-green-9: map-get($oc-green-list, \\\"9\\\");\\n\\n\\n// Lime\\n// ───────────────────────────────────\\n\\n$oc-lime-list: (\\n \\\"0\\\": #f4fce3,\\n \\\"1\\\": #e9fac8,\\n \\\"2\\\": #d8f5a2,\\n \\\"3\\\": #c0eb75,\\n \\\"4\\\": #a9e34b,\\n \\\"5\\\": #94d82d,\\n \\\"6\\\": #82c91e,\\n \\\"7\\\": #74b816,\\n \\\"8\\\": #66a80f,\\n \\\"9\\\": #5c940d\\n);\\n\\n$oc-lime-0: map-get($oc-lime-list, \\\"0\\\");\\n$oc-lime-1: map-get($oc-lime-list, \\\"1\\\");\\n$oc-lime-2: map-get($oc-lime-list, \\\"2\\\");\\n$oc-lime-3: map-get($oc-lime-list, \\\"3\\\");\\n$oc-lime-4: map-get($oc-lime-list, \\\"4\\\");\\n$oc-lime-5: map-get($oc-lime-list, \\\"5\\\");\\n$oc-lime-6: map-get($oc-lime-list, \\\"6\\\");\\n$oc-lime-7: map-get($oc-lime-list, \\\"7\\\");\\n$oc-lime-8: map-get($oc-lime-list, \\\"8\\\");\\n$oc-lime-9: map-get($oc-lime-list, \\\"9\\\");\\n\\n\\n// Yellow\\n// ───────────────────────────────────\\n\\n$oc-yellow-list: (\\n \\\"0\\\": #fff9db,\\n \\\"1\\\": #fff3bf,\\n \\\"2\\\": #ffec99,\\n \\\"3\\\": #ffe066,\\n \\\"4\\\": #ffd43b,\\n \\\"5\\\": #fcc419,\\n \\\"6\\\": #fab005,\\n \\\"7\\\": #f59f00,\\n \\\"8\\\": #f08c00,\\n \\\"9\\\": #e67700\\n);\\n\\n$oc-yellow-0: map-get($oc-yellow-list, \\\"0\\\");\\n$oc-yellow-1: map-get($oc-yellow-list, \\\"1\\\");\\n$oc-yellow-2: map-get($oc-yellow-list, \\\"2\\\");\\n$oc-yellow-3: map-get($oc-yellow-list, \\\"3\\\");\\n$oc-yellow-4: map-get($oc-yellow-list, \\\"4\\\");\\n$oc-yellow-5: map-get($oc-yellow-list, \\\"5\\\");\\n$oc-yellow-6: map-get($oc-yellow-list, \\\"6\\\");\\n$oc-yellow-7: map-get($oc-yellow-list, \\\"7\\\");\\n$oc-yellow-8: map-get($oc-yellow-list, \\\"8\\\");\\n$oc-yellow-9: map-get($oc-yellow-list, \\\"9\\\");\\n\\n\\n// Orange\\n// ───────────────────────────────────\\n\\n$oc-orange-list: (\\n \\\"0\\\": #fff4e6,\\n \\\"1\\\": #ffe8cc,\\n \\\"2\\\": #ffd8a8,\\n \\\"3\\\": #ffc078,\\n \\\"4\\\": #ffa94d,\\n \\\"5\\\": #ff922b,\\n \\\"6\\\": #fd7e14,\\n \\\"7\\\": #f76707,\\n \\\"8\\\": #e8590c,\\n \\\"9\\\": #d9480f\\n);\\n\\n$oc-orange-0: map-get($oc-orange-list, \\\"0\\\");\\n$oc-orange-1: map-get($oc-orange-list, \\\"1\\\");\\n$oc-orange-2: map-get($oc-orange-list, \\\"2\\\");\\n$oc-orange-3: map-get($oc-orange-list, \\\"3\\\");\\n$oc-orange-4: map-get($oc-orange-list, \\\"4\\\");\\n$oc-orange-5: map-get($oc-orange-list, \\\"5\\\");\\n$oc-orange-6: map-get($oc-orange-list, \\\"6\\\");\\n$oc-orange-7: map-get($oc-orange-list, \\\"7\\\");\\n$oc-orange-8: map-get($oc-orange-list, \\\"8\\\");\\n$oc-orange-9: map-get($oc-orange-list, \\\"9\\\");\\n\\n\\n// Color list\\n// ───────────────────────────────────\\n\\n$oc-color-spectrum: 9;\\n\\n$oc-color-list: (\\n $oc-gray-list: \\\"gray\\\",\\n $oc-red-list: \\\"red\\\",\\n $oc-pink-list: \\\"pink\\\",\\n $oc-grape-list: \\\"grape\\\",\\n $oc-violet-list: \\\"violet\\\",\\n $oc-indigo-list: \\\"indigo\\\",\\n $oc-blue-list: \\\"blue\\\",\\n $oc-cyan-list: \\\"cyan\\\",\\n $oc-teal-list: \\\"teal\\\",\\n $oc-green-list: \\\"green\\\",\\n $oc-lime-list: \\\"lime\\\",\\n $oc-yellow-list: \\\"yellow\\\",\\n $oc-orange-list: \\\"orange\\\"\\n);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1swXS51c2VbMl0hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vY29tcG9uZW50cy9Ub29sYmFyLnNjc3MuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUM4SDtBQUNqQjtBQUM3Ryw4QkFBOEIsdUdBQTJCLENBQUMsZ0hBQXFDO0FBQy9GO0FBQ0EsbURBQW1ELGdEQUFnRCw2QkFBNkIsR0FBRyw0TkFBNE4sMkNBQTJDLEdBQUcsNE5BQTROLHFDQUFxQywrQkFBK0IsZ0NBQWdDLEdBQUcsME9BQTBPLDRDQUE0QyxHQUFHLG9GQUFvRixnQkFBZ0IsZUFBZSxHQUFHLDhGQUE4RixpQkFBaUIsNkNBQTZDLG9EQUFvRCx1QkFBdUIsMERBQTBELEdBQUcsc09BQXNPLHVEQUF1RCxHQUFHLHdEQUF3RCxnQ0FBZ0MsNkNBQTZDLG9DQUFvQyxHQUFHLHNGQUFzRix3QkFBd0IsR0FBRyx5REFBeUQsNkNBQTZDLEdBQUcsdUZBQXVGLHFCQUFxQiwwQkFBMEIsR0FBRyw0SkFBNEosa0JBQWtCLG1CQUFtQixHQUFHLDRCQUE0QiwyQ0FBMkMsK0VBQStFLEdBQUcsNENBQTRDLGlHQUFpRyxrR0FBa0csR0FBRyw2Q0FBNkMsK0JBQStCLGdDQUFnQyxHQUFHLHNEQUFzRCw0QkFBNEIsMkNBQTJDLEdBQUcsMEtBQTBLLDJDQUEyQyxHQUFHLDRLQUE0SyxxQ0FBcUMsK0JBQStCLGdDQUFnQyxHQUFHLDBMQUEwTCw0Q0FBNEMsR0FBRyw0REFBNEQsZ0JBQWdCLGVBQWUsR0FBRywyR0FBMkcsa0JBQWtCLEdBQUcseURBQXlELCtCQUErQixnQ0FBZ0MsR0FBRyxPQUFPLDhNQUE4TSxXQUFXLFdBQVcsT0FBTyxNQUFNLFdBQVcsS0FBSyxNQUFNLFdBQVcsV0FBVyxXQUFXLEtB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QTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDhRQUE4USxnREFBZ0QsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsOENBQThDLDhDQUE4Qyw4Q0FBOEMsNFFBQTRRLDhDQUE4Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0Qyw0Q0FBNEMsNENBQTRDLDRDQUE0QyxnUkFBZ1Isa0RBQWtELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdSQUFnUixrREFBa0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QsZ0RBQWdELGdEQUFnRCxnREFBZ0QseUZBQXlGLHVkQUF1ZCxxQkFBcUI7QUFDeHFrQjtBQUNBLGlFQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzPzlhZGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL3BhY2thZ2VzL2V4Y2FsaWRyYXcvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiOmV4cG9ydCB7XFxuICB0aGVtZUZpbHRlcjogaW52ZXJ0KDkzJSkgaHVlLXJvdGF0ZSgxODBkZWcpO1xcbiAgcmlnaHRTaWRlYmFyV2lkdGg6IDMwMnB4O1xcbn1cXG5cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94ICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWxpZ2h0KTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9yYWRpbzpjaGVja2VkICsgLlRvb2xJY29uX19pY29uLFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbiB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gIC0taWNvbi1maWxsLWNvbG9yOiAjZmZmZmZmO1xcbiAgLS1rZXliaW5kaW5nLWNvbG9yOiAjZmZmZmZmO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl90eXBlX3JhZGlvOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcgLlRvb2xJY29uX3R5cGVfY2hlY2tib3g6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1kYXJrZXIpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXItY29udGFpbmVyIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIC5Ub29sSWNvbl9fa2V5YmluZGluZyB7XFxuICBib3R0b206IDRweDtcXG4gIHJpZ2h0OiA0cHg7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmc6bm90KC5pcy1tb2JpbGUpIC5Ub29sSWNvbl9faWNvbiB7XFxuICBwYWRkaW5nOiAxcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pc2xhbmQtYmctY29sb3IpO1xcbiAgYm94LXNoYWRvdzogMXB4IDNweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMgZWFzZSwgdHJhbnNmb3JtIDAuNXMgZWFzZTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9yYWRpbzpmb2N1cy13aXRoaW4gKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpmb2N1cy13aXRoaW4gKyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWZvY3VzLWhpZ2hsaWdodC1jb2xvcik7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uX19oaWRkZW4ge1xcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhci1jb250YWluZXIgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgbWFyZ2luLWxlZnQ6IDAuMXJlbTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lciAuVG9vbEljb25fX2xpYnJhcnkge1xcbiAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc3BhY2UtZmFjdG9yKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lci56ZW4tbW9kZSAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fX2ljb24ge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLWNvbnRhaW5lci56ZW4tbW9kZSAuVG9vbEljb25fdHlwZV9mbG9hdGluZyAuVG9vbEljb25fdHlwZV9jaGVja2JveDpub3QoOmNoZWNrZWQpOm5vdCg6aG92ZXIpOm5vdCg6YWN0aXZlKSArIC5Ub29sSWNvbl9faWNvbiBzdmcge1xcbiAgZmlsbDogI2FkYjViZDtcXG4gIGNvbG9yOiAjYWRiNWJkO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIge1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbjpob3ZlciB7XFxuICAtLWljb24tZmlsbC1jb2xvcjogdmFyKFxcbiAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KVxcbiAgKTtcXG4gIC0ta2V5YmluZGluZy1jb2xvcjogdmFyKFxcbiAgICAtLWNvbG9yLXByaW1hcnktY29udHJhc3Qtb2Zmc2V0LFxcbiAgICB2YXIoLS1jb2xvci1wcmltYXJ5KVxcbiAgKTtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICMyMTI1Mjk7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICMyMTI1Mjk7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW8gKyAuVG9vbEljb25fX2ljb246YWN0aXZlLFxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfY2hlY2tib3ggKyAuVG9vbEljb25fX2ljb246YWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktbGlnaHQpO1xcbn1cXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIgLlRvb2xJY29uIC5Ub29sSWNvbl90eXBlX3JhZGlvOmNoZWNrZWQgKyAuVG9vbEljb25fX2ljb24sXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNmZmZmZmY7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNmZmZmZmY7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX3R5cGVfcmFkaW86Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUsXFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyIC5Ub29sSWNvbiAuVG9vbEljb25fdHlwZV9jaGVja2JveDpjaGVja2VkICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LWRhcmtlcik7XFxufVxcbi5leGNhbGlkcmF3IC5BcHAtdG9vbGJhciAuVG9vbEljb24gLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gIGJvdHRvbTogNHB4O1xcbiAgcmlnaHQ6IDRweDtcXG59XFxuLmV4Y2FsaWRyYXcgLkFwcC10b29sYmFyLnplbi1tb2RlIC5Ub29sSWNvbl9fa2V5YmluZGluZyxcXG4uZXhjYWxpZHJhdyAuQXBwLXRvb2xiYXIuemVuLW1vZGUgLkhpbnRWaWV3ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLmV4Y2FsaWRyYXcudGhlbWUtLWRhcmsgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgLS1pY29uLWZpbGwtY29sb3I6ICNkZWUyZTY7XFxuICAtLWtleWJpbmRpbmctY29sb3I6ICNkZWUyZTY7XFxufVwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uLy4uLy4uL2Nzcy92YXJpYWJsZXMubW9kdWxlLnNjc3NcIixcIndlYnBhY2s6Ly8uLy4uLy4uL2NvbXBvbmVudHMvVG9vbGJhci5zY3NzXCIsXCJ3ZWJwYWNrOi8vLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvb3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBaUNBO0VBQ0UsMkNBQUE7RUFDQSx3QkFBQTtBQ2hDRjs7QURRSTs7RUFDRSxzQ0FBQTtBQ0pOO0FETUk7O0VBQ0UsZ0NBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FDSE47QURLSTs7RUFDRSx1Q0FBQTtBQ0ZOO0FETUU7RUFDRSxXQUFBO0VBQ0EsVUFBQTtBQ0pKO0FBYlE7RUFDRSxZQUFBO0VBQ0Esd0NBQUE7RUFDQSwrQ0FBQTtFQUNBLGtCQUFBO0VBQ0EscURBQUE7QUFlVjtBQVRROztFQUVFLGtEQUFBO0FBV1Y7QUFOSTtFQUNFLDJCQUFBO0VBQ0Esd0NBQUE7RUFDQSwrQkFBQTtBQVFOO0FBSk07RUFDRSxtQkFBQTtBQU1SO0FBRkk7RUFDRSx3Q0FBQTtBQUlOO0FBQ1E7RUFDRSxnQkFBQTtFQUNBLHFCQUFBO0FBQ1Y7QUFHWTtFQUNFLGFDaEJGO0VEaUJFLGNDakJGO0FEZ0JaO0FBU0U7RUFDRSxzQ0FBQTtFQUNBLDBFQUFBO0FBUEo7QUFVTTtFQUNFOzs7R0FBQTtFQUlBOzs7R0FBQTtBQUxSO0FBVU07RUFDRSwwQkFBQTtFQUNBLDJCQUFBO0FBUlI7QUFXTTtFQUNFLHVCQUFBO0VBQ0Esc0NBQUE7QUFUUjtBRC9ESTs7RUFDRSxzQ0FBQTtBQ2tFTjtBRGhFSTs7RUFDRSxnQ0FBQTtFQUNBLDBCQUFBO0VBQ0EsMkJBQUE7QUNtRU47QURqRUk7O0VBQ0UsdUNBQUE7QUNvRU47QURoRUU7RUFDRSxXQUFBO0VBQ0EsVUFBQTtBQ2tFSjtBQUZNOztFQUVFLGFBQUE7QUFJUjtBQUNFO0VBQ0UsMEJBQUE7RUFDQSwyQkFBQTtBQUNKXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgXFxcIm9wZW4tY29sb3Ivb3Blbi1jb2xvci5zY3NzXFxcIjtcXG5cXG5AbWl4aW4gaXNNb2JpbGUoKSB7XFxuICBAYXQtcm9vdCAuZXhjYWxpZHJhdy0tbW9iaWxlI3smfSB7XFxuICAgIEBjb250ZW50O1xcbiAgfVxcbn1cXG5cXG5AbWl4aW4gdG9vbGJhckJ1dHRvbkNvbG9yU3RhdGVzIHtcXG4gIC5Ub29sSWNvbl90eXBlX3JhZGlvLFxcbiAgLlRvb2xJY29uX3R5cGVfY2hlY2tib3gge1xcbiAgICAmICsgLlRvb2xJY29uX19pY29uOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS1saWdodCk7XFxuICAgIH1cXG4gICAgJjpjaGVja2VkICsgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2Mtd2hpdGV9O1xcbiAgICB9XFxuICAgICY6Y2hlY2tlZCArIC5Ub29sSWNvbl9faWNvbjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktZGFya2VyKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLlRvb2xJY29uX19rZXliaW5kaW5nIHtcXG4gICAgYm90dG9tOiA0cHg7XFxuICAgIHJpZ2h0OiA0cHg7XFxuICB9XFxufVxcblxcbiR0aGVtZS1maWx0ZXI6IFxcXCJpbnZlcnQoOTMlKSBodWUtcm90YXRlKDE4MGRlZylcXFwiO1xcbiRyaWdodC1zaWRlYmFyLXdpZHRoOiBcXFwiMzAycHhcXFwiO1xcblxcbjpleHBvcnQge1xcbiAgdGhlbWVGaWx0ZXI6IHVucXVvdGUoJHRoZW1lLWZpbHRlcik7XFxuICByaWdodFNpZGViYXJXaWR0aDogdW5xdW90ZSgkcmlnaHQtc2lkZWJhci13aWR0aCk7XFxufVxcblwiLFwiQGltcG9ydCBcXFwib3Blbi1jb2xvci9vcGVuLWNvbG9yLnNjc3NcXFwiO1xcbkBpbXBvcnQgXFxcIi4uL2Nzcy92YXJpYWJsZXMubW9kdWxlXFxcIjtcXG5cXG4uZXhjYWxpZHJhdyB7XFxuICAuQXBwLXRvb2xiYXItY29udGFpbmVyIHtcXG4gICAgLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgICAgIEBpbmNsdWRlIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcztcXG5cXG4gICAgICAmOm5vdCguaXMtbW9iaWxlKSB7XFxuICAgICAgICAuVG9vbEljb25fX2ljb24ge1xcbiAgICAgICAgICBwYWRkaW5nOiAxcHg7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlzbGFuZC1iZy1jb2xvcik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggNHB4IDBweCByZ2IoMCAwIDAgLyAxNSUpO1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cyBlYXNlLCB0cmFuc2Zvcm0gMC41cyBlYXNlO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAuVG9vbEljb25fdHlwZV9yYWRpbyxcXG4gICAgICAuVG9vbEljb25fdHlwZV9jaGVja2JveCB7XFxuICAgICAgICAmOmZvY3VzLXdpdGhpbiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgIC8vIG92ZXJyaWRlIGZvciBjdXN0b20gZmxvYXRpbmcgYnV0dG9uIHNoYWRvd1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZm9jdXMtaGlnaGxpZ2h0LWNvbG9yKTtcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19oaWRkZW4ge1xcbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uLlRvb2xJY29uX19sb2NrIHtcXG4gICAgICAmLlRvb2xJY29uX3R5cGVfZmxvYXRpbmcge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMXJlbTtcXG4gICAgICB9XFxuICAgIH1cXG5cXG4gICAgLlRvb2xJY29uX19saWJyYXJ5IHtcXG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zcGFjZS1mYWN0b3IpO1xcbiAgICB9XFxuXFxuICAgICYuemVuLW1vZGUge1xcbiAgICAgIC5Ub29sSWNvbl90eXBlX2Zsb2F0aW5nIHtcXG4gICAgICAgIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcXG4gICAgICAgIH1cXG4gICAgICAgIC5Ub29sSWNvbl90eXBlX2NoZWNrYm94Om5vdCg6Y2hlY2tlZCk6bm90KDpob3Zlcik6bm90KDphY3RpdmUpIHtcXG4gICAgICAgICAgJiArIC5Ub29sSWNvbl9faWNvbiB7XFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZpbGw6ICRvYy1ncmF5LTU7XFxuICAgICAgICAgICAgICBjb2xvcjogJG9jLWdyYXktNTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5BcHAtdG9vbGJhciB7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbGcpO1xcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjAxKSwgMXB4IDFweCA1cHggcmdiKDAgMCAwIC8gMTUlKTtcXG5cXG4gICAgLlRvb2xJY29uIHtcXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIC0taWNvbi1maWxsLWNvbG9yOiB2YXIoXFxuICAgICAgICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdC1vZmZzZXQsXFxuICAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxuICAgICAgICApO1xcbiAgICAgICAgLS1rZXliaW5kaW5nLWNvbG9yOiB2YXIoXFxuICAgICAgICAgIC0tY29sb3ItcHJpbWFyeS1jb250cmFzdC1vZmZzZXQsXFxuICAgICAgICAgIHZhcigtLWNvbG9yLXByaW1hcnkpXFxuICAgICAgICApO1xcbiAgICAgIH1cXG4gICAgICAmOmFjdGl2ZSB7XFxuICAgICAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2MtZ3JheS05fTtcXG4gICAgICAgIC0ta2V5YmluZGluZy1jb2xvcjogI3skb2MtZ3JheS05fTtcXG4gICAgICB9XFxuXFxuICAgICAgLlRvb2xJY29uX19pY29uIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7XFxuICAgICAgfVxcblxcbiAgICAgIEBpbmNsdWRlIHRvb2xiYXJCdXR0b25Db2xvclN0YXRlcztcXG4gICAgfVxcblxcbiAgICAmLnplbi1tb2RlIHtcXG4gICAgICAuVG9vbEljb25fX2tleWJpbmRpbmcsXFxuICAgICAgLkhpbnRWaWV3ZXIge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gICYudGhlbWUtLWRhcmsgLkFwcC10b29sYmFyIC5Ub29sSWNvbjphY3RpdmUge1xcbiAgICAtLWljb24tZmlsbC1jb2xvcjogI3skb2MtZ3JheS0zfTtcXG4gICAgLS1rZXliaW5kaW5nLWNvbG9yOiAjeyRvYy1ncmF5LTN9O1xcbiAgfVxcbn1cXG5cIixcIi8vXFxuLy9cXG4vLyAg8J2XliDwnZeiIPCdl58g8J2XoiDwnZelXFxuLy8gIHYgMS45LjFcXG4vL1xcbi8vICDilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIHilIFcXG5cXG5cXG4vLyAgR2VuZXJhbFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtd2hpdGU6ICAgICAgICAgI2ZmZmZmZjtcXG4kb2MtYmxhY2s6ICAgICAgICAgIzAwMDAwMDtcXG5cXG5cXG4vLyAgR3JheVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JheS1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmOGY5ZmEsXFxuICBcXFwiMVxcXCI6ICNmMWYzZjUsXFxuICBcXFwiMlxcXCI6ICNlOWVjZWYsXFxuICBcXFwiM1xcXCI6ICNkZWUyZTYsXFxuICBcXFwiNFxcXCI6ICNjZWQ0ZGEsXFxuICBcXFwiNVxcXCI6ICNhZGI1YmQsXFxuICBcXFwiNlxcXCI6ICM4NjhlOTYsXFxuICBcXFwiN1xcXCI6ICM0OTUwNTcsXFxuICBcXFwiOFxcXCI6ICMzNDNhNDAsXFxuICBcXFwiOVxcXCI6ICMyMTI1MjlcXG4pO1xcblxcbiRvYy1ncmF5LTA6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JheS0xOiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLWdyYXktMjogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmF5LTM6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JheS00OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLWdyYXktNTogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmF5LTY6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JheS03OiBtYXAtZ2V0KCRvYy1ncmF5LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLWdyYXktODogbWFwLWdldCgkb2MtZ3JheS1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmF5LTk6IG1hcC1nZXQoJG9jLWdyYXktbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgUmVkXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1yZWQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZmZmNWY1LFxcbiAgXFxcIjFcXFwiOiAjZmZlM2UzLFxcbiAgXFxcIjJcXFwiOiAjZmZjOWM5LFxcbiAgXFxcIjNcXFwiOiAjZmZhOGE4LFxcbiAgXFxcIjRcXFwiOiAjZmY4Nzg3LFxcbiAgXFxcIjVcXFwiOiAjZmY2YjZiLFxcbiAgXFxcIjZcXFwiOiAjZmE1MjUyLFxcbiAgXFxcIjdcXFwiOiAjZjAzZTNlLFxcbiAgXFxcIjhcXFwiOiAjZTAzMTMxLFxcbiAgXFxcIjlcXFwiOiAjYzkyYTJhXFxuKTtcXG5cXG4kb2MtcmVkLTA6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1yZWQtMTogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXJlZC0yOiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtcmVkLTM6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1yZWQtNDogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXJlZC01OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtcmVkLTY6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1yZWQtNzogbWFwLWdldCgkb2MtcmVkLWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXJlZC04OiBtYXAtZ2V0KCRvYy1yZWQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtcmVkLTk6IG1hcC1nZXQoJG9jLXJlZC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBQaW5rXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1waW5rLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjBmNixcXG4gIFxcXCIxXFxcIjogI2ZmZGVlYixcXG4gIFxcXCIyXFxcIjogI2ZjYzJkNyxcXG4gIFxcXCIzXFxcIjogI2ZhYTJjMSxcXG4gIFxcXCI0XFxcIjogI2Y3ODNhYyxcXG4gIFxcXCI1XFxcIjogI2YwNjU5NSxcXG4gIFxcXCI2XFxcIjogI2U2NDk4MCxcXG4gIFxcXCI3XFxcIjogI2Q2MzM2YyxcXG4gIFxcXCI4XFxcIjogI2MyMjU1YyxcXG4gIFxcXCI5XFxcIjogI2E2MWU0ZFxcbik7XFxuXFxuJG9jLXBpbmstMDogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1waW5rLTE6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtcGluay0yOiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLXBpbmstMzogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1waW5rLTQ6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtcGluay01OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLXBpbmstNjogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1waW5rLTc6IG1hcC1nZXQoJG9jLXBpbmstbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtcGluay04OiBtYXAtZ2V0KCRvYy1waW5rLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLXBpbmstOTogbWFwLWdldCgkb2MtcGluay1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBHcmFwZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtZ3JhcGUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjhmMGZjLFxcbiAgXFxcIjFcXFwiOiAjZjNkOWZhLFxcbiAgXFxcIjJcXFwiOiAjZWViZWZhLFxcbiAgXFxcIjNcXFwiOiAjZTU5OWY3LFxcbiAgXFxcIjRcXFwiOiAjZGE3N2YyLFxcbiAgXFxcIjVcXFwiOiAjY2M1ZGU4LFxcbiAgXFxcIjZcXFwiOiAjYmU0YmRiLFxcbiAgXFxcIjdcXFwiOiAjYWUzZWM5LFxcbiAgXFxcIjhcXFwiOiAjOWMzNmI1LFxcbiAgXFxcIjlcXFwiOiAjODYyZTljXFxuKTtcXG5cXG4kb2MtZ3JhcGUtMDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2MtZ3JhcGUtMTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtZ3JhcGUtMjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtZ3JhcGUtMzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2MtZ3JhcGUtNDogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtZ3JhcGUtNTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtZ3JhcGUtNjogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2MtZ3JhcGUtNzogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtZ3JhcGUtODogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtZ3JhcGUtOTogbWFwLWdldCgkb2MtZ3JhcGUtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgVmlvbGV0XFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy12aW9sZXQtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZjNmMGZmLFxcbiAgXFxcIjFcXFwiOiAjZTVkYmZmLFxcbiAgXFxcIjJcXFwiOiAjZDBiZmZmLFxcbiAgXFxcIjNcXFwiOiAjYjE5N2ZjLFxcbiAgXFxcIjRcXFwiOiAjOTc3NWZhLFxcbiAgXFxcIjVcXFwiOiAjODQ1ZWY3LFxcbiAgXFxcIjZcXFwiOiAjNzk1MGYyLFxcbiAgXFxcIjdcXFwiOiAjNzA0OGU4LFxcbiAgXFxcIjhcXFwiOiAjNjc0MWQ5LFxcbiAgXFxcIjlcXFwiOiAjNWYzZGM0XFxuKTtcXG5cXG4kb2MtdmlvbGV0LTA6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy12aW9sZXQtMTogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCIxXFxcIik7XFxuJG9jLXZpb2xldC0yOiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdmlvbGV0LTM6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy12aW9sZXQtNDogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI0XFxcIik7XFxuJG9jLXZpb2xldC01OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdmlvbGV0LTY6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy12aW9sZXQtNzogbWFwLWdldCgkb2MtdmlvbGV0LWxpc3QsIFxcXCI3XFxcIik7XFxuJG9jLXZpb2xldC04OiBtYXAtZ2V0KCRvYy12aW9sZXQtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdmlvbGV0LTk6IG1hcC1nZXQoJG9jLXZpb2xldC1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBJbmRpZ29cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWluZGlnby1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlZGYyZmYsXFxuICBcXFwiMVxcXCI6ICNkYmU0ZmYsXFxuICBcXFwiMlxcXCI6ICNiYWM4ZmYsXFxuICBcXFwiM1xcXCI6ICM5MWE3ZmYsXFxuICBcXFwiNFxcXCI6ICM3NDhmZmMsXFxuICBcXFwiNVxcXCI6ICM1YzdjZmEsXFxuICBcXFwiNlxcXCI6ICM0YzZlZjUsXFxuICBcXFwiN1xcXCI6ICM0MjYzZWIsXFxuICBcXFwiOFxcXCI6ICMzYjViZGIsXFxuICBcXFwiOVxcXCI6ICMzNjRmYzdcXG4pO1xcblxcbiRvYy1pbmRpZ28tMDogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWluZGlnby0xOiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtaW5kaWdvLTI6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1pbmRpZ28tMzogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWluZGlnby00OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtaW5kaWdvLTU6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1pbmRpZ28tNjogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWluZGlnby03OiBtYXAtZ2V0KCRvYy1pbmRpZ28tbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtaW5kaWdvLTg6IG1hcC1nZXQoJG9jLWluZGlnby1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1pbmRpZ28tOTogbWFwLWdldCgkb2MtaW5kaWdvLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEJsdWVcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWJsdWUtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTdmNWZmLFxcbiAgXFxcIjFcXFwiOiAjZDBlYmZmLFxcbiAgXFxcIjJcXFwiOiAjYTVkOGZmLFxcbiAgXFxcIjNcXFwiOiAjNzRjMGZjLFxcbiAgXFxcIjRcXFwiOiAjNGRhYmY3LFxcbiAgXFxcIjVcXFwiOiAjMzM5YWYwLFxcbiAgXFxcIjZcXFwiOiAjMjI4YmU2LFxcbiAgXFxcIjdcXFwiOiAjMWM3ZWQ2LFxcbiAgXFxcIjhcXFwiOiAjMTk3MWMyLFxcbiAgXFxcIjlcXFwiOiAjMTg2NGFiXFxuKTtcXG5cXG4kb2MtYmx1ZS0wOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWJsdWUtMTogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ibHVlLTI6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtYmx1ZS0zOiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWJsdWUtNDogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ibHVlLTU6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtYmx1ZS02OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWJsdWUtNzogbWFwLWdldCgkb2MtYmx1ZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ibHVlLTg6IG1hcC1nZXQoJG9jLWJsdWUtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtYmx1ZS05OiBtYXAtZ2V0KCRvYy1ibHVlLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEN5YW5cXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLWN5YW4tbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTNmYWZjLFxcbiAgXFxcIjFcXFwiOiAjYzVmNmZhLFxcbiAgXFxcIjJcXFwiOiAjOTllOWYyLFxcbiAgXFxcIjNcXFwiOiAjNjZkOWU4LFxcbiAgXFxcIjRcXFwiOiAjM2JjOWRiLFxcbiAgXFxcIjVcXFwiOiAjMjJiOGNmLFxcbiAgXFxcIjZcXFwiOiAjMTVhYWJmLFxcbiAgXFxcIjdcXFwiOiAjMTA5OGFkLFxcbiAgXFxcIjhcXFwiOiAjMGM4NTk5LFxcbiAgXFxcIjlcXFwiOiAjMGI3Mjg1XFxuKTtcXG5cXG4kb2MtY3lhbi0wOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLWN5YW4tMTogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1jeWFuLTI6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtY3lhbi0zOiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLWN5YW4tNDogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1jeWFuLTU6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtY3lhbi02OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLWN5YW4tNzogbWFwLWdldCgkb2MtY3lhbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1jeWFuLTg6IG1hcC1nZXQoJG9jLWN5YW4tbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtY3lhbi05OiBtYXAtZ2V0KCRvYy1jeWFuLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIFRlYWxcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXRlYWwtbGlzdDogKFxcbiAgXFxcIjBcXFwiOiAjZTZmY2Y1LFxcbiAgXFxcIjFcXFwiOiAjYzNmYWU4LFxcbiAgXFxcIjJcXFwiOiAjOTZmMmQ3LFxcbiAgXFxcIjNcXFwiOiAjNjNlNmJlLFxcbiAgXFxcIjRcXFwiOiAjMzhkOWE5LFxcbiAgXFxcIjVcXFwiOiAjMjBjOTk3LFxcbiAgXFxcIjZcXFwiOiAjMTJiODg2LFxcbiAgXFxcIjdcXFwiOiAjMGNhNjc4LFxcbiAgXFxcIjhcXFwiOiAjMDk5MjY4LFxcbiAgXFxcIjlcXFwiOiAjMDg3ZjViXFxuKTtcXG5cXG4kb2MtdGVhbC0wOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXRlYWwtMTogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy10ZWFsLTI6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjJcXFwiKTtcXG4kb2MtdGVhbC0zOiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXRlYWwtNDogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy10ZWFsLTU6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjVcXFwiKTtcXG4kb2MtdGVhbC02OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXRlYWwtNzogbWFwLWdldCgkb2MtdGVhbC1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy10ZWFsLTg6IG1hcC1nZXQoJG9jLXRlYWwtbGlzdCwgXFxcIjhcXFwiKTtcXG4kb2MtdGVhbC05OiBtYXAtZ2V0KCRvYy10ZWFsLWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIEdyZWVuXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1ncmVlbi1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNlYmZiZWUsXFxuICBcXFwiMVxcXCI6ICNkM2Y5ZDgsXFxuICBcXFwiMlxcXCI6ICNiMmYyYmIsXFxuICBcXFwiM1xcXCI6ICM4Y2U5OWEsXFxuICBcXFwiNFxcXCI6ICM2OWRiN2MsXFxuICBcXFwiNVxcXCI6ICM1MWNmNjYsXFxuICBcXFwiNlxcXCI6ICM0MGMwNTcsXFxuICBcXFwiN1xcXCI6ICMzN2IyNGQsXFxuICBcXFwiOFxcXCI6ICMyZjllNDQsXFxuICBcXFwiOVxcXCI6ICMyYjhhM2VcXG4pO1xcblxcbiRvYy1ncmVlbi0wOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1ncmVlbi0xOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1ncmVlbi0yOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy1ncmVlbi0zOiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1ncmVlbi00OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1ncmVlbi01OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy1ncmVlbi02OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1ncmVlbi03OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1ncmVlbi04OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy1ncmVlbi05OiBtYXAtZ2V0KCRvYy1ncmVlbi1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBMaW1lXFxuLy8gIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxcblxcbiRvYy1saW1lLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2Y0ZmNlMyxcXG4gIFxcXCIxXFxcIjogI2U5ZmFjOCxcXG4gIFxcXCIyXFxcIjogI2Q4ZjVhMixcXG4gIFxcXCIzXFxcIjogI2MwZWI3NSxcXG4gIFxcXCI0XFxcIjogI2E5ZTM0YixcXG4gIFxcXCI1XFxcIjogIzk0ZDgyZCxcXG4gIFxcXCI2XFxcIjogIzgyYzkxZSxcXG4gIFxcXCI3XFxcIjogIzc0YjgxNixcXG4gIFxcXCI4XFxcIjogIzY2YTgwZixcXG4gIFxcXCI5XFxcIjogIzVjOTQwZFxcbik7XFxuXFxuJG9jLWxpbWUtMDogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiMFxcXCIpO1xcbiRvYy1saW1lLTE6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MtbGltZS0yOiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLWxpbWUtMzogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiM1xcXCIpO1xcbiRvYy1saW1lLTQ6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MtbGltZS01OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLWxpbWUtNjogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiNlxcXCIpO1xcbiRvYy1saW1lLTc6IG1hcC1nZXQoJG9jLWxpbWUtbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MtbGltZS04OiBtYXAtZ2V0KCRvYy1saW1lLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLWxpbWUtOTogbWFwLWdldCgkb2MtbGltZS1saXN0LCBcXFwiOVxcXCIpO1xcblxcblxcbi8vICBZZWxsb3dcXG4vLyAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXFxuXFxuJG9jLXllbGxvdy1saXN0OiAoXFxuICBcXFwiMFxcXCI6ICNmZmY5ZGIsXFxuICBcXFwiMVxcXCI6ICNmZmYzYmYsXFxuICBcXFwiMlxcXCI6ICNmZmVjOTksXFxuICBcXFwiM1xcXCI6ICNmZmUwNjYsXFxuICBcXFwiNFxcXCI6ICNmZmQ0M2IsXFxuICBcXFwiNVxcXCI6ICNmY2M0MTksXFxuICBcXFwiNlxcXCI6ICNmYWIwMDUsXFxuICBcXFwiN1xcXCI6ICNmNTlmMDAsXFxuICBcXFwiOFxcXCI6ICNmMDhjMDAsXFxuICBcXFwiOVxcXCI6ICNlNjc3MDBcXG4pO1xcblxcbiRvYy15ZWxsb3ctMDogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIwXFxcIik7XFxuJG9jLXllbGxvdy0xOiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjFcXFwiKTtcXG4kb2MteWVsbG93LTI6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiMlxcXCIpO1xcbiRvYy15ZWxsb3ctMzogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCIzXFxcIik7XFxuJG9jLXllbGxvdy00OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjRcXFwiKTtcXG4kb2MteWVsbG93LTU6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiNVxcXCIpO1xcbiRvYy15ZWxsb3ctNjogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI2XFxcIik7XFxuJG9jLXllbGxvdy03OiBtYXAtZ2V0KCRvYy15ZWxsb3ctbGlzdCwgXFxcIjdcXFwiKTtcXG4kb2MteWVsbG93LTg6IG1hcC1nZXQoJG9jLXllbGxvdy1saXN0LCBcXFwiOFxcXCIpO1xcbiRvYy15ZWxsb3ctOTogbWFwLWdldCgkb2MteWVsbG93LWxpc3QsIFxcXCI5XFxcIik7XFxuXFxuXFxuLy8gIE9yYW5nZVxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2Mtb3JhbmdlLWxpc3Q6IChcXG4gIFxcXCIwXFxcIjogI2ZmZjRlNixcXG4gIFxcXCIxXFxcIjogI2ZmZThjYyxcXG4gIFxcXCIyXFxcIjogI2ZmZDhhOCxcXG4gIFxcXCIzXFxcIjogI2ZmYzA3OCxcXG4gIFxcXCI0XFxcIjogI2ZmYTk0ZCxcXG4gIFxcXCI1XFxcIjogI2ZmOTIyYixcXG4gIFxcXCI2XFxcIjogI2ZkN2UxNCxcXG4gIFxcXCI3XFxcIjogI2Y3NjcwNyxcXG4gIFxcXCI4XFxcIjogI2U4NTkwYyxcXG4gIFxcXCI5XFxcIjogI2Q5NDgwZlxcbik7XFxuXFxuJG9jLW9yYW5nZS0wOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjBcXFwiKTtcXG4kb2Mtb3JhbmdlLTE6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiMVxcXCIpO1xcbiRvYy1vcmFuZ2UtMjogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCIyXFxcIik7XFxuJG9jLW9yYW5nZS0zOiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjNcXFwiKTtcXG4kb2Mtb3JhbmdlLTQ6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiNFxcXCIpO1xcbiRvYy1vcmFuZ2UtNTogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI1XFxcIik7XFxuJG9jLW9yYW5nZS02OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjZcXFwiKTtcXG4kb2Mtb3JhbmdlLTc6IG1hcC1nZXQoJG9jLW9yYW5nZS1saXN0LCBcXFwiN1xcXCIpO1xcbiRvYy1vcmFuZ2UtODogbWFwLWdldCgkb2Mtb3JhbmdlLWxpc3QsIFxcXCI4XFxcIik7XFxuJG9jLW9yYW5nZS05OiBtYXAtZ2V0KCRvYy1vcmFuZ2UtbGlzdCwgXFxcIjlcXFwiKTtcXG5cXG5cXG4vLyAgQ29sb3IgbGlzdFxcbi8vICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcXG5cXG4kb2MtY29sb3Itc3BlY3RydW06ICAgOTtcXG5cXG4kb2MtY29sb3ItbGlzdDogKFxcbiAgJG9jLWdyYXktbGlzdDogICAgICBcXFwiZ3JheVxcXCIsXFxuICAkb2MtcmVkLWxpc3Q6ICAgICAgXFxcInJlZFxcXCIsXFxuICAkb2MtcGluay1saXN0OiAgICAgIFxcXCJwaW5rXFxcIixcXG4gICRvYy1ncmFwZS1saXN0OiAgICAgIFxcXCJncmFwZVxcXCIsXFxuICAkb2MtdmlvbGV0LWxpc3Q6ICAgICAgXFxcInZpb2xldFxcXCIsXFxuICAkb2MtaW5kaWdvLWxpc3Q6ICAgICAgXFxcImluZGlnb1xcXCIsXFxuICAkb2MtYmx1ZS1saXN0OiAgICAgIFxcXCJibHVlXFxcIixcXG4gICRvYy1jeWFuLWxpc3Q6ICAgICAgXFxcImN5YW5cXFwiLFxcbiAgJG9jLXRlYWwtbGlzdDogICAgICBcXFwidGVhbFxcXCIsXFxuICAkb2MtZ3JlZW4tbGlzdDogICAgICBcXFwiZ3JlZW5cXFwiLFxcbiAgJG9jLWxpbWUtbGlzdDogICAgICBcXFwibGltZVxcXCIsXFxuICAkb2MteWVsbG93LWxpc3Q6ICAgICAgXFxcInllbGxvd1xcXCIsXFxuICAkb2Mtb3JhbmdlLWxpc3Q6ICAgICAgXFxcIm9yYW5nZVxcXCJcXG4pO1xcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js!../../components/Toolbar.scss\n");
|
|
1615
1615
|
|
|
1616
1616
|
/***/ }),
|
|
1617
1617
|
|
|
@@ -2040,7 +2040,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2040
2040
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2041
2041
|
|
|
2042
2042
|
"use strict";
|
|
2043
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-
|
|
2043
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"trackEvent\": () => (/* binding */ trackEvent)\n/* harmony export */ });\nvar _a, _b;\nconst trackEvent = typeof process !== \"undefined\" &&\n ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9c37b25\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.REACT_APP_GOOGLE_ANALYTICS_ID) &&\n typeof window !== \"undefined\" &&\n window.gtag\n ? (category, action, label, value) => {\n try {\n window.gtag(\"event\", action, {\n event_category: category,\n event_label: label,\n value,\n });\n }\n catch (error) {\n console.error(\"error logging to ga\", error);\n }\n }\n : typeof process !== \"undefined\" && ((_b = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9c37b25\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID)\n ? (category, action, label, value) => { }\n : (category, action, label, value) => {\n // Uncomment the next line to track locally\n // console.log(\"Track Event\", { category, action, label, value });\n };\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vYW5hbHl0aWNzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sTUFBTSxVQUFVLEdBQ3JCLE9BQU8sT0FBTyxLQUFLLFdBQVc7S0FDOUIsaTRCQUFXLDBDQUFFLDZCQUE2QjtJQUMxQyxPQUFPLE1BQU0sS0FBSyxXQUFXO0lBQzdCLE1BQU0sQ0FBQyxJQUFJO0lBQ1QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFO1FBQ25FLElBQUk7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7Z0JBQzNCLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixXQUFXLEVBQUUsS0FBSztnQkFDbEIsS0FBSzthQUNOLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLEtBQUksaTRCQUFXLDBDQUFFLGNBQWM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsS0FBYyxFQUFFLEtBQWMsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFjLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDbkUsMkNBQTJDO1lBQzNDLGtFQUFrRTtRQUNwRSxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vYW5hbHl0aWNzLnRzPzVmMGMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYWNrRXZlbnQgPVxuICB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICBwcm9jZXNzLmVudj8uUkVBQ1RfQVBQX0dPT0dMRV9BTkFMWVRJQ1NfSUQgJiZcbiAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICB3aW5kb3cuZ3RhZ1xuICAgID8gKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB3aW5kb3cuZ3RhZyhcImV2ZW50XCIsIGFjdGlvbiwge1xuICAgICAgICAgICAgZXZlbnRfY2F0ZWdvcnk6IGNhdGVnb3J5LFxuICAgICAgICAgICAgZXZlbnRfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcImVycm9yIGxvZ2dpbmcgdG8gZ2FcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiB0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9jZXNzLmVudj8uSkVTVF9XT1JLRVJfSURcbiAgICA/IChjYXRlZ29yeTogc3RyaW5nLCBhY3Rpb246IHN0cmluZywgbGFiZWw/OiBzdHJpbmcsIHZhbHVlPzogbnVtYmVyKSA9PiB7fVxuICAgIDogKGNhdGVnb3J5OiBzdHJpbmcsIGFjdGlvbjogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gdHJhY2sgbG9jYWxseVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlRyYWNrIEV2ZW50XCIsIHsgY2F0ZWdvcnksIGFjdGlvbiwgbGFiZWwsIHZhbHVlIH0pO1xuICAgICAgfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../analytics.ts\n");
|
|
2044
2044
|
|
|
2045
2045
|
/***/ }),
|
|
2046
2046
|
|
|
@@ -2337,7 +2337,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2337
2337
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2338
2338
|
|
|
2339
2339
|
"use strict";
|
|
2340
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ErrorCanvasPreview\": () => (/* binding */ ErrorCanvasPreview),\n/* harmony export */ \"ImageExportDialog\": () => (/* binding */ ImageExportDialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../clipboard */ \"../../clipboard.ts\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../errors */ \"../../errors.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Dialog */ \"../../components/Dialog.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ExportDialog.scss */ \"../../components/ExportDialog.scss\");\n/* harmony import */ var _ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _CheckboxItem__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./CheckboxItem */ \"../../components/CheckboxItem.tsx\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data_filesystem__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../data/filesystem */ \"../../data/filesystem.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst supportsContextFilters = \"filter\" in document.createElement(\"canvas\").getContext(\"2d\");\nconst ErrorCanvasPreview = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h3\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.cannotShowPreview\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.canvasTooBig\") }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"em\", { children: [\"(\", (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.canvasTooBigTip\"), \")\"] })] }));\n};\nconst renderPreview = (content, previewNode) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.unmountComponentAtNode)(previewNode);\n previewNode.innerHTML = \"\";\n if (content instanceof HTMLCanvasElement) {\n previewNode.appendChild(content);\n }\n else {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.render)((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ErrorCanvasPreview, {}), previewNode);\n }\n};\nconst ExportButton = ({ children, title, onClick, color, shade = 6 }) => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"ExportDialog-imageExportButton\", style: {\n [\"--button-color\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade],\n [\"--button-color-darker\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade + 1],\n [\"--button-color-darkest\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade + 2],\n }, title: title, \"aria-label\": title, onClick: onClick }, { children: children })));\n};\nconst ImageExportModal = ({ elements, appState, files, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_17__.DEFAULT_EXPORT_PADDING, actionManager, onExportToPng, onExportToSvg, onExportToClipboard, }) => {\n const someElementIsSelected = (0,_scene__WEBPACK_IMPORTED_MODULE_8__.isSomeElementSelected)(elements, appState);\n const [exportSelected, setExportSelected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(someElementIsSelected);\n const previewRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const { exportBackground, viewBackgroundColor } = appState;\n const exportedElements = exportSelected\n ? (0,_scene__WEBPACK_IMPORTED_MODULE_8__.getSelectedElements)(elements, appState, true)\n : elements;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n setExportSelected(someElementIsSelected);\n }, [someElementIsSelected]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n const previewNode = previewRef.current;\n if (!previewNode) {\n return;\n }\n (0,_scene_export__WEBPACK_IMPORTED_MODULE_9__.exportToCanvas)(exportedElements, appState, files, {\n exportBackground,\n viewBackgroundColor,\n exportPadding,\n })\n .then((canvas) => {\n // if converting to blob fails, there's some problem that will\n // likely prevent preview and export (e.g. canvas too big)\n return (0,_data_blob__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas).then(() => {\n renderPreview(canvas, previewNode);\n });\n })\n .catch((error) => {\n console.error(error);\n renderPreview(new _errors__WEBPACK_IMPORTED_MODULE_5__.CanvasError(), previewNode);\n });\n }, [\n appState,\n files,\n exportedElements,\n exportBackground,\n exportPadding,\n viewBackgroundColor,\n ]);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ExportDialog\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"ExportDialog__preview\", ref: previewRef }), supportsContextFilters &&\n actionManager.renderAction(\"exportWithDarkMode\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: { display: \"grid\", gridTemplateColumns: \"1fr\" } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(190px, 1fr))\",\n // dunno why this is needed, but when the items wrap it creates\n // an overflow\n overflow: \"hidden\",\n } }, { children: [actionManager.renderAction(\"changeExportBackground\"), someElementIsSelected && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CheckboxItem__WEBPACK_IMPORTED_MODULE_16__.CheckboxItem, Object.assign({ checked: exportSelected, onChange: (checked) => setExportSelected(checked) }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.onlySelected\") }))), actionManager.renderAction(\"changeExportEmbedScene\")] })) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ style: { display: \"flex\", alignItems: \"center\", marginTop: \".6em\" } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Row, Object.assign({ gap: 2 }, { children: actionManager.renderAction(\"changeExportScale\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", Object.assign({ style: { marginLeft: \"1em\", userSelect: \"none\" } }, { children: \"Scale\" }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \".6em 0\",\n } }, { children: !_data_filesystem__WEBPACK_IMPORTED_MODULE_18__.nativeFileSystemSupported &&\n actionManager.renderAction(\"changeProjectName\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Row, Object.assign({ gap: 2, justifyContent: \"center\", style: { margin: \"2em 0\" } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ color: \"indigo\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToPng\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToPng\"), onClick: () => onExportToPng(exportedElements) }, { children: \"PNG\" })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ color: \"red\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToSvg\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToSvg\"), onClick: () => onExportToSvg(exportedElements) }, { children: \"SVG\" })), _clipboard__WEBPACK_IMPORTED_MODULE_3__.probablySupportsClipboardBlob && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.copyPngToClipboard\"), onClick: () => onExportToClipboard(exportedElements), color: \"gray\", shade: 7 }, { children: _icons__WEBPACK_IMPORTED_MODULE_11__.clipboard })))] }))] })));\n};\nconst ImageExportDialog = ({ elements, appState, files, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_17__.DEFAULT_EXPORT_PADDING, actionManager, onExportToPng, onExportToSvg, onExportToClipboard, }) => {\n const [modalIsShown, setModalIsShown] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleClose = react__WEBPACK_IMPORTED_MODULE_1___default().useCallback(() => {\n setModalIsShown(false);\n }, []);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_13__.ToolButton, { onClick: () => {\n setModalIsShown(true);\n }, \"data-testid\": \"image-export-button\", icon: _icons__WEBPACK_IMPORTED_MODULE_11__.exportImage, type: \"button\", \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\"), showAriaLabel: (0,_App__WEBPACK_IMPORTED_MODULE_7__.useDevice)().isMobile, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\") }), modalIsShown && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Dialog__WEBPACK_IMPORTED_MODULE_10__.Dialog, Object.assign({ onCloseRequest: handleClose, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\") }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ImageExportModal, { elements: elements, appState: appState, files: files, exportPadding: exportPadding, actionManager: actionManager, onExportToPng: onExportToPng, onExportToSvg: onExportToSvg, onExportToClipboard: onExportToClipboard, onCloseRequest: handleClose }) })))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9JbWFnZUV4cG9ydERpYWxvZy50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEyRDtBQUNBO0FBQ0U7QUFDakI7QUFFSjtBQUNaO0FBQ007QUFDb0M7QUFDckI7QUFFZjtBQUNlO0FBQ3JCO0FBQ2M7QUFDYjtBQUNNO0FBQ1c7QUFDUTtBQUNTO0FBRy9ELE1BQU0sc0JBQXNCLEdBQzFCLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUNyQyxPQUFPLENBQ0wsNEVBQ0UseUVBQUssd0NBQUMsQ0FBQywrQkFBK0IsQ0FBQyxHQUFNLEVBQzdDLHdFQUNFLDJFQUFPLHdDQUFDLENBQUMsMEJBQTBCLENBQUMsR0FBUSxHQUMxQyxFQUNKLGdGQUFNLHdDQUFDLENBQUMsNkJBQTZCLENBQUMsU0FBTyxJQUN6QyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUFrQyxFQUNsQyxXQUEyQixFQUMzQixFQUFFO0lBQ0YsaUVBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsV0FBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDM0IsSUFBSSxPQUFPLFlBQVksaUJBQWlCLEVBQUU7UUFDeEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNsQztTQUFNO1FBQ0wsaURBQU0sQ0FBQyx1REFBQyxrQkFBa0IsS0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQyxDQUFDO0FBT0YsTUFBTSxZQUFZLEdBS2IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUN0RCxPQUFPLENBQ0wsaUZBQ0UsU0FBUyxFQUFDLGdDQUFnQyxFQUMxQyxLQUFLLEVBQUU7WUFDTCxDQUFDLGdCQUF1QixDQUFDLEVBQUUsd0NBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDbEQsQ0FBQyx1QkFBOEIsQ0FBQyxFQUFFLHdDQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM3RCxDQUFDLHdCQUErQixDQUFDLEVBQUUsd0NBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQy9ELEVBQ0QsS0FBSyxFQUFFLEtBQUssZ0JBQ0EsS0FBSyxFQUNqQixPQUFPLEVBQUUsT0FBTyxnQkFFZixRQUFRLElBQ0YsQ0FDVixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEVBQ3hCLFFBQVEsRUFDUixRQUFRLEVBQ1IsS0FBSyxFQUNMLGFBQWEsR0FBRywrREFBc0IsRUFDdEMsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEVBQ2IsbUJBQW1CLEdBV3BCLEVBQUUsRUFBRTtJQUNILE1BQU0scUJBQXFCLEdBQUcsNkRBQXFCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsR0FBRywrQ0FBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDNUUsTUFBTSxVQUFVLEdBQUcsNkNBQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFDaEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRTNELE1BQU0sZ0JBQWdCLEdBQUcsY0FBYztRQUNyQyxDQUFDLENBQUMsMkRBQW1CLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFDL0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUViLGdEQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFFNUIsZ0RBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTztTQUNSO1FBQ0QsNkRBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1lBQ2hELGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsYUFBYTtTQUNkLENBQUM7YUFDQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLDhEQUE4RDtZQUM5RCwwREFBMEQ7WUFDMUQsT0FBTyx3REFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsYUFBYSxDQUFDLElBQUksZ0RBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxFQUFFO1FBQ0QsUUFBUTtRQUNSLEtBQUs7UUFDTCxnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixtQkFBbUI7S0FDcEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUNMLCtFQUFLLFNBQVMsRUFBQyxjQUFjLGlCQUMzQixnRUFBSyxTQUFTLEVBQUMsdUJBQXVCLEVBQUMsR0FBRyxFQUFFLFVBQVUsR0FBSSxFQUN6RCxzQkFBc0I7Z0JBQ3JCLGFBQWEsQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsRUFDbEQsOEVBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsZ0JBQ3pELCtFQUNFLEtBQUssRUFBRTt3QkFDTCxPQUFPLEVBQUUsTUFBTTt3QkFDZixtQkFBbUIsRUFBRSxzQ0FBc0M7d0JBQzNELCtEQUErRDt3QkFDL0QsY0FBYzt3QkFDZCxRQUFRLEVBQUUsUUFBUTtxQkFDbkIsaUJBRUEsYUFBYSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxFQUNwRCxxQkFBcUIsSUFBSSxDQUN4Qix1REFBQyx3REFBWSxrQkFDWCxPQUFPLEVBQUUsY0FBYyxFQUN2QixRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxnQkFFaEQsd0NBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUNaLENBQ2hCLEVBQ0EsYUFBYSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxLQUNqRCxJQUNGLEVBQ04sK0VBQUssS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQ3RFLHVEQUFDLG1EQUFTLGtCQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUNkLGFBQWEsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFDdEMsRUFDWiw0RUFBRyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsMkJBQVcsS0FDMUQsRUFDTiw4RUFDRSxLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLE1BQU07b0JBQ2YsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLGNBQWMsRUFBRSxRQUFRO29CQUN4QixNQUFNLEVBQUUsUUFBUTtpQkFDakIsZ0JBRUEsQ0FBQyx3RUFBeUI7b0JBQ3pCLGFBQWEsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFDN0MsRUFDTix3REFBQyxtREFBUyxrQkFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBQyxRQUFRLEVBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxpQkFDbkUsdURBQUMsWUFBWSxrQkFDWCxLQUFLLEVBQUMsUUFBUSxFQUNkLEtBQUssRUFBRSx3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLGdCQUNuQix3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMseUJBR2pDLEVBQ2YsdURBQUMsWUFBWSxrQkFDWCxLQUFLLEVBQUMsS0FBSyxFQUNYLEtBQUssRUFBRSx3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLGdCQUNuQix3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQ3BDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMseUJBR2pDLEVBQ2QscUVBQTZCLElBQUksQ0FDaEMsdURBQUMsWUFBWSxrQkFDWCxLQUFLLEVBQUUsd0NBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxFQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsRUFDcEQsS0FBSyxFQUFDLE1BQU0sRUFDWixLQUFLLEVBQUUsQ0FBQyxnQkFFUCw4Q0FBUyxJQUNHLENBQ2hCLEtBQ1MsS0FDUixDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSyxNQUFNLGlCQUFpQixHQUFHLENBQUMsRUFDaEMsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsYUFBYSxHQUFHLCtEQUFzQixFQUN0QyxhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsRUFDYixtQkFBbUIsR0FVcEIsRUFBRSxFQUFFO0lBQ0gsTUFBTSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsR0FBRywrQ0FBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhELE1BQU0sV0FBVyxHQUFHLHdEQUFpQixDQUFDLEdBQUcsRUFBRTtRQUN6QyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxDQUNMLDhIQUNFLHVEQUFDLG9EQUFVLElBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsaUJBQ1cscUJBQXFCLEVBQ2pDLElBQUksRUFBRSxnREFBVyxFQUNqQixJQUFJLEVBQUMsUUFBUSxnQkFDRCx3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQ3BDLGFBQWEsRUFBRSwrQ0FBUyxFQUFFLENBQUMsUUFBUSxFQUNuQyxLQUFLLEVBQUUsd0NBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUMvQixFQUNELFlBQVksSUFBSSxDQUNmLHVEQUFDLDRDQUFNLGtCQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLHdDQUFDLENBQUMscUJBQXFCLENBQUMsZ0JBQ2xFLHVEQUFDLGdCQUFnQixJQUNmLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLGNBQWMsRUFBRSxXQUFXLEdBQzNCLElBQ0ssQ0FDVixJQUNBLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0ltYWdlRXhwb3J0RGlhbG9nLnRzeD8yMGUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHJlbmRlciwgdW5tb3VudENvbXBvbmVudEF0Tm9kZSB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRCbG9iIH0gZnJvbSBcIi4uL2NsaXBib2FyZFwiO1xuaW1wb3J0IHsgY2FudmFzVG9CbG9iIH0gZnJvbSBcIi4uL2RhdGEvYmxvYlwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IENhbnZhc0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgdCB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyB1c2VEZXZpY2UgfSBmcm9tIFwiLi9BcHBcIjtcbmltcG9ydCB7IGdldFNlbGVjdGVkRWxlbWVudHMsIGlzU29tZUVsZW1lbnRTZWxlY3RlZCB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgZXhwb3J0VG9DYW52YXMgfSBmcm9tIFwiLi4vc2NlbmUvZXhwb3J0XCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQmluYXJ5RmlsZXMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gXCIuL0RpYWxvZ1wiO1xuaW1wb3J0IHsgY2xpcGJvYXJkLCBleHBvcnRJbWFnZSB9IGZyb20gXCIuL2ljb25zXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IFRvb2xCdXR0b24gfSBmcm9tIFwiLi9Ub29sQnV0dG9uXCI7XG5pbXBvcnQgXCIuL0V4cG9ydERpYWxvZy5zY3NzXCI7XG5pbXBvcnQgT3BlbkNvbG9yIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5pbXBvcnQgeyBDaGVja2JveEl0ZW0gfSBmcm9tIFwiLi9DaGVja2JveEl0ZW1cIjtcbmltcG9ydCB7IERFRkFVTFRfRVhQT1JUX1BBRERJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBuYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkIH0gZnJvbSBcIi4uL2RhdGEvZmlsZXN5c3RlbVwiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcblxuY29uc3Qgc3VwcG9ydHNDb250ZXh0RmlsdGVycyA9XG4gIFwiZmlsdGVyXCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKS5nZXRDb250ZXh0KFwiMmRcIikhO1xuXG5leHBvcnQgY29uc3QgRXJyb3JDYW52YXNQcmV2aWV3ID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8aDM+e3QoXCJjYW52YXNFcnJvci5jYW5ub3RTaG93UHJldmlld1wiKX08L2gzPlxuICAgICAgPHA+XG4gICAgICAgIDxzcGFuPnt0KFwiY2FudmFzRXJyb3IuY2FudmFzVG9vQmlnXCIpfTwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxlbT4oe3QoXCJjYW52YXNFcnJvci5jYW52YXNUb29CaWdUaXBcIil9KTwvZW0+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCByZW5kZXJQcmV2aWV3ID0gKFxuICBjb250ZW50OiBIVE1MQ2FudmFzRWxlbWVudCB8IEVycm9yLFxuICBwcmV2aWV3Tm9kZTogSFRNTERpdkVsZW1lbnQsXG4pID0+IHtcbiAgdW5tb3VudENvbXBvbmVudEF0Tm9kZShwcmV2aWV3Tm9kZSk7XG4gIHByZXZpZXdOb2RlLmlubmVySFRNTCA9IFwiXCI7XG4gIGlmIChjb250ZW50IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICBwcmV2aWV3Tm9kZS5hcHBlbmRDaGlsZChjb250ZW50KTtcbiAgfSBlbHNlIHtcbiAgICByZW5kZXIoPEVycm9yQ2FudmFzUHJldmlldyAvPiwgcHJldmlld05vZGUpO1xuICB9XG59O1xuXG5leHBvcnQgdHlwZSBFeHBvcnRDQiA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBzY2FsZT86IG51bWJlcixcbikgPT4gdm9pZDtcblxuY29uc3QgRXhwb3J0QnV0dG9uOiBSZWFjdC5GQzx7XG4gIGNvbG9yOiBrZXlvZiBPcGVuQ29sb3I7XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNoYWRlPzogbnVtYmVyO1xufT4gPSAoeyBjaGlsZHJlbiwgdGl0bGUsIG9uQ2xpY2ssIGNvbG9yLCBzaGFkZSA9IDYgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT1cIkV4cG9ydERpYWxvZy1pbWFnZUV4cG9ydEJ1dHRvblwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBbXCItLWJ1dHRvbi1jb2xvclwiIGFzIGFueV06IE9wZW5Db2xvcltjb2xvcl1bc2hhZGVdLFxuICAgICAgICBbXCItLWJ1dHRvbi1jb2xvci1kYXJrZXJcIiBhcyBhbnldOiBPcGVuQ29sb3JbY29sb3JdW3NoYWRlICsgMV0sXG4gICAgICAgIFtcIi0tYnV0dG9uLWNvbG9yLWRhcmtlc3RcIiBhcyBhbnldOiBPcGVuQ29sb3JbY29sb3JdW3NoYWRlICsgMl0sXG4gICAgICB9fVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgYXJpYS1sYWJlbD17dGl0bGV9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn07XG5cbmNvbnN0IEltYWdlRXhwb3J0TW9kYWwgPSAoe1xuICBlbGVtZW50cyxcbiAgYXBwU3RhdGUsXG4gIGZpbGVzLFxuICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgYWN0aW9uTWFuYWdlcixcbiAgb25FeHBvcnRUb1BuZyxcbiAgb25FeHBvcnRUb1N2ZyxcbiAgb25FeHBvcnRUb0NsaXBib2FyZCxcbn06IHtcbiAgYXBwU3RhdGU6IEFwcFN0YXRlO1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIGZpbGVzOiBCaW5hcnlGaWxlcztcbiAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgYWN0aW9uTWFuYWdlcjogQWN0aW9uTWFuYWdlcjtcbiAgb25FeHBvcnRUb1BuZzogRXhwb3J0Q0I7XG4gIG9uRXhwb3J0VG9Tdmc6IEV4cG9ydENCO1xuICBvbkV4cG9ydFRvQ2xpcGJvYXJkOiBFeHBvcnRDQjtcbiAgb25DbG9zZVJlcXVlc3Q6ICgpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IHNvbWVFbGVtZW50SXNTZWxlY3RlZCA9IGlzU29tZUVsZW1lbnRTZWxlY3RlZChlbGVtZW50cywgYXBwU3RhdGUpO1xuICBjb25zdCBbZXhwb3J0U2VsZWN0ZWQsIHNldEV4cG9ydFNlbGVjdGVkXSA9IHVzZVN0YXRlKHNvbWVFbGVtZW50SXNTZWxlY3RlZCk7XG4gIGNvbnN0IHByZXZpZXdSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB7IGV4cG9ydEJhY2tncm91bmQsIHZpZXdCYWNrZ3JvdW5kQ29sb3IgfSA9IGFwcFN0YXRlO1xuXG4gIGNvbnN0IGV4cG9ydGVkRWxlbWVudHMgPSBleHBvcnRTZWxlY3RlZFxuICAgID8gZ2V0U2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUsIHRydWUpXG4gICAgOiBlbGVtZW50cztcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEV4cG9ydFNlbGVjdGVkKHNvbWVFbGVtZW50SXNTZWxlY3RlZCk7XG4gIH0sIFtzb21lRWxlbWVudElzU2VsZWN0ZWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXdOb2RlID0gcHJldmlld1JlZi5jdXJyZW50O1xuICAgIGlmICghcHJldmlld05vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXhwb3J0VG9DYW52YXMoZXhwb3J0ZWRFbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCB7XG4gICAgICBleHBvcnRCYWNrZ3JvdW5kLFxuICAgICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgICAgIGV4cG9ydFBhZGRpbmcsXG4gICAgfSlcbiAgICAgIC50aGVuKChjYW52YXMpID0+IHtcbiAgICAgICAgLy8gaWYgY29udmVydGluZyB0byBibG9iIGZhaWxzLCB0aGVyZSdzIHNvbWUgcHJvYmxlbSB0aGF0IHdpbGxcbiAgICAgICAgLy8gbGlrZWx5IHByZXZlbnQgcHJldmlldyBhbmQgZXhwb3J0IChlLmcuIGNhbnZhcyB0b28gYmlnKVxuICAgICAgICByZXR1cm4gY2FudmFzVG9CbG9iKGNhbnZhcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmVuZGVyUHJldmlldyhjYW52YXMsIHByZXZpZXdOb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVuZGVyUHJldmlldyhuZXcgQ2FudmFzRXJyb3IoKSwgcHJldmlld05vZGUpO1xuICAgICAgfSk7XG4gIH0sIFtcbiAgICBhcHBTdGF0ZSxcbiAgICBmaWxlcyxcbiAgICBleHBvcnRlZEVsZW1lbnRzLFxuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiRXhwb3J0RGlhbG9nXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIkV4cG9ydERpYWxvZ19fcHJldmlld1wiIHJlZj17cHJldmlld1JlZn0gLz5cbiAgICAgIHtzdXBwb3J0c0NvbnRleHRGaWx0ZXJzICYmXG4gICAgICAgIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiZXhwb3J0V2l0aERhcmtNb2RlXCIpfVxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImdyaWRcIiwgZ3JpZFRlbXBsYXRlQ29sdW1uczogXCIxZnJcIiB9fT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiBcImdyaWRcIixcbiAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IFwicmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTkwcHgsIDFmcikpXCIsXG4gICAgICAgICAgICAvLyBkdW5ubyB3aHkgdGhpcyBpcyBuZWVkZWQsIGJ1dCB3aGVuIHRoZSBpdGVtcyB3cmFwIGl0IGNyZWF0ZXNcbiAgICAgICAgICAgIC8vIGFuIG92ZXJmbG93XG4gICAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlRXhwb3J0QmFja2dyb3VuZFwiKX1cbiAgICAgICAgICB7c29tZUVsZW1lbnRJc1NlbGVjdGVkICYmIChcbiAgICAgICAgICAgIDxDaGVja2JveEl0ZW1cbiAgICAgICAgICAgICAgY2hlY2tlZD17ZXhwb3J0U2VsZWN0ZWR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoY2hlY2tlZCkgPT4gc2V0RXhwb3J0U2VsZWN0ZWQoY2hlY2tlZCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0KFwibGFiZWxzLm9ubHlTZWxlY3RlZFwiKX1cbiAgICAgICAgICAgIDwvQ2hlY2tib3hJdGVtPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlRXhwb3J0RW1iZWRTY2VuZVwiKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIG1hcmdpblRvcDogXCIuNmVtXCIgfX0+XG4gICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsyfT5cbiAgICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJjaGFuZ2VFeHBvcnRTY2FsZVwiKX1cbiAgICAgICAgPC9TdGFjay5Sb3c+XG4gICAgICAgIDxwIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IFwiMWVtXCIsIHVzZXJTZWxlY3Q6IFwibm9uZVwiIH19PlNjYWxlPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICBtYXJnaW46IFwiLjZlbSAwXCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHshbmF0aXZlRmlsZVN5c3RlbVN1cHBvcnRlZCAmJlxuICAgICAgICAgIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlUHJvamVjdE5hbWVcIil9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxTdGFjay5Sb3cgZ2FwPXsyfSBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiIHN0eWxlPXt7IG1hcmdpbjogXCIyZW0gMFwiIH19PlxuICAgICAgICA8RXhwb3J0QnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJpbmRpZ29cIlxuICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5leHBvcnRUb1BuZ1wiKX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt0KFwiYnV0dG9ucy5leHBvcnRUb1BuZ1wiKX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvUG5nKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICA+XG4gICAgICAgICAgUE5HXG4gICAgICAgIDwvRXhwb3J0QnV0dG9uPlxuICAgICAgICA8RXhwb3J0QnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJyZWRcIlxuICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5leHBvcnRUb1N2Z1wiKX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt0KFwiYnV0dG9ucy5leHBvcnRUb1N2Z1wiKX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvU3ZnKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICA+XG4gICAgICAgICAgU1ZHXG4gICAgICAgIDwvRXhwb3J0QnV0dG9uPlxuICAgICAgICB7cHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZEJsb2IgJiYgKFxuICAgICAgICAgIDxFeHBvcnRCdXR0b25cbiAgICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5jb3B5UG5nVG9DbGlwYm9hcmRcIil9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvQ2xpcGJvYXJkKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICAgICAgY29sb3I9XCJncmF5XCJcbiAgICAgICAgICAgIHNoYWRlPXs3fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjbGlwYm9hcmR9XG4gICAgICAgICAgPC9FeHBvcnRCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1N0YWNrLlJvdz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBJbWFnZUV4cG9ydERpYWxvZyA9ICh7XG4gIGVsZW1lbnRzLFxuICBhcHBTdGF0ZSxcbiAgZmlsZXMsXG4gIGV4cG9ydFBhZGRpbmcgPSBERUZBVUxUX0VYUE9SVF9QQURESU5HLFxuICBhY3Rpb25NYW5hZ2VyLFxuICBvbkV4cG9ydFRvUG5nLFxuICBvbkV4cG9ydFRvU3ZnLFxuICBvbkV4cG9ydFRvQ2xpcGJvYXJkLFxufToge1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXTtcbiAgZmlsZXM6IEJpbmFyeUZpbGVzO1xuICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICBvbkV4cG9ydFRvUG5nOiBFeHBvcnRDQjtcbiAgb25FeHBvcnRUb1N2ZzogRXhwb3J0Q0I7XG4gIG9uRXhwb3J0VG9DbGlwYm9hcmQ6IEV4cG9ydENCO1xufSkgPT4ge1xuICBjb25zdCBbbW9kYWxJc1Nob3duLCBzZXRNb2RhbElzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE1vZGFsSXNTaG93bihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8VG9vbEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgc2V0TW9kYWxJc1Nob3duKHRydWUpO1xuICAgICAgICB9fVxuICAgICAgICBkYXRhLXRlc3RpZD1cImltYWdlLWV4cG9ydC1idXR0b25cIlxuICAgICAgICBpY29uPXtleHBvcnRJbWFnZX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfVxuICAgICAgICBzaG93QXJpYUxhYmVsPXt1c2VEZXZpY2UoKS5pc01vYmlsZX1cbiAgICAgICAgdGl0bGU9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfVxuICAgICAgLz5cbiAgICAgIHttb2RhbElzU2hvd24gJiYgKFxuICAgICAgICA8RGlhbG9nIG9uQ2xvc2VSZXF1ZXN0PXtoYW5kbGVDbG9zZX0gdGl0bGU9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfT5cbiAgICAgICAgICA8SW1hZ2VFeHBvcnRNb2RhbFxuICAgICAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgICAgICAgZXhwb3J0UGFkZGluZz17ZXhwb3J0UGFkZGluZ31cbiAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICBvbkV4cG9ydFRvUG5nPXtvbkV4cG9ydFRvUG5nfVxuICAgICAgICAgICAgb25FeHBvcnRUb1N2Zz17b25FeHBvcnRUb1N2Z31cbiAgICAgICAgICAgIG9uRXhwb3J0VG9DbGlwYm9hcmQ9e29uRXhwb3J0VG9DbGlwYm9hcmR9XG4gICAgICAgICAgICBvbkNsb3NlUmVxdWVzdD17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EaWFsb2c+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/ImageExportDialog.tsx\n");
|
|
2340
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ErrorCanvasPreview\": () => (/* binding */ ErrorCanvasPreview),\n/* harmony export */ \"ImageExportDialog\": () => (/* binding */ ImageExportDialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../clipboard */ \"../../clipboard.ts\");\n/* harmony import */ var _data_blob__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data/blob */ \"../../data/blob.ts\");\n/* harmony import */ var _errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../errors */ \"../../errors.ts\");\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _App__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./App */ \"../../components/App.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _scene_export__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../scene/export */ \"../../scene/export.ts\");\n/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Dialog */ \"../../components/Dialog.tsx\");\n/* harmony import */ var _icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./icons */ \"../../components/icons.tsx\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _ToolButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ToolButton */ \"../../components/ToolButton.tsx\");\n/* harmony import */ var _ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./ExportDialog.scss */ \"../../components/ExportDialog.scss\");\n/* harmony import */ var _ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_ExportDialog_scss__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _CheckboxItem__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./CheckboxItem */ \"../../components/CheckboxItem.tsx\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _data_filesystem__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../data/filesystem */ \"../../data/filesystem.ts\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst supportsContextFilters = \"filter\" in document.createElement(\"canvas\").getContext(\"2d\");\nconst ErrorCanvasPreview = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h3\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.cannotShowPreview\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"span\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.canvasTooBig\") }) }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"em\", { children: [\"(\", (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"canvasError.canvasTooBigTip\"), \")\"] })] }));\n};\nconst renderPreview = (content, previewNode) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.unmountComponentAtNode)(previewNode);\n previewNode.innerHTML = \"\";\n if (content instanceof HTMLCanvasElement) {\n previewNode.appendChild(content);\n }\n else {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.render)((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ErrorCanvasPreview, {}), previewNode);\n }\n};\nconst ExportButton = ({ children, title, onClick, color, shade = 6 }) => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"ExportDialog-imageExportButton\", style: {\n [\"--button-color\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade],\n [\"--button-color-darker\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade + 1],\n [\"--button-color-darkest\"]: open_color__WEBPACK_IMPORTED_MODULE_15__[color][shade + 2],\n }, title: title, \"aria-label\": title, onClick: onClick }, { children: children })));\n};\nconst ImageExportModal = ({ elements, appState, files, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_17__.DEFAULT_EXPORT_PADDING, actionManager, onExportToPng, onExportToSvg, onExportToClipboard, }) => {\n const someElementIsSelected = (0,_scene__WEBPACK_IMPORTED_MODULE_8__.isSomeElementSelected)(elements, appState);\n const [exportSelected, setExportSelected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(someElementIsSelected);\n const previewRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const { exportBackground, viewBackgroundColor } = appState;\n const exportedElements = exportSelected\n ? (0,_scene__WEBPACK_IMPORTED_MODULE_8__.getSelectedElements)(elements, appState, true)\n : elements;\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n setExportSelected(someElementIsSelected);\n }, [someElementIsSelected]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n const previewNode = previewRef.current;\n if (!previewNode) {\n return;\n }\n (0,_scene_export__WEBPACK_IMPORTED_MODULE_9__.exportToCanvas)(exportedElements, appState, files, {\n exportBackground,\n viewBackgroundColor,\n exportPadding,\n })\n .then((canvas) => {\n // if converting to blob fails, there's some problem that will\n // likely prevent preview and export (e.g. canvas too big)\n return (0,_data_blob__WEBPACK_IMPORTED_MODULE_4__.canvasToBlob)(canvas).then(() => {\n renderPreview(canvas, previewNode);\n });\n })\n .catch((error) => {\n console.error(error);\n renderPreview(new _errors__WEBPACK_IMPORTED_MODULE_5__.CanvasError(), previewNode);\n });\n }, [\n appState,\n files,\n exportedElements,\n exportBackground,\n exportPadding,\n viewBackgroundColor,\n ]);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"ExportDialog\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", { className: \"ExportDialog__preview\", ref: previewRef }), supportsContextFilters &&\n actionManager.renderAction(\"exportWithDarkMode\"), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: { display: \"grid\", gridTemplateColumns: \"1fr\" } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fit, minmax(190px, 1fr))\",\n // dunno why this is needed, but when the items wrap it creates\n // an overflow\n overflow: \"hidden\",\n } }, { children: [actionManager.renderAction(\"changeExportBackground\"), someElementIsSelected && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CheckboxItem__WEBPACK_IMPORTED_MODULE_16__.CheckboxItem, Object.assign({ checked: exportSelected, onChange: (checked) => setExportSelected(checked) }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"labels.onlySelected\") }))), actionManager.renderAction(\"changeExportEmbedScene\")] })) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ style: { display: \"flex\", alignItems: \"center\", marginTop: \".6em\" } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Row, Object.assign({ gap: 2 }, { children: actionManager.renderAction(\"changeExportScale\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", Object.assign({ style: { marginLeft: \"1em\", userSelect: \"none\" } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.scale\") }))] })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \".6em 0\",\n } }, { children: !_data_filesystem__WEBPACK_IMPORTED_MODULE_18__.nativeFileSystemSupported &&\n actionManager.renderAction(\"changeProjectName\") })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_12__[\"default\"].Row, Object.assign({ gap: 2, justifyContent: \"center\", style: { margin: \"2em 0\" } }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ color: \"indigo\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToPng\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToPng\"), onClick: () => onExportToPng(exportedElements) }, { children: \"PNG\" })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ color: \"red\", title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToSvg\"), \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportToSvg\"), onClick: () => onExportToSvg(exportedElements) }, { children: \"SVG\" })), _clipboard__WEBPACK_IMPORTED_MODULE_3__.probablySupportsClipboardBlob && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExportButton, Object.assign({ title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.copyPngToClipboard\"), onClick: () => onExportToClipboard(exportedElements), color: \"gray\", shade: 7 }, { children: _icons__WEBPACK_IMPORTED_MODULE_11__.clipboard })))] }))] })));\n};\nconst ImageExportDialog = ({ elements, appState, files, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_17__.DEFAULT_EXPORT_PADDING, actionManager, onExportToPng, onExportToSvg, onExportToClipboard, }) => {\n const [modalIsShown, setModalIsShown] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const handleClose = react__WEBPACK_IMPORTED_MODULE_1___default().useCallback(() => {\n setModalIsShown(false);\n }, []);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ToolButton__WEBPACK_IMPORTED_MODULE_13__.ToolButton, { onClick: () => {\n setModalIsShown(true);\n }, \"data-testid\": \"image-export-button\", icon: _icons__WEBPACK_IMPORTED_MODULE_11__.exportImage, type: \"button\", \"aria-label\": (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\"), showAriaLabel: (0,_App__WEBPACK_IMPORTED_MODULE_7__.useDevice)().isMobile, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\") }), modalIsShown && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Dialog__WEBPACK_IMPORTED_MODULE_10__.Dialog, Object.assign({ onCloseRequest: handleClose, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_6__.t)(\"buttons.exportImage\") }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ImageExportModal, { elements: elements, appState: appState, files: files, exportPadding: exportPadding, actionManager: actionManager, onExportToPng: onExportToPng, onExportToSvg: onExportToSvg, onExportToClipboard: onExportToClipboard, onCloseRequest: handleClose }) })))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vY29tcG9uZW50cy9JbWFnZUV4cG9ydERpYWxvZy50c3guanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEyRDtBQUNBO0FBQ0U7QUFDakI7QUFFSjtBQUNaO0FBQ007QUFDb0M7QUFDckI7QUFFZjtBQUNlO0FBQ3JCO0FBQ2M7QUFDYjtBQUNNO0FBQ1c7QUFDUTtBQUNTO0FBRy9ELE1BQU0sc0JBQXNCLEdBQzFCLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQztBQUUxRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUNyQyxPQUFPLENBQ0wsNEVBQ0UseUVBQUssd0NBQUMsQ0FBQywrQkFBK0IsQ0FBQyxHQUFNLEVBQzdDLHdFQUNFLDJFQUFPLHdDQUFDLENBQUMsMEJBQTBCLENBQUMsR0FBUSxHQUMxQyxFQUNKLGdGQUFNLHdDQUFDLENBQUMsNkJBQTZCLENBQUMsU0FBTyxJQUN6QyxDQUNQLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNwQixPQUFrQyxFQUNsQyxXQUEyQixFQUMzQixFQUFFO0lBQ0YsaUVBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsV0FBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDM0IsSUFBSSxPQUFPLFlBQVksaUJBQWlCLEVBQUU7UUFDeEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNsQztTQUFNO1FBQ0wsaURBQU0sQ0FBQyx1REFBQyxrQkFBa0IsS0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQyxDQUFDO0FBT0YsTUFBTSxZQUFZLEdBS2IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUN0RCxPQUFPLENB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LDhIQUNFLHVEQUFDLG9EQUFVLElBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsaUJBQ1cscUJBQXFCLEVBQ2pDLElBQUksRUFBRSxnREFBVyxFQUNqQixJQUFJLEVBQUMsUUFBUSxnQkFDRCx3Q0FBQyxDQUFDLHFCQUFxQixDQUFDLEVBQ3BDLGFBQWEsRUFBRSwrQ0FBUyxFQUFFLENBQUMsUUFBUSxFQUNuQyxLQUFLLEVBQUUsd0NBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxHQUMvQixFQUNELFlBQVksSUFBSSxDQUNmLHVEQUFDLDRDQUFNLGtCQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLHdDQUFDLENBQUMscUJBQXFCLENBQUMsZ0JBQ2xFLHVEQUFDLGdCQUFnQixJQUNmLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLGNBQWMsRUFBRSxXQUFXLEdBQzNCLElBQ0ssQ0FDVixJQUNBLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL0ltYWdlRXhwb3J0RGlhbG9nLnRzeD8yMGUxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHJlbmRlciwgdW5tb3VudENvbXBvbmVudEF0Tm9kZSB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHByb2JhYmx5U3VwcG9ydHNDbGlwYm9hcmRCbG9iIH0gZnJvbSBcIi4uL2NsaXBib2FyZFwiO1xuaW1wb3J0IHsgY2FudmFzVG9CbG9iIH0gZnJvbSBcIi4uL2RhdGEvYmxvYlwiO1xuaW1wb3J0IHsgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50IH0gZnJvbSBcIi4uL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IENhbnZhc0Vycm9yIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgdCB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyB1c2VEZXZpY2UgfSBmcm9tIFwiLi9BcHBcIjtcbmltcG9ydCB7IGdldFNlbGVjdGVkRWxlbWVudHMsIGlzU29tZUVsZW1lbnRTZWxlY3RlZCB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgZXhwb3J0VG9DYW52YXMgfSBmcm9tIFwiLi4vc2NlbmUvZXhwb3J0XCI7XG5pbXBvcnQgeyBBcHBTdGF0ZSwgQmluYXJ5RmlsZXMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gXCIuL0RpYWxvZ1wiO1xuaW1wb3J0IHsgY2xpcGJvYXJkLCBleHBvcnRJbWFnZSB9IGZyb20gXCIuL2ljb25zXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IFRvb2xCdXR0b24gfSBmcm9tIFwiLi9Ub29sQnV0dG9uXCI7XG5pbXBvcnQgXCIuL0V4cG9ydERpYWxvZy5zY3NzXCI7XG5pbXBvcnQgT3BlbkNvbG9yIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5pbXBvcnQgeyBDaGVja2JveEl0ZW0gfSBmcm9tIFwiLi9DaGVja2JveEl0ZW1cIjtcbmltcG9ydCB7IERFRkFVTFRfRVhQT1JUX1BBRERJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBuYXRpdmVGaWxlU3lzdGVtU3VwcG9ydGVkIH0gZnJvbSBcIi4uL2RhdGEvZmlsZXN5c3RlbVwiO1xuaW1wb3J0IHsgQWN0aW9uTWFuYWdlciB9IGZyb20gXCIuLi9hY3Rpb25zL21hbmFnZXJcIjtcblxuY29uc3Qgc3VwcG9ydHNDb250ZXh0RmlsdGVycyA9XG4gIFwiZmlsdGVyXCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKS5nZXRDb250ZXh0KFwiMmRcIikhO1xuXG5leHBvcnQgY29uc3QgRXJyb3JDYW52YXNQcmV2aWV3ID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8aDM+e3QoXCJjYW52YXNFcnJvci5jYW5ub3RTaG93UHJldmlld1wiKX08L2gzPlxuICAgICAgPHA+XG4gICAgICAgIDxzcGFuPnt0KFwiY2FudmFzRXJyb3IuY2FudmFzVG9vQmlnXCIpfTwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxlbT4oe3QoXCJjYW52YXNFcnJvci5jYW52YXNUb29CaWdUaXBcIil9KTwvZW0+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCByZW5kZXJQcmV2aWV3ID0gKFxuICBjb250ZW50OiBIVE1MQ2FudmFzRWxlbWVudCB8IEVycm9yLFxuICBwcmV2aWV3Tm9kZTogSFRNTERpdkVsZW1lbnQsXG4pID0+IHtcbiAgdW5tb3VudENvbXBvbmVudEF0Tm9kZShwcmV2aWV3Tm9kZSk7XG4gIHByZXZpZXdOb2RlLmlubmVySFRNTCA9IFwiXCI7XG4gIGlmIChjb250ZW50IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICBwcmV2aWV3Tm9kZS5hcHBlbmRDaGlsZChjb250ZW50KTtcbiAgfSBlbHNlIHtcbiAgICByZW5kZXIoPEVycm9yQ2FudmFzUHJldmlldyAvPiwgcHJldmlld05vZGUpO1xuICB9XG59O1xuXG5leHBvcnQgdHlwZSBFeHBvcnRDQiA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBzY2FsZT86IG51bWJlcixcbikgPT4gdm9pZDtcblxuY29uc3QgRXhwb3J0QnV0dG9uOiBSZWFjdC5GQzx7XG4gIGNvbG9yOiBrZXlvZiBPcGVuQ29sb3I7XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNoYWRlPzogbnVtYmVyO1xufT4gPSAoeyBjaGlsZHJlbiwgdGl0bGUsIG9uQ2xpY2ssIGNvbG9yLCBzaGFkZSA9IDYgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT1cIkV4cG9ydERpYWxvZy1pbWFnZUV4cG9ydEJ1dHRvblwiXG4gICAgICBzdHlsZT17e1xuICAgICAgICBbXCItLWJ1dHRvbi1jb2xvclwiIGFzIGFueV06IE9wZW5Db2xvcltjb2xvcl1bc2hhZGVdLFxuICAgICAgICBbXCItLWJ1dHRvbi1jb2xvci1kYXJrZXJcIiBhcyBhbnldOiBPcGVuQ29sb3JbY29sb3JdW3NoYWRlICsgMV0sXG4gICAgICAgIFtcIi0tYnV0dG9uLWNvbG9yLWRhcmtlc3RcIiBhcyBhbnldOiBPcGVuQ29sb3JbY29sb3JdW3NoYWRlICsgMl0sXG4gICAgICB9fVxuICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgYXJpYS1sYWJlbD17dGl0bGV9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn07XG5cbmNvbnN0IEltYWdlRXhwb3J0TW9kYWwgPSAoe1xuICBlbGVtZW50cyxcbiAgYXBwU3RhdGUsXG4gIGZpbGVzLFxuICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgYWN0aW9uTWFuYWdlcixcbiAgb25FeHBvcnRUb1BuZyxcbiAgb25FeHBvcnRUb1N2ZyxcbiAgb25FeHBvcnRUb0NsaXBib2FyZCxcbn06IHtcbiAgYXBwU3RhdGU6IEFwcFN0YXRlO1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIGZpbGVzOiBCaW5hcnlGaWxlcztcbiAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgYWN0aW9uTWFuYWdlcjogQWN0aW9uTWFuYWdlcjtcbiAgb25FeHBvcnRUb1BuZzogRXhwb3J0Q0I7XG4gIG9uRXhwb3J0VG9Tdmc6IEV4cG9ydENCO1xuICBvbkV4cG9ydFRvQ2xpcGJvYXJkOiBFeHBvcnRDQjtcbiAgb25DbG9zZVJlcXVlc3Q6ICgpID0+IHZvaWQ7XG59KSA9PiB7XG4gIGNvbnN0IHNvbWVFbGVtZW50SXNTZWxlY3RlZCA9IGlzU29tZUVsZW1lbnRTZWxlY3RlZChlbGVtZW50cywgYXBwU3RhdGUpO1xuICBjb25zdCBbZXhwb3J0U2VsZWN0ZWQsIHNldEV4cG9ydFNlbGVjdGVkXSA9IHVzZVN0YXRlKHNvbWVFbGVtZW50SXNTZWxlY3RlZCk7XG4gIGNvbnN0IHByZXZpZXdSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB7IGV4cG9ydEJhY2tncm91bmQsIHZpZXdCYWNrZ3JvdW5kQ29sb3IgfSA9IGFwcFN0YXRlO1xuXG4gIGNvbnN0IGV4cG9ydGVkRWxlbWVudHMgPSBleHBvcnRTZWxlY3RlZFxuICAgID8gZ2V0U2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUsIHRydWUpXG4gICAgOiBlbGVtZW50cztcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEV4cG9ydFNlbGVjdGVkKHNvbWVFbGVtZW50SXNTZWxlY3RlZCk7XG4gIH0sIFtzb21lRWxlbWVudElzU2VsZWN0ZWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXdOb2RlID0gcHJldmlld1JlZi5jdXJyZW50O1xuICAgIGlmICghcHJldmlld05vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXhwb3J0VG9DYW52YXMoZXhwb3J0ZWRFbGVtZW50cywgYXBwU3RhdGUsIGZpbGVzLCB7XG4gICAgICBleHBvcnRCYWNrZ3JvdW5kLFxuICAgICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgICAgIGV4cG9ydFBhZGRpbmcsXG4gICAgfSlcbiAgICAgIC50aGVuKChjYW52YXMpID0+IHtcbiAgICAgICAgLy8gaWYgY29udmVydGluZyB0byBibG9iIGZhaWxzLCB0aGVyZSdzIHNvbWUgcHJvYmxlbSB0aGF0IHdpbGxcbiAgICAgICAgLy8gbGlrZWx5IHByZXZlbnQgcHJldmlldyBhbmQgZXhwb3J0IChlLmcuIGNhbnZhcyB0b28gYmlnKVxuICAgICAgICByZXR1cm4gY2FudmFzVG9CbG9iKGNhbnZhcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgcmVuZGVyUHJldmlldyhjYW52YXMsIHByZXZpZXdOb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVuZGVyUHJldmlldyhuZXcgQ2FudmFzRXJyb3IoKSwgcHJldmlld05vZGUpO1xuICAgICAgfSk7XG4gIH0sIFtcbiAgICBhcHBTdGF0ZSxcbiAgICBmaWxlcyxcbiAgICBleHBvcnRlZEVsZW1lbnRzLFxuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICBdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiRXhwb3J0RGlhbG9nXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIkV4cG9ydERpYWxvZ19fcHJldmlld1wiIHJlZj17cHJldmlld1JlZn0gLz5cbiAgICAgIHtzdXBwb3J0c0NvbnRleHRGaWx0ZXJzICYmXG4gICAgICAgIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiZXhwb3J0V2l0aERhcmtNb2RlXCIpfVxuICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImdyaWRcIiwgZ3JpZFRlbXBsYXRlQ29sdW1uczogXCIxZnJcIiB9fT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiBcImdyaWRcIixcbiAgICAgICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnM6IFwicmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTkwcHgsIDFmcikpXCIsXG4gICAgICAgICAgICAvLyBkdW5ubyB3aHkgdGhpcyBpcyBuZWVkZWQsIGJ1dCB3aGVuIHRoZSBpdGVtcyB3cmFwIGl0IGNyZWF0ZXNcbiAgICAgICAgICAgIC8vIGFuIG92ZXJmbG93XG4gICAgICAgICAgICBvdmVyZmxvdzogXCJoaWRkZW5cIixcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlRXhwb3J0QmFja2dyb3VuZFwiKX1cbiAgICAgICAgICB7c29tZUVsZW1lbnRJc1NlbGVjdGVkICYmIChcbiAgICAgICAgICAgIDxDaGVja2JveEl0ZW1cbiAgICAgICAgICAgICAgY2hlY2tlZD17ZXhwb3J0U2VsZWN0ZWR9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoY2hlY2tlZCkgPT4gc2V0RXhwb3J0U2VsZWN0ZWQoY2hlY2tlZCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0KFwibGFiZWxzLm9ubHlTZWxlY3RlZFwiKX1cbiAgICAgICAgICAgIDwvQ2hlY2tib3hJdGVtPlxuICAgICAgICAgICl9XG4gICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlRXhwb3J0RW1iZWRTY2VuZVwiKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIG1hcmdpblRvcDogXCIuNmVtXCIgfX0+XG4gICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsyfT5cbiAgICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJjaGFuZ2VFeHBvcnRTY2FsZVwiKX1cbiAgICAgICAgPC9TdGFjay5Sb3c+XG4gICAgICAgIDxwIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IFwiMWVtXCIsIHVzZXJTZWxlY3Q6IFwibm9uZVwiIH19PlxuICAgICAgICAgIHt0KFwiYnV0dG9ucy5zY2FsZVwiKX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICBtYXJnaW46IFwiLjZlbSAwXCIsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHshbmF0aXZlRmlsZVN5c3RlbVN1cHBvcnRlZCAmJlxuICAgICAgICAgIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2hhbmdlUHJvamVjdE5hbWVcIil9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxTdGFjay5Sb3cgZ2FwPXsyfSBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiIHN0eWxlPXt7IG1hcmdpbjogXCIyZW0gMFwiIH19PlxuICAgICAgICA8RXhwb3J0QnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJpbmRpZ29cIlxuICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5leHBvcnRUb1BuZ1wiKX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt0KFwiYnV0dG9ucy5leHBvcnRUb1BuZ1wiKX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvUG5nKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICA+XG4gICAgICAgICAgUE5HXG4gICAgICAgIDwvRXhwb3J0QnV0dG9uPlxuICAgICAgICA8RXhwb3J0QnV0dG9uXG4gICAgICAgICAgY29sb3I9XCJyZWRcIlxuICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5leHBvcnRUb1N2Z1wiKX1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt0KFwiYnV0dG9ucy5leHBvcnRUb1N2Z1wiKX1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvU3ZnKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICA+XG4gICAgICAgICAgU1ZHXG4gICAgICAgIDwvRXhwb3J0QnV0dG9uPlxuICAgICAgICB7cHJvYmFibHlTdXBwb3J0c0NsaXBib2FyZEJsb2IgJiYgKFxuICAgICAgICAgIDxFeHBvcnRCdXR0b25cbiAgICAgICAgICAgIHRpdGxlPXt0KFwiYnV0dG9ucy5jb3B5UG5nVG9DbGlwYm9hcmRcIil9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkV4cG9ydFRvQ2xpcGJvYXJkKGV4cG9ydGVkRWxlbWVudHMpfVxuICAgICAgICAgICAgY29sb3I9XCJncmF5XCJcbiAgICAgICAgICAgIHNoYWRlPXs3fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjbGlwYm9hcmR9XG4gICAgICAgICAgPC9FeHBvcnRCdXR0b24+XG4gICAgICAgICl9XG4gICAgICA8L1N0YWNrLlJvdz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBJbWFnZUV4cG9ydERpYWxvZyA9ICh7XG4gIGVsZW1lbnRzLFxuICBhcHBTdGF0ZSxcbiAgZmlsZXMsXG4gIGV4cG9ydFBhZGRpbmcgPSBERUZBVUxUX0VYUE9SVF9QQURESU5HLFxuICBhY3Rpb25NYW5hZ2VyLFxuICBvbkV4cG9ydFRvUG5nLFxuICBvbkV4cG9ydFRvU3ZnLFxuICBvbkV4cG9ydFRvQ2xpcGJvYXJkLFxufToge1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGVsZW1lbnRzOiByZWFkb25seSBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnRbXTtcbiAgZmlsZXM6IEJpbmFyeUZpbGVzO1xuICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICBvbkV4cG9ydFRvUG5nOiBFeHBvcnRDQjtcbiAgb25FeHBvcnRUb1N2ZzogRXhwb3J0Q0I7XG4gIG9uRXhwb3J0VG9DbGlwYm9hcmQ6IEV4cG9ydENCO1xufSkgPT4ge1xuICBjb25zdCBbbW9kYWxJc1Nob3duLCBzZXRNb2RhbElzU2hvd25dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gUmVhY3QudXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldE1vZGFsSXNTaG93bihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8VG9vbEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgc2V0TW9kYWxJc1Nob3duKHRydWUpO1xuICAgICAgICB9fVxuICAgICAgICBkYXRhLXRlc3RpZD1cImltYWdlLWV4cG9ydC1idXR0b25cIlxuICAgICAgICBpY29uPXtleHBvcnRJbWFnZX1cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGFyaWEtbGFiZWw9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfVxuICAgICAgICBzaG93QXJpYUxhYmVsPXt1c2VEZXZpY2UoKS5pc01vYmlsZX1cbiAgICAgICAgdGl0bGU9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfVxuICAgICAgLz5cbiAgICAgIHttb2RhbElzU2hvd24gJiYgKFxuICAgICAgICA8RGlhbG9nIG9uQ2xvc2VSZXF1ZXN0PXtoYW5kbGVDbG9zZX0gdGl0bGU9e3QoXCJidXR0b25zLmV4cG9ydEltYWdlXCIpfT5cbiAgICAgICAgICA8SW1hZ2VFeHBvcnRNb2RhbFxuICAgICAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgZmlsZXM9e2ZpbGVzfVxuICAgICAgICAgICAgZXhwb3J0UGFkZGluZz17ZXhwb3J0UGFkZGluZ31cbiAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICBvbkV4cG9ydFRvUG5nPXtvbkV4cG9ydFRvUG5nfVxuICAgICAgICAgICAgb25FeHBvcnRUb1N2Zz17b25FeHBvcnRUb1N2Z31cbiAgICAgICAgICAgIG9uRXhwb3J0VG9DbGlwYm9hcmQ9e29uRXhwb3J0VG9DbGlwYm9hcmR9XG4gICAgICAgICAgICBvbkNsb3NlUmVxdWVzdD17aGFuZGxlQ2xvc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EaWFsb2c+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../components/ImageExportDialog.tsx\n");
|
|
2341
2341
|
|
|
2342
2342
|
/***/ }),
|
|
2343
2343
|
|
|
@@ -2458,7 +2458,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2458
2458
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2459
2459
|
|
|
2460
2460
|
"use strict";
|
|
2461
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MobileMenu\": () => (/* binding */ MobileMenu)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _HintViewer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HintViewer */ \"../../components/HintViewer.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../scene/scrollbars */ \"../../scene/scrollbars.ts\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MobileMenu = ({ appState, elements, libraryMenu, actionManager, renderJSONExportDialog, renderImageExportDialog, setAppState, onCollabButtonClick, onLockToggle, onPenModeToggle, canvas, isCollaborating, renderCustomFooter, showThemeBtn, onImageAction, renderTopRightUI, renderStats, }) => {\n const renderToolbar = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__.FixedSideContainer, Object.assign({ side: \"top\", className: \"App-top-bar\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4, align: \"center\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1, className: \"App-toolbar-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 1, className: \"App-toolbar\" }, { children: [heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.ShapesSwitcher, { appState: appState, canvas: canvas, activeTool: appState.activeTool, setAppState: setAppState, onImageAction: ({ pointerType }) => {\n onImageAction({\n insertOnCanvasDirectly: pointerType !== \"mouse\",\n });\n } }) }))] })), renderTopRightUI && renderTopRightUI(true, appState), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_13__.LockButton, { checked: appState.activeTool.locked, onChange: onLockToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.lock\"), isMobile: true }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_16__.LibraryButton, { appState: appState, setAppState: setAppState, isMobile: true }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_17__.PenModeButton, { checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.penMode\"), isMobile: true, penDetected: appState.penDetected })] })), libraryMenu] }))) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HintViewer__WEBPACK_IMPORTED_MODULE_7__.HintViewer, { appState: appState, elements: elements, isMobile: true })] })));\n };\n const renderAppToolbar = () => {\n // Render eraser conditionally in mobile\n const showEraser = !appState.viewModeEnabled &&\n !appState.editingElement &&\n (0,_scene__WEBPACK_IMPORTED_MODULE_8__.getSelectedElements)(elements, appState).length === 0;\n if (appState.viewModeEnabled) {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: actionManager.renderAction(\"toggleCanvasMenu\") })));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: [actionManager.renderAction(\"toggleCanvasMenu\"), actionManager.renderAction(\"toggleEditMenu\"), actionManager.renderAction(\"undo\"), actionManager.renderAction(\"redo\"), showEraser && actionManager.renderAction(\"eraser\"), actionManager.renderAction(appState.multiElement ? \"finalize\" : \"duplicateSelection\"), actionManager.renderAction(\"deleteSelectedElements\")] })));\n };\n const renderCanvasActions = () => {\n if (appState.viewModeEnabled) {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderJSONExportDialog(), renderImageExportDialog()] }));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [actionManager.renderAction(\"clearCanvas\"), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_11__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__.BackgroundPickerAndDarkModeToggle, { actionManager: actionManager, appState: appState, setAppState: setAppState, showThemeBtn: showThemeBtn })] }));\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [!appState.viewModeEnabled && renderToolbar(), renderStats(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-bottom-bar\", style: {\n marginBottom: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n marginLeft: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n marginRight: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 0 }, { children: [appState.openMenu === \"canvas\" ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"canvasActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [renderCanvasActions(), renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(true, appState), appState.collaborators.size > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"fieldset\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"legend\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"labels.collaborators\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_14__.UserList, { mobile: true, collaborators: appState.collaborators, actionManager: actionManager })] }))] })) })) }))) : appState.openMenu === \"shape\" &&\n !appState.viewModeEnabled &&\n (0,_element__WEBPACK_IMPORTED_MODULE_4__.showSelectedShapeActions)(appState, elements) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"selectedShapeActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction, activeTool: appState.activeTool.type }) }))) : null, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ className: \"App-toolbar\" }, { children: [renderAppToolbar(), appState.scrolledOutside && !appState.openMenu && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_8__.calculateScrollCenter)(elements, appState, canvas)));\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"buttons.scrollBackToContent\") })))] }))] })) }))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RSxDQUNYLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssT0FBTzs0QkFDL0IsQ0FBQyxRQUFRLENBQUMsZUFBZTs0QkFDekIsa0VBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyx1REFBQyw4Q0FBTyxrQkFBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLHNCQUFzQixnQkFDakUsdURBQUMsMERBQW9CLElBQ25CLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQ3BDLElBQ00sQ0FDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ1Isa0ZBQVEsU0FBUyxFQUFDLGFBQWEsaUJBQzVCLGdCQUFnQixFQUFFLEVBQ2xCLFFBQVEsQ0FBQyxlQUFlLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQ2pELGlGQUNFLFNBQVMsRUFBQyx3QkFBd0IsRUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRTt3Q0FDWixXQUFXLG1CQUNOLDZEQUFxQixDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQ3BELENBQUM7b0NBQ0wsQ0FBQyxnQkFFQSx3Q0FBQyxDQUFDLDZCQUE2QixDQUFDLElBQzFCLENBQ1YsS0FDTSxLQUNGLElBQ0wsSUFDTCxDQUNKLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vY29tcG9uZW50cy9Nb2JpbGVNZW51LnRzeD8wOGM0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEFwcFN0YXRlIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBBY3Rpb25NYW5hZ2VyIH0gZnJvbSBcIi4uL2FjdGlvbnMvbWFuYWdlclwiO1xuaW1wb3J0IHsgdCB9IGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIi4vU3RhY2tcIjtcbmltcG9ydCB7IHNob3dTZWxlY3RlZFNoYXBlQWN0aW9ucyB9IGZyb20gXCIuLi9lbGVtZW50XCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgRml4ZWRTaWRlQ29udGFpbmVyIH0gZnJvbSBcIi4vRml4ZWRTaWRlQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBJc2xhbmQgfSBmcm9tIFwiLi9Jc2xhbmRcIjtcbmltcG9ydCB7IEhpbnRWaWV3ZXIgfSBmcm9tIFwiLi9IaW50Vmlld2VyXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVTY3JvbGxDZW50ZXIsIGdldFNlbGVjdGVkRWxlbWVudHMgfSBmcm9tIFwiLi4vc2NlbmVcIjtcbmltcG9ydCB7IFNlbGVjdGVkU2hhcGVBY3Rpb25zLCBTaGFwZXNTd2l0Y2hlciB9IGZyb20gXCIuL0FjdGlvbnNcIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi9TZWN0aW9uXCI7XG5pbXBvcnQgQ29sbGFiQnV0dG9uIGZyb20gXCIuL0NvbGxhYkJ1dHRvblwiO1xuaW1wb3J0IHsgU0NST0xMQkFSX1dJRFRILCBTQ1JPTExCQVJfTUFSR0lOIH0gZnJvbSBcIi4uL3NjZW5lL3Njcm9sbGJhcnNcIjtcbmltcG9ydCB7IExvY2tCdXR0b24gfSBmcm9tIFwiLi9Mb2NrQnV0dG9uXCI7XG5pbXBvcnQgeyBVc2VyTGlzdCB9IGZyb20gXCIuL1VzZXJMaXN0XCI7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGUgfSBmcm9tIFwiLi9CYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcIjtcbmltcG9ydCB7IExpYnJhcnlCdXR0b24gfSBmcm9tIFwiLi9MaWJyYXJ5QnV0dG9uXCI7XG5pbXBvcnQgeyBQZW5Nb2RlQnV0dG9uIH0gZnJvbSBcIi4vUGVuTW9kZUJ1dHRvblwiO1xuXG50eXBlIE1vYmlsZU1lbnVQcm9wcyA9IHtcbiAgYXBwU3RhdGU6IEFwcFN0YXRlO1xuICBhY3Rpb25NYW5hZ2VyOiBBY3Rpb25NYW5hZ2VyO1xuICByZW5kZXJKU09ORXhwb3J0RGlhbG9nOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlbmRlckltYWdlRXhwb3J0RGlhbG9nOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIHNldEFwcFN0YXRlOiBSZWFjdC5Db21wb25lbnQ8YW55LCBBcHBTdGF0ZT5bXCJzZXRTdGF0ZVwiXTtcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdO1xuICBsaWJyYXJ5TWVudTogSlNYLkVsZW1lbnQgfCBudWxsO1xuICBvbkNvbGxhYkJ1dHRvbkNsaWNrPzogKCkgPT4gdm9pZDtcbiAgb25Mb2NrVG9nZ2xlOiAoKSA9PiB2b2lkO1xuICBvblBlbk1vZGVUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsO1xuICBpc0NvbGxhYm9yYXRpbmc6IGJvb2xlYW47XG4gIHJlbmRlckN1c3RvbUZvb3Rlcj86IChcbiAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gICkgPT4gSlNYLkVsZW1lbnQgfCBudWxsO1xuICBzaG93VGhlbWVCdG46IGJvb2xlYW47XG4gIG9uSW1hZ2VBY3Rpb246IChkYXRhOiB7IGluc2VydE9uQ2FudmFzRGlyZWN0bHk6IGJvb2xlYW4gfSkgPT4gdm9pZDtcbiAgcmVuZGVyVG9wUmlnaHRVST86IChcbiAgICBpc01vYmlsZTogYm9vbGVhbixcbiAgICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gICkgPT4gSlNYLkVsZW1lbnQgfCBudWxsO1xuICByZW5kZXJTdGF0czogKCkgPT4gSlNYLkVsZW1lbnQgfCBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IE1vYmlsZU1lbnUgPSAoe1xuICBhcHBTdGF0ZSxcbiAgZWxlbWVudHMsXG4gIGxpYnJhcnlNZW51LFxuICBhY3Rpb25NYW5hZ2VyLFxuICByZW5kZXJKU09ORXhwb3J0RGlhbG9nLFxuICByZW5kZXJJbWFnZUV4cG9ydERpYWxvZyxcbiAgc2V0QXBwU3RhdGUsXG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2ssXG4gIG9uTG9ja1RvZ2dsZSxcbiAgb25QZW5Nb2RlVG9nZ2xlLFxuICBjYW52YXMsXG4gIGlzQ29sbGFib3JhdGluZyxcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyLFxuICBzaG93VGhlbWVCdG4sXG4gIG9uSW1hZ2VBY3Rpb24sXG4gIHJlbmRlclRvcFJpZ2h0VUksXG4gIHJlbmRlclN0YXRzLFxufTogTW9iaWxlTWVudVByb3BzKSA9PiB7XG4gIGNvbnN0IHJlbmRlclRvb2xiYXIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGaXhlZFNpZGVDb250YWluZXIgc2lkZT1cInRvcFwiIGNsYXNzTmFtZT1cIkFwcC10b3AtYmFyXCI+XG4gICAgICAgIDxTZWN0aW9uIGhlYWRpbmc9XCJzaGFwZXNcIj5cbiAgICAgICAgICB7KGhlYWRpbmcpID0+IChcbiAgICAgICAgICAgIDxTdGFjay5Db2wgZ2FwPXs0fSBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICA8U3RhY2suUm93IGdhcD17MX0gY2xhc3NOYW1lPVwiQXBwLXRvb2xiYXItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPElzbGFuZCBwYWRkaW5nPXsxfSBjbGFzc05hbWU9XCJBcHAtdG9vbGJhclwiPlxuICAgICAgICAgICAgICAgICAge2hlYWRpbmd9XG4gICAgICAgICAgICAgICAgICA8U3RhY2suUm93IGdhcD17MX0+XG4gICAgICAgICAgICAgICAgICAgIDxTaGFwZXNTd2l0Y2hlclxuICAgICAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBjYW52YXM9e2NhbnZhc31cbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUb29sPXthcHBTdGF0ZS5hY3RpdmVUb29sfVxuICAgICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uPXsoeyBwb2ludGVyVHlwZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkltYWdlQWN0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogcG9pbnRlclR5cGUgIT09IFwibW91c2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAgICA8L0lzbGFuZD5cbiAgICAgICAgICAgICAgICB7cmVuZGVyVG9wUmlnaHRVSSAmJiByZW5kZXJUb3BSaWdodFVJKHRydWUsIGFwcFN0YXRlKX1cbiAgICAgICAgICAgICAgICA8TG9ja0J1dHRvblxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17YXBwU3RhdGUuYWN0aXZlVG9vbC5sb2NrZWR9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25Mb2NrVG9nZ2xlfVxuICAgICAgICAgICAgICAgICAgdGl0bGU9e3QoXCJ0b29sQmFyLmxvY2tcIil9XG4gICAgICAgICAgICAgICAgICBpc01vYmlsZVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPExpYnJhcnlCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFwcFN0YXRlPXthcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlPXtzZXRBcHBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIGlzTW9iaWxlXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UGVuTW9kZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17YXBwU3RhdGUucGVuTW9kZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvblBlbk1vZGVUb2dnbGV9XG4gICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIucGVuTW9kZVwiKX1cbiAgICAgICAgICAgICAgICAgIGlzTW9iaWxlXG4gICAgICAgICAgICAgICAgICBwZW5EZXRlY3RlZD17YXBwU3RhdGUucGVuRGV0ZWN0ZWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdGFjay5Sb3c+XG4gICAgICAgICAgICAgIHtsaWJyYXJ5TWVudX1cbiAgICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPEhpbnRWaWV3ZXIgYXBwU3RhdGU9e2FwcFN0YXRlfSBlbGVtZW50cz17ZWxlbWVudHN9IGlzTW9iaWxlPXt0cnVlfSAvPlxuICAgICAgPC9GaXhlZFNpZGVDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJBcHBUb29sYmFyID0gKCkgPT4ge1xuICAgIC8vIFJlbmRlciBlcmFzZXIgY29uZGl0aW9uYWxseSBpbiBtb2JpbGVcbiAgICBjb25zdCBzaG93RXJhc2VyID1cbiAgICAgICFhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQgJiZcbiAgICAgICFhcHBTdGF0ZS5lZGl0aW5nRWxlbWVudCAmJlxuICAgICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyhlbGVtZW50cywgYXBwU3RhdGUpLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmIChhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiQXBwLXRvb2xiYXItY29udGVudFwiPlxuICAgICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUNhbnZhc01lbnVcIil9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250ZW50XCI+XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUNhbnZhc01lbnVcIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInRvZ2dsZUVkaXRNZW51XCIpfVxuXG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInVuZG9cIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcInJlZG9cIil9XG4gICAgICAgIHtzaG93RXJhc2VyICYmIGFjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiZXJhc2VyXCIpfVxuXG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcbiAgICAgICAgICBhcHBTdGF0ZS5tdWx0aUVsZW1lbnQgPyBcImZpbmFsaXplXCIgOiBcImR1cGxpY2F0ZVNlbGVjdGlvblwiLFxuICAgICAgICApfVxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJkZWxldGVTZWxlY3RlZEVsZW1lbnRzXCIpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJDYW52YXNBY3Rpb25zID0gKCkgPT4ge1xuICAgIGlmIChhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAgICB7cmVuZGVySW1hZ2VFeHBvcnREaWFsb2coKX1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwiY2xlYXJDYW52YXNcIil9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImxvYWRTY2VuZVwiKX1cbiAgICAgICAge3JlbmRlckpTT05FeHBvcnREaWFsb2coKX1cbiAgICAgICAge3JlbmRlckltYWdlRXhwb3J0RGlhbG9nKCl9XG4gICAgICAgIHtvbkNvbGxhYkJ1dHRvbkNsaWNrICYmIChcbiAgICAgICAgICA8Q29sbGFiQnV0dG9uXG4gICAgICAgICAgICBpc0NvbGxhYm9yYXRpbmc9e2lzQ29sbGFib3JhdGluZ31cbiAgICAgICAgICAgIGNvbGxhYm9yYXRvckNvdW50PXthcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLnNpemV9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkNvbGxhYkJ1dHRvbkNsaWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtcbiAgICAgICAgICA8QmFja2dyb3VuZFBpY2tlckFuZERhcmtNb2RlVG9nZ2xlXG4gICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgc2hvd1RoZW1lQnRuPXtzaG93VGhlbWVCdG59XG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgeyFhcHBTdGF0ZS52aWV3TW9kZUVuYWJsZWQgJiYgcmVuZGVyVG9vbGJhcigpfVxuICAgICAge3JlbmRlclN0YXRzKCl9XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT1cIkFwcC1ib3R0b20tYmFyXCJcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBtYXJnaW5Cb3R0b206IFNDUk9MTEJBUl9XSURUSCArIFNDUk9MTEJBUl9NQVJHSU4gKiAyLFxuICAgICAgICAgIG1hcmdpbkxlZnQ6IFNDUk9MTEJBUl9XSURUSCArIFNDUk9MTEJBUl9NQVJHSU4gKiAyLFxuICAgICAgICAgIG1hcmdpblJpZ2h0OiBTQ1JPTExCQVJfV0lEVEggKyBTQ1JPTExCQVJfTUFSR0lOICogMixcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPElzbGFuZCBwYWRkaW5nPXswfT5cbiAgICAgICAgICB7YXBwU3RhdGUub3Blbk1lbnUgPT09IFwiY2FudmFzXCIgPyAoXG4gICAgICAgICAgICA8U2VjdGlvbiBjbGFzc05hbWU9XCJBcHAtbW9iaWxlLW1lbnVcIiBoZWFkaW5nPVwiY2FudmFzQWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhbmVsQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9PlxuICAgICAgICAgICAgICAgICAge3JlbmRlckNhbnZhc0FjdGlvbnMoKX1cbiAgICAgICAgICAgICAgICAgIHtyZW5kZXJDdXN0b21Gb290ZXI/Lih0cnVlLCBhcHBTdGF0ZSl9XG4gICAgICAgICAgICAgICAgICB7YXBwU3RhdGUuY29sbGFib3JhdG9ycy5zaXplID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgICAgICAgICAgICAgICA8bGVnZW5kPnt0KFwibGFiZWxzLmNvbGxhYm9yYXRvcnNcIil9PC9sZWdlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgPFVzZXJMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2JpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxhYm9yYXRvcnM9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25NYW5hZ2VyPXthY3Rpb25NYW5hZ2VyfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU3RhY2suQ29sPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApIDogYXBwU3RhdGUub3Blbk1lbnUgPT09IFwic2hhcGVcIiAmJlxuICAgICAgICAgICAgIWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCAmJlxuICAgICAgICAgICAgc2hvd1NlbGVjdGVkU2hhcGVBY3Rpb25zKGFwcFN0YXRlLCBlbGVtZW50cykgPyAoXG4gICAgICAgICAgICA8U2VjdGlvbiBjbGFzc05hbWU9XCJBcHAtbW9iaWxlLW1lbnVcIiBoZWFkaW5nPVwic2VsZWN0ZWRTaGFwZUFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPFNlbGVjdGVkU2hhcGVBY3Rpb25zXG4gICAgICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgICAgIGVsZW1lbnRzPXtlbGVtZW50c31cbiAgICAgICAgICAgICAgICByZW5kZXJBY3Rpb249e2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9ufVxuICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2w9e2FwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cIkFwcC10b29sYmFyXCI+XG4gICAgICAgICAgICB7cmVuZGVyQXBwVG9vbGJhcigpfVxuICAgICAgICAgICAge2FwcFN0YXRlLnNjcm9sbGVkT3V0c2lkZSAmJiAhYXBwU3RhdGUub3Blbk1lbnUgJiYgKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2Nyb2xsLWJhY2stdG8tY29udGVudFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWxjdWxhdGVTY3JvbGxDZW50ZXIoZWxlbWVudHMsIGFwcFN0YXRlLCBjYW52YXMpLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KFwiYnV0dG9ucy5zY3JvbGxCYWNrVG9Db250ZW50XCIpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgIDwvSXNsYW5kPlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/MobileMenu.tsx\n");
|
|
2461
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MobileMenu\": () => (/* binding */ MobileMenu)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _Stack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Stack */ \"../../components/Stack.tsx\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../element */ \"../../element/index.ts\");\n/* harmony import */ var _FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedSideContainer */ \"../../components/FixedSideContainer.tsx\");\n/* harmony import */ var _Island__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Island */ \"../../components/Island.tsx\");\n/* harmony import */ var _HintViewer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./HintViewer */ \"../../components/HintViewer.tsx\");\n/* harmony import */ var _scene__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../scene */ \"../../scene/index.ts\");\n/* harmony import */ var _Actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Actions */ \"../../components/Actions.tsx\");\n/* harmony import */ var _Section__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Section */ \"../../components/Section.tsx\");\n/* harmony import */ var _CollabButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./CollabButton */ \"../../components/CollabButton.tsx\");\n/* harmony import */ var _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../scene/scrollbars */ \"../../scene/scrollbars.ts\");\n/* harmony import */ var _LockButton__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./LockButton */ \"../../components/LockButton.tsx\");\n/* harmony import */ var _UserList__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./UserList */ \"../../components/UserList.tsx\");\n/* harmony import */ var _BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./BackgroundPickerAndDarkModeToggle */ \"../../components/BackgroundPickerAndDarkModeToggle.tsx\");\n/* harmony import */ var _LibraryButton__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./LibraryButton */ \"../../components/LibraryButton.tsx\");\n/* harmony import */ var _PenModeButton__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./PenModeButton */ \"../../components/PenModeButton.tsx\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst MobileMenu = ({ appState, elements, libraryMenu, actionManager, renderJSONExportDialog, renderImageExportDialog, setAppState, onCollabButtonClick, onLockToggle, onPenModeToggle, canvas, isCollaborating, renderCustomFooter, showThemeBtn, onImageAction, renderTopRightUI, renderStats, }) => {\n const renderToolbar = () => {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_FixedSideContainer__WEBPACK_IMPORTED_MODULE_5__.FixedSideContainer, Object.assign({ side: \"top\", className: \"App-top-bar\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ heading: \"shapes\" }, { children: (heading) => ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4, align: \"center\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1, className: \"App-toolbar-container\" }, { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 1, className: \"App-toolbar\" }, { children: [heading, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Row, Object.assign({ gap: 1 }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.ShapesSwitcher, { appState: appState, canvas: canvas, activeTool: appState.activeTool, setAppState: setAppState, onImageAction: ({ pointerType }) => {\n onImageAction({\n insertOnCanvasDirectly: pointerType !== \"mouse\",\n });\n } }) }))] })), renderTopRightUI && renderTopRightUI(true, appState), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LockButton__WEBPACK_IMPORTED_MODULE_13__.LockButton, { checked: appState.activeTool.locked, onChange: onLockToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.lock\"), isMobile: true }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_LibraryButton__WEBPACK_IMPORTED_MODULE_16__.LibraryButton, { appState: appState, setAppState: setAppState, isMobile: true }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PenModeButton__WEBPACK_IMPORTED_MODULE_17__.PenModeButton, { checked: appState.penMode, onChange: onPenModeToggle, title: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"toolBar.penMode\"), isMobile: true, penDetected: appState.penDetected })] })), libraryMenu] }))) })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_HintViewer__WEBPACK_IMPORTED_MODULE_7__.HintViewer, { appState: appState, elements: elements, isMobile: true })] })));\n };\n const renderAppToolbar = () => {\n // Render eraser conditionally in mobile\n const showEraser = !appState.viewModeEnabled &&\n !appState.editingElement &&\n (0,_scene__WEBPACK_IMPORTED_MODULE_8__.getSelectedElements)(elements, appState).length === 0;\n if (appState.viewModeEnabled) {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: actionManager.renderAction(\"toggleCanvasMenu\") })));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", Object.assign({ className: \"App-toolbar-content\" }, { children: [actionManager.renderAction(\"toggleCanvasMenu\"), actionManager.renderAction(\"toggleEditMenu\"), actionManager.renderAction(\"undo\"), actionManager.renderAction(\"redo\"), showEraser && actionManager.renderAction(\"eraser\"), actionManager.renderAction(appState.multiElement ? \"finalize\" : \"duplicateSelection\"), actionManager.renderAction(\"deleteSelectedElements\")] })));\n };\n const renderCanvasActions = () => {\n if (appState.viewModeEnabled) {\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [renderJSONExportDialog(), renderImageExportDialog()] }));\n }\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [actionManager.renderAction(\"clearCanvas\"), actionManager.renderAction(\"loadScene\"), renderJSONExportDialog(), renderImageExportDialog(), onCollabButtonClick && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CollabButton__WEBPACK_IMPORTED_MODULE_11__[\"default\"], { isCollaborating: isCollaborating, collaboratorCount: appState.collaborators.size, onClick: onCollabButtonClick })), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_BackgroundPickerAndDarkModeToggle__WEBPACK_IMPORTED_MODULE_15__.BackgroundPickerAndDarkModeToggle, { actionManager: actionManager, appState: appState, setAppState: setAppState, showThemeBtn: showThemeBtn })] }));\n };\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { children: [!appState.viewModeEnabled && renderToolbar(), renderStats(), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"App-bottom-bar\", style: {\n marginBottom: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n marginLeft: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n marginRight: _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_WIDTH + _scene_scrollbars__WEBPACK_IMPORTED_MODULE_12__.SCROLLBAR_MARGIN * 2,\n } }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Island__WEBPACK_IMPORTED_MODULE_6__.Island, Object.assign({ padding: 0 }, { children: [appState.openMenu === \"canvas\" ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"canvasActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"div\", Object.assign({ className: \"panelColumn\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_Stack__WEBPACK_IMPORTED_MODULE_3__[\"default\"].Col, Object.assign({ gap: 4 }, { children: [renderCanvasActions(), renderCustomFooter === null || renderCustomFooter === void 0 ? void 0 : renderCustomFooter(true, appState), appState.collaborators.size > 0 && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"fieldset\", { children: [(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"legend\", { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"labels.collaborators\") }), (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_UserList__WEBPACK_IMPORTED_MODULE_14__.UserList, { mobile: true, collaborators: appState.collaborators, actionManager: actionManager })] }))] })) })) }))) : appState.openMenu === \"shape\" &&\n !appState.viewModeEnabled &&\n (0,_element__WEBPACK_IMPORTED_MODULE_4__.showSelectedShapeActions)(appState, elements) ? ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Section__WEBPACK_IMPORTED_MODULE_10__.Section, Object.assign({ className: \"App-mobile-menu\", heading: \"selectedShapeActions\" }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Actions__WEBPACK_IMPORTED_MODULE_9__.SelectedShapeActions, { appState: appState, elements: elements, renderAction: actionManager.renderAction, activeTool: appState.activeTool.type }) }))) : null, (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"footer\", Object.assign({ className: \"App-toolbar\" }, { children: [renderAppToolbar(), appState.scrolledOutside &&\n !appState.openMenu &&\n !appState.isLibraryOpen && ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"button\", Object.assign({ className: \"scroll-back-to-content\", onClick: () => {\n setAppState(Object.assign({}, (0,_scene__WEBPACK_IMPORTED_MODULE_8__.calculateScrollCenter)(elements, appState, canvas)));\n } }, { children: (0,_i18n__WEBPACK_IMPORTED_MODULE_2__.t)(\"buttons.scrollBackToContent\") })))] }))] })) }))] }));\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RSxDQUNYLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssT0FBTzs0QkFDL0IsQ0FBQyxRQUFRLENBQUMsZUFBZTs0QkFDekIsa0VBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyx1REFBQyw4Q0FBTyxrQkFBQyxTQUFTLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLHNCQUFzQixnQkFDakUsdURBQUMsMERBQW9CLElBQ25CLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWSxFQUN4QyxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQ3BDLElBQ00sQ0FDWCxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ1Isa0ZBQVEsU0FBUyxFQUFDLGFBQWEsaUJBQzVCLGdCQUFnQixFQUFFLEVBQ2xCLFFBQVEsQ0FBQyxlQUFlO29DQUN2QixDQUFDLFFBQVEsQ0FBQyxRQUFRO29DQUNsQixDQUFDLFFBQVEsQ0FBQyxhQUFhLElBQUksQ0FDekIsaUZBQ0UsU0FBUyxFQUFDLHdCQUF3QixFQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFO3dDQUNaLFdBQVcsbUJBQ04sNkRBQXFCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFDcEQsQ0FBQztvQ0FDTCxDQUFDLGdCQUVBLHdDQUFDLENBQUMsNkJBQTZCLENBQUMsSUFDMUIsQ0FDVixLQUNJLEtBQ0YsSUFDTCxJQUNMLENBQ0osQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uLi8uLi9jb21wb25lbnRzL01vYmlsZU1lbnUudHN4PzA4YzQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQXBwU3RhdGUgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IEFjdGlvbk1hbmFnZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9tYW5hZ2VyXCI7XG5pbXBvcnQgeyB0IH0gZnJvbSBcIi4uL2kxOG5cIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiLi9TdGFja1wiO1xuaW1wb3J0IHsgc2hvd1NlbGVjdGVkU2hhcGVBY3Rpb25zIH0gZnJvbSBcIi4uL2VsZW1lbnRcIjtcbmltcG9ydCB7IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudCB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVzXCI7XG5pbXBvcnQgeyBGaXhlZFNpZGVDb250YWluZXIgfSBmcm9tIFwiLi9GaXhlZFNpZGVDb250YWluZXJcIjtcbmltcG9ydCB7IElzbGFuZCB9IGZyb20gXCIuL0lzbGFuZFwiO1xuaW1wb3J0IHsgSGludFZpZXdlciB9IGZyb20gXCIuL0hpbnRWaWV3ZXJcIjtcbmltcG9ydCB7IGNhbGN1bGF0ZVNjcm9sbENlbnRlciwgZ2V0U2VsZWN0ZWRFbGVtZW50cyB9IGZyb20gXCIuLi9zY2VuZVwiO1xuaW1wb3J0IHsgU2VsZWN0ZWRTaGFwZUFjdGlvbnMsIFNoYXBlc1N3aXRjaGVyIH0gZnJvbSBcIi4vQWN0aW9uc1wiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuL1NlY3Rpb25cIjtcbmltcG9ydCBDb2xsYWJCdXR0b24gZnJvbSBcIi4vQ29sbGFiQnV0dG9uXCI7XG5pbXBvcnQgeyBTQ1JPTExCQVJfV0lEVEgsIFNDUk9MTEJBUl9NQVJHSU4gfSBmcm9tIFwiLi4vc2NlbmUvc2Nyb2xsYmFyc1wiO1xuaW1wb3J0IHsgTG9ja0J1dHRvbiB9IGZyb20gXCIuL0xvY2tCdXR0b25cIjtcbmltcG9ydCB7IFVzZXJMaXN0IH0gZnJvbSBcIi4vVXNlckxpc3RcIjtcbmltcG9ydCB7IEJhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZSB9IGZyb20gXCIuL0JhY2tncm91bmRQaWNrZXJBbmREYXJrTW9kZVRvZ2dsZVwiO1xuaW1wb3J0IHsgTGlicmFyeUJ1dHRvbiB9IGZyb20gXCIuL0xpYnJhcnlCdXR0b25cIjtcbmltcG9ydCB7IFBlbk1vZGVCdXR0b24gfSBmcm9tIFwiLi9QZW5Nb2RlQnV0dG9uXCI7XG5cbnR5cGUgTW9iaWxlTWVudVByb3BzID0ge1xuICBhcHBTdGF0ZTogQXBwU3RhdGU7XG4gIGFjdGlvbk1hbmFnZXI6IEFjdGlvbk1hbmFnZXI7XG4gIHJlbmRlckpTT05FeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVuZGVySW1hZ2VFeHBvcnREaWFsb2c6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2V0QXBwU3RhdGU6IFJlYWN0LkNvbXBvbmVudDxhbnksIEFwcFN0YXRlPltcInNldFN0YXRlXCJdO1xuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W107XG4gIGxpYnJhcnlNZW51OiBKU1guRWxlbWVudCB8IG51bGw7XG4gIG9uQ29sbGFiQnV0dG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkxvY2tUb2dnbGU6ICgpID0+IHZvaWQ7XG4gIG9uUGVuTW9kZVRvZ2dsZTogKCkgPT4gdm9pZDtcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw7XG4gIGlzQ29sbGFib3JhdGluZzogYm9vbGVhbjtcbiAgcmVuZGVyQ3VzdG9tRm9vdGVyPzogKFxuICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG4gIHNob3dUaGVtZUJ0bjogYm9vbGVhbjtcbiAgb25JbWFnZUFjdGlvbjogKGRhdGE6IHsgaW5zZXJ0T25DYW52YXNEaXJlY3RseTogYm9vbGVhbiB9KSA9PiB2b2lkO1xuICByZW5kZXJUb3BSaWdodFVJPzogKFxuICAgIGlzTW9iaWxlOiBib29sZWFuLFxuICAgIGFwcFN0YXRlOiBBcHBTdGF0ZSxcbiAgKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG4gIHJlbmRlclN0YXRzOiAoKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgTW9iaWxlTWVudSA9ICh7XG4gIGFwcFN0YXRlLFxuICBlbGVtZW50cyxcbiAgbGlicmFyeU1lbnUsXG4gIGFjdGlvbk1hbmFnZXIsXG4gIHJlbmRlckpTT05FeHBvcnREaWFsb2csXG4gIHJlbmRlckltYWdlRXhwb3J0RGlhbG9nLFxuICBzZXRBcHBTdGF0ZSxcbiAgb25Db2xsYWJCdXR0b25DbGljayxcbiAgb25Mb2NrVG9nZ2xlLFxuICBvblBlbk1vZGVUb2dnbGUsXG4gIGNhbnZhcyxcbiAgaXNDb2xsYWJvcmF0aW5nLFxuICByZW5kZXJDdXN0b21Gb290ZXIsXG4gIHNob3dUaGVtZUJ0bixcbiAgb25JbWFnZUFjdGlvbixcbiAgcmVuZGVyVG9wUmlnaHRVSSxcbiAgcmVuZGVyU3RhdHMsXG59OiBNb2JpbGVNZW51UHJvcHMpID0+IHtcbiAgY29uc3QgcmVuZGVyVG9vbGJhciA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgPEZpeGVkU2lkZUNvbnRhaW5lciBzaWRlPVwidG9wXCIgY2xhc3NOYW1lPVwiQXBwLXRvcC1iYXJcIj5cbiAgICAgICAgPFNlY3Rpb24gaGVhZGluZz1cInNoYXBlc1wiPlxuICAgICAgICAgIHsoaGVhZGluZykgPT4gKFxuICAgICAgICAgICAgPFN0YWNrLkNvbCBnYXA9ezR9IGFsaWduPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfSBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezF9IGNsYXNzTmFtZT1cIkFwcC10b29sYmFyXCI+XG4gICAgICAgICAgICAgICAgICB7aGVhZGluZ31cbiAgICAgICAgICAgICAgICAgIDxTdGFjay5Sb3cgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICAgICAgPFNoYXBlc1N3aXRjaGVyXG4gICAgICAgICAgICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgICAgIGNhbnZhcz17Y2FudmFzfVxuICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2w9e2FwcFN0YXRlLmFjdGl2ZVRvb2x9XG4gICAgICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgICAgIG9uSW1hZ2VBY3Rpb249eyh7IHBvaW50ZXJUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSW1hZ2VBY3Rpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRPbkNhbnZhc0RpcmVjdGx5OiBwb2ludGVyVHlwZSAhPT0gXCJtb3VzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvU3RhY2suUm93PlxuICAgICAgICAgICAgICAgIDwvSXNsYW5kPlxuICAgICAgICAgICAgICAgIHtyZW5kZXJUb3BSaWdodFVJICYmIHJlbmRlclRvcFJpZ2h0VUkodHJ1ZSwgYXBwU3RhdGUpfVxuICAgICAgICAgICAgICAgIDxMb2NrQnV0dG9uXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXthcHBTdGF0ZS5hY3RpdmVUb29sLmxvY2tlZH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkxvY2tUb2dnbGV9XG4gICAgICAgICAgICAgICAgICB0aXRsZT17dChcInRvb2xCYXIubG9ja1wiKX1cbiAgICAgICAgICAgICAgICAgIGlzTW9iaWxlXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8TGlicmFyeUJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXBwU3RhdGU9e2FwcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgc2V0QXBwU3RhdGU9e3NldEFwcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgaXNNb2JpbGVcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxQZW5Nb2RlQnV0dG9uXG4gICAgICAgICAgICAgICAgICBjaGVja2VkPXthcHBTdGF0ZS5wZW5Nb2RlfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uUGVuTW9kZVRvZ2dsZX1cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXt0KFwidG9vbEJhci5wZW5Nb2RlXCIpfVxuICAgICAgICAgICAgICAgICAgaXNNb2JpbGVcbiAgICAgICAgICAgICAgICAgIHBlbkRldGVjdGVkPXthcHBTdGF0ZS5wZW5EZXRlY3RlZH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0YWNrLlJvdz5cbiAgICAgICAgICAgICAge2xpYnJhcnlNZW51fVxuICAgICAgICAgICAgPC9TdGFjay5Db2w+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICA8SGludFZpZXdlciBhcHBTdGF0ZT17YXBwU3RhdGV9IGVsZW1lbnRzPXtlbGVtZW50c30gaXNNb2JpbGU9e3RydWV9IC8+XG4gICAgICA8L0ZpeGVkU2lkZUNvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckFwcFRvb2xiYXIgPSAoKSA9PiB7XG4gICAgLy8gUmVuZGVyIGVyYXNlciBjb25kaXRpb25hbGx5IGluIG1vYmlsZVxuICAgIGNvbnN0IHNob3dFcmFzZXIgPVxuICAgICAgIWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCAmJlxuICAgICAgIWFwcFN0YXRlLmVkaXRpbmdFbGVtZW50ICYmXG4gICAgICBnZXRTZWxlY3RlZEVsZW1lbnRzKGVsZW1lbnRzLCBhcHBTdGF0ZSkubGVuZ3RoID09PSAwO1xuXG4gICAgaWYgKGFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJBcHAtdG9vbGJhci1jb250ZW50XCI+XG4gICAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidG9nZ2xlQ2FudmFzTWVudVwiKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIkFwcC10b29sYmFyLWNvbnRlbnRcIj5cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidG9nZ2xlQ2FudmFzTWVudVwiKX1cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidG9nZ2xlRWRpdE1lbnVcIil9XG5cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwidW5kb1wiKX1cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwicmVkb1wiKX1cbiAgICAgICAge3Nob3dFcmFzZXIgJiYgYWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJlcmFzZXJcIil9XG5cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFxuICAgICAgICAgIGFwcFN0YXRlLm11bHRpRWxlbWVudCA/IFwiZmluYWxpemVcIiA6IFwiZHVwbGljYXRlU2VsZWN0aW9uXCIsXG4gICAgICAgICl9XG4gICAgICAgIHthY3Rpb25NYW5hZ2VyLnJlbmRlckFjdGlvbihcImRlbGV0ZVNlbGVjdGVkRWxlbWVudHNcIil9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHJlbmRlckNhbnZhc0FjdGlvbnMgPSAoKSA9PiB7XG4gICAgaWYgKGFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7cmVuZGVySlNPTkV4cG9ydERpYWxvZygpfVxuICAgICAgICAgIHtyZW5kZXJJbWFnZUV4cG9ydERpYWxvZygpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb24oXCJjbGVhckNhbnZhc1wiKX1cbiAgICAgICAge2FjdGlvbk1hbmFnZXIucmVuZGVyQWN0aW9uKFwibG9hZFNjZW5lXCIpfVxuICAgICAgICB7cmVuZGVySlNPTkV4cG9ydERpYWxvZygpfVxuICAgICAgICB7cmVuZGVySW1hZ2VFeHBvcnREaWFsb2coKX1cbiAgICAgICAge29uQ29sbGFiQnV0dG9uQ2xpY2sgJiYgKFxuICAgICAgICAgIDxDb2xsYWJCdXR0b25cbiAgICAgICAgICAgIGlzQ29sbGFib3JhdGluZz17aXNDb2xsYWJvcmF0aW5nfVxuICAgICAgICAgICAgY29sbGFib3JhdG9yQ291bnQ9e2FwcFN0YXRlLmNvbGxhYm9yYXRvcnMuc2l6ZX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uQ29sbGFiQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge1xuICAgICAgICAgIDxCYWNrZ3JvdW5kUGlja2VyQW5kRGFya01vZGVUb2dnbGVcbiAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICBzZXRBcHBTdGF0ZT17c2V0QXBwU3RhdGV9XG4gICAgICAgICAgICBzaG93VGhlbWVCdG49e3Nob3dUaGVtZUJ0bn1cbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7IWFwcFN0YXRlLnZpZXdNb2RlRW5hYmxlZCAmJiByZW5kZXJUb29sYmFyKCl9XG4gICAgICB7cmVuZGVyU3RhdHMoKX1cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwiQXBwLWJvdHRvbS1iYXJcIlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIG1hcmdpbkJvdHRvbTogU0NST0xMQkFSX1dJRFRIICsgU0NST0xMQkFSX01BUkdJTiAqIDIsXG4gICAgICAgICAgbWFyZ2luTGVmdDogU0NST0xMQkFSX1dJRFRIICsgU0NST0xMQkFSX01BUkdJTiAqIDIsXG4gICAgICAgICAgbWFyZ2luUmlnaHQ6IFNDUk9MTEJBUl9XSURUSCArIFNDUk9MTEJBUl9NQVJHSU4gKiAyLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8SXNsYW5kIHBhZGRpbmc9ezB9PlxuICAgICAgICAgIHthcHBTdGF0ZS5vcGVuTWVudSA9PT0gXCJjYW52YXNcIiA/IChcbiAgICAgICAgICAgIDxTZWN0aW9uIGNsYXNzTmFtZT1cIkFwcC1tb2JpbGUtbWVudVwiIGhlYWRpbmc9XCJjYW52YXNBY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGFuZWxDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8U3RhY2suQ29sIGdhcD17NH0+XG4gICAgICAgICAgICAgICAgICB7cmVuZGVyQ2FudmFzQWN0aW9ucygpfVxuICAgICAgICAgICAgICAgICAge3JlbmRlckN1c3RvbUZvb3Rlcj8uKHRydWUsIGFwcFN0YXRlKX1cbiAgICAgICAgICAgICAgICAgIHthcHBTdGF0ZS5jb2xsYWJvcmF0b3JzLnNpemUgPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgICAgICAgICAgICAgIDxsZWdlbmQ+e3QoXCJsYWJlbHMuY29sbGFib3JhdG9yc1wiKX08L2xlZ2VuZD5cbiAgICAgICAgICAgICAgICAgICAgICA8VXNlckxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgY29sbGFib3JhdG9ycz17YXBwU3RhdGUuY29sbGFib3JhdG9yc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbk1hbmFnZXI9e2FjdGlvbk1hbmFnZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdGFjay5Db2w+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgICkgOiBhcHBTdGF0ZS5vcGVuTWVudSA9PT0gXCJzaGFwZVwiICYmXG4gICAgICAgICAgICAhYXBwU3RhdGUudmlld01vZGVFbmFibGVkICYmXG4gICAgICAgICAgICBzaG93U2VsZWN0ZWRTaGFwZUFjdGlvbnMoYXBwU3RhdGUsIGVsZW1lbnRzKSA/IChcbiAgICAgICAgICAgIDxTZWN0aW9uIGNsYXNzTmFtZT1cIkFwcC1tb2JpbGUtbWVudVwiIGhlYWRpbmc9XCJzZWxlY3RlZFNoYXBlQWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8U2VsZWN0ZWRTaGFwZUFjdGlvbnNcbiAgICAgICAgICAgICAgICBhcHBTdGF0ZT17YXBwU3RhdGV9XG4gICAgICAgICAgICAgICAgZWxlbWVudHM9e2VsZW1lbnRzfVxuICAgICAgICAgICAgICAgIHJlbmRlckFjdGlvbj17YWN0aW9uTWFuYWdlci5yZW5kZXJBY3Rpb259XG4gICAgICAgICAgICAgICAgYWN0aXZlVG9vbD17YXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxmb290ZXIgY2xhc3NOYW1lPVwiQXBwLXRvb2xiYXJcIj5cbiAgICAgICAgICAgIHtyZW5kZXJBcHBUb29sYmFyKCl9XG4gICAgICAgICAgICB7YXBwU3RhdGUuc2Nyb2xsZWRPdXRzaWRlICYmXG4gICAgICAgICAgICAgICFhcHBTdGF0ZS5vcGVuTWVudSAmJlxuICAgICAgICAgICAgICAhYXBwU3RhdGUuaXNMaWJyYXJ5T3BlbiAmJiAoXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2Nyb2xsLWJhY2stdG8tY29udGVudFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNldEFwcFN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5jYWxjdWxhdGVTY3JvbGxDZW50ZXIoZWxlbWVudHMsIGFwcFN0YXRlLCBjYW52YXMpLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3QoXCJidXR0b25zLnNjcm9sbEJhY2tUb0NvbnRlbnRcIil9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgIDwvSXNsYW5kPlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../components/MobileMenu.tsx\n");
|
|
2462
2462
|
|
|
2463
2463
|
/***/ }),
|
|
2464
2464
|
|
|
@@ -3151,7 +3151,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3151
3151
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3152
3152
|
|
|
3153
3153
|
"use strict";
|
|
3154
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Excalidraw\": () => (/* binding */ Excalidraw),\n/* harmony export */ \"FONT_FAMILY\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.FONT_FAMILY),\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.MIME_TYPES),\n/* harmony export */ \"THEME\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.THEME),\n/* harmony export */ \"bumpVersion\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.bumpVersion),\n/* harmony export */ \"defaultLang\": () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_6__.defaultLang),\n/* harmony export */ \"exportToBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.getFreeDrawSvgPath),\n/* harmony export */ \"getNonDeletedElements\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.getNonDeletedElements),\n/* harmony export */ \"getSceneVersion\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.getSceneVersion),\n/* harmony export */ \"isInvisiblySmallElement\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.isInvisiblySmallElement),\n/* harmony export */ \"isLinearElement\": () => (/* reexport safe */ _element_typeChecks__WEBPACK_IMPORTED_MODULE_13__.isLinearElement),\n/* harmony export */ \"languages\": () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_6__.languages),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.mergeLibraryItems),\n/* harmony export */ \"mutateElement\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.mutateElement),\n/* harmony export */ \"newElementWith\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.newElementWith),\n/* harmony export */ \"parseLibraryTokensFromUrl\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_15__.parseLibraryTokensFromUrl),\n/* harmony export */ \"restore\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restore),\n/* harmony export */ \"restoreAppState\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreAppState),\n/* harmony export */ \"restoreElements\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreElements),\n/* harmony export */ \"restoreLibraryItems\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreLibraryItems),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_16__.sceneCoordsToViewportCoords),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.serializeLibraryAsJSON),\n/* harmony export */ \"useHandleLibrary\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_15__.useHandleLibrary),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_16__.viewportCoordsToSceneCoords)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_InitializeApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/InitializeApp */ \"../../components/InitializeApp.tsx\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _css_app_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../css/app.scss */ \"../../css/app.scss\");\n/* harmony import */ var _css_app_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_css_app_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../css/styles.scss */ \"../../css/styles.scss\");\n/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! jotai */ \"../../../node_modules/jotai/esm/index.js\");\n/* harmony import */ var _jotai__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../jotai */ \"../../jotai.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../element */ \"../../element/index.ts\");\n/* harmony import */ var _data_restore__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../data/restore */ \"../../data/restore.ts\");\n/* harmony import */ var _packages_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../packages/utils */ \"../utils.ts\");\n/* harmony import */ var _element_typeChecks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../element/typeChecks */ \"../../element/typeChecks.ts\");\n/* harmony import */ var _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../element/mutateElement */ \"../../element/mutateElement.ts\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../data/library */ \"../../data/library.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../utils */ \"../../utils.ts\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\nconst ExcalidrawBase = (props) => {\n var _a, _b, _c;\n const { onChange, initialData, excalidrawRef, onCollabButtonClick, isCollaborating = false, onPointerUpdate, renderTopRightUI, renderFooter, langCode = _i18n__WEBPACK_IMPORTED_MODULE_6__.defaultLang.code, viewModeEnabled, zenModeEnabled, gridModeEnabled, libraryReturnUrl, theme, name, renderCustomStats, onPaste, detectScroll = true, handleKeyboardGlobally = false, onLibraryChange, autoFocus = false, generateIdForFile, onLinkOpen, onPointerDown, onScrollChange, } = props;\n const canvasActions = (_a = props.UIOptions) === null || _a === void 0 ? void 0 : _a.canvasActions;\n const UIOptions = Object.assign(Object.assign({}, props.UIOptions), { canvasActions: Object.assign(Object.assign({}, _constants__WEBPACK_IMPORTED_MODULE_7__.DEFAULT_UI_OPTIONS.canvasActions), canvasActions) });\n if (canvasActions === null || canvasActions === void 0 ? void 0 : canvasActions.export) {\n UIOptions.canvasActions.export.saveFileToDisk =\n (_c = (_b = canvasActions.export) === null || _b === void 0 ? void 0 : _b.saveFileToDisk) !== null && _c !== void 0 ? _c : _constants__WEBPACK_IMPORTED_MODULE_7__.DEFAULT_UI_OPTIONS.canvasActions[\"export\"].saveFileToDisk;\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n // Block pinch-zooming on iOS outside of the content area\n const handleTouchMove = (event) => {\n // @ts-ignore\n if (typeof event.scale === \"number\" && event.scale !== 1) {\n event.preventDefault();\n }\n };\n document.addEventListener(\"touchmove\", handleTouchMove, {\n passive: false,\n });\n return () => {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n };\n }, []);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_InitializeApp__WEBPACK_IMPORTED_MODULE_2__.InitializeApp, Object.assign({ langCode: langCode }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(jotai__WEBPACK_IMPORTED_MODULE_9__.Provider, Object.assign({ unstable_createStore: () => _jotai__WEBPACK_IMPORTED_MODULE_8__.jotaiStore, scope: _jotai__WEBPACK_IMPORTED_MODULE_8__.jotaiScope }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_App__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { onChange: onChange, initialData: initialData, excalidrawRef: excalidrawRef, onCollabButtonClick: onCollabButtonClick, isCollaborating: isCollaborating, onPointerUpdate: onPointerUpdate, renderTopRightUI: renderTopRightUI, renderFooter: renderFooter, langCode: langCode, viewModeEnabled: viewModeEnabled, zenModeEnabled: zenModeEnabled, gridModeEnabled: gridModeEnabled, libraryReturnUrl: libraryReturnUrl, theme: theme, name: name, renderCustomStats: renderCustomStats, UIOptions: UIOptions, onPaste: onPaste, detectScroll: detectScroll, handleKeyboardGlobally: handleKeyboardGlobally, onLibraryChange: onLibraryChange, autoFocus: autoFocus, generateIdForFile: generateIdForFile, onLinkOpen: onLinkOpen, onPointerDown: onPointerDown, onScrollChange: onScrollChange }) })) })));\n};\nconst areEqual = (prevProps, nextProps) => {\n const { initialData: prevInitialData, UIOptions: prevUIOptions = {} } = prevProps, prev = __rest(prevProps, [\"initialData\", \"UIOptions\"]);\n const { initialData: nextInitialData, UIOptions: nextUIOptions = {} } = nextProps, next = __rest(nextProps, [\"initialData\", \"UIOptions\"]);\n // comparing UIOptions\n const prevUIOptionsKeys = Object.keys(prevUIOptions);\n const nextUIOptionsKeys = Object.keys(nextUIOptions);\n if (prevUIOptionsKeys.length !== nextUIOptionsKeys.length) {\n return false;\n }\n const isUIOptionsSame = prevUIOptionsKeys.every((key) => {\n if (key === \"canvasActions\") {\n const canvasOptionKeys = Object.keys(prevUIOptions.canvasActions);\n canvasOptionKeys.every((key) => {\n var _a, _b, _c, _d;\n if (key === \"export\" &&\n ((_a = prevUIOptions === null || prevUIOptions === void 0 ? void 0 : prevUIOptions.canvasActions) === null || _a === void 0 ? void 0 : _a.export) &&\n ((_b = nextUIOptions === null || nextUIOptions === void 0 ? void 0 : nextUIOptions.canvasActions) === null || _b === void 0 ? void 0 : _b.export)) {\n return (prevUIOptions.canvasActions.export.saveFileToDisk ===\n nextUIOptions.canvasActions.export.saveFileToDisk);\n }\n return (((_c = prevUIOptions === null || prevUIOptions === void 0 ? void 0 : prevUIOptions.canvasActions) === null || _c === void 0 ? void 0 : _c[key]) ===\n ((_d = nextUIOptions === null || nextUIOptions === void 0 ? void 0 : nextUIOptions.canvasActions) === null || _d === void 0 ? void 0 : _d[key]));\n });\n }\n return true;\n });\n const prevKeys = Object.keys(prevProps);\n const nextKeys = Object.keys(nextProps);\n return (isUIOptionsSame &&\n prevKeys.length === nextKeys.length &&\n prevKeys.every((key) => prev[key] === next[key]));\n};\nconst forwardedRefComp = (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExcalidrawBase, Object.assign({}, props, { excalidrawRef: ref })));\nconst Excalidraw = react__WEBPACK_IMPORTED_MODULE_1___default().memo(forwardedRefComp, areEqual);\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsQ0FBQztBQUU5RCxNQUFNLFVBQVUsR0FBRyxpREFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBTTFDO0FBQzZCO0FBTXhCO0FBYUU7QUFDNkI7QUFFTTtBQU01QjtBQUtUO0FBS1AiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9pbmRleC50c3g/ZmUxYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IEluaXRpYWxpemVBcHAgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9Jbml0aWFsaXplQXBwXCI7XG5pbXBvcnQgQXBwIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0FwcFwiO1xuXG5pbXBvcnQgXCIuLi8uLi9jc3MvYXBwLnNjc3NcIjtcbmltcG9ydCBcIi4uLy4uL2Nzcy9zdHlsZXMuc2Nzc1wiO1xuXG5pbXBvcnQgeyBBcHBQcm9wcywgRXhjYWxpZHJhd0FQSVJlZlZhbHVlLCBFeGNhbGlkcmF3UHJvcHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IGRlZmF1bHRMYW5nIH0gZnJvbSBcIi4uLy4uL2kxOG5cIjtcbmltcG9ydCB7IERFRkFVTFRfVUlfT1BUSU9OUyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcImpvdGFpXCI7XG5pbXBvcnQgeyBqb3RhaVNjb3BlLCBqb3RhaVN0b3JlIH0gZnJvbSBcIi4uLy4uL2pvdGFpXCI7XG5cbmNvbnN0IEV4Y2FsaWRyYXdCYXNlID0gKHByb3BzOiBFeGNhbGlkcmF3UHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIG9uQ2hhbmdlLFxuICAgIGluaXRpYWxEYXRhLFxuICAgIGV4Y2FsaWRyYXdSZWYsXG4gICAgb25Db2xsYWJCdXR0b25DbGljayxcbiAgICBpc0NvbGxhYm9yYXRpbmcgPSBmYWxzZSxcbiAgICBvblBvaW50ZXJVcGRhdGUsXG4gICAgcmVuZGVyVG9wUmlnaHRVSSxcbiAgICByZW5kZXJGb290ZXIsXG4gICAgbGFuZ0NvZGUgPSBkZWZhdWx0TGFuZy5jb2RlLFxuICAgIHZpZXdNb2RlRW5hYmxlZCxcbiAgICB6ZW5Nb2RlRW5hYmxlZCxcbiAgICBncmlkTW9kZUVuYWJsZWQsXG4gICAgbGlicmFyeVJldHVyblVybCxcbiAgICB0aGVtZSxcbiAgICBuYW1lLFxuICAgIHJlbmRlckN1c3RvbVN0YXRzLFxuICAgIG9uUGFzdGUsXG4gICAgZGV0ZWN0U2Nyb2xsID0gdHJ1ZSxcbiAgICBoYW5kbGVLZXlib2FyZEdsb2JhbGx5ID0gZmFsc2UsXG4gICAgb25MaWJyYXJ5Q2hhbmdlLFxuICAgIGF1dG9Gb2N1cyA9IGZhbHNlLFxuICAgIGdlbmVyYXRlSWRGb3JGaWxlLFxuICAgIG9uTGlua09wZW4sXG4gICAgb25Qb2ludGVyRG93bixcbiAgICBvblNjcm9sbENoYW5nZSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IGNhbnZhc0FjdGlvbnMgPSBwcm9wcy5VSU9wdGlvbnM/LmNhbnZhc0FjdGlvbnM7XG5cbiAgY29uc3QgVUlPcHRpb25zOiBBcHBQcm9wc1tcIlVJT3B0aW9uc1wiXSA9IHtcbiAgICAuLi5wcm9wcy5VSU9wdGlvbnMsXG4gICAgY2FudmFzQWN0aW9uczoge1xuICAgICAgLi4uREVGQVVMVF9VSV9PUFRJT05TLmNhbnZhc0FjdGlvbnMsXG4gICAgICAuLi5jYW52YXNBY3Rpb25zLFxuICAgIH0sXG4gIH07XG5cbiAgaWYgKGNhbnZhc0FjdGlvbnM/LmV4cG9ydCkge1xuICAgIFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlzayA9XG4gICAgICBjYW52YXNBY3Rpb25zLmV4cG9ydD8uc2F2ZUZpbGVUb0Rpc2sgPz9cbiAgICAgIERFRkFVTFRfVUlfT1BUSU9OUy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlzaztcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gQmxvY2sgcGluY2gtem9vbWluZyBvbiBpT1Mgb3V0c2lkZSBvZiB0aGUgY29udGVudCBhcmVhXG4gICAgY29uc3QgaGFuZGxlVG91Y2hNb3ZlID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBpZiAodHlwZW9mIGV2ZW50LnNjYWxlID09PSBcIm51bWJlclwiICYmIGV2ZW50LnNjYWxlICE9PSAxKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgaGFuZGxlVG91Y2hNb3ZlLCB7XG4gICAgICBwYXNzaXZlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIGhhbmRsZVRvdWNoTW92ZSk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPEluaXRpYWxpemVBcHAgbGFuZ0NvZGU9e2xhbmdDb2RlfT5cbiAgICAgIDxQcm92aWRlciB1bnN0YWJsZV9jcmVhdGVTdG9yZT17KCkgPT4gam90YWlTdG9yZX0gc2NvcGU9e2pvdGFpU2NvcGV9PlxuICAgICAgICA8QXBwXG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIGluaXRpYWxEYXRhPXtpbml0aWFsRGF0YX1cbiAgICAgICAgICBleGNhbGlkcmF3UmVmPXtleGNhbGlkcmF3UmVmfVxuICAgICAgICAgIG9uQ29sbGFiQnV0dG9uQ2xpY2s9e29uQ29sbGFiQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgaXNDb2xsYWJvcmF0aW5nPXtpc0NvbGxhYm9yYXRpbmd9XG4gICAgICAgICAgb25Qb2ludGVyVXBkYXRlPXtvblBvaW50ZXJVcGRhdGV9XG4gICAgICAgICAgcmVuZGVyVG9wUmlnaHRVST17cmVuZGVyVG9wUmlnaHRVSX1cbiAgICAgICAgICByZW5kZXJGb290ZXI9e3JlbmRlckZvb3Rlcn1cbiAgICAgICAgICBsYW5nQ29kZT17bGFuZ0NvZGV9XG4gICAgICAgICAgdmlld01vZGVFbmFibGVkPXt2aWV3TW9kZUVuYWJsZWR9XG4gICAgICAgICAgemVuTW9kZUVuYWJsZWQ9e3plbk1vZGVFbmFibGVkfVxuICAgICAgICAgIGdyaWRNb2RlRW5hYmxlZD17Z3JpZE1vZGVFbmFibGVkfVxuICAgICAgICAgIGxpYnJhcnlSZXR1cm5Vcmw9e2xpYnJhcnlSZXR1cm5Vcmx9XG4gICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgcmVuZGVyQ3VzdG9tU3RhdHM9e3JlbmRlckN1c3RvbVN0YXRzfVxuICAgICAgICAgIFVJT3B0aW9ucz17VUlPcHRpb25zfVxuICAgICAgICAgIG9uUGFzdGU9e29uUGFzdGV9XG4gICAgICAgICAgZGV0ZWN0U2Nyb2xsPXtkZXRlY3RTY3JvbGx9XG4gICAgICAgICAgaGFuZGxlS2V5Ym9hcmRHbG9iYWxseT17aGFuZGxlS2V5Ym9hcmRHbG9iYWxseX1cbiAgICAgICAgICBvbkxpYnJhcnlDaGFuZ2U9e29uTGlicmFyeUNoYW5nZX1cbiAgICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cbiAgICAgICAgICBnZW5lcmF0ZUlkRm9yRmlsZT17Z2VuZXJhdGVJZEZvckZpbGV9XG4gICAgICAgICAgb25MaW5rT3Blbj17b25MaW5rT3Blbn1cbiAgICAgICAgICBvblBvaW50ZXJEb3duPXtvblBvaW50ZXJEb3dufVxuICAgICAgICAgIG9uU2Nyb2xsQ2hhbmdlPXtvblNjcm9sbENoYW5nZX1cbiAgICAgICAgLz5cbiAgICAgIDwvUHJvdmlkZXI+XG4gICAgPC9Jbml0aWFsaXplQXBwPlxuICApO1xufTtcblxudHlwZSBQdWJsaWNFeGNhbGlkcmF3UHJvcHMgPSBPbWl0PEV4Y2FsaWRyYXdQcm9wcywgXCJmb3J3YXJkZWRSZWZcIj47XG5cbmNvbnN0IGFyZUVxdWFsID0gKFxuICBwcmV2UHJvcHM6IFB1YmxpY0V4Y2FsaWRyYXdQcm9wcyxcbiAgbmV4dFByb3BzOiBQdWJsaWNFeGNhbGlkcmF3UHJvcHMsXG4pID0+IHtcbiAgY29uc3Qge1xuICAgIGluaXRpYWxEYXRhOiBwcmV2SW5pdGlhbERhdGEsXG4gICAgVUlPcHRpb25zOiBwcmV2VUlPcHRpb25zID0ge30sXG4gICAgLi4ucHJldlxuICB9ID0gcHJldlByb3BzO1xuICBjb25zdCB7XG4gICAgaW5pdGlhbERhdGE6IG5leHRJbml0aWFsRGF0YSxcbiAgICBVSU9wdGlvbnM6IG5leHRVSU9wdGlvbnMgPSB7fSxcbiAgICAuLi5uZXh0XG4gIH0gPSBuZXh0UHJvcHM7XG5cbiAgLy8gY29tcGFyaW5nIFVJT3B0aW9uc1xuICBjb25zdCBwcmV2VUlPcHRpb25zS2V5cyA9IE9iamVjdC5rZXlzKHByZXZVSU9wdGlvbnMpIGFzIChrZXlvZiBQYXJ0aWFsPFxuICAgIHR5cGVvZiBERUZBVUxUX1VJX09QVElPTlNcbiAgPilbXTtcbiAgY29uc3QgbmV4dFVJT3B0aW9uc0tleXMgPSBPYmplY3Qua2V5cyhuZXh0VUlPcHRpb25zKSBhcyAoa2V5b2YgUGFydGlhbDxcbiAgICB0eXBlb2YgREVGQVVMVF9VSV9PUFRJT05TXG4gID4pW107XG5cbiAgaWYgKHByZXZVSU9wdGlvbnNLZXlzLmxlbmd0aCAhPT0gbmV4dFVJT3B0aW9uc0tleXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgaXNVSU9wdGlvbnNTYW1lID0gcHJldlVJT3B0aW9uc0tleXMuZXZlcnkoKGtleSkgPT4ge1xuICAgIGlmIChrZXkgPT09IFwiY2FudmFzQWN0aW9uc1wiKSB7XG4gICAgICBjb25zdCBjYW52YXNPcHRpb25LZXlzID0gT2JqZWN0LmtleXMoXG4gICAgICAgIHByZXZVSU9wdGlvbnMuY2FudmFzQWN0aW9ucyEsXG4gICAgICApIGFzIChrZXlvZiBQYXJ0aWFsPHR5cGVvZiBERUZBVUxUX1VJX09QVElPTlMuY2FudmFzQWN0aW9ucz4pW107XG4gICAgICBjYW52YXNPcHRpb25LZXlzLmV2ZXJ5KChrZXkpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSA9PT0gXCJleHBvcnRcIiAmJlxuICAgICAgICAgIHByZXZVSU9wdGlvbnM/LmNhbnZhc0FjdGlvbnM/LmV4cG9ydCAmJlxuICAgICAgICAgIG5leHRVSU9wdGlvbnM/LmNhbnZhc0FjdGlvbnM/LmV4cG9ydFxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHJldlVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlzayA9PT1cbiAgICAgICAgICAgIG5leHRVSU9wdGlvbnMuY2FudmFzQWN0aW9ucy5leHBvcnQuc2F2ZUZpbGVUb0Rpc2tcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcHJldlVJT3B0aW9ucz8uY2FudmFzQWN0aW9ucz8uW2tleV0gPT09XG4gICAgICAgICAgbmV4dFVJT3B0aW9ucz8uY2FudmFzQWN0aW9ucz8uW2tleV1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgY29uc3QgcHJldktleXMgPSBPYmplY3Qua2V5cyhwcmV2UHJvcHMpIGFzIChrZXlvZiB0eXBlb2YgcHJldilbXTtcbiAgY29uc3QgbmV4dEtleXMgPSBPYmplY3Qua2V5cyhuZXh0UHJvcHMpIGFzIChrZXlvZiB0eXBlb2YgbmV4dClbXTtcbiAgcmV0dXJuIChcbiAgICBpc1VJT3B0aW9uc1NhbWUgJiZcbiAgICBwcmV2S2V5cy5sZW5ndGggPT09IG5leHRLZXlzLmxlbmd0aCAmJlxuICAgIHByZXZLZXlzLmV2ZXJ5KChrZXkpID0+IHByZXZba2V5XSA9PT0gbmV4dFtrZXldKVxuICApO1xufTtcblxuY29uc3QgZm9yd2FyZGVkUmVmQ29tcCA9IGZvcndhcmRSZWY8XG4gIEV4Y2FsaWRyYXdBUElSZWZWYWx1ZSxcbiAgUHVibGljRXhjYWxpZHJhd1Byb3BzXG4+KChwcm9wcywgcmVmKSA9PiA8RXhjYWxpZHJhd0Jhc2Ugey4uLnByb3BzfSBleGNhbGlkcmF3UmVmPXtyZWZ9IC8+KTtcblxuZXhwb3J0IGNvbnN0IEV4Y2FsaWRyYXcgPSBSZWFjdC5tZW1vKGZvcndhcmRlZFJlZkNvbXAsIGFyZUVxdWFsKTtcblxuZXhwb3J0IHtcbiAgZ2V0U2NlbmVWZXJzaW9uLFxuICBpc0ludmlzaWJseVNtYWxsRWxlbWVudCxcbiAgZ2V0Tm9uRGVsZXRlZEVsZW1lbnRzLFxufSBmcm9tIFwiLi4vLi4vZWxlbWVudFwiO1xuZXhwb3J0IHsgZGVmYXVsdExhbmcsIGxhbmd1YWdlcyB9IGZyb20gXCIuLi8uLi9pMThuXCI7XG5leHBvcnQge1xuICByZXN0b3JlLFxuICByZXN0b3JlQXBwU3RhdGUsXG4gIHJlc3RvcmVFbGVtZW50cyxcbiAgcmVzdG9yZUxpYnJhcnlJdGVtcyxcbn0gZnJvbSBcIi4uLy4uL2RhdGEvcmVzdG9yZVwiO1xuZXhwb3J0IHtcbiAgZXhwb3J0VG9DYW52YXMsXG4gIGV4cG9ydFRvQmxvYixcbiAgZXhwb3J0VG9TdmcsXG4gIHNlcmlhbGl6ZUFzSlNPTixcbiAgc2VyaWFsaXplTGlicmFyeUFzSlNPTixcbiAgbG9hZExpYnJhcnlGcm9tQmxvYixcbiAgbG9hZEZyb21CbG9iLFxuICBsb2FkU2NlbmVPckxpYnJhcnlGcm9tQmxvYixcbiAgZ2V0RnJlZURyYXdTdmdQYXRoLFxuICBleHBvcnRUb0NsaXBib2FyZCxcbiAgbWVyZ2VMaWJyYXJ5SXRlbXMsXG59IGZyb20gXCIuLi8uLi9wYWNrYWdlcy91dGlsc1wiO1xuZXhwb3J0IHsgaXNMaW5lYXJFbGVtZW50IH0gZnJvbSBcIi4uLy4uL2VsZW1lbnQvdHlwZUNoZWNrc1wiO1xuXG5leHBvcnQgeyBGT05UX0ZBTUlMWSwgVEhFTUUsIE1JTUVfVFlQRVMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCB7XG4gIG11dGF0ZUVsZW1lbnQsXG4gIG5ld0VsZW1lbnRXaXRoLFxuICBidW1wVmVyc2lvbixcbn0gZnJvbSBcIi4uLy4uL2VsZW1lbnQvbXV0YXRlRWxlbWVudFwiO1xuXG5leHBvcnQge1xuICBwYXJzZUxpYnJhcnlUb2tlbnNGcm9tVXJsLFxuICB1c2VIYW5kbGVMaWJyYXJ5LFxufSBmcm9tIFwiLi4vLi4vZGF0YS9saWJyYXJ5XCI7XG5cbmV4cG9ydCB7XG4gIHNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcyxcbiAgdmlld3BvcnRDb29yZHNUb1NjZW5lQ29vcmRzLFxufSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./index.tsx\n");
|
|
3154
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Excalidraw\": () => (/* binding */ Excalidraw),\n/* harmony export */ \"FONT_FAMILY\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.FONT_FAMILY),\n/* harmony export */ \"MIME_TYPES\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.MIME_TYPES),\n/* harmony export */ \"THEME\": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_7__.THEME),\n/* harmony export */ \"bumpVersion\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.bumpVersion),\n/* harmony export */ \"defaultLang\": () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_6__.defaultLang),\n/* harmony export */ \"exportToBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToBlob),\n/* harmony export */ \"exportToCanvas\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToCanvas),\n/* harmony export */ \"exportToClipboard\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToClipboard),\n/* harmony export */ \"exportToSvg\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.exportToSvg),\n/* harmony export */ \"getFreeDrawSvgPath\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.getFreeDrawSvgPath),\n/* harmony export */ \"getNonDeletedElements\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.getNonDeletedElements),\n/* harmony export */ \"getSceneVersion\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.getSceneVersion),\n/* harmony export */ \"isInvisiblySmallElement\": () => (/* reexport safe */ _element__WEBPACK_IMPORTED_MODULE_10__.isInvisiblySmallElement),\n/* harmony export */ \"isLinearElement\": () => (/* reexport safe */ _element_typeChecks__WEBPACK_IMPORTED_MODULE_13__.isLinearElement),\n/* harmony export */ \"languages\": () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_6__.languages),\n/* harmony export */ \"loadFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadFromBlob),\n/* harmony export */ \"loadLibraryFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadLibraryFromBlob),\n/* harmony export */ \"loadSceneOrLibraryFromBlob\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.loadSceneOrLibraryFromBlob),\n/* harmony export */ \"mergeLibraryItems\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.mergeLibraryItems),\n/* harmony export */ \"mutateElement\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.mutateElement),\n/* harmony export */ \"newElementWith\": () => (/* reexport safe */ _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__.newElementWith),\n/* harmony export */ \"parseLibraryTokensFromUrl\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_15__.parseLibraryTokensFromUrl),\n/* harmony export */ \"restore\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restore),\n/* harmony export */ \"restoreAppState\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreAppState),\n/* harmony export */ \"restoreElements\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreElements),\n/* harmony export */ \"restoreLibraryItems\": () => (/* reexport safe */ _data_restore__WEBPACK_IMPORTED_MODULE_11__.restoreLibraryItems),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_16__.sceneCoordsToViewportCoords),\n/* harmony export */ \"serializeAsJSON\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.serializeAsJSON),\n/* harmony export */ \"serializeLibraryAsJSON\": () => (/* reexport safe */ _packages_utils__WEBPACK_IMPORTED_MODULE_12__.serializeLibraryAsJSON),\n/* harmony export */ \"useHandleLibrary\": () => (/* reexport safe */ _data_library__WEBPACK_IMPORTED_MODULE_15__.useHandleLibrary),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_16__.viewportCoordsToSceneCoords)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../../../node_modules/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _components_InitializeApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/InitializeApp */ \"../../components/InitializeApp.tsx\");\n/* harmony import */ var _components_App__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/App */ \"../../components/App.tsx\");\n/* harmony import */ var _css_app_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../css/app.scss */ \"../../css/app.scss\");\n/* harmony import */ var _css_app_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_css_app_scss__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../css/styles.scss */ \"../../css/styles.scss\");\n/* harmony import */ var _css_styles_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_css_styles_scss__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../i18n */ \"../../i18n.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n/* harmony import */ var jotai__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! jotai */ \"../../../node_modules/jotai/esm/index.js\");\n/* harmony import */ var _jotai__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../jotai */ \"../../jotai.ts\");\n/* harmony import */ var _element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../element */ \"../../element/index.ts\");\n/* harmony import */ var _data_restore__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../data/restore */ \"../../data/restore.ts\");\n/* harmony import */ var _packages_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../packages/utils */ \"../utils.ts\");\n/* harmony import */ var _element_typeChecks__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../element/typeChecks */ \"../../element/typeChecks.ts\");\n/* harmony import */ var _element_mutateElement__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../element/mutateElement */ \"../../element/mutateElement.ts\");\n/* harmony import */ var _data_library__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../data/library */ \"../../data/library.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../utils */ \"../../utils.ts\");\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n\n\n\n\n\n\n\n\n\n\nconst ExcalidrawBase = (props) => {\n var _a, _b, _c;\n const { onChange, initialData, excalidrawRef, onCollabButtonClick, isCollaborating = false, onPointerUpdate, renderTopRightUI, renderFooter, langCode = _i18n__WEBPACK_IMPORTED_MODULE_6__.defaultLang.code, viewModeEnabled, zenModeEnabled, gridModeEnabled, libraryReturnUrl, theme, name, renderCustomStats, onPaste, detectScroll = true, handleKeyboardGlobally = false, onLibraryChange, autoFocus = false, generateIdForFile, onLinkOpen, onPointerDown, onScrollChange, } = props;\n const canvasActions = (_a = props.UIOptions) === null || _a === void 0 ? void 0 : _a.canvasActions;\n const UIOptions = Object.assign(Object.assign({}, props.UIOptions), { canvasActions: Object.assign(Object.assign({}, _constants__WEBPACK_IMPORTED_MODULE_7__.DEFAULT_UI_OPTIONS.canvasActions), canvasActions) });\n if (canvasActions === null || canvasActions === void 0 ? void 0 : canvasActions.export) {\n UIOptions.canvasActions.export.saveFileToDisk =\n (_c = (_b = canvasActions.export) === null || _b === void 0 ? void 0 : _b.saveFileToDisk) !== null && _c !== void 0 ? _c : _constants__WEBPACK_IMPORTED_MODULE_7__.DEFAULT_UI_OPTIONS.canvasActions[\"export\"].saveFileToDisk;\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n // Block pinch-zooming on iOS outside of the content area\n const handleTouchMove = (event) => {\n // @ts-ignore\n if (typeof event.scale === \"number\" && event.scale !== 1) {\n event.preventDefault();\n }\n };\n document.addEventListener(\"touchmove\", handleTouchMove, {\n passive: false,\n });\n return () => {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n };\n }, []);\n return ((0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_InitializeApp__WEBPACK_IMPORTED_MODULE_2__.InitializeApp, Object.assign({ langCode: langCode }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(jotai__WEBPACK_IMPORTED_MODULE_9__.Provider, Object.assign({ unstable_createStore: () => _jotai__WEBPACK_IMPORTED_MODULE_8__.jotaiStore, scope: _jotai__WEBPACK_IMPORTED_MODULE_8__.jotaiScope }, { children: (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_components_App__WEBPACK_IMPORTED_MODULE_3__[\"default\"], { onChange: onChange, initialData: initialData, excalidrawRef: excalidrawRef, onCollabButtonClick: onCollabButtonClick, isCollaborating: isCollaborating, onPointerUpdate: onPointerUpdate, renderTopRightUI: renderTopRightUI, renderFooter: renderFooter, langCode: langCode, viewModeEnabled: viewModeEnabled, zenModeEnabled: zenModeEnabled, gridModeEnabled: gridModeEnabled, libraryReturnUrl: libraryReturnUrl, theme: theme, name: name, renderCustomStats: renderCustomStats, UIOptions: UIOptions, onPaste: onPaste, detectScroll: detectScroll, handleKeyboardGlobally: handleKeyboardGlobally, onLibraryChange: onLibraryChange, autoFocus: autoFocus, generateIdForFile: generateIdForFile, onLinkOpen: onLinkOpen, onPointerDown: onPointerDown, onScrollChange: onScrollChange }) })) })));\n};\nconst areEqual = (prevProps, nextProps) => {\n const { initialData: prevInitialData, UIOptions: prevUIOptions = {} } = prevProps, prev = __rest(prevProps, [\"initialData\", \"UIOptions\"]);\n const { initialData: nextInitialData, UIOptions: nextUIOptions = {} } = nextProps, next = __rest(nextProps, [\"initialData\", \"UIOptions\"]);\n // comparing UIOptions\n const prevUIOptionsKeys = Object.keys(prevUIOptions);\n const nextUIOptionsKeys = Object.keys(nextUIOptions);\n if (prevUIOptionsKeys.length !== nextUIOptionsKeys.length) {\n return false;\n }\n const isUIOptionsSame = prevUIOptionsKeys.every((key) => {\n if (key === \"canvasActions\") {\n const canvasOptionKeys = Object.keys(prevUIOptions.canvasActions);\n canvasOptionKeys.every((key) => {\n var _a, _b, _c, _d;\n if (key === \"export\" &&\n ((_a = prevUIOptions === null || prevUIOptions === void 0 ? void 0 : prevUIOptions.canvasActions) === null || _a === void 0 ? void 0 : _a.export) &&\n ((_b = nextUIOptions === null || nextUIOptions === void 0 ? void 0 : nextUIOptions.canvasActions) === null || _b === void 0 ? void 0 : _b.export)) {\n return (prevUIOptions.canvasActions.export.saveFileToDisk ===\n nextUIOptions.canvasActions.export.saveFileToDisk);\n }\n return (((_c = prevUIOptions === null || prevUIOptions === void 0 ? void 0 : prevUIOptions.canvasActions) === null || _c === void 0 ? void 0 : _c[key]) ===\n ((_d = nextUIOptions === null || nextUIOptions === void 0 ? void 0 : nextUIOptions.canvasActions) === null || _d === void 0 ? void 0 : _d[key]));\n });\n }\n return true;\n });\n const prevKeys = Object.keys(prevProps);\n const nextKeys = Object.keys(nextProps);\n return (isUIOptionsSame &&\n prevKeys.length === nextKeys.length &&\n prevKeys.every((key) => prev[key] === next[key]));\n};\nconst forwardedRefComp = (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref) => (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ExcalidrawBase, Object.assign({}, props, { excalidrawRef: ref })));\nconst Excalidraw = react__WEBPACK_IMPORTED_MODULE_1___default().memo(forwardedRefComp, areEqual);\nExcalidraw.displayName = \"Excalidraw\";\n\n\n\n\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUMsQ0FBQztBQUU5RCxNQUFNLFVBQVUsR0FBRyxpREFBVSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pFLFVBQVUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBTWY7QUFDNkI7QUFNeEI7QUFhRTtBQUM2QjtBQUVNO0FBTTVCO0FBS1Q7QUFLUCIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2luZGV4LnRzeD9mZTFiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHsgSW5pdGlhbGl6ZUFwcCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0luaXRpYWxpemVBcHBcIjtcbmltcG9ydCBBcHAgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQXBwXCI7XG5cbmltcG9ydCBcIi4uLy4uL2Nzcy9hcHAuc2Nzc1wiO1xuaW1wb3J0IFwiLi4vLi4vY3NzL3N0eWxlcy5zY3NzXCI7XG5cbmltcG9ydCB7IEFwcFByb3BzLCBFeGNhbGlkcmF3QVBJUmVmVmFsdWUsIEV4Y2FsaWRyYXdQcm9wcyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgZGVmYXVsdExhbmcgfSBmcm9tIFwiLi4vLi4vaTE4blwiO1xuaW1wb3J0IHsgREVGQVVMVF9VSV9PUFRJT05TIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiam90YWlcIjtcbmltcG9ydCB7IGpvdGFpU2NvcGUsIGpvdGFpU3RvcmUgfSBmcm9tIFwiLi4vLi4vam90YWlcIjtcblxuY29uc3QgRXhjYWxpZHJhd0Jhc2UgPSAocHJvcHM6IEV4Y2FsaWRyYXdQcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgb25DaGFuZ2UsXG4gICAgaW5pdGlhbERhdGEsXG4gICAgZXhjYWxpZHJhd1JlZixcbiAgICBvbkNvbGxhYkJ1dHRvbkNsaWNrLFxuICAgIGlzQ29sbGFib3JhdGluZyA9IGZhbHNlLFxuICAgIG9uUG9pbnRlclVwZGF0ZSxcbiAgICByZW5kZXJUb3BSaWdodFVJLFxuICAgIHJlbmRlckZvb3RlcixcbiAgICBsYW5nQ29kZSA9IGRlZmF1bHRMYW5nLmNvZGUsXG4gICAgdmlld01vZGVFbmFibGVkLFxuICAgIHplbk1vZGVFbmFibGVkLFxuICAgIGdyaWRNb2RlRW5hYmxlZCxcbiAgICBsaWJyYXJ5UmV0dXJuVXJsLFxuICAgIHRoZW1lLFxuICAgIG5hbWUsXG4gICAgcmVuZGVyQ3VzdG9tU3RhdHMsXG4gICAgb25QYXN0ZSxcbiAgICBkZXRlY3RTY3JvbGwgPSB0cnVlLFxuICAgIGhhbmRsZUtleWJvYXJkR2xvYmFsbHkgPSBmYWxzZSxcbiAgICBvbkxpYnJhcnlDaGFuZ2UsXG4gICAgYXV0b0ZvY3VzID0gZmFsc2UsXG4gICAgZ2VuZXJhdGVJZEZvckZpbGUsXG4gICAgb25MaW5rT3BlbixcbiAgICBvblBvaW50ZXJEb3duLFxuICAgIG9uU2Nyb2xsQ2hhbmdlLFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgY2FudmFzQWN0aW9ucyA9IHByb3BzLlVJT3B0aW9ucz8uY2FudmFzQWN0aW9ucztcblxuICBjb25zdCBVSU9wdGlvbnM6IEFwcFByb3BzW1wiVUlPcHRpb25zXCJdID0ge1xuICAgIC4uLnByb3BzLlVJT3B0aW9ucyxcbiAgICBjYW52YXNBY3Rpb25zOiB7XG4gICAgICAuLi5ERUZBVUxUX1VJX09QVElPTlMuY2FudmFzQWN0aW9ucyxcbiAgICAgIC4uLmNhbnZhc0FjdGlvbnMsXG4gICAgfSxcbiAgfTtcblxuICBpZiAoY2FudmFzQWN0aW9ucz8uZXhwb3J0KSB7XG4gICAgVUlPcHRpb25zLmNhbnZhc0FjdGlvbnMuZXhwb3J0LnNhdmVGaWxlVG9EaXNrID1cbiAgICAgIGNhbnZhc0FjdGlvbnMuZXhwb3J0Py5zYXZlRmlsZVRvRGlzayA/P1xuICAgICAgREVGQVVMVF9VSV9PUFRJT05TLmNhbnZhc0FjdGlvbnMuZXhwb3J0LnNhdmVGaWxlVG9EaXNrO1xuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBCbG9jayBwaW5jaC16b29taW5nIG9uIGlPUyBvdXRzaWRlIG9mIHRoZSBjb250ZW50IGFyZWFcbiAgICBjb25zdCBoYW5kbGVUb3VjaE1vdmUgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICh0eXBlb2YgZXZlbnQuc2NhbGUgPT09IFwibnVtYmVyXCIgJiYgZXZlbnQuc2NhbGUgIT09IDEpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLCBoYW5kbGVUb3VjaE1vdmUsIHtcbiAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIiwgaGFuZGxlVG91Y2hNb3ZlKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8SW5pdGlhbGl6ZUFwcCBsYW5nQ29kZT17bGFuZ0NvZGV9PlxuICAgICAgPFByb3ZpZGVyIHVuc3RhYmxlX2NyZWF0ZVN0b3JlPXsoKSA9PiBqb3RhaVN0b3JlfSBzY29wZT17am90YWlTY29wZX0+XG4gICAgICAgIDxBcHBcbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgaW5pdGlhbERhdGE9e2luaXRpYWxEYXRhfVxuICAgICAgICAgIGV4Y2FsaWRyYXdSZWY9e2V4Y2FsaWRyYXdSZWZ9XG4gICAgICAgICAgb25Db2xsYWJCdXR0b25DbGljaz17b25Db2xsYWJCdXR0b25DbGlja31cbiAgICAgICAgICBpc0NvbGxhYm9yYXRpbmc9e2lzQ29sbGFib3JhdGluZ31cbiAgICAgICAgICBvblBvaW50ZXJVcGRhdGU9e29uUG9pbnRlclVwZGF0ZX1cbiAgICAgICAgICByZW5kZXJUb3BSaWdodFVJPXtyZW5kZXJUb3BSaWdodFVJfVxuICAgICAgICAgIHJlbmRlckZvb3Rlcj17cmVuZGVyRm9vdGVyfVxuICAgICAgICAgIGxhbmdDb2RlPXtsYW5nQ29kZX1cbiAgICAgICAgICB2aWV3TW9kZUVuYWJsZWQ9e3ZpZXdNb2RlRW5hYmxlZH1cbiAgICAgICAgICB6ZW5Nb2RlRW5hYmxlZD17emVuTW9kZUVuYWJsZWR9XG4gICAgICAgICAgZ3JpZE1vZGVFbmFibGVkPXtncmlkTW9kZUVuYWJsZWR9XG4gICAgICAgICAgbGlicmFyeVJldHVyblVybD17bGlicmFyeVJldHVyblVybH1cbiAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICByZW5kZXJDdXN0b21TdGF0cz17cmVuZGVyQ3VzdG9tU3RhdHN9XG4gICAgICAgICAgVUlPcHRpb25zPXtVSU9wdGlvbnN9XG4gICAgICAgICAgb25QYXN0ZT17b25QYXN0ZX1cbiAgICAgICAgICBkZXRlY3RTY3JvbGw9e2RldGVjdFNjcm9sbH1cbiAgICAgICAgICBoYW5kbGVLZXlib2FyZEdsb2JhbGx5PXtoYW5kbGVLZXlib2FyZEdsb2JhbGx5fVxuICAgICAgICAgIG9uTGlicmFyeUNoYW5nZT17b25MaWJyYXJ5Q2hhbmdlfVxuICAgICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgICAgIGdlbmVyYXRlSWRGb3JGaWxlPXtnZW5lcmF0ZUlkRm9yRmlsZX1cbiAgICAgICAgICBvbkxpbmtPcGVuPXtvbkxpbmtPcGVufVxuICAgICAgICAgIG9uUG9pbnRlckRvd249e29uUG9pbnRlckRvd259XG4gICAgICAgICAgb25TY3JvbGxDaGFuZ2U9e29uU2Nyb2xsQ2hhbmdlfVxuICAgICAgICAvPlxuICAgICAgPC9Qcm92aWRlcj5cbiAgICA8L0luaXRpYWxpemVBcHA+XG4gICk7XG59O1xuXG50eXBlIFB1YmxpY0V4Y2FsaWRyYXdQcm9wcyA9IE9taXQ8RXhjYWxpZHJhd1Byb3BzLCBcImZvcndhcmRlZFJlZlwiPjtcblxuY29uc3QgYXJlRXF1YWwgPSAoXG4gIHByZXZQcm9wczogUHVibGljRXhjYWxpZHJhd1Byb3BzLFxuICBuZXh0UHJvcHM6IFB1YmxpY0V4Y2FsaWRyYXdQcm9wcyxcbikgPT4ge1xuICBjb25zdCB7XG4gICAgaW5pdGlhbERhdGE6IHByZXZJbml0aWFsRGF0YSxcbiAgICBVSU9wdGlvbnM6IHByZXZVSU9wdGlvbnMgPSB7fSxcbiAgICAuLi5wcmV2XG4gIH0gPSBwcmV2UHJvcHM7XG4gIGNvbnN0IHtcbiAgICBpbml0aWFsRGF0YTogbmV4dEluaXRpYWxEYXRhLFxuICAgIFVJT3B0aW9uczogbmV4dFVJT3B0aW9ucyA9IHt9LFxuICAgIC4uLm5leHRcbiAgfSA9IG5leHRQcm9wcztcblxuICAvLyBjb21wYXJpbmcgVUlPcHRpb25zXG4gIGNvbnN0IHByZXZVSU9wdGlvbnNLZXlzID0gT2JqZWN0LmtleXMocHJldlVJT3B0aW9ucykgYXMgKGtleW9mIFBhcnRpYWw8XG4gICAgdHlwZW9mIERFRkFVTFRfVUlfT1BUSU9OU1xuICA+KVtdO1xuICBjb25zdCBuZXh0VUlPcHRpb25zS2V5cyA9IE9iamVjdC5rZXlzKG5leHRVSU9wdGlvbnMpIGFzIChrZXlvZiBQYXJ0aWFsPFxuICAgIHR5cGVvZiBERUZBVUxUX1VJX09QVElPTlNcbiAgPilbXTtcblxuICBpZiAocHJldlVJT3B0aW9uc0tleXMubGVuZ3RoICE9PSBuZXh0VUlPcHRpb25zS2V5cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBpc1VJT3B0aW9uc1NhbWUgPSBwcmV2VUlPcHRpb25zS2V5cy5ldmVyeSgoa2V5KSA9PiB7XG4gICAgaWYgKGtleSA9PT0gXCJjYW52YXNBY3Rpb25zXCIpIHtcbiAgICAgIGNvbnN0IGNhbnZhc09wdGlvbktleXMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgcHJldlVJT3B0aW9ucy5jYW52YXNBY3Rpb25zISxcbiAgICAgICkgYXMgKGtleW9mIFBhcnRpYWw8dHlwZW9mIERFRkFVTFRfVUlfT1BUSU9OUy5jYW52YXNBY3Rpb25zPilbXTtcbiAgICAgIGNhbnZhc09wdGlvbktleXMuZXZlcnkoKGtleSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAga2V5ID09PSBcImV4cG9ydFwiICYmXG4gICAgICAgICAgcHJldlVJT3B0aW9ucz8uY2FudmFzQWN0aW9ucz8uZXhwb3J0ICYmXG4gICAgICAgICAgbmV4dFVJT3B0aW9ucz8uY2FudmFzQWN0aW9ucz8uZXhwb3J0XG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwcmV2VUlPcHRpb25zLmNhbnZhc0FjdGlvbnMuZXhwb3J0LnNhdmVGaWxlVG9EaXNrID09PVxuICAgICAgICAgICAgbmV4dFVJT3B0aW9ucy5jYW52YXNBY3Rpb25zLmV4cG9ydC5zYXZlRmlsZVRvRGlza1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBwcmV2VUlPcHRpb25zPy5jYW52YXNBY3Rpb25zPy5ba2V5XSA9PT1cbiAgICAgICAgICBuZXh0VUlPcHRpb25zPy5jYW52YXNBY3Rpb25zPy5ba2V5XVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICBjb25zdCBwcmV2S2V5cyA9IE9iamVjdC5rZXlzKHByZXZQcm9wcykgYXMgKGtleW9mIHR5cGVvZiBwcmV2KVtdO1xuICBjb25zdCBuZXh0S2V5cyA9IE9iamVjdC5rZXlzKG5leHRQcm9wcykgYXMgKGtleW9mIHR5cGVvZiBuZXh0KVtdO1xuICByZXR1cm4gKFxuICAgIGlzVUlPcHRpb25zU2FtZSAmJlxuICAgIHByZXZLZXlzLmxlbmd0aCA9PT0gbmV4dEtleXMubGVuZ3RoICYmXG4gICAgcHJldktleXMuZXZlcnkoKGtleSkgPT4gcHJldltrZXldID09PSBuZXh0W2tleV0pXG4gICk7XG59O1xuXG5jb25zdCBmb3J3YXJkZWRSZWZDb21wID0gZm9yd2FyZFJlZjxcbiAgRXhjYWxpZHJhd0FQSVJlZlZhbHVlLFxuICBQdWJsaWNFeGNhbGlkcmF3UHJvcHNcbj4oKHByb3BzLCByZWYpID0+IDxFeGNhbGlkcmF3QmFzZSB7Li4ucHJvcHN9IGV4Y2FsaWRyYXdSZWY9e3JlZn0gLz4pO1xuXG5leHBvcnQgY29uc3QgRXhjYWxpZHJhdyA9IFJlYWN0Lm1lbW8oZm9yd2FyZGVkUmVmQ29tcCwgYXJlRXF1YWwpO1xuRXhjYWxpZHJhdy5kaXNwbGF5TmFtZSA9IFwiRXhjYWxpZHJhd1wiO1xuXG5leHBvcnQge1xuICBnZXRTY2VuZVZlcnNpb24sXG4gIGlzSW52aXNpYmx5U21hbGxFbGVtZW50LFxuICBnZXROb25EZWxldGVkRWxlbWVudHMsXG59IGZyb20gXCIuLi8uLi9lbGVtZW50XCI7XG5leHBvcnQgeyBkZWZhdWx0TGFuZywgbGFuZ3VhZ2VzIH0gZnJvbSBcIi4uLy4uL2kxOG5cIjtcbmV4cG9ydCB7XG4gIHJlc3RvcmUsXG4gIHJlc3RvcmVBcHBTdGF0ZSxcbiAgcmVzdG9yZUVsZW1lbnRzLFxuICByZXN0b3JlTGlicmFyeUl0ZW1zLFxufSBmcm9tIFwiLi4vLi4vZGF0YS9yZXN0b3JlXCI7XG5leHBvcnQge1xuICBleHBvcnRUb0NhbnZhcyxcbiAgZXhwb3J0VG9CbG9iLFxuICBleHBvcnRUb1N2ZyxcbiAgc2VyaWFsaXplQXNKU09OLFxuICBzZXJpYWxpemVMaWJyYXJ5QXNKU09OLFxuICBsb2FkTGlicmFyeUZyb21CbG9iLFxuICBsb2FkRnJvbUJsb2IsXG4gIGxvYWRTY2VuZU9yTGlicmFyeUZyb21CbG9iLFxuICBnZXRGcmVlRHJhd1N2Z1BhdGgsXG4gIGV4cG9ydFRvQ2xpcGJvYXJkLFxuICBtZXJnZUxpYnJhcnlJdGVtcyxcbn0gZnJvbSBcIi4uLy4uL3BhY2thZ2VzL3V0aWxzXCI7XG5leHBvcnQgeyBpc0xpbmVhckVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vZWxlbWVudC90eXBlQ2hlY2tzXCI7XG5cbmV4cG9ydCB7IEZPTlRfRkFNSUxZLCBUSEVNRSwgTUlNRV9UWVBFUyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IHtcbiAgbXV0YXRlRWxlbWVudCxcbiAgbmV3RWxlbWVudFdpdGgsXG4gIGJ1bXBWZXJzaW9uLFxufSBmcm9tIFwiLi4vLi4vZWxlbWVudC9tdXRhdGVFbGVtZW50XCI7XG5cbmV4cG9ydCB7XG4gIHBhcnNlTGlicmFyeVRva2Vuc0Zyb21VcmwsXG4gIHVzZUhhbmRsZUxpYnJhcnksXG59IGZyb20gXCIuLi8uLi9kYXRhL2xpYnJhcnlcIjtcblxuZXhwb3J0IHtcbiAgc2NlbmVDb29yZHNUb1ZpZXdwb3J0Q29vcmRzLFxuICB2aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMsXG59IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./index.tsx\n");
|
|
3155
3155
|
|
|
3156
3156
|
/***/ }),
|
|
3157
3157
|
|
|
@@ -3162,7 +3162,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3162
3162
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3163
3163
|
|
|
3164
3164
|
"use strict";
|
|
3165
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-
|
|
3165
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"../../constants.ts\");\n\nif (\"development\" !== _constants__WEBPACK_IMPORTED_MODULE_0__.ENV.TEST) {\n /* eslint-disable */\n /* global __webpack_public_path__:writable */\n __webpack_require__.p =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-9c37b25\"}/dist/`;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wdWJsaWNQYXRoLmpzLmpzIiwibWFwcGluZ3MiOiI7O0FBQXNDO0FBQ3RDLElBQUksYUFBb0IsS0FBSyxnREFBUSxFQUFFO0lBQ3JDLG9CQUFvQjtJQUNwQiw2Q0FBNkM7SUFDN0MscUJBQXVCO1FBQ3JCLE1BQU0sQ0FBQyxxQkFBcUI7WUFDNUIscUJBQXFCLHdCQUFvQixJQUFJLGdCQUF1QixRQUFRLENBQUM7Q0FDaEYiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWNQYXRoLmpzP2E4N2QiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5WIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBFTlYuVEVTVCkge1xuICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAvKiBnbG9iYWwgX193ZWJwYWNrX3B1YmxpY19wYXRoX186d3JpdGFibGUgKi9cbiAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPVxuICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICBgaHR0cHM6Ly91bnBrZy5jb20vJHtwcm9jZXNzLmVudi5QS0dfTkFNRX1AJHtwcm9jZXNzLmVudi5QS0dfVkVSU0lPTn0vZGlzdC9gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./publicPath.js\n");
|
|
3166
3166
|
|
|
3167
3167
|
/***/ }),
|
|
3168
3168
|
|
|
@@ -3261,7 +3261,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3261
3261
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3262
3262
|
|
|
3263
3263
|
"use strict";
|
|
3264
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)(elements, appState, null, scale, roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas), canvas, {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-792f238\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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azovLy8uLi8uLi9zY2VuZS9leHBvcnQudHM/OWJmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm91Z2ggZnJvbSBcInJvdWdoanMvYmluL3JvdWdoXCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0Q29tbW9uQm91bmRzIH0gZnJvbSBcIi4uL2VsZW1lbnQvYm91bmRzXCI7XG5pbXBvcnQgeyByZW5kZXJTY2VuZSwgcmVuZGVyU2NlbmVUb1N2ZyB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJTY2VuZVwiO1xuaW1wb3J0IHsgZGlzdGFuY2UgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBCaW5hcnlGaWxlcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FWFBPUlRfUEFERElORywgU1ZHX05TLCBUSEVNRV9GSUxURVIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0QXBwU3RhdGUgfSBmcm9tIFwiLi4vYXBwU3RhdGVcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhL2pzb25cIjtcbmltcG9ydCB7XG4gIGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyxcbiAgdXBkYXRlSW1hZ2VDYWNoZSxcbn0gZnJvbSBcIi4uL2VsZW1lbnQvaW1hZ2VcIjtcblxuZXhwb3J0IGNvbnN0IFNWR19FWFBPUlRfVEFHID0gYDwhLS0gc3ZnLXNvdXJjZTpleGNhbGlkcmF3IC0tPmA7XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NhbnZhcyA9IGFzeW5jIChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyxcbiAge1xuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyA9IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsXG4gICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgfToge1xuICAgIGV4cG9ydEJhY2tncm91bmQ6IGJvb2xlYW47XG4gICAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIH0sXG4gIGNyZWF0ZUNhbnZhczogKFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICkgPT4geyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50OyBzY2FsZTogbnVtYmVyIH0gPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGggKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgcmV0dXJuIHsgY2FudmFzLCBzY2FsZTogYXBwU3RhdGUuZXhwb3J0U2NhbGUgfTtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICBjb25zdCB7IGNhbnZhcywgc2NhbGUgPSAxIH0gPSBjcmVhdGVDYW52YXMod2lkdGgsIGhlaWdodCk7XG5cbiAgY29uc3QgZGVmYXVsdEFwcFN0YXRlID0gZ2V0RGVmYXVsdEFwcFN0YXRlKCk7XG5cbiAgY29uc3QgeyBpbWFnZUNhY2hlIH0gPSBhd2FpdCB1cGRhdGVJbWFnZUNhY2hlKHtcbiAgICBpbWFnZUNhY2hlOiBuZXcgTWFwKCksXG4gICAgZmlsZUlkczogZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAoXG4gICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5maWxlSWQsXG4gICAgKSxcbiAgICBmaWxlcyxcbiAgfSk7XG5cbiAgcmVuZGVyU2NlbmUoZWxlbWVudHMsIGFwcFN0YXRlLCBudWxsLCBzY2FsZSwgcm91Z2guY2FudmFzKGNhbnZhcyksIGNhbnZhcywge1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICBzY3JvbGxYOiAtbWluWCArIGV4cG9ydFBhZGRpbmcsXG4gICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgIHJlbW90ZVBvaW50ZXJWaWV3cG9ydENvb3Jkczoge30sXG4gICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgIHJlbW90ZVBvaW50ZXJVc2VybmFtZXM6IHt9LFxuICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgaW1hZ2VDYWNoZSxcbiAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgIHJlbmRlckdyaWQ6IGZhbHNlLFxuICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
|
|
3264
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SVG_EXPORT_TAG\": () => (/* binding */ SVG_EXPORT_TAG),\n/* harmony export */ \"exportToCanvas\": () => (/* binding */ exportToCanvas),\n/* harmony export */ \"exportToSvg\": () => (/* binding */ exportToSvg),\n/* harmony export */ \"getExportSize\": () => (/* binding */ getExportSize)\n/* harmony export */ });\n/* harmony import */ var roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! roughjs/bin/rough */ \"../../../node_modules/roughjs/bin/rough.js\");\n/* harmony import */ var _element_bounds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../element/bounds */ \"../../element/bounds.ts\");\n/* harmony import */ var _renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../renderer/renderScene */ \"../../renderer/renderScene.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"../../utils.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants */ \"../../constants.ts\");\n/* harmony import */ var _appState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../appState */ \"../../appState.ts\");\n/* harmony import */ var _data_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/json */ \"../../data/json.ts\");\n/* harmony import */ var _element_image__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../element/image */ \"../../element/image.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n\nconst SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;\nconst exportToCanvas = (elements, appState, files, { exportBackground, exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, }, createCanvas = (width, height) => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * appState.exportScale;\n canvas.height = height * appState.exportScale;\n return { canvas, scale: appState.exportScale };\n}) => __awaiter(void 0, void 0, void 0, function* () {\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n const { canvas, scale = 1 } = createCanvas(width, height);\n const defaultAppState = (0,_appState__WEBPACK_IMPORTED_MODULE_5__.getDefaultAppState)();\n const { imageCache } = yield (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.updateImageCache)({\n imageCache: new Map(),\n fileIds: (0,_element_image__WEBPACK_IMPORTED_MODULE_7__.getInitializedImageElements)(elements).map((element) => element.fileId),\n files,\n });\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderScene)(elements, appState, null, scale, roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].canvas(canvas), canvas, {\n viewBackgroundColor: exportBackground ? viewBackgroundColor : null,\n scrollX: -minX + exportPadding,\n scrollY: -minY + exportPadding,\n zoom: defaultAppState.zoom,\n remotePointerViewportCoords: {},\n remoteSelectedElementIds: {},\n shouldCacheIgnoreZoom: false,\n remotePointerUsernames: {},\n remotePointerUserStates: {},\n theme: appState.exportWithDarkMode ? \"dark\" : \"light\",\n imageCache,\n renderScrollbars: false,\n renderSelection: false,\n renderGrid: false,\n isExporting: true,\n });\n return canvas;\n});\nconst exportToSvg = (elements, appState, files) => __awaiter(void 0, void 0, void 0, function* () {\n const { exportPadding = _constants__WEBPACK_IMPORTED_MODULE_4__.DEFAULT_EXPORT_PADDING, viewBackgroundColor, exportScale = 1, exportEmbedScene, } = appState;\n let metadata = \"\";\n if (exportEmbedScene) {\n try {\n metadata = yield (yield Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../../src/data/image */ \"../../data/image.ts\"))).encodeSvgMetadata({\n text: (0,_data_json__WEBPACK_IMPORTED_MODULE_6__.serializeAsJSON)(elements, appState, files || {}, \"local\"),\n });\n }\n catch (error) {\n console.error(error);\n }\n }\n const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);\n // initialize SVG root\n const svgRoot = document.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"svg\");\n svgRoot.setAttribute(\"version\", \"1.1\");\n svgRoot.setAttribute(\"xmlns\", _constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS);\n svgRoot.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svgRoot.setAttribute(\"width\", `${width * exportScale}`);\n svgRoot.setAttribute(\"height\", `${height * exportScale}`);\n if (appState.exportWithDarkMode) {\n svgRoot.setAttribute(\"filter\", _constants__WEBPACK_IMPORTED_MODULE_4__.THEME_FILTER);\n }\n let assetPath = \"https://excalidraw.com/\";\n // Asset path needs to be determined only when using package\n if (true) {\n assetPath =\n window.EXCALIDRAW_ASSET_PATH ||\n `https://unpkg.com/${\"@excalidraw/excalidraw\"}@${\"0.12.0-9c37b25\"}`;\n if (assetPath === null || assetPath === void 0 ? void 0 : assetPath.startsWith(\"/\")) {\n assetPath = assetPath.replace(\"/\", `${window.location.origin}/`);\n }\n assetPath = `${assetPath}/dist/excalidraw-assets/`;\n }\n svgRoot.innerHTML = `\n ${SVG_EXPORT_TAG}\n ${metadata}\n <defs>\n <style>\n @font-face {\n font-family: \"Virgil\";\n src: url(\"${assetPath}Virgil.woff2\");\n }\n @font-face {\n font-family: \"Cascadia\";\n src: url(\"${assetPath}Cascadia.woff2\");\n }\n </style>\n </defs>\n `;\n // render background rect\n if (appState.exportBackground && viewBackgroundColor) {\n const rect = svgRoot.ownerDocument.createElementNS(_constants__WEBPACK_IMPORTED_MODULE_4__.SVG_NS, \"rect\");\n rect.setAttribute(\"x\", \"0\");\n rect.setAttribute(\"y\", \"0\");\n rect.setAttribute(\"width\", `${width}`);\n rect.setAttribute(\"height\", `${height}`);\n rect.setAttribute(\"fill\", viewBackgroundColor);\n svgRoot.appendChild(rect);\n }\n const rsvg = roughjs_bin_rough__WEBPACK_IMPORTED_MODULE_0__[\"default\"].svg(svgRoot);\n (0,_renderer_renderScene__WEBPACK_IMPORTED_MODULE_2__.renderSceneToSvg)(elements, rsvg, svgRoot, files || {}, {\n offsetX: -minX + exportPadding,\n offsetY: -minY + exportPadding,\n exportWithDarkMode: appState.exportWithDarkMode,\n });\n return svgRoot;\n});\n// calculate smallest area to fit the contents in\nconst getCanvasSize = (elements, exportPadding) => {\n const [minX, minY, maxX, maxY] = (0,_element_bounds__WEBPACK_IMPORTED_MODULE_1__.getCommonBounds)(elements);\n const width = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minX, maxX) + exportPadding * 2;\n const height = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.distance)(minY, maxY) + exportPadding + exportPadding;\n return [minX, minY, width, height];\n};\nconst getExportSize = (elements, exportPadding, scale) => {\n const [, , width, height] = getCanvasSize(elements, exportPadding).map((dimension) => Math.trunc(dimension * scale));\n return [width, height];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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azovLy8uLi8uLi9zY2VuZS9leHBvcnQudHM/OWJmNyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcm91Z2ggZnJvbSBcInJvdWdoanMvYmluL3JvdWdoXCI7XG5pbXBvcnQgeyBOb25EZWxldGVkRXhjYWxpZHJhd0VsZW1lbnQgfSBmcm9tIFwiLi4vZWxlbWVudC90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0Q29tbW9uQm91bmRzIH0gZnJvbSBcIi4uL2VsZW1lbnQvYm91bmRzXCI7XG5pbXBvcnQgeyByZW5kZXJTY2VuZSwgcmVuZGVyU2NlbmVUb1N2ZyB9IGZyb20gXCIuLi9yZW5kZXJlci9yZW5kZXJTY2VuZVwiO1xuaW1wb3J0IHsgZGlzdGFuY2UgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBCaW5hcnlGaWxlcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9FWFBPUlRfUEFERElORywgU1ZHX05TLCBUSEVNRV9GSUxURVIgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXREZWZhdWx0QXBwU3RhdGUgfSBmcm9tIFwiLi4vYXBwU3RhdGVcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZUFzSlNPTiB9IGZyb20gXCIuLi9kYXRhL2pzb25cIjtcbmltcG9ydCB7XG4gIGdldEluaXRpYWxpemVkSW1hZ2VFbGVtZW50cyxcbiAgdXBkYXRlSW1hZ2VDYWNoZSxcbn0gZnJvbSBcIi4uL2VsZW1lbnQvaW1hZ2VcIjtcblxuZXhwb3J0IGNvbnN0IFNWR19FWFBPUlRfVEFHID0gYDwhLS0gc3ZnLXNvdXJjZTpleGNhbGlkcmF3IC0tPmA7XG5cbmV4cG9ydCBjb25zdCBleHBvcnRUb0NhbnZhcyA9IGFzeW5jIChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4gIGZpbGVzOiBCaW5hcnlGaWxlcyxcbiAge1xuICAgIGV4cG9ydEJhY2tncm91bmQsXG4gICAgZXhwb3J0UGFkZGluZyA9IERFRkFVTFRfRVhQT1JUX1BBRERJTkcsXG4gICAgdmlld0JhY2tncm91bmRDb2xvcixcbiAgfToge1xuICAgIGV4cG9ydEJhY2tncm91bmQ6IGJvb2xlYW47XG4gICAgZXhwb3J0UGFkZGluZz86IG51bWJlcjtcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIH0sXG4gIGNyZWF0ZUNhbnZhczogKFxuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgaGVpZ2h0OiBudW1iZXIsXG4gICkgPT4geyBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50OyBzY2FsZTogbnVtYmVyIH0gPSAod2lkdGgsIGhlaWdodCkgPT4ge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGggKiBhcHBTdGF0ZS5leHBvcnRTY2FsZTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0ICogYXBwU3RhdGUuZXhwb3J0U2NhbGU7XG4gICAgcmV0dXJuIHsgY2FudmFzLCBzY2FsZTogYXBwU3RhdGUuZXhwb3J0U2NhbGUgfTtcbiAgfSxcbikgPT4ge1xuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICBjb25zdCB7IGNhbnZhcywgc2NhbGUgPSAxIH0gPSBjcmVhdGVDYW52YXMod2lkdGgsIGhlaWdodCk7XG5cbiAgY29uc3QgZGVmYXVsdEFwcFN0YXRlID0gZ2V0RGVmYXVsdEFwcFN0YXRlKCk7XG5cbiAgY29uc3QgeyBpbWFnZUNhY2hlIH0gPSBhd2FpdCB1cGRhdGVJbWFnZUNhY2hlKHtcbiAgICBpbWFnZUNhY2hlOiBuZXcgTWFwKCksXG4gICAgZmlsZUlkczogZ2V0SW5pdGlhbGl6ZWRJbWFnZUVsZW1lbnRzKGVsZW1lbnRzKS5tYXAoXG4gICAgICAoZWxlbWVudCkgPT4gZWxlbWVudC5maWxlSWQsXG4gICAgKSxcbiAgICBmaWxlcyxcbiAgfSk7XG5cbiAgcmVuZGVyU2NlbmUoZWxlbWVudHMsIGFwcFN0YXRlLCBudWxsLCBzY2FsZSwgcm91Z2guY2FudmFzKGNhbnZhcyksIGNhbnZhcywge1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IGV4cG9ydEJhY2tncm91bmQgPyB2aWV3QmFja2dyb3VuZENvbG9yIDogbnVsbCxcbiAgICBzY3JvbGxYOiAtbWluWCArIGV4cG9ydFBhZGRpbmcsXG4gICAgc2Nyb2xsWTogLW1pblkgKyBleHBvcnRQYWRkaW5nLFxuICAgIHpvb206IGRlZmF1bHRBcHBTdGF0ZS56b29tLFxuICAgIHJlbW90ZVBvaW50ZXJWaWV3cG9ydENvb3Jkczoge30sXG4gICAgcmVtb3RlU2VsZWN0ZWRFbGVtZW50SWRzOiB7fSxcbiAgICBzaG91bGRDYWNoZUlnbm9yZVpvb206IGZhbHNlLFxuICAgIHJlbW90ZVBvaW50ZXJVc2VybmFtZXM6IHt9LFxuICAgIHJlbW90ZVBvaW50ZXJVc2VyU3RhdGVzOiB7fSxcbiAgICB0aGVtZTogYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlID8gXCJkYXJrXCIgOiBcImxpZ2h0XCIsXG4gICAgaW1hZ2VDYWNoZSxcbiAgICByZW5kZXJTY3JvbGxiYXJzOiBmYWxzZSxcbiAgICByZW5kZXJTZWxlY3Rpb246IGZhbHNlLFxuICAgIHJlbmRlckdyaWQ6IGZhbHNlLFxuICAgIGlzRXhwb3J0aW5nOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gY2FudmFzO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydFRvU3ZnID0gYXN5bmMgKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGFwcFN0YXRlOiB7XG4gICAgZXhwb3J0QmFja2dyb3VuZDogYm9vbGVhbjtcbiAgICBleHBvcnRQYWRkaW5nPzogbnVtYmVyO1xuICAgIGV4cG9ydFNjYWxlPzogbnVtYmVyO1xuICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6IHN0cmluZztcbiAgICBleHBvcnRXaXRoRGFya01vZGU/OiBib29sZWFuO1xuICAgIGV4cG9ydEVtYmVkU2NlbmU/OiBib29sZWFuO1xuICB9LFxuICBmaWxlczogQmluYXJ5RmlsZXMgfCBudWxsLFxuKTogUHJvbWlzZTxTVkdTVkdFbGVtZW50PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBleHBvcnRQYWRkaW5nID0gREVGQVVMVF9FWFBPUlRfUEFERElORyxcbiAgICB2aWV3QmFja2dyb3VuZENvbG9yLFxuICAgIGV4cG9ydFNjYWxlID0gMSxcbiAgICBleHBvcnRFbWJlZFNjZW5lLFxuICB9ID0gYXBwU3RhdGU7XG4gIGxldCBtZXRhZGF0YSA9IFwiXCI7XG4gIGlmIChleHBvcnRFbWJlZFNjZW5lKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1ldGFkYXRhID0gYXdhaXQgKFxuICAgICAgICBhd2FpdCBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJpbWFnZVwiICovIFwiLi4vLi4vc3JjL2RhdGEvaW1hZ2VcIilcbiAgICAgICkuZW5jb2RlU3ZnTWV0YWRhdGEoe1xuICAgICAgICB0ZXh0OiBzZXJpYWxpemVBc0pTT04oZWxlbWVudHMsIGFwcFN0YXRlLCBmaWxlcyB8fCB7fSwgXCJsb2NhbFwiKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuICBjb25zdCBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF0gPSBnZXRDYW52YXNTaXplKGVsZW1lbnRzLCBleHBvcnRQYWRkaW5nKTtcblxuICAvLyBpbml0aWFsaXplIFNWRyByb290XG4gIGNvbnN0IHN2Z1Jvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoU1ZHX05TLCBcInN2Z1wiKTtcbiAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJ2ZXJzaW9uXCIsIFwiMS4xXCIpO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcInhtbG5zXCIsIFNWR19OUyk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwidmlld0JveFwiLCBgMCAwICR7d2lkdGh9ICR7aGVpZ2h0fWApO1xuICBzdmdSb290LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRoICogZXhwb3J0U2NhbGV9YCk7XG4gIHN2Z1Jvb3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodCAqIGV4cG9ydFNjYWxlfWApO1xuICBpZiAoYXBwU3RhdGUuZXhwb3J0V2l0aERhcmtNb2RlKSB7XG4gICAgc3ZnUm9vdC5zZXRBdHRyaWJ1dGUoXCJmaWx0ZXJcIiwgVEhFTUVfRklMVEVSKTtcbiAgfVxuXG4gIGxldCBhc3NldFBhdGggPSBcImh0dHBzOi8vZXhjYWxpZHJhdy5jb20vXCI7XG5cbiAgLy8gQXNzZXQgcGF0aCBuZWVkcyB0byBiZSBkZXRlcm1pbmVkIG9ubHkgd2hlbiB1c2luZyBwYWNrYWdlXG4gIGlmIChwcm9jZXNzLmVudi5JU19FWENBTElEUkFXX05QTV9QQUNLQUdFKSB7XG4gICAgYXNzZXRQYXRoID1cbiAgICAgIHdpbmRvdy5FWENBTElEUkFXX0FTU0VUX1BBVEggfHxcbiAgICAgIGBodHRwczovL3VucGtnLmNvbS8ke3Byb2Nlc3MuZW52LlBLR19OQU1FfUAke3Byb2Nlc3MuZW52LlBLR19WRVJTSU9OfWA7XG5cbiAgICBpZiAoYXNzZXRQYXRoPy5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgYXNzZXRQYXRoID0gYXNzZXRQYXRoLnJlcGxhY2UoXCIvXCIsIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2ApO1xuICAgIH1cbiAgICBhc3NldFBhdGggPSBgJHthc3NldFBhdGh9L2Rpc3QvZXhjYWxpZHJhdy1hc3NldHMvYDtcbiAgfVxuICBzdmdSb290LmlubmVySFRNTCA9IGBcbiAgJHtTVkdfRVhQT1JUX1RBR31cbiAgJHttZXRhZGF0YX1cbiAgPGRlZnM+XG4gICAgPHN0eWxlPlxuICAgICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlZpcmdpbFwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofVZpcmdpbC53b2ZmMlwiKTtcbiAgICAgIH1cbiAgICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogXCJDYXNjYWRpYVwiO1xuICAgICAgICBzcmM6IHVybChcIiR7YXNzZXRQYXRofUNhc2NhZGlhLndvZmYyXCIpO1xuICAgICAgfVxuICAgIDwvc3R5bGU+XG4gIDwvZGVmcz5cbiAgYDtcbiAgLy8gcmVuZGVyIGJhY2tncm91bmQgcmVjdFxuICBpZiAoYXBwU3RhdGUuZXhwb3J0QmFja2dyb3VuZCAmJiB2aWV3QmFja2dyb3VuZENvbG9yKSB7XG4gICAgY29uc3QgcmVjdCA9IHN2Z1Jvb3Qub3duZXJEb2N1bWVudCEuY3JlYXRlRWxlbWVudE5TKFNWR19OUywgXCJyZWN0XCIpO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwieFwiLCBcIjBcIik7XG4gICAgcmVjdC5zZXRBdHRyaWJ1dGUoXCJ5XCIsIFwiMFwiKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGAke3dpZHRofWApO1xuICAgIHJlY3Quc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIGAke2hlaWdodH1gKTtcbiAgICByZWN0LnNldEF0dHJpYnV0ZShcImZpbGxcIiwgdmlld0JhY2tncm91bmRDb2xvcik7XG4gICAgc3ZnUm9vdC5hcHBlbmRDaGlsZChyZWN0KTtcbiAgfVxuXG4gIGNvbnN0IHJzdmcgPSByb3VnaC5zdmcoc3ZnUm9vdCk7XG4gIHJlbmRlclNjZW5lVG9TdmcoZWxlbWVudHMsIHJzdmcsIHN2Z1Jvb3QsIGZpbGVzIHx8IHt9LCB7XG4gICAgb2Zmc2V0WDogLW1pblggKyBleHBvcnRQYWRkaW5nLFxuICAgIG9mZnNldFk6IC1taW5ZICsgZXhwb3J0UGFkZGluZyxcbiAgICBleHBvcnRXaXRoRGFya01vZGU6IGFwcFN0YXRlLmV4cG9ydFdpdGhEYXJrTW9kZSxcbiAgfSk7XG5cbiAgcmV0dXJuIHN2Z1Jvb3Q7XG59O1xuXG4vLyBjYWxjdWxhdGUgc21hbGxlc3QgYXJlYSB0byBmaXQgdGhlIGNvbnRlbnRzIGluXG5jb25zdCBnZXRDYW52YXNTaXplID0gKFxuICBlbGVtZW50czogcmVhZG9ubHkgTm9uRGVsZXRlZEV4Y2FsaWRyYXdFbGVtZW50W10sXG4gIGV4cG9ydFBhZGRpbmc6IG51bWJlcixcbik6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgW21pblgsIG1pblksIG1heFgsIG1heFldID0gZ2V0Q29tbW9uQm91bmRzKGVsZW1lbnRzKTtcbiAgY29uc3Qgd2lkdGggPSBkaXN0YW5jZShtaW5YLCBtYXhYKSArIGV4cG9ydFBhZGRpbmcgKiAyO1xuICBjb25zdCBoZWlnaHQgPSBkaXN0YW5jZShtaW5ZLCBtYXhZKSArIGV4cG9ydFBhZGRpbmcgKyBleHBvcnRQYWRkaW5nO1xuXG4gIHJldHVybiBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RXhwb3J0U2l6ZSA9IChcbiAgZWxlbWVudHM6IHJlYWRvbmx5IE5vbkRlbGV0ZWRFeGNhbGlkcmF3RWxlbWVudFtdLFxuICBleHBvcnRQYWRkaW5nOiBudW1iZXIsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBbbnVtYmVyLCBudW1iZXJdID0+IHtcbiAgY29uc3QgWywgLCB3aWR0aCwgaGVpZ2h0XSA9IGdldENhbnZhc1NpemUoZWxlbWVudHMsIGV4cG9ydFBhZGRpbmcpLm1hcChcbiAgICAoZGltZW5zaW9uKSA9PiBNYXRoLnRydW5jKGRpbWVuc2lvbiAqIHNjYWxlKSxcbiAgKTtcblxuICByZXR1cm4gW3dpZHRoLCBoZWlnaHRdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../scene/export.ts\n");
|
|
3265
3265
|
|
|
3266
3266
|
/***/ }),
|
|
3267
3267
|
|
|
@@ -3349,7 +3349,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
3349
3349
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
3350
3350
|
|
|
3351
3351
|
"use strict";
|
|
3352
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn, opts) => {\n let timerId = null;\n let lastArgs = null;\n let lastArgsTrailing = null;\n const scheduleFunc = (args) => {\n timerId = window.requestAnimationFrame(() => {\n timerId = null;\n fn(...args);\n lastArgs = null;\n if (lastArgsTrailing) {\n lastArgs = lastArgsTrailing;\n lastArgsTrailing = null;\n scheduleFunc(lastArgs);\n }\n });\n };\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n if (timerId === null) {\n scheduleFunc(lastArgs);\n }\n else if (opts === null || opts === void 0 ? void 0 : opts.trailing) {\n lastArgsTrailing = args;\n }\n };\n ret.flush = () => {\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n if (lastArgs) {\n fn(...(lastArgsTrailing || lastArgs));\n lastArgs = lastArgsTrailing = null;\n }\n };\n ret.cancel = () => {\n lastArgs = lastArgsTrailing = null;\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-792f238\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-792f238\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFFBQVEsSUFBSSxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUssTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUk7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDdEQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBVSxFQUNzQyxFQUFFO0lBQ2xELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSztRQUNQLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFPLElBQUksS0FBSztRQUNoQixTQUFTLElBQUksS0FBSyxDQUNuQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxnQkFBZ0IsQ0FDbkQsb0VBQW9FLENBQ3JFLENBQUM7SUFFRixPQUFPLGlCQUFpQjtRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBRSxPQUE0QixDQUFDLFFBQVEsQ0FDbkU7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3V0aWxzLnRzPzc2M2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9jIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcIi4vY29sb3JzXCI7XG5pbXBvcnQge1xuICBDVVJTT1JfVFlQRSxcbiAgREVGQVVMVF9WRVJTSU9OLFxuICBFVkVOVCxcbiAgRk9OVF9GQU1JTFksXG4gIE1JTUVfVFlQRVMsXG4gIFRIRU1FLFxuICBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRm9udEZhbWlseVZhbHVlcywgRm9udFN0cmluZyB9IGZyb20gXCIuL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBEYXRhVVJMLCBMYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlciwgWm9vbSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IGlzRGFyd2luIH0gZnJvbSBcIi4va2V5c1wiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4vc2hhcGVzXCI7XG5cbmxldCBtb2NrRGF0ZVRpbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0ZVRpbWVGb3JUZXN0cyA9IChkYXRlVGltZTogc3RyaW5nKSA9PiB7XG4gIG1vY2tEYXRlVGltZSA9IGRhdGVUaW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVUaW1lID0gKCkgPT4ge1xuICBpZiAobW9ja0RhdGVUaW1lKSB7XG4gICAgcmV0dXJuIG1vY2tEYXRlVGltZTtcbiAgfVxuXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IGAke2RhdGUuZ2V0TW9udGgoKSArIDF9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGRheSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBociA9IGAke2RhdGUuZ2V0SG91cnMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgbWluID0gYCR7ZGF0ZS5nZXRNaW51dGVzKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG5cbiAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fS0ke2hyfSR7bWlufWA7XG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT5cbiAgc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXG5leHBvcnQgY29uc3QgaXNUb29sSWNvbiA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzIEhUTUxFbGVtZW50ID0+XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoXCJUb29sSWNvblwiKTtcblxuZXhwb3J0IGNvbnN0IGlzSW5wdXRMaWtlID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXNcbiAgfCBIVE1MSW5wdXRFbGVtZW50XG4gIHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICB8IEhUTUxTZWxlY3RFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50O1xuXG5leHBvcnQgY29uc3QgaXNXcml0YWJsZUVsZW1lbnQgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxuICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICh0YXJnZXQudHlwZSA9PT0gXCJ0ZXh0XCIgfHwgdGFyZ2V0LnR5cGUgPT09IFwibnVtYmVyXCIpKTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRGYW1pbHlTdHJpbmcgPSAoe1xuICBmb250RmFtaWx5LFxufToge1xuICBmb250RmFtaWx5OiBGb250RmFtaWx5VmFsdWVzO1xufSkgPT4ge1xuICBmb3IgKGNvbnN0IFtmb250RmFtaWx5U3RyaW5nLCBpZF0gb2YgT2JqZWN0LmVudHJpZXMoRk9OVF9GQU1JTFkpKSB7XG4gICAgaWYgKGlkID09PSBmb250RmFtaWx5KSB7XG4gICAgICByZXR1cm4gYCR7Zm9udEZhbWlseVN0cmluZ30sICR7V0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UfWA7XG4gICAgfVxuICB9XG4gIHJldHVybiBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQ7XG59O1xuXG4vKiogcmV0dXJucyBmb250U2l6ZStmb250RmFtaWx5IHN0cmluZyBmb3IgYXNzaWdubWVudCB0byBET00gZWxlbWVudHMgKi9cbmV4cG9ydCBjb25zdCBnZXRGb250U3RyaW5nID0gKHtcbiAgZm9udFNpemUsXG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIHJldHVybiBgJHtmb250U2l6ZX1weCAke2dldEZvbnRGYW1pbHlTdHJpbmcoeyBmb250RmFtaWx5IH0pfWAgYXMgRm9udFN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWJvdW5jZSA9IDxUIGV4dGVuZHMgYW55W10+KFxuICBmbjogKC4uLmFyZ3M6IFQpID0+IHZvaWQsXG4gIHRpbWVvdXQ6IG51bWJlcixcbikgPT4ge1xuICBsZXQgaGFuZGxlID0gMDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IHJldCA9ICguLi5hcmdzOiBUKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICAgIGhhbmRsZSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaWYgKGxhc3RBcmdzKSB7XG4gICAgICBjb25zdCBfbGFzdEFyZ3MgPSBsYXN0QXJncztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLl9sYXN0QXJncyk7XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIHRocm90dGxlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgb25jZSBwZXIgYW5pbWF0aW9uIGZyYW1lXG5leHBvcnQgY29uc3QgdGhyb3R0bGVSQUYgPSA8VCBleHRlbmRzIGFueVtdPihcbiAgZm46ICguLi5hcmdzOiBUKSA9PiB2b2lkLFxuICBvcHRzPzogeyB0cmFpbGluZz86IGJvb2xlYW4gfSxcbikgPT4ge1xuICBsZXQgdGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBsYXN0QXJnczogVCB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdEFyZ3NUcmFpbGluZzogVCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IHNjaGVkdWxlRnVuYyA9IChhcmdzOiBUKSA9PiB7XG4gICAgdGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGlmIChsYXN0QXJnc1RyYWlsaW5nKSB7XG4gICAgICAgIGxhc3RBcmdzID0gbGFzdEFyZ3NUcmFpbGluZztcbiAgICAgICAgbGFzdEFyZ3NUcmFpbGluZyA9IG51bGw7XG4gICAgICAgIHNjaGVkdWxlRnVuYyhsYXN0QXJncyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiKSB7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGlmICh0aW1lcklkID09PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZ1bmMobGFzdEFyZ3MpO1xuICAgIH0gZWxzZSBpZiAob3B0cz8udHJhaWxpbmcpIHtcbiAgICAgIGxhc3RBcmdzVHJhaWxpbmcgPSBhcmdzO1xuICAgIH1cbiAgfTtcbiAgcmV0LmZsdXNoID0gKCkgPT4ge1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGZuKC4uLihsYXN0QXJnc1RyYWlsaW5nIHx8IGxhc3RBcmdzKSk7XG4gICAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0LmNhbmNlbCA9ICgpID0+IHtcbiAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvZXMvY2h1bmsuanNcbmV4cG9ydCBjb25zdCBjaHVuayA9IDxUIGV4dGVuZHMgYW55PihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgc2l6ZTogbnVtYmVyLFxuKTogVFtdW10gPT4ge1xuICBpZiAoIWFycmF5Lmxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgcmVzSW5kZXggPSAwO1xuICBjb25zdCByZXN1bHQgPSBBcnJheShNYXRoLmNlaWwoYXJyYXkubGVuZ3RoIC8gc2l6ZSkpO1xuICB3aGlsZSAoaW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBhcnJheS5zbGljZShpbmRleCwgKGluZGV4ICs9IHNpemUpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5vZGUgPSAobm9kZTogRWxlbWVudCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VsZWN0aW9uID0gKCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXN0YW5jZSA9ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4gTWF0aC5hYnMoeCAtIHkpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aXZlVG9vbCA9IChcbiAgYXBwU3RhdGU6IFBpY2s8QXBwU3RhdGUsIFwiYWN0aXZlVG9vbFwiPixcbiAgZGF0YTogKFxuICAgIHwgeyB0eXBlOiB0eXBlb2YgU0hBUEVTW251bWJlcl1bXCJ2YWx1ZVwiXSB8IFwiZXJhc2VyXCIgfVxuICAgIHwgeyB0eXBlOiBcImN1c3RvbVwiOyBjdXN0b21UeXBlOiBzdHJpbmcgfVxuICApICYgeyBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcj86IExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyIH0sXG4pOiBBcHBTdGF0ZVtcImFjdGl2ZVRvb2xcIl0gPT4ge1xuICBpZiAoZGF0YS50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgICAgY3VzdG9tVHlwZTogZGF0YS5jdXN0b21UeXBlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgbGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXI6XG4gICAgICBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBhcHBTdGF0ZS5hY3RpdmVUb29sLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyXG4gICAgICAgIDogZGF0YS5sYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcixcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgY3VzdG9tVHlwZTogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBpZiAoY2FudmFzKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IFwiXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3IgPSAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsIGN1cnNvcjogc3RyaW5nKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gY3Vyc29yO1xuICB9XG59O1xuXG5sZXQgZXJhc2VyQ2FudmFzQ2FjaGU6IGFueTtcbmxldCBwcmV2aWV3RGF0YVVSTDogc3RyaW5nO1xuZXhwb3J0IGNvbnN0IHNldEVyYXNlckN1cnNvciA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIHRoZW1lOiBBcHBTdGF0ZVtcInRoZW1lXCJdLFxuKSA9PiB7XG4gIGNvbnN0IGN1cnNvckltYWdlU2l6ZVB4ID0gMjA7XG5cbiAgY29uc3QgZHJhd0NhbnZhcyA9ICgpID0+IHtcbiAgICBjb25zdCBpc0RhcmtUaGVtZSA9IHRoZW1lID09PSBUSEVNRS5EQVJLO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSA9IHRoZW1lO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCA9IGN1cnNvckltYWdlU2l6ZVB4O1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgY29uc3QgY29udGV4dCA9IGVyYXNlckNhbnZhc0NhY2hlLmdldENvbnRleHQoXCIyZFwiKSE7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSAxO1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dC5hcmMoXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS53aWR0aCAvIDIsXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS5oZWlnaHQgLyAyLFxuICAgICAgNSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSSxcbiAgICApO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaXNEYXJrVGhlbWUgPyBvYy5ibGFjayA6IG9jLndoaXRlO1xuICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLndoaXRlIDogb2MuYmxhY2s7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBwcmV2aWV3RGF0YVVSTCA9IGVyYXNlckNhbnZhc0NhY2hlLnRvRGF0YVVSTChNSU1FX1RZUEVTLnN2ZykgYXMgRGF0YVVSTDtcbiAgfTtcbiAgaWYgKCFlcmFzZXJDYW52YXNDYWNoZSB8fCBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICBkcmF3Q2FudmFzKCk7XG4gIH1cblxuICBzZXRDdXJzb3IoXG4gICAgY2FudmFzLFxuICAgIGB1cmwoJHtwcmV2aWV3RGF0YVVSTH0pICR7Y3Vyc29ySW1hZ2VTaXplUHggLyAyfSAke1xuICAgICAgY3Vyc29ySW1hZ2VTaXplUHggLyAyXG4gICAgfSwgYXV0b2AsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q3Vyc29yRm9yU2hhcGUgPSAoXG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4pID0+IHtcbiAgaWYgKCFjYW52YXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSA9PT0gXCJzZWxlY3Rpb25cIikge1xuICAgIHJlc2V0Q3Vyc29yKGNhbnZhcyk7XG4gIH0gZWxzZSBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcImVyYXNlclwiKSB7XG4gICAgc2V0RXJhc2VyQ3Vyc29yKGNhbnZhcywgYXBwU3RhdGUudGhlbWUpO1xuICAgIC8vIGRvIG5vdGhpbmcgaWYgaW1hZ2UgdG9vbCBpcyBzZWxlY3RlZCB3aGljaCBzdWdnZXN0cyB0aGVyZSdzXG4gICAgLy8gYSBpbWFnZS1wcmV2aWV3IHNldCBhcyB0aGUgY3Vyc29yXG4gICAgLy8gSWdub3JlIGN1c3RvbSB0eXBlIGFzIHdlbGwgYW5kIGxldCBob3N0IGRlY2lkZVxuICB9IGVsc2UgaWYgKCFbXCJpbWFnZVwiLCBcImN1c3RvbVwiXS5pbmNsdWRlcyhhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUpKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IENVUlNPUl9UWVBFLkNST1NTSEFJUjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50Py5ub2RlTmFtZSA9PT0gXCJIVE1MXCI7XG5cbmV4cG9ydCBjb25zdCBhbGxvd0Z1bGxTY3JlZW4gPSAoKSA9PlxuICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGV4aXRGdWxsU2NyZWVuID0gKCkgPT4gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGdldFNob3J0Y3V0S2V5ID0gKHNob3J0Y3V0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzaG9ydGN1dCA9IHNob3J0Y3V0XG4gICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIkFsdFwiKVxuICAgIC5yZXBsYWNlKC9cXGJTaGlmdFxcYi9pLCBcIlNoaWZ0XCIpXG4gICAgLnJlcGxhY2UoL1xcYihFbnRlcnxSZXR1cm4pXFxiL2ksIFwiRW50ZXJcIilcbiAgICAucmVwbGFjZSgvXFxiRGVsXFxiL2ksIFwiRGVsZXRlXCIpO1xuXG4gIGlmIChpc0Rhcndpbikge1xuICAgIHJldHVybiBzaG9ydGN1dFxuICAgICAgLnJlcGxhY2UoL1xcYkN0cmxPckNtZFxcYi9pLCBcIkNtZFwiKVxuICAgICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIk9wdGlvblwiKTtcbiAgfVxuICByZXR1cm4gc2hvcnRjdXQucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ3RybFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMgPSAoXG4gIHsgY2xpZW50WCwgY2xpZW50WSB9OiB7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgaW52U2NhbGUgPSAxIC8gem9vbS52YWx1ZTtcbiAgY29uc3QgeCA9IChjbGllbnRYIC0gb2Zmc2V0TGVmdCkgKiBpbnZTY2FsZSAtIHNjcm9sbFg7XG4gIGNvbnN0IHkgPSAoY2xpZW50WSAtIG9mZnNldFRvcCkgKiBpbnZTY2FsZSAtIHNjcm9sbFk7XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcyA9IChcbiAgeyBzY2VuZVgsIHNjZW5lWSB9OiB7IHNjZW5lWDogbnVtYmVyOyBzY2VuZVk6IG51bWJlciB9LFxuICB7XG4gICAgem9vbSxcbiAgICBvZmZzZXRMZWZ0LFxuICAgIG9mZnNldFRvcCxcbiAgICBzY3JvbGxYLFxuICAgIHNjcm9sbFksXG4gIH06IHtcbiAgICB6b29tOiBab29tO1xuICAgIG9mZnNldExlZnQ6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBzY3JvbGxYOiBudW1iZXI7XG4gICAgc2Nyb2xsWTogbnVtYmVyO1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IHggPSAoc2NlbmVYICsgc2Nyb2xsWCkgKiB6b29tLnZhbHVlICsgb2Zmc2V0TGVmdDtcbiAgY29uc3QgeSA9IChzY2VuZVkgKyBzY3JvbGxZKSAqIHpvb20udmFsdWUgKyBvZmZzZXRUb3A7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxDU1NWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcpID0+XG4gIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLSR7bmFtZX1gKTtcblxuY29uc3QgUlNfTFRSX0NIQVJTID1cbiAgXCJBLVphLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyQjhcXHUwMzAwLVxcdTA1OTBcXHUwODAwLVxcdTFGRkZcIiArXG4gIFwiXFx1MkMwMC1cXHVGQjFDXFx1RkRGRS1cXHVGRTZGXFx1RkVGRC1cXHVGRkZGXCI7XG5jb25zdCBSU19SVExfQ0hBUlMgPSBcIlxcdTA1OTEtXFx1MDdGRlxcdUZCMUQtXFx1RkRGRFxcdUZFNzAtXFx1RkVGQ1wiO1xuY29uc3QgUkVfUlRMX0NIRUNLID0gbmV3IFJlZ0V4cChgXlteJHtSU19MVFJfQ0hBUlN9XSpbJHtSU19SVExfQ0hBUlN9XWApO1xuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBmaXJzdCBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaXMgUlRMLiBNZWFuaW5nIHdoZXRoZXIgaXQgc3RhcnRzXG4gKiAgd2l0aCBSVEwgY2hhcmFjdGVycywgb3IgaW5kZXRlcm1pbmF0ZSAobnVtYmVycyBldGMuKSBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5XG4gKiAgUlRMLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvcHVsbC8xNzIyI2Rpc2N1c3Npb25fcjQzNjM0MDE3MVxuICovXG5leHBvcnQgY29uc3QgaXNSVEwgPSAodGV4dDogc3RyaW5nKSA9PiBSRV9SVExfQ0hFQ0sudGVzdCh0ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHR1cGxlVG9Db29ycyA9IChcbiAgeHlUdXBsZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSxcbik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IFt4LCB5XSA9IHh5VHVwbGU7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbi8qKiB1c2UgYXMgYSByZWplY3Rpb25IYW5kbGVyIHRvIG11dGUgZmlsZXN5c3RlbSBBYm9ydCBlcnJvcnMgKi9cbmV4cG9ydCBjb25zdCBtdXRlRlNBYm9ydEVycm9yID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgaWYgKGVycm9yPy5uYW1lID09PSBcIkFib3J0RXJyb3JcIikge1xuICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRJbmRleCA9IDxUPihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgY2I6IChlbGVtZW50OiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBib29sZWFuLFxuICBmcm9tSW5kZXg6IG51bWJlciA9IDAsXG4pID0+IHtcbiAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggKyBmcm9tSW5kZXg7XG4gIH1cbiAgZnJvbUluZGV4ID0gTWF0aC5taW4oYXJyYXkubGVuZ3RoLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4IC0gMTtcbiAgd2hpbGUgKCsraW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICBpZiAoY2IoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMSxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGggLSAxLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgd2hpbGUgKC0taW5kZXggPiAtMSkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNwYXJlbnQgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBjb25zdCBpc1JHQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA1ICYmIGNvbG9yLnN1YnN0cig0LCAxKSA9PT0gXCIwXCI7XG4gIGNvbnN0IGlzUlJHR0JCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDkgJiYgY29sb3Iuc3Vic3RyKDcsIDIpID09PSBcIjAwXCI7XG4gIHJldHVybiAoXG4gICAgaXNSR0JUcmFuc3BhcmVudCB8fFxuICAgIGlzUlJHR0JCVHJhbnNwYXJlbnQgfHxcbiAgICBjb2xvciA9PT0gY29sb3JzLmVsZW1lbnRCYWNrZ3JvdW5kWzBdXG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZhYmxlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6IFtUXSBleHRlbmRzIFt1bmRlZmluZWRdID8gKHZhbHVlPzogVCkgPT4gdm9pZCA6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZhYmxlUHJvbWlzZSA9IDxUPigpID0+IHtcbiAgbGV0IHJlc29sdmUhOiBhbnk7XG4gIGxldCByZWplY3QhOiBhbnk7XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgcmVqZWN0ID0gX3JlamVjdDtcbiAgfSk7XG4gIChwcm9taXNlIGFzIGFueSkucmVzb2x2ZSA9IHJlc29sdmU7XG4gIChwcm9taXNlIGFzIGFueSkucmVqZWN0ID0gcmVqZWN0O1xuICByZXR1cm4gcHJvbWlzZSBhcyBSZXNvbHZhYmxlUHJvbWlzZTxUPjtcbn07XG5cbi8qKlxuICogQHBhcmFtIGZ1bmMgaGFuZGxlciB0YWtpbmcgYXQgbW9zdCBzaW5nbGUgcGFyYW1ldGVyIChldmVudCkuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXMgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PlxuICAoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYyBhcyBURnVuY3Rpb24sIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uO1xuXG4vKipcbiAqIGJhcmNoZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBhbmQgdGhyb3R0bGVzIHRoZSBjYWxscyB0byBhIHNpbmdsZSBjYWxsIHBlclxuICogYW5pbWF0aW9uIGZyYW1lXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXNUaHJvdHRsZWQgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIHRocm90dGxlUkFGPFBhcmFtZXRlcnM8VEZ1bmN0aW9uPj4oKChldmVudCkgPT4ge1xuICAgIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKGZ1bmMsIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uKTtcbn07XG5cbi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzk0NjIzODIvODQxOFxuZXhwb3J0IGNvbnN0IG5Gb3JtYXR0ZXIgPSAobnVtOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2kgPSBbXG4gICAgeyB2YWx1ZTogMSwgc3ltYm9sOiBcImJcIiB9LFxuICAgIHsgdmFsdWU6IDFlMywgc3ltYm9sOiBcImtcIiB9LFxuICAgIHsgdmFsdWU6IDFlNiwgc3ltYm9sOiBcIk1cIiB9LFxuICAgIHsgdmFsdWU6IDFlOSwgc3ltYm9sOiBcIkdcIiB9LFxuICBdO1xuICBjb25zdCByeCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG4gIGxldCBpbmRleDtcbiAgZm9yIChpbmRleCA9IHNpLmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgIGlmIChudW0gPj0gc2lbaW5kZXhdLnZhbHVlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChcbiAgICAobnVtIC8gc2lbaW5kZXhdLnZhbHVlKS50b0ZpeGVkKGRpZ2l0cykucmVwbGFjZShyeCwgXCIkMVwiKSArIHNpW2luZGV4XS5zeW1ib2xcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWZXJzaW9uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTE1ldGFFbGVtZW50PignbWV0YVtuYW1lPVwidmVyc2lvblwiXScpPy5jb250ZW50IHx8XG4gICAgREVGQVVMVF9WRVJTSU9OXG4gICk7XG59O1xuXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2Vtb2ppLmpzXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNFbW9qaSA9ICgpID0+IHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgb2Zmc2V0ID0gMTI7XG4gIGN0eC5maWxsU3R5bGUgPSBcIiNmMDBcIjtcbiAgY3R4LnRleHRCYXNlbGluZSA9IFwidG9wXCI7XG4gIGN0eC5mb250ID0gXCIzMnB4IEFyaWFsXCI7XG4gIC8vIE1vZGVybml6ciB1c2VkIPCfkKgsIGJ1dCBpdCBpcyBzb3J0IG9mIHN1cHBvcnRlZCBvbiBXaW5kb3dzIDcuXG4gIC8vIEx1Y2tpbHkg8J+YgCBpc24ndCBzdXBwb3J0ZWQuXG4gIGN0eC5maWxsVGV4dChcIvCfmIBcIiwgMCwgMCk7XG4gIHJldHVybiBjdHguZ2V0SW1hZ2VEYXRhKG9mZnNldCwgb2Zmc2V0LCAxLCAxKS5kYXRhWzBdICE9PSAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyID0gKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIH1cbiAgICBjb25zdCB7IG92ZXJmbG93WSB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBjb25zdCBoYXNTY3JvbGxhYmxlQ29udGVudCA9IHBhcmVudC5zY3JvbGxIZWlnaHQgPiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIGlmIChcbiAgICAgIGhhc1Njcm9sbGFibGVDb250ZW50ICYmXG4gICAgICAob3ZlcmZsb3dZID09PSBcImF1dG9cIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwic2Nyb2xsXCIgfHxcbiAgICAgICAgb3ZlcmZsb3dZID09PSBcIm92ZXJsYXlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG4gIHJldHVybiBkb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBmb2N1c05lYXJlc3RQYXJlbnQgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudC50YWJJbmRleCA+IC0xKSB7XG4gICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2ZW50VW5sb2FkID0gKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyBOT1RFOiBtb2Rlcm4gYnJvd3NlcnMgbm8gbG9uZ2VyIGFsbG93IHNob3dpbmcgYSBjdXN0b20gbWVzc2FnZSBoZXJlXG4gIGV2ZW50LnJldHVyblZhbHVlID0gXCJcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBieXRlc1RvSGV4U3RyaW5nID0gKGJ5dGVzOiBVaW50OEFycmF5KSA9PiB7XG4gIHJldHVybiBBcnJheS5mcm9tKGJ5dGVzKVxuICAgIC5tYXAoKGJ5dGUpID0+IGAwJHtieXRlLnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcbiAgICAuam9pbihcIlwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkVGltZXN0YW1wID0gKCkgPT4gKGlzVGVzdEVudigpID8gMSA6IERhdGUubm93KCkpO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGBpZGAgYXR0cmlidXRlLFxuICogb3IgYXJyYXkgb2YgaWRzIChzdHJpbmdzKSwgaW50byBhIE1hcCwga2V5ZCBieSBgaWRgLlxuICovXG5leHBvcnQgY29uc3QgYXJyYXlUb01hcCA9IDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmc+KFxuICBpdGVtczogcmVhZG9ubHkgVFtdLFxuKSA9PiB7XG4gIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYzogTWFwPHN0cmluZywgVD4sIGVsZW1lbnQpID0+IHtcbiAgICBhY2Muc2V0KHR5cGVvZiBlbGVtZW50ID09PSBcInN0cmluZ1wiID8gZWxlbWVudCA6IGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIG5ldyBNYXAoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUZXN0RW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInRlc3RcIjtcblxuZXhwb3J0IGNvbnN0IGlzUHJvZEVudiA9ICgpID0+XG4gIHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Py5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCB3cmFwRXZlbnQgPSA8VCBleHRlbmRzIEV2ZW50PihuYW1lOiBFVkVOVCwgbmF0aXZlRXZlbnQ6IFQpID0+IHtcbiAgcmV0dXJuIG5ldyBDdXN0b21FdmVudChuYW1lLCB7XG4gICAgZGV0YWlsOiB7XG4gICAgICBuYXRpdmVFdmVudCxcbiAgICB9LFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU9iamVjdCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG9iajogVCxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbik6IFQgPT4ge1xuICBsZXQgZGlkQ2hhbmdlID0gZmFsc2U7XG4gIGZvciAoY29uc3Qga2V5IGluIHVwZGF0ZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh1cGRhdGVzIGFzIGFueSlba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChvYmogYXMgYW55KVtrZXldID09PSB2YWx1ZSAmJlxuICAgICAgICAvLyBpZiBvYmplY3QsIGFsd2F5cyB1cGRhdGUgYmVjYXVzZSBpdHMgYXR0cnMgY291bGQgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBkaWRDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZGlkQ2hhbmdlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ub2JqLFxuICAgIC4uLnVwZGF0ZXMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcmltaXRpdmUgPSAodmFsOiBhbnkpID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIHJldHVybiB2YWwgPT0gbnVsbCB8fCAodHlwZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlICE9PSBcImZ1bmN0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZyYW1lID0gKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCA/IFwidG9wXCIgOiBcImlmcmFtZVwiO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBcImlmcmFtZVwiO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcm9taXNlTGlrZSA9IChcbiAgdmFsdWU6IGFueSxcbik6IHZhbHVlIGlzIFByb21pc2U8UmVzb2x1dGlvblR5cGU8dHlwZW9mIHZhbHVlPj4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcInRoZW5cIiBpbiB2YWx1ZSAmJlxuICAgIFwiY2F0Y2hcIiBpbiB2YWx1ZSAmJlxuICAgIFwiZmluYWxseVwiIGluIHZhbHVlXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcXVlcnlGb2N1c2FibGVFbGVtZW50cyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgXCJidXR0b24sIGEsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBkaXZbdGFiaW5kZXhdLCBsYWJlbFt0YWJpbmRleF1cIixcbiAgKTtcblxuICByZXR1cm4gZm9jdXNhYmxlRWxlbWVudHNcbiAgICA/IEFycmF5LmZyb20oZm9jdXNhYmxlRWxlbWVudHMpLmZpbHRlcihcbiAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgZWxlbWVudC50YWJJbmRleCA+IC0xICYmICEoZWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS5kaXNhYmxlZCxcbiAgICAgIClcbiAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../utils.ts\n");
|
|
3352
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"allowFullScreen\": () => (/* binding */ allowFullScreen),\n/* harmony export */ \"arrayToMap\": () => (/* binding */ arrayToMap),\n/* harmony export */ \"bytesToHexString\": () => (/* binding */ bytesToHexString),\n/* harmony export */ \"capitalizeString\": () => (/* binding */ capitalizeString),\n/* harmony export */ \"chunk\": () => (/* binding */ chunk),\n/* harmony export */ \"debounce\": () => (/* binding */ debounce),\n/* harmony export */ \"distance\": () => (/* binding */ distance),\n/* harmony export */ \"exitFullScreen\": () => (/* binding */ exitFullScreen),\n/* harmony export */ \"findIndex\": () => (/* binding */ findIndex),\n/* harmony export */ \"findLastIndex\": () => (/* binding */ findLastIndex),\n/* harmony export */ \"focusNearestParent\": () => (/* binding */ focusNearestParent),\n/* harmony export */ \"getDateTime\": () => (/* binding */ getDateTime),\n/* harmony export */ \"getFontFamilyString\": () => (/* binding */ getFontFamilyString),\n/* harmony export */ \"getFontString\": () => (/* binding */ getFontString),\n/* harmony export */ \"getFrame\": () => (/* binding */ getFrame),\n/* harmony export */ \"getGlobalCSSVariable\": () => (/* binding */ getGlobalCSSVariable),\n/* harmony export */ \"getNearestScrollableContainer\": () => (/* binding */ getNearestScrollableContainer),\n/* harmony export */ \"getShortcutKey\": () => (/* binding */ getShortcutKey),\n/* harmony export */ \"getUpdatedTimestamp\": () => (/* binding */ getUpdatedTimestamp),\n/* harmony export */ \"getVersion\": () => (/* binding */ getVersion),\n/* harmony export */ \"isFullScreen\": () => (/* binding */ isFullScreen),\n/* harmony export */ \"isInputLike\": () => (/* binding */ isInputLike),\n/* harmony export */ \"isPrimitive\": () => (/* binding */ isPrimitive),\n/* harmony export */ \"isProdEnv\": () => (/* binding */ isProdEnv),\n/* harmony export */ \"isPromiseLike\": () => (/* binding */ isPromiseLike),\n/* harmony export */ \"isRTL\": () => (/* binding */ isRTL),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isToolIcon\": () => (/* binding */ isToolIcon),\n/* harmony export */ \"isTransparent\": () => (/* binding */ isTransparent),\n/* harmony export */ \"isWritableElement\": () => (/* binding */ isWritableElement),\n/* harmony export */ \"muteFSAbortError\": () => (/* binding */ muteFSAbortError),\n/* harmony export */ \"nFormatter\": () => (/* binding */ nFormatter),\n/* harmony export */ \"preventUnload\": () => (/* binding */ preventUnload),\n/* harmony export */ \"queryFocusableElements\": () => (/* binding */ queryFocusableElements),\n/* harmony export */ \"removeSelection\": () => (/* binding */ removeSelection),\n/* harmony export */ \"resetCursor\": () => (/* binding */ resetCursor),\n/* harmony export */ \"resolvablePromise\": () => (/* binding */ resolvablePromise),\n/* harmony export */ \"sceneCoordsToViewportCoords\": () => (/* binding */ sceneCoordsToViewportCoords),\n/* harmony export */ \"selectNode\": () => (/* binding */ selectNode),\n/* harmony export */ \"setCursor\": () => (/* binding */ setCursor),\n/* harmony export */ \"setCursorForShape\": () => (/* binding */ setCursorForShape),\n/* harmony export */ \"setDateTimeForTests\": () => (/* binding */ setDateTimeForTests),\n/* harmony export */ \"setEraserCursor\": () => (/* binding */ setEraserCursor),\n/* harmony export */ \"supportsEmoji\": () => (/* binding */ supportsEmoji),\n/* harmony export */ \"throttleRAF\": () => (/* binding */ throttleRAF),\n/* harmony export */ \"tupleToCoors\": () => (/* binding */ tupleToCoors),\n/* harmony export */ \"updateActiveTool\": () => (/* binding */ updateActiveTool),\n/* harmony export */ \"updateObject\": () => (/* binding */ updateObject),\n/* harmony export */ \"viewportCoordsToSceneCoords\": () => (/* binding */ viewportCoordsToSceneCoords),\n/* harmony export */ \"withBatchedUpdates\": () => (/* binding */ withBatchedUpdates),\n/* harmony export */ \"withBatchedUpdatesThrottled\": () => (/* binding */ withBatchedUpdatesThrottled),\n/* harmony export */ \"wrapEvent\": () => (/* binding */ wrapEvent)\n/* harmony export */ });\n/* harmony import */ var open_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! open-color */ \"../../../node_modules/open-color/open-color.json\");\n/* harmony import */ var _colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./colors */ \"../../colors.ts\");\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ \"../../constants.ts\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dom */ \"react-dom\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keys */ \"../../keys.ts\");\n\n\n\n\n\nlet mockDateTime = null;\nconst setDateTimeForTests = (dateTime) => {\n mockDateTime = dateTime;\n};\nconst getDateTime = () => {\n if (mockDateTime) {\n return mockDateTime;\n }\n const date = new Date();\n const year = date.getFullYear();\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const hr = `${date.getHours()}`.padStart(2, \"0\");\n const min = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${year}-${month}-${day}-${hr}${min}`;\n};\nconst capitalizeString = (str) => str.charAt(0).toUpperCase() + str.slice(1);\nconst isToolIcon = (target) => target instanceof HTMLElement && target.className.includes(\"ToolIcon\");\nconst isInputLike = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement;\nconst isWritableElement = (target) => (target instanceof HTMLElement && target.dataset.type === \"wysiwyg\") ||\n target instanceof HTMLBRElement || // newline in wysiwyg\n target instanceof HTMLTextAreaElement ||\n (target instanceof HTMLInputElement &&\n (target.type === \"text\" || target.type === \"number\"));\nconst getFontFamilyString = ({ fontFamily, }) => {\n for (const [fontFamilyString, id] of Object.entries(_constants__WEBPACK_IMPORTED_MODULE_2__.FONT_FAMILY)) {\n if (id === fontFamily) {\n return `${fontFamilyString}, ${_constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT}`;\n }\n }\n return _constants__WEBPACK_IMPORTED_MODULE_2__.WINDOWS_EMOJI_FALLBACK_FONT;\n};\n/** returns fontSize+fontFamily string for assignment to DOM elements */\nconst getFontString = ({ fontSize, fontFamily, }) => {\n return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;\n};\nconst debounce = (fn, timeout) => {\n let handle = 0;\n let lastArgs = null;\n const ret = (...args) => {\n lastArgs = args;\n clearTimeout(handle);\n handle = window.setTimeout(() => {\n lastArgs = null;\n fn(...args);\n }, timeout);\n };\n ret.flush = () => {\n clearTimeout(handle);\n if (lastArgs) {\n const _lastArgs = lastArgs;\n lastArgs = null;\n fn(..._lastArgs);\n }\n };\n ret.cancel = () => {\n lastArgs = null;\n clearTimeout(handle);\n };\n return ret;\n};\n// throttle callback to execute once per animation frame\nconst throttleRAF = (fn, opts) => {\n let timerId = null;\n let lastArgs = null;\n let lastArgsTrailing = null;\n const scheduleFunc = (args) => {\n timerId = window.requestAnimationFrame(() => {\n timerId = null;\n fn(...args);\n lastArgs = null;\n if (lastArgsTrailing) {\n lastArgs = lastArgsTrailing;\n lastArgsTrailing = null;\n scheduleFunc(lastArgs);\n }\n });\n };\n const ret = (...args) => {\n if (false) {}\n lastArgs = args;\n if (timerId === null) {\n scheduleFunc(lastArgs);\n }\n else if (opts === null || opts === void 0 ? void 0 : opts.trailing) {\n lastArgsTrailing = args;\n }\n };\n ret.flush = () => {\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n if (lastArgs) {\n fn(...(lastArgsTrailing || lastArgs));\n lastArgs = lastArgsTrailing = null;\n }\n };\n ret.cancel = () => {\n lastArgs = lastArgsTrailing = null;\n if (timerId !== null) {\n cancelAnimationFrame(timerId);\n timerId = null;\n }\n };\n return ret;\n};\n// https://github.com/lodash/lodash/blob/es/chunk.js\nconst chunk = (array, size) => {\n if (!array.length || size < 1) {\n return [];\n }\n let index = 0;\n let resIndex = 0;\n const result = Array(Math.ceil(array.length / size));\n while (index < array.length) {\n result[resIndex++] = array.slice(index, (index += size));\n }\n return result;\n};\nconst selectNode = (node) => {\n const selection = window.getSelection();\n if (selection) {\n const range = document.createRange();\n range.selectNodeContents(node);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\nconst removeSelection = () => {\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n }\n};\nconst distance = (x, y) => Math.abs(x - y);\nconst updateActiveTool = (appState, data) => {\n if (data.type === \"custom\") {\n return Object.assign(Object.assign({}, appState.activeTool), { type: \"custom\", customType: data.customType });\n }\n return Object.assign(Object.assign({}, appState.activeTool), { lastActiveToolBeforeEraser: data.lastActiveToolBeforeEraser === undefined\n ? appState.activeTool.lastActiveToolBeforeEraser\n : data.lastActiveToolBeforeEraser, type: data.type, customType: null });\n};\nconst resetCursor = (canvas) => {\n if (canvas) {\n canvas.style.cursor = \"\";\n }\n};\nconst setCursor = (canvas, cursor) => {\n if (canvas) {\n canvas.style.cursor = cursor;\n }\n};\nlet eraserCanvasCache;\nlet previewDataURL;\nconst setEraserCursor = (canvas, theme) => {\n const cursorImageSizePx = 20;\n const drawCanvas = () => {\n const isDarkTheme = theme === _constants__WEBPACK_IMPORTED_MODULE_2__.THEME.DARK;\n eraserCanvasCache = document.createElement(\"canvas\");\n eraserCanvasCache.theme = theme;\n eraserCanvasCache.height = cursorImageSizePx;\n eraserCanvasCache.width = cursorImageSizePx;\n const context = eraserCanvasCache.getContext(\"2d\");\n context.lineWidth = 1;\n context.beginPath();\n context.arc(eraserCanvasCache.width / 2, eraserCanvasCache.height / 2, 5, 0, 2 * Math.PI);\n context.fillStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.black : open_color__WEBPACK_IMPORTED_MODULE_0__.white;\n context.fill();\n context.strokeStyle = isDarkTheme ? open_color__WEBPACK_IMPORTED_MODULE_0__.white : open_color__WEBPACK_IMPORTED_MODULE_0__.black;\n context.stroke();\n previewDataURL = eraserCanvasCache.toDataURL(_constants__WEBPACK_IMPORTED_MODULE_2__.MIME_TYPES.svg);\n };\n if (!eraserCanvasCache || eraserCanvasCache.theme !== theme) {\n drawCanvas();\n }\n setCursor(canvas, `url(${previewDataURL}) ${cursorImageSizePx / 2} ${cursorImageSizePx / 2}, auto`);\n};\nconst setCursorForShape = (canvas, appState) => {\n if (!canvas) {\n return;\n }\n if (appState.activeTool.type === \"selection\") {\n resetCursor(canvas);\n }\n else if (appState.activeTool.type === \"eraser\") {\n setEraserCursor(canvas, appState.theme);\n // do nothing if image tool is selected which suggests there's\n // a image-preview set as the cursor\n // Ignore custom type as well and let host decide\n }\n else if (![\"image\", \"custom\"].includes(appState.activeTool.type)) {\n canvas.style.cursor = _constants__WEBPACK_IMPORTED_MODULE_2__.CURSOR_TYPE.CROSSHAIR;\n }\n};\nconst isFullScreen = () => { var _a; return ((_a = document.fullscreenElement) === null || _a === void 0 ? void 0 : _a.nodeName) === \"HTML\"; };\nconst allowFullScreen = () => document.documentElement.requestFullscreen();\nconst exitFullScreen = () => document.exitFullscreen();\nconst getShortcutKey = (shortcut) => {\n shortcut = shortcut\n .replace(/\\bAlt\\b/i, \"Alt\")\n .replace(/\\bShift\\b/i, \"Shift\")\n .replace(/\\b(Enter|Return)\\b/i, \"Enter\")\n .replace(/\\bDel\\b/i, \"Delete\");\n if (_keys__WEBPACK_IMPORTED_MODULE_4__.isDarwin) {\n return shortcut\n .replace(/\\bCtrlOrCmd\\b/i, \"Cmd\")\n .replace(/\\bAlt\\b/i, \"Option\");\n }\n return shortcut.replace(/\\bCtrlOrCmd\\b/i, \"Ctrl\");\n};\nconst viewportCoordsToSceneCoords = ({ clientX, clientY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const invScale = 1 / zoom.value;\n const x = (clientX - offsetLeft) * invScale - scrollX;\n const y = (clientY - offsetTop) * invScale - scrollY;\n return { x, y };\n};\nconst sceneCoordsToViewportCoords = ({ sceneX, sceneY }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }) => {\n const x = (sceneX + scrollX) * zoom.value + offsetLeft;\n const y = (sceneY + scrollY) * zoom.value + offsetTop;\n return { x, y };\n};\nconst getGlobalCSSVariable = (name) => getComputedStyle(document.documentElement).getPropertyValue(`--${name}`);\nconst RS_LTR_CHARS = \"A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\" +\n \"\\u2C00-\\uFB1C\\uFDFE-\\uFE6F\\uFEFD-\\uFFFF\";\nconst RS_RTL_CHARS = \"\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC\";\nconst RE_RTL_CHECK = new RegExp(`^[^${RS_LTR_CHARS}]*[${RS_RTL_CHARS}]`);\n/**\n * Checks whether first directional character is RTL. Meaning whether it starts\n * with RTL characters, or indeterminate (numbers etc.) characters followed by\n * RTL.\n * See https://github.com/excalidraw/excalidraw/pull/1722#discussion_r436340171\n */\nconst isRTL = (text) => RE_RTL_CHECK.test(text);\nconst tupleToCoors = (xyTuple) => {\n const [x, y] = xyTuple;\n return { x, y };\n};\n/** use as a rejectionHandler to mute filesystem Abort errors */\nconst muteFSAbortError = (error) => {\n if ((error === null || error === void 0 ? void 0 : error.name) === \"AbortError\") {\n console.warn(error);\n return;\n }\n throw error;\n};\nconst findIndex = (array, cb, fromIndex = 0) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length, Math.max(fromIndex, 0));\n let index = fromIndex - 1;\n while (++index < array.length) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst findLastIndex = (array, cb, fromIndex = array.length - 1) => {\n if (fromIndex < 0) {\n fromIndex = array.length + fromIndex;\n }\n fromIndex = Math.min(array.length - 1, Math.max(fromIndex, 0));\n let index = fromIndex + 1;\n while (--index > -1) {\n if (cb(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n};\nconst isTransparent = (color) => {\n const isRGBTransparent = color.length === 5 && color.substr(4, 1) === \"0\";\n const isRRGGBBTransparent = color.length === 9 && color.substr(7, 2) === \"00\";\n return (isRGBTransparent ||\n isRRGGBBTransparent ||\n color === _colors__WEBPACK_IMPORTED_MODULE_1__[\"default\"].elementBackground[0]);\n};\nconst resolvablePromise = () => {\n let resolve;\n let reject;\n const promise = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n};\n/**\n * @param func handler taking at most single parameter (event).\n */\nconst withBatchedUpdates = (func) => ((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n});\n/**\n * barches React state updates and throttles the calls to a single call per\n * animation frame\n */\nconst withBatchedUpdatesThrottled = (func) => {\n // @ts-ignore\n return throttleRAF(((event) => {\n (0,react_dom__WEBPACK_IMPORTED_MODULE_3__.unstable_batchedUpdates)(func, event);\n }));\n};\n//https://stackoverflow.com/a/9462382/8418\nconst nFormatter = (num, digits) => {\n const si = [\n { value: 1, symbol: \"b\" },\n { value: 1e3, symbol: \"k\" },\n { value: 1e6, symbol: \"M\" },\n { value: 1e9, symbol: \"G\" },\n ];\n const rx = /\\.0+$|(\\.[0-9]*[1-9])0+$/;\n let index;\n for (index = si.length - 1; index > 0; index--) {\n if (num >= si[index].value) {\n break;\n }\n }\n return ((num / si[index].value).toFixed(digits).replace(rx, \"$1\") + si[index].symbol);\n};\nconst getVersion = () => {\n var _a;\n return (((_a = document.querySelector('meta[name=\"version\"]')) === null || _a === void 0 ? void 0 : _a.content) ||\n _constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_VERSION);\n};\n// Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/emoji.js\nconst supportsEmoji = () => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return false;\n }\n const offset = 12;\n ctx.fillStyle = \"#f00\";\n ctx.textBaseline = \"top\";\n ctx.font = \"32px Arial\";\n // Modernizr used 🐨, but it is sort of supported on Windows 7.\n // Luckily 😀 isn't supported.\n ctx.fillText(\"😀\", 0, 0);\n return ctx.getImageData(offset, offset, 1, 1).data[0] !== 0;\n};\nconst getNearestScrollableContainer = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent === document.body) {\n return document;\n }\n const { overflowY } = window.getComputedStyle(parent);\n const hasScrollableContent = parent.scrollHeight > parent.clientHeight;\n if (hasScrollableContent &&\n (overflowY === \"auto\" ||\n overflowY === \"scroll\" ||\n overflowY === \"overlay\")) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return document;\n};\nconst focusNearestParent = (element) => {\n let parent = element.parentElement;\n while (parent) {\n if (parent.tabIndex > -1) {\n parent.focus();\n return;\n }\n parent = parent.parentElement;\n }\n};\nconst preventUnload = (event) => {\n event.preventDefault();\n // NOTE: modern browsers no longer allow showing a custom message here\n event.returnValue = \"\";\n};\nconst bytesToHexString = (bytes) => {\n return Array.from(bytes)\n .map((byte) => `0${byte.toString(16)}`.slice(-2))\n .join(\"\");\n};\nconst getUpdatedTimestamp = () => (isTestEnv() ? 1 : Date.now());\n/**\n * Transforms array of objects containing `id` attribute,\n * or array of ids (strings), into a Map, keyd by `id`.\n */\nconst arrayToMap = (items) => {\n return items.reduce((acc, element) => {\n acc.set(typeof element === \"string\" ? element : element.id, element);\n return acc;\n }, new Map());\n};\nconst isTestEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9c37b25\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"test\"; };\nconst isProdEnv = () => { var _a; return typeof process !== \"undefined\" && ((_a = ({\"REACT_APP_BACKEND_V2_GET_URL\":\"https://json-dev.excalidraw.com/api/v2/\",\"REACT_APP_BACKEND_V2_POST_URL\":\"https://json-dev.excalidraw.com/api/v2/post/\",\"REACT_APP_LIBRARY_URL\":\"https://libraries.excalidraw.com\",\"REACT_APP_LIBRARY_BACKEND\":\"https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries\",\"REACT_APP_WS_SERVER_URL\":\"http://localhost:3002\",\"REACT_APP_PORTAL_URL\":\"\",\"REACT_APP_FIREBASE_CONFIG\":\"{\\\"apiKey\\\":\\\"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8\\\",\\\"authDomain\\\":\\\"excalidraw-oss-dev.firebaseapp.com\\\",\\\"projectId\\\":\\\"excalidraw-oss-dev\\\",\\\"storageBucket\\\":\\\"excalidraw-oss-dev.appspot.com\\\",\\\"messagingSenderId\\\":\\\"664559512677\\\",\\\"appId\\\":\\\"1:664559512677:web:a385181f2928d328a7aa8c\\\"}\",\"REACT_APP_DEV_ENABLE_SW\":\"\",\"REACT_APP_DEV_DISABLE_LIVE_RELOAD\":\"\",\"PKG_NAME\":\"@excalidraw/excalidraw\",\"PKG_VERSION\":\"0.12.0-9c37b25\",\"IS_EXCALIDRAW_NPM_PACKAGE\":true})) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === \"production\"; };\nconst wrapEvent = (name, nativeEvent) => {\n return new CustomEvent(name, {\n detail: {\n nativeEvent,\n },\n cancelable: true,\n });\n};\nconst updateObject = (obj, updates) => {\n let didChange = false;\n for (const key in updates) {\n const value = updates[key];\n if (typeof value !== \"undefined\") {\n if (obj[key] === value &&\n // if object, always update because its attrs could have changed\n (typeof value !== \"object\" || value === null)) {\n continue;\n }\n didChange = true;\n }\n }\n if (!didChange) {\n return obj;\n }\n return Object.assign(Object.assign({}, obj), updates);\n};\nconst isPrimitive = (val) => {\n const type = typeof val;\n return val == null || (type !== \"object\" && type !== \"function\");\n};\nconst getFrame = () => {\n try {\n return window.self === window.top ? \"top\" : \"iframe\";\n }\n catch (error) {\n return \"iframe\";\n }\n};\nconst isPromiseLike = (value) => {\n return (!!value &&\n typeof value === \"object\" &&\n \"then\" in value &&\n \"catch\" in value &&\n \"finally\" in value);\n};\nconst queryFocusableElements = (container) => {\n const focusableElements = container === null || container === void 0 ? void 0 : container.querySelectorAll(\"button, a, input, select, textarea, div[tabindex], label[tabindex]\");\n return focusableElements\n ? Array.from(focusableElements).filter((element) => element.tabIndex > -1 && !element.disabled)\n : [];\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LFFBQVEsSUFBSSxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUssTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUk7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7S0FDdEQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUssTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBVSxFQUNzQyxFQUFFO0lBQ2xELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSztRQUNQLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsTUFBTSxJQUFJLEtBQUs7UUFDZixPQUFPLElBQUksS0FBSztRQUNoQixTQUFTLElBQUksS0FBSyxDQUNuQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUssTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLGlCQUFpQixHQUFHLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxnQkFBZ0IsQ0FDbkQsb0VBQW9FLENBQ3JFLENBQUM7SUFFRixPQUFPLGlCQUFpQjtRQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FDbEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBRSxPQUE0QixDQUFDLFFBQVEsQ0FDbkU7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4uLy4uL3V0aWxzLnRzPzc2M2EiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9jIGZyb20gXCJvcGVuLWNvbG9yXCI7XG5cbmltcG9ydCBjb2xvcnMgZnJvbSBcIi4vY29sb3JzXCI7XG5pbXBvcnQge1xuICBDVVJTT1JfVFlQRSxcbiAgREVGQVVMVF9WRVJTSU9OLFxuICBFVkVOVCxcbiAgRk9OVF9GQU1JTFksXG4gIE1JTUVfVFlQRVMsXG4gIFRIRU1FLFxuICBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRm9udEZhbWlseVZhbHVlcywgRm9udFN0cmluZyB9IGZyb20gXCIuL2VsZW1lbnQvdHlwZXNcIjtcbmltcG9ydCB7IEFwcFN0YXRlLCBEYXRhVVJMLCBMYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlciwgWm9vbSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1bnN0YWJsZV9iYXRjaGVkVXBkYXRlcyB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IGlzRGFyd2luIH0gZnJvbSBcIi4va2V5c1wiO1xuaW1wb3J0IHsgU0hBUEVTIH0gZnJvbSBcIi4vc2hhcGVzXCI7XG5cbmxldCBtb2NrRGF0ZVRpbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5leHBvcnQgY29uc3Qgc2V0RGF0ZVRpbWVGb3JUZXN0cyA9IChkYXRlVGltZTogc3RyaW5nKSA9PiB7XG4gIG1vY2tEYXRlVGltZSA9IGRhdGVUaW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGVUaW1lID0gKCkgPT4ge1xuICBpZiAobW9ja0RhdGVUaW1lKSB7XG4gICAgcmV0dXJuIG1vY2tEYXRlVGltZTtcbiAgfVxuXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICBjb25zdCBtb250aCA9IGAke2RhdGUuZ2V0TW9udGgoKSArIDF9YC5wYWRTdGFydCgyLCBcIjBcIik7XG4gIGNvbnN0IGRheSA9IGAke2RhdGUuZ2V0RGF0ZSgpfWAucGFkU3RhcnQoMiwgXCIwXCIpO1xuICBjb25zdCBociA9IGAke2RhdGUuZ2V0SG91cnMoKX1gLnBhZFN0YXJ0KDIsIFwiMFwiKTtcbiAgY29uc3QgbWluID0gYCR7ZGF0ZS5nZXRNaW51dGVzKCl9YC5wYWRTdGFydCgyLCBcIjBcIik7XG5cbiAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fS0ke2hyfSR7bWlufWA7XG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZVN0cmluZyA9IChzdHI6IHN0cmluZykgPT5cbiAgc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXG5leHBvcnQgY29uc3QgaXNUb29sSWNvbiA9IChcbiAgdGFyZ2V0OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBudWxsLFxuKTogdGFyZ2V0IGlzIEhUTUxFbGVtZW50ID0+XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIHRhcmdldC5jbGFzc05hbWUuaW5jbHVkZXMoXCJUb29sSWNvblwiKTtcblxuZXhwb3J0IGNvbnN0IGlzSW5wdXRMaWtlID0gKFxuICB0YXJnZXQ6IEVsZW1lbnQgfCBFdmVudFRhcmdldCB8IG51bGwsXG4pOiB0YXJnZXQgaXNcbiAgfCBIVE1MSW5wdXRFbGVtZW50XG4gIHwgSFRNTFRleHRBcmVhRWxlbWVudFxuICB8IEhUTUxTZWxlY3RFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fFxuICB0YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50IHx8XG4gIHRhcmdldCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50O1xuXG5leHBvcnQgY29uc3QgaXNXcml0YWJsZUVsZW1lbnQgPSAoXG4gIHRhcmdldDogRWxlbWVudCB8IEV2ZW50VGFyZ2V0IHwgbnVsbCxcbik6IHRhcmdldCBpc1xuICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgfCBIVE1MVGV4dEFyZWFFbGVtZW50XG4gIHwgSFRNTEJSRWxlbWVudFxuICB8IEhUTUxEaXZFbGVtZW50ID0+XG4gICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiB0YXJnZXQuZGF0YXNldC50eXBlID09PSBcInd5c2l3eWdcIikgfHxcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJSRWxlbWVudCB8fCAvLyBuZXdsaW5lIGluIHd5c2l3eWdcbiAgdGFyZ2V0IGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCB8fFxuICAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICh0YXJnZXQudHlwZSA9PT0gXCJ0ZXh0XCIgfHwgdGFyZ2V0LnR5cGUgPT09IFwibnVtYmVyXCIpKTtcblxuZXhwb3J0IGNvbnN0IGdldEZvbnRGYW1pbHlTdHJpbmcgPSAoe1xuICBmb250RmFtaWx5LFxufToge1xuICBmb250RmFtaWx5OiBGb250RmFtaWx5VmFsdWVzO1xufSkgPT4ge1xuICBmb3IgKGNvbnN0IFtmb250RmFtaWx5U3RyaW5nLCBpZF0gb2YgT2JqZWN0LmVudHJpZXMoRk9OVF9GQU1JTFkpKSB7XG4gICAgaWYgKGlkID09PSBmb250RmFtaWx5KSB7XG4gICAgICByZXR1cm4gYCR7Zm9udEZhbWlseVN0cmluZ30sICR7V0lORE9XU19FTU9KSV9GQUxMQkFDS19GT05UfWA7XG4gICAgfVxuICB9XG4gIHJldHVybiBXSU5ET1dTX0VNT0pJX0ZBTExCQUNLX0ZPTlQ7XG59O1xuXG4vKiogcmV0dXJucyBmb250U2l6ZStmb250RmFtaWx5IHN0cmluZyBmb3IgYXNzaWdubWVudCB0byBET00gZWxlbWVudHMgKi9cbmV4cG9ydCBjb25zdCBnZXRGb250U3RyaW5nID0gKHtcbiAgZm9udFNpemUsXG4gIGZvbnRGYW1pbHksXG59OiB7XG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIGZvbnRGYW1pbHk6IEZvbnRGYW1pbHlWYWx1ZXM7XG59KSA9PiB7XG4gIHJldHVybiBgJHtmb250U2l6ZX1weCAke2dldEZvbnRGYW1pbHlTdHJpbmcoeyBmb250RmFtaWx5IH0pfWAgYXMgRm9udFN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBkZWJvdW5jZSA9IDxUIGV4dGVuZHMgYW55W10+KFxuICBmbjogKC4uLmFyZ3M6IFQpID0+IHZvaWQsXG4gIHRpbWVvdXQ6IG51bWJlcixcbikgPT4ge1xuICBsZXQgaGFuZGxlID0gMDtcbiAgbGV0IGxhc3RBcmdzOiBUIHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0IHJldCA9ICguLi5hcmdzOiBUKSA9PiB7XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGNsZWFyVGltZW91dChoYW5kbGUpO1xuICAgIGhhbmRsZSA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9O1xuICByZXQuZmx1c2ggPSAoKSA9PiB7XG4gICAgY2xlYXJUaW1lb3V0KGhhbmRsZSk7XG4gICAgaWYgKGxhc3RBcmdzKSB7XG4gICAgICBjb25zdCBfbGFzdEFyZ3MgPSBsYXN0QXJncztcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGZuKC4uLl9sYXN0QXJncyk7XG4gICAgfVxuICB9O1xuICByZXQuY2FuY2VsID0gKCkgPT4ge1xuICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIHRocm90dGxlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgb25jZSBwZXIgYW5pbWF0aW9uIGZyYW1lXG5leHBvcnQgY29uc3QgdGhyb3R0bGVSQUYgPSA8VCBleHRlbmRzIGFueVtdPihcbiAgZm46ICguLi5hcmdzOiBUKSA9PiB2b2lkLFxuICBvcHRzPzogeyB0cmFpbGluZz86IGJvb2xlYW4gfSxcbikgPT4ge1xuICBsZXQgdGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIGxldCBsYXN0QXJnczogVCB8IG51bGwgPSBudWxsO1xuICBsZXQgbGFzdEFyZ3NUcmFpbGluZzogVCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IHNjaGVkdWxlRnVuYyA9IChhcmdzOiBUKSA9PiB7XG4gICAgdGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIGxhc3RBcmdzID0gbnVsbDtcbiAgICAgIGlmIChsYXN0QXJnc1RyYWlsaW5nKSB7XG4gICAgICAgIGxhc3RBcmdzID0gbGFzdEFyZ3NUcmFpbGluZztcbiAgICAgICAgbGFzdEFyZ3NUcmFpbGluZyA9IG51bGw7XG4gICAgICAgIHNjaGVkdWxlRnVuYyhsYXN0QXJncyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmV0ID0gKC4uLmFyZ3M6IFQpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiKSB7XG4gICAgICBmbiguLi5hcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIGlmICh0aW1lcklkID09PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZUZ1bmMobGFzdEFyZ3MpO1xuICAgIH0gZWxzZSBpZiAob3B0cz8udHJhaWxpbmcpIHtcbiAgICAgIGxhc3RBcmdzVHJhaWxpbmcgPSBhcmdzO1xuICAgIH1cbiAgfTtcbiAgcmV0LmZsdXNoID0gKCkgPT4ge1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAobGFzdEFyZ3MpIHtcbiAgICAgIGZuKC4uLihsYXN0QXJnc1RyYWlsaW5nIHx8IGxhc3RBcmdzKSk7XG4gICAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0LmNhbmNlbCA9ICgpID0+IHtcbiAgICBsYXN0QXJncyA9IGxhc3RBcmdzVHJhaWxpbmcgPSBudWxsO1xuICAgIGlmICh0aW1lcklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aW1lcklkKTtcbiAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvZXMvY2h1bmsuanNcbmV4cG9ydCBjb25zdCBjaHVuayA9IDxUIGV4dGVuZHMgYW55PihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgc2l6ZTogbnVtYmVyLFxuKTogVFtdW10gPT4ge1xuICBpZiAoIWFycmF5Lmxlbmd0aCB8fCBzaXplIDwgMSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBsZXQgaW5kZXggPSAwO1xuICBsZXQgcmVzSW5kZXggPSAwO1xuICBjb25zdCByZXN1bHQgPSBBcnJheShNYXRoLmNlaWwoYXJyYXkubGVuZ3RoIC8gc2l6ZSkpO1xuICB3aGlsZSAoaW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICByZXN1bHRbcmVzSW5kZXgrK10gPSBhcnJheS5zbGljZShpbmRleCwgKGluZGV4ICs9IHNpemUpKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdE5vZGUgPSAobm9kZTogRWxlbWVudCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VsZWN0aW9uID0gKCkgPT4ge1xuICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gIGlmIChzZWxlY3Rpb24pIHtcbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBkaXN0YW5jZSA9ICh4OiBudW1iZXIsIHk6IG51bWJlcikgPT4gTWF0aC5hYnMoeCAtIHkpO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlQWN0aXZlVG9vbCA9IChcbiAgYXBwU3RhdGU6IFBpY2s8QXBwU3RhdGUsIFwiYWN0aXZlVG9vbFwiPixcbiAgZGF0YTogKFxuICAgIHwgeyB0eXBlOiB0eXBlb2YgU0hBUEVTW251bWJlcl1bXCJ2YWx1ZVwiXSB8IFwiZXJhc2VyXCIgfVxuICAgIHwgeyB0eXBlOiBcImN1c3RvbVwiOyBjdXN0b21UeXBlOiBzdHJpbmcgfVxuICApICYgeyBsYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcj86IExhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyIH0sXG4pOiBBcHBTdGF0ZVtcImFjdGl2ZVRvb2xcIl0gPT4ge1xuICBpZiAoZGF0YS50eXBlID09PSBcImN1c3RvbVwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgICB0eXBlOiBcImN1c3RvbVwiLFxuICAgICAgY3VzdG9tVHlwZTogZGF0YS5jdXN0b21UeXBlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmFwcFN0YXRlLmFjdGl2ZVRvb2wsXG4gICAgbGFzdEFjdGl2ZVRvb2xCZWZvcmVFcmFzZXI6XG4gICAgICBkYXRhLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyID09PSB1bmRlZmluZWRcbiAgICAgICAgPyBhcHBTdGF0ZS5hY3RpdmVUb29sLmxhc3RBY3RpdmVUb29sQmVmb3JlRXJhc2VyXG4gICAgICAgIDogZGF0YS5sYXN0QWN0aXZlVG9vbEJlZm9yZUVyYXNlcixcbiAgICB0eXBlOiBkYXRhLnR5cGUsXG4gICAgY3VzdG9tVHlwZTogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEN1cnNvciA9IChjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBpZiAoY2FudmFzKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IFwiXCI7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBzZXRDdXJzb3IgPSAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsIGN1cnNvcjogc3RyaW5nKSA9PiB7XG4gIGlmIChjYW52YXMpIHtcbiAgICBjYW52YXMuc3R5bGUuY3Vyc29yID0gY3Vyc29yO1xuICB9XG59O1xuXG5sZXQgZXJhc2VyQ2FudmFzQ2FjaGU6IGFueTtcbmxldCBwcmV2aWV3RGF0YVVSTDogc3RyaW5nO1xuZXhwb3J0IGNvbnN0IHNldEVyYXNlckN1cnNvciA9IChcbiAgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwsXG4gIHRoZW1lOiBBcHBTdGF0ZVtcInRoZW1lXCJdLFxuKSA9PiB7XG4gIGNvbnN0IGN1cnNvckltYWdlU2l6ZVB4ID0gMjA7XG5cbiAgY29uc3QgZHJhd0NhbnZhcyA9ICgpID0+IHtcbiAgICBjb25zdCBpc0RhcmtUaGVtZSA9IHRoZW1lID09PSBUSEVNRS5EQVJLO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgICBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSA9IHRoZW1lO1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLmhlaWdodCA9IGN1cnNvckltYWdlU2l6ZVB4O1xuICAgIGVyYXNlckNhbnZhc0NhY2hlLndpZHRoID0gY3Vyc29ySW1hZ2VTaXplUHg7XG4gICAgY29uc3QgY29udGV4dCA9IGVyYXNlckNhbnZhc0NhY2hlLmdldENvbnRleHQoXCIyZFwiKSE7XG4gICAgY29udGV4dC5saW5lV2lkdGggPSAxO1xuICAgIGNvbnRleHQuYmVnaW5QYXRoKCk7XG4gICAgY29udGV4dC5hcmMoXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS53aWR0aCAvIDIsXG4gICAgICBlcmFzZXJDYW52YXNDYWNoZS5oZWlnaHQgLyAyLFxuICAgICAgNSxcbiAgICAgIDAsXG4gICAgICAyICogTWF0aC5QSSxcbiAgICApO1xuICAgIGNvbnRleHQuZmlsbFN0eWxlID0gaXNEYXJrVGhlbWUgPyBvYy5ibGFjayA6IG9jLndoaXRlO1xuICAgIGNvbnRleHQuZmlsbCgpO1xuICAgIGNvbnRleHQuc3Ryb2tlU3R5bGUgPSBpc0RhcmtUaGVtZSA/IG9jLndoaXRlIDogb2MuYmxhY2s7XG4gICAgY29udGV4dC5zdHJva2UoKTtcbiAgICBwcmV2aWV3RGF0YVVSTCA9IGVyYXNlckNhbnZhc0NhY2hlLnRvRGF0YVVSTChNSU1FX1RZUEVTLnN2ZykgYXMgRGF0YVVSTDtcbiAgfTtcbiAgaWYgKCFlcmFzZXJDYW52YXNDYWNoZSB8fCBlcmFzZXJDYW52YXNDYWNoZS50aGVtZSAhPT0gdGhlbWUpIHtcbiAgICBkcmF3Q2FudmFzKCk7XG4gIH1cblxuICBzZXRDdXJzb3IoXG4gICAgY2FudmFzLFxuICAgIGB1cmwoJHtwcmV2aWV3RGF0YVVSTH0pICR7Y3Vyc29ySW1hZ2VTaXplUHggLyAyfSAke1xuICAgICAgY3Vyc29ySW1hZ2VTaXplUHggLyAyXG4gICAgfSwgYXV0b2AsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0Q3Vyc29yRm9yU2hhcGUgPSAoXG4gIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsLFxuICBhcHBTdGF0ZTogQXBwU3RhdGUsXG4pID0+IHtcbiAgaWYgKCFjYW52YXMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGFwcFN0YXRlLmFjdGl2ZVRvb2wudHlwZSA9PT0gXCJzZWxlY3Rpb25cIikge1xuICAgIHJlc2V0Q3Vyc29yKGNhbnZhcyk7XG4gIH0gZWxzZSBpZiAoYXBwU3RhdGUuYWN0aXZlVG9vbC50eXBlID09PSBcImVyYXNlclwiKSB7XG4gICAgc2V0RXJhc2VyQ3Vyc29yKGNhbnZhcywgYXBwU3RhdGUudGhlbWUpO1xuICAgIC8vIGRvIG5vdGhpbmcgaWYgaW1hZ2UgdG9vbCBpcyBzZWxlY3RlZCB3aGljaCBzdWdnZXN0cyB0aGVyZSdzXG4gICAgLy8gYSBpbWFnZS1wcmV2aWV3IHNldCBhcyB0aGUgY3Vyc29yXG4gICAgLy8gSWdub3JlIGN1c3RvbSB0eXBlIGFzIHdlbGwgYW5kIGxldCBob3N0IGRlY2lkZVxuICB9IGVsc2UgaWYgKCFbXCJpbWFnZVwiLCBcImN1c3RvbVwiXS5pbmNsdWRlcyhhcHBTdGF0ZS5hY3RpdmVUb29sLnR5cGUpKSB7XG4gICAgY2FudmFzLnN0eWxlLmN1cnNvciA9IENVUlNPUl9UWVBFLkNST1NTSEFJUjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzRnVsbFNjcmVlbiA9ICgpID0+XG4gIGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50Py5ub2RlTmFtZSA9PT0gXCJIVE1MXCI7XG5cbmV4cG9ydCBjb25zdCBhbGxvd0Z1bGxTY3JlZW4gPSAoKSA9PlxuICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGV4aXRGdWxsU2NyZWVuID0gKCkgPT4gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTtcblxuZXhwb3J0IGNvbnN0IGdldFNob3J0Y3V0S2V5ID0gKHNob3J0Y3V0OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzaG9ydGN1dCA9IHNob3J0Y3V0XG4gICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIkFsdFwiKVxuICAgIC5yZXBsYWNlKC9cXGJTaGlmdFxcYi9pLCBcIlNoaWZ0XCIpXG4gICAgLnJlcGxhY2UoL1xcYihFbnRlcnxSZXR1cm4pXFxiL2ksIFwiRW50ZXJcIilcbiAgICAucmVwbGFjZSgvXFxiRGVsXFxiL2ksIFwiRGVsZXRlXCIpO1xuXG4gIGlmIChpc0Rhcndpbikge1xuICAgIHJldHVybiBzaG9ydGN1dFxuICAgICAgLnJlcGxhY2UoL1xcYkN0cmxPckNtZFxcYi9pLCBcIkNtZFwiKVxuICAgICAgLnJlcGxhY2UoL1xcYkFsdFxcYi9pLCBcIk9wdGlvblwiKTtcbiAgfVxuICByZXR1cm4gc2hvcnRjdXQucmVwbGFjZSgvXFxiQ3RybE9yQ21kXFxiL2ksIFwiQ3RybFwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2aWV3cG9ydENvb3Jkc1RvU2NlbmVDb29yZHMgPSAoXG4gIHsgY2xpZW50WCwgY2xpZW50WSB9OiB7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0sXG4gIHtcbiAgICB6b29tLFxuICAgIG9mZnNldExlZnQsXG4gICAgb2Zmc2V0VG9wLFxuICAgIHNjcm9sbFgsXG4gICAgc2Nyb2xsWSxcbiAgfToge1xuICAgIHpvb206IFpvb207XG4gICAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICAgIG9mZnNldFRvcDogbnVtYmVyO1xuICAgIHNjcm9sbFg6IG51bWJlcjtcbiAgICBzY3JvbGxZOiBudW1iZXI7XG4gIH0sXG4pID0+IHtcbiAgY29uc3QgaW52U2NhbGUgPSAxIC8gem9vbS52YWx1ZTtcbiAgY29uc3QgeCA9IChjbGllbnRYIC0gb2Zmc2V0TGVmdCkgKiBpbnZTY2FsZSAtIHNjcm9sbFg7XG4gIGNvbnN0IHkgPSAoY2xpZW50WSAtIG9mZnNldFRvcCkgKiBpbnZTY2FsZSAtIHNjcm9sbFk7XG5cbiAgcmV0dXJuIHsgeCwgeSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNjZW5lQ29vcmRzVG9WaWV3cG9ydENvb3JkcyA9IChcbiAgeyBzY2VuZVgsIHNjZW5lWSB9OiB7IHNjZW5lWDogbnVtYmVyOyBzY2VuZVk6IG51bWJlciB9LFxuICB7XG4gICAgem9vbSxcbiAgICBvZmZzZXRMZWZ0LFxuICAgIG9mZnNldFRvcCxcbiAgICBzY3JvbGxYLFxuICAgIHNjcm9sbFksXG4gIH06IHtcbiAgICB6b29tOiBab29tO1xuICAgIG9mZnNldExlZnQ6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBzY3JvbGxYOiBudW1iZXI7XG4gICAgc2Nyb2xsWTogbnVtYmVyO1xuICB9LFxuKSA9PiB7XG4gIGNvbnN0IHggPSAoc2NlbmVYICsgc2Nyb2xsWCkgKiB6b29tLnZhbHVlICsgb2Zmc2V0TGVmdDtcbiAgY29uc3QgeSA9IChzY2VuZVkgKyBzY3JvbGxZKSAqIHpvb20udmFsdWUgKyBvZmZzZXRUb3A7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxDU1NWYXJpYWJsZSA9IChuYW1lOiBzdHJpbmcpID0+XG4gIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGAtLSR7bmFtZX1gKTtcblxuY29uc3QgUlNfTFRSX0NIQVJTID1cbiAgXCJBLVphLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyQjhcXHUwMzAwLVxcdTA1OTBcXHUwODAwLVxcdTFGRkZcIiArXG4gIFwiXFx1MkMwMC1cXHVGQjFDXFx1RkRGRS1cXHVGRTZGXFx1RkVGRC1cXHVGRkZGXCI7XG5jb25zdCBSU19SVExfQ0hBUlMgPSBcIlxcdTA1OTEtXFx1MDdGRlxcdUZCMUQtXFx1RkRGRFxcdUZFNzAtXFx1RkVGQ1wiO1xuY29uc3QgUkVfUlRMX0NIRUNLID0gbmV3IFJlZ0V4cChgXlteJHtSU19MVFJfQ0hBUlN9XSpbJHtSU19SVExfQ0hBUlN9XWApO1xuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBmaXJzdCBkaXJlY3Rpb25hbCBjaGFyYWN0ZXIgaXMgUlRMLiBNZWFuaW5nIHdoZXRoZXIgaXQgc3RhcnRzXG4gKiAgd2l0aCBSVEwgY2hhcmFjdGVycywgb3IgaW5kZXRlcm1pbmF0ZSAobnVtYmVycyBldGMuKSBjaGFyYWN0ZXJzIGZvbGxvd2VkIGJ5XG4gKiAgUlRMLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9leGNhbGlkcmF3L2V4Y2FsaWRyYXcvcHVsbC8xNzIyI2Rpc2N1c3Npb25fcjQzNjM0MDE3MVxuICovXG5leHBvcnQgY29uc3QgaXNSVEwgPSAodGV4dDogc3RyaW5nKSA9PiBSRV9SVExfQ0hFQ0sudGVzdCh0ZXh0KTtcblxuZXhwb3J0IGNvbnN0IHR1cGxlVG9Db29ycyA9IChcbiAgeHlUdXBsZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSxcbik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSA9PiB7XG4gIGNvbnN0IFt4LCB5XSA9IHh5VHVwbGU7XG4gIHJldHVybiB7IHgsIHkgfTtcbn07XG5cbi8qKiB1c2UgYXMgYSByZWplY3Rpb25IYW5kbGVyIHRvIG11dGUgZmlsZXN5c3RlbSBBYm9ydCBlcnJvcnMgKi9cbmV4cG9ydCBjb25zdCBtdXRlRlNBYm9ydEVycm9yID0gKGVycm9yPzogRXJyb3IpID0+IHtcbiAgaWYgKGVycm9yPy5uYW1lID09PSBcIkFib3J0RXJyb3JcIikge1xuICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRJbmRleCA9IDxUPihcbiAgYXJyYXk6IHJlYWRvbmx5IFRbXSxcbiAgY2I6IChlbGVtZW50OiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogcmVhZG9ubHkgVFtdKSA9PiBib29sZWFuLFxuICBmcm9tSW5kZXg6IG51bWJlciA9IDAsXG4pID0+IHtcbiAgaWYgKGZyb21JbmRleCA8IDApIHtcbiAgICBmcm9tSW5kZXggPSBhcnJheS5sZW5ndGggKyBmcm9tSW5kZXg7XG4gIH1cbiAgZnJvbUluZGV4ID0gTWF0aC5taW4oYXJyYXkubGVuZ3RoLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4IC0gMTtcbiAgd2hpbGUgKCsraW5kZXggPCBhcnJheS5sZW5ndGgpIHtcbiAgICBpZiAoY2IoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kTGFzdEluZGV4ID0gPFQ+KFxuICBhcnJheTogcmVhZG9ubHkgVFtdLFxuICBjYjogKGVsZW1lbnQ6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiByZWFkb25seSBUW10pID0+IGJvb2xlYW4sXG4gIGZyb21JbmRleDogbnVtYmVyID0gYXJyYXkubGVuZ3RoIC0gMSxcbikgPT4ge1xuICBpZiAoZnJvbUluZGV4IDwgMCkge1xuICAgIGZyb21JbmRleCA9IGFycmF5Lmxlbmd0aCArIGZyb21JbmRleDtcbiAgfVxuICBmcm9tSW5kZXggPSBNYXRoLm1pbihhcnJheS5sZW5ndGggLSAxLCBNYXRoLm1heChmcm9tSW5kZXgsIDApKTtcbiAgbGV0IGluZGV4ID0gZnJvbUluZGV4ICsgMTtcbiAgd2hpbGUgKC0taW5kZXggPiAtMSkge1xuICAgIGlmIChjYihhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNwYXJlbnQgPSAoY29sb3I6IHN0cmluZykgPT4ge1xuICBjb25zdCBpc1JHQlRyYW5zcGFyZW50ID0gY29sb3IubGVuZ3RoID09PSA1ICYmIGNvbG9yLnN1YnN0cig0LCAxKSA9PT0gXCIwXCI7XG4gIGNvbnN0IGlzUlJHR0JCVHJhbnNwYXJlbnQgPSBjb2xvci5sZW5ndGggPT09IDkgJiYgY29sb3Iuc3Vic3RyKDcsIDIpID09PSBcIjAwXCI7XG4gIHJldHVybiAoXG4gICAgaXNSR0JUcmFuc3BhcmVudCB8fFxuICAgIGlzUlJHR0JCVHJhbnNwYXJlbnQgfHxcbiAgICBjb2xvciA9PT0gY29sb3JzLmVsZW1lbnRCYWNrZ3JvdW5kWzBdXG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZhYmxlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gJiB7XG4gIHJlc29sdmU6IFtUXSBleHRlbmRzIFt1bmRlZmluZWRdID8gKHZhbHVlPzogVCkgPT4gdm9pZCA6ICh2YWx1ZTogVCkgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufTtcbmV4cG9ydCBjb25zdCByZXNvbHZhYmxlUHJvbWlzZSA9IDxUPigpID0+IHtcbiAgbGV0IHJlc29sdmUhOiBhbnk7XG4gIGxldCByZWplY3QhOiBhbnk7XG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgoX3Jlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgcmVqZWN0ID0gX3JlamVjdDtcbiAgfSk7XG4gIChwcm9taXNlIGFzIGFueSkucmVzb2x2ZSA9IHJlc29sdmU7XG4gIChwcm9taXNlIGFzIGFueSkucmVqZWN0ID0gcmVqZWN0O1xuICByZXR1cm4gcHJvbWlzZSBhcyBSZXNvbHZhYmxlUHJvbWlzZTxUPjtcbn07XG5cbi8qKlxuICogQHBhcmFtIGZ1bmMgaGFuZGxlciB0YWtpbmcgYXQgbW9zdCBzaW5nbGUgcGFyYW1ldGVyIChldmVudCkuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXMgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PlxuICAoKGV2ZW50KSA9PiB7XG4gICAgdW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMoZnVuYyBhcyBURnVuY3Rpb24sIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uO1xuXG4vKipcbiAqIGJhcmNoZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBhbmQgdGhyb3R0bGVzIHRoZSBjYWxscyB0byBhIHNpbmdsZSBjYWxsIHBlclxuICogYW5pbWF0aW9uIGZyYW1lXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoQmF0Y2hlZFVwZGF0ZXNUaHJvdHRsZWQgPSA8XG4gIFRGdW5jdGlvbiBleHRlbmRzICgoZXZlbnQ6IGFueSkgPT4gdm9pZCkgfCAoKCkgPT4gdm9pZCksXG4+KFxuICBmdW5jOiBQYXJhbWV0ZXJzPFRGdW5jdGlvbj5bXCJsZW5ndGhcIl0gZXh0ZW5kcyAwIHwgMSA/IFRGdW5jdGlvbiA6IG5ldmVyLFxuKSA9PiB7XG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIHRocm90dGxlUkFGPFBhcmFtZXRlcnM8VEZ1bmN0aW9uPj4oKChldmVudCkgPT4ge1xuICAgIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzKGZ1bmMsIGV2ZW50KTtcbiAgfSkgYXMgVEZ1bmN0aW9uKTtcbn07XG5cbi8vaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzk0NjIzODIvODQxOFxuZXhwb3J0IGNvbnN0IG5Gb3JtYXR0ZXIgPSAobnVtOiBudW1iZXIsIGRpZ2l0czogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2kgPSBbXG4gICAgeyB2YWx1ZTogMSwgc3ltYm9sOiBcImJcIiB9LFxuICAgIHsgdmFsdWU6IDFlMywgc3ltYm9sOiBcImtcIiB9LFxuICAgIHsgdmFsdWU6IDFlNiwgc3ltYm9sOiBcIk1cIiB9LFxuICAgIHsgdmFsdWU6IDFlOSwgc3ltYm9sOiBcIkdcIiB9LFxuICBdO1xuICBjb25zdCByeCA9IC9cXC4wKyR8KFxcLlswLTldKlsxLTldKTArJC87XG4gIGxldCBpbmRleDtcbiAgZm9yIChpbmRleCA9IHNpLmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgIGlmIChudW0gPj0gc2lbaW5kZXhdLnZhbHVlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIChcbiAgICAobnVtIC8gc2lbaW5kZXhdLnZhbHVlKS50b0ZpeGVkKGRpZ2l0cykucmVwbGFjZShyeCwgXCIkMVwiKSArIHNpW2luZGV4XS5zeW1ib2xcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWZXJzaW9uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTE1ldGFFbGVtZW50PignbWV0YVtuYW1lPVwidmVyc2lvblwiXScpPy5jb250ZW50IHx8XG4gICAgREVGQVVMVF9WRVJTSU9OXG4gICk7XG59O1xuXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2Vtb2ppLmpzXG5leHBvcnQgY29uc3Qgc3VwcG9ydHNFbW9qaSA9ICgpID0+IHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgaWYgKCFjdHgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3Qgb2Zmc2V0ID0gMTI7XG4gIGN0eC5maWxsU3R5bGUgPSBcIiNmMDBcIjtcbiAgY3R4LnRleHRCYXNlbGluZSA9IFwidG9wXCI7XG4gIGN0eC5mb250ID0gXCIzMnB4IEFyaWFsXCI7XG4gIC8vIE1vZGVybml6ciB1c2VkIPCfkKgsIGJ1dCBpdCBpcyBzb3J0IG9mIHN1cHBvcnRlZCBvbiBXaW5kb3dzIDcuXG4gIC8vIEx1Y2tpbHkg8J+YgCBpc24ndCBzdXBwb3J0ZWQuXG4gIGN0eC5maWxsVGV4dChcIvCfmIBcIiwgMCwgMCk7XG4gIHJldHVybiBjdHguZ2V0SW1hZ2VEYXRhKG9mZnNldCwgb2Zmc2V0LCAxLCAxKS5kYXRhWzBdICE9PSAwO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE5lYXJlc3RTY3JvbGxhYmxlQ29udGFpbmVyID0gKFxuICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbik6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIH1cbiAgICBjb25zdCB7IG92ZXJmbG93WSB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICBjb25zdCBoYXNTY3JvbGxhYmxlQ29udGVudCA9IHBhcmVudC5zY3JvbGxIZWlnaHQgPiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIGlmIChcbiAgICAgIGhhc1Njcm9sbGFibGVDb250ZW50ICYmXG4gICAgICAob3ZlcmZsb3dZID09PSBcImF1dG9cIiB8fFxuICAgICAgICBvdmVyZmxvd1kgPT09IFwic2Nyb2xsXCIgfHxcbiAgICAgICAgb3ZlcmZsb3dZID09PSBcIm92ZXJsYXlcIilcbiAgICApIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICB9XG4gIHJldHVybiBkb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBmb2N1c05lYXJlc3RQYXJlbnQgPSAoZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkgPT4ge1xuICBsZXQgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICB3aGlsZSAocGFyZW50KSB7XG4gICAgaWYgKHBhcmVudC50YWJJbmRleCA+IC0xKSB7XG4gICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2ZW50VW5sb2FkID0gKGV2ZW50OiBCZWZvcmVVbmxvYWRFdmVudCkgPT4ge1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAvLyBOT1RFOiBtb2Rlcm4gYnJvd3NlcnMgbm8gbG9uZ2VyIGFsbG93IHNob3dpbmcgYSBjdXN0b20gbWVzc2FnZSBoZXJlXG4gIGV2ZW50LnJldHVyblZhbHVlID0gXCJcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBieXRlc1RvSGV4U3RyaW5nID0gKGJ5dGVzOiBVaW50OEFycmF5KSA9PiB7XG4gIHJldHVybiBBcnJheS5mcm9tKGJ5dGVzKVxuICAgIC5tYXAoKGJ5dGUpID0+IGAwJHtieXRlLnRvU3RyaW5nKDE2KX1gLnNsaWNlKC0yKSlcbiAgICAuam9pbihcIlwiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVkVGltZXN0YW1wID0gKCkgPT4gKGlzVGVzdEVudigpID8gMSA6IERhdGUubm93KCkpO1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGBpZGAgYXR0cmlidXRlLFxuICogb3IgYXJyYXkgb2YgaWRzIChzdHJpbmdzKSwgaW50byBhIE1hcCwga2V5ZCBieSBgaWRgLlxuICovXG5leHBvcnQgY29uc3QgYXJyYXlUb01hcCA9IDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmc+KFxuICBpdGVtczogcmVhZG9ubHkgVFtdLFxuKSA9PiB7XG4gIHJldHVybiBpdGVtcy5yZWR1Y2UoKGFjYzogTWFwPHN0cmluZywgVD4sIGVsZW1lbnQpID0+IHtcbiAgICBhY2Muc2V0KHR5cGVvZiBlbGVtZW50ID09PSBcInN0cmluZ1wiID8gZWxlbWVudCA6IGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIG5ldyBNYXAoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUZXN0RW52ID0gKCkgPT5cbiAgdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WID09PSBcInRlc3RcIjtcblxuZXhwb3J0IGNvbnN0IGlzUHJvZEVudiA9ICgpID0+XG4gIHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52Py5OT0RFX0VOViA9PT0gXCJwcm9kdWN0aW9uXCI7XG5cbmV4cG9ydCBjb25zdCB3cmFwRXZlbnQgPSA8VCBleHRlbmRzIEV2ZW50PihuYW1lOiBFVkVOVCwgbmF0aXZlRXZlbnQ6IFQpID0+IHtcbiAgcmV0dXJuIG5ldyBDdXN0b21FdmVudChuYW1lLCB7XG4gICAgZGV0YWlsOiB7XG4gICAgICBuYXRpdmVFdmVudCxcbiAgICB9LFxuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU9iamVjdCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gIG9iajogVCxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbik6IFQgPT4ge1xuICBsZXQgZGlkQ2hhbmdlID0gZmFsc2U7XG4gIGZvciAoY29uc3Qga2V5IGluIHVwZGF0ZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9ICh1cGRhdGVzIGFzIGFueSlba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChvYmogYXMgYW55KVtrZXldID09PSB2YWx1ZSAmJlxuICAgICAgICAvLyBpZiBvYmplY3QsIGFsd2F5cyB1cGRhdGUgYmVjYXVzZSBpdHMgYXR0cnMgY291bGQgaGF2ZSBjaGFuZ2VkXG4gICAgICAgICh0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIgfHwgdmFsdWUgPT09IG51bGwpXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBkaWRDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICghZGlkQ2hhbmdlKSB7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ub2JqLFxuICAgIC4uLnVwZGF0ZXMsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcmltaXRpdmUgPSAodmFsOiBhbnkpID0+IHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWw7XG4gIHJldHVybiB2YWwgPT0gbnVsbCB8fCAodHlwZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlICE9PSBcImZ1bmN0aW9uXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZyYW1lID0gKCkgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCA/IFwidG9wXCIgOiBcImlmcmFtZVwiO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBcImlmcmFtZVwiO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcm9taXNlTGlrZSA9IChcbiAgdmFsdWU6IGFueSxcbik6IHZhbHVlIGlzIFByb21pc2U8UmVzb2x1dGlvblR5cGU8dHlwZW9mIHZhbHVlPj4gPT4ge1xuICByZXR1cm4gKFxuICAgICEhdmFsdWUgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcInRoZW5cIiBpbiB2YWx1ZSAmJlxuICAgIFwiY2F0Y2hcIiBpbiB2YWx1ZSAmJlxuICAgIFwiZmluYWxseVwiIGluIHZhbHVlXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcXVlcnlGb2N1c2FibGVFbGVtZW50cyA9IChjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICBjb25zdCBmb2N1c2FibGVFbGVtZW50cyA9IGNvbnRhaW5lcj8ucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXG4gICAgXCJidXR0b24sIGEsIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBkaXZbdGFiaW5kZXhdLCBsYWJlbFt0YWJpbmRleF1cIixcbiAgKTtcblxuICByZXR1cm4gZm9jdXNhYmxlRWxlbWVudHNcbiAgICA/IEFycmF5LmZyb20oZm9jdXNhYmxlRWxlbWVudHMpLmZpbHRlcihcbiAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgZWxlbWVudC50YWJJbmRleCA+IC0xICYmICEoZWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50KS5kaXNhYmxlZCxcbiAgICAgIClcbiAgICA6IFtdO1xufTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../utils.ts\n");
|
|
3353
3353
|
|
|
3354
3354
|
/***/ }),
|
|
3355
3355
|
|