@1money/component-ui 0.0.74 → 0.0.75
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/es/components/Dialog/Dialog.js +7 -39
- package/es/components/Dialog/constants.d.ts +0 -3
- package/es/components/Dialog/constants.js +1 -4
- package/es/components/Dialog/style/Dialog.css +0 -21
- package/es/components/ProForm/style/ProForm.css +0 -1
- package/es/index.css +1 -1
- package/lib/components/Dialog/Dialog.js +6 -38
- package/lib/components/Dialog/constants.d.ts +0 -3
- package/lib/components/Dialog/constants.js +1 -4
- package/lib/components/Dialog/style/Dialog.css +0 -21
- package/lib/components/ProForm/style/ProForm.css +0 -1
- package/lib/index.css +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
1
|
var __rest = this && this.__rest || function (s, e) {
|
|
3
2
|
var t = {};
|
|
4
3
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -10,7 +9,7 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
10
9
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
10
|
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
12
11
|
import classNames from 'classnames';
|
|
13
|
-
import { forwardRef, isValidElement, memo, useCallback, useEffect, useId, useRef
|
|
12
|
+
import { forwardRef, isValidElement, memo, useCallback, useEffect, useId, useRef } from 'react';
|
|
14
13
|
import { Button } from '../Button';
|
|
15
14
|
import { Icons } from '../Icons';
|
|
16
15
|
import { Portal } from '../Portal';
|
|
@@ -54,36 +53,6 @@ var useBodyScrollLock = function useBodyScrollLock(locked) {
|
|
|
54
53
|
};
|
|
55
54
|
}, [locked]);
|
|
56
55
|
};
|
|
57
|
-
var usePresence = function usePresence(open, delay) {
|
|
58
|
-
var _useState = useState(open),
|
|
59
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
60
|
-
mounted = _useState2[0],
|
|
61
|
-
setMounted = _useState2[1];
|
|
62
|
-
var closeTimerRef = useRef(null);
|
|
63
|
-
useEffect(function () {
|
|
64
|
-
return function () {
|
|
65
|
-
if (closeTimerRef.current !== null) {
|
|
66
|
-
window.clearTimeout(closeTimerRef.current);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
}, []);
|
|
70
|
-
useEffect(function () {
|
|
71
|
-
if (open) {
|
|
72
|
-
if (closeTimerRef.current !== null) {
|
|
73
|
-
window.clearTimeout(closeTimerRef.current);
|
|
74
|
-
closeTimerRef.current = null;
|
|
75
|
-
}
|
|
76
|
-
setMounted(true);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (!mounted) return;
|
|
80
|
-
closeTimerRef.current = window.setTimeout(function () {
|
|
81
|
-
setMounted(false);
|
|
82
|
-
closeTimerRef.current = null;
|
|
83
|
-
}, delay);
|
|
84
|
-
}, [delay, mounted, open]);
|
|
85
|
-
return mounted;
|
|
86
|
-
};
|
|
87
56
|
var useDialogFocus = function useDialogFocus(active, dialogRef) {
|
|
88
57
|
var previousActiveElementRef = useRef(null);
|
|
89
58
|
useEffect(function () {
|
|
@@ -231,7 +200,6 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
231
200
|
cancelButtonProps = props.cancelButtonProps,
|
|
232
201
|
okButtonProps = props.okButtonProps,
|
|
233
202
|
rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
|
|
234
|
-
var mounted = usePresence(open, DIALOG_DEFAULTS.closeTimeoutMs);
|
|
235
203
|
var dialogRef = useRef(null);
|
|
236
204
|
var titleId = useId();
|
|
237
205
|
var handleSetDialogRef = useCallback(function (node) {
|
|
@@ -251,9 +219,9 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
251
219
|
if (!maskClosable) return;
|
|
252
220
|
handleCancel();
|
|
253
221
|
});
|
|
254
|
-
useBodyScrollLock(
|
|
255
|
-
useDialogFocus(
|
|
256
|
-
useEscapeClose(
|
|
222
|
+
useBodyScrollLock(open);
|
|
223
|
+
useDialogFocus(open, dialogRef);
|
|
224
|
+
useEscapeClose(open, handleCancel);
|
|
257
225
|
var hasMedia = media != null;
|
|
258
226
|
var closeControlNode = showCloseIcon ? renderControlButton(prefixCls, DIALOG_CONTROL_TYPE.close, closeIcon !== null && closeIcon !== void 0 ? closeIcon : _jsx(Icons, {
|
|
259
227
|
name: DIALOG_DEFAULT_ICONS[DIALOG_CONTROL_TYPE.close],
|
|
@@ -301,11 +269,11 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
301
269
|
cancelButton: cancelButton,
|
|
302
270
|
okButton: okButton
|
|
303
271
|
});
|
|
304
|
-
if (!
|
|
272
|
+
if (!open) return null;
|
|
305
273
|
return _jsx(Portal, {
|
|
306
274
|
children: _jsxs("div", {
|
|
307
275
|
style: rootStyle,
|
|
308
|
-
className:
|
|
276
|
+
className: getClassName(prefixCls, DIALOG_SLOT.root),
|
|
309
277
|
children: [_jsx("div", {
|
|
310
278
|
"aria-hidden": "true",
|
|
311
279
|
className: getClassName(prefixCls, DIALOG_SLOT.overlay),
|
|
@@ -367,4 +335,4 @@ DialogBase.displayName = 'Dialog';
|
|
|
367
335
|
export var Dialog = /*#__PURE__*/memo(DialogBase);
|
|
368
336
|
Dialog.displayName = 'Dialog';
|
|
369
337
|
export default Dialog;
|
|
370
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwidXNlU3RhdGUiLCJCdXR0b24iLCJJY29ucyIsIlBvcnRhbCIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUhlYWRsaW5lIiwiZmlsbFJlZiIsIkRJQUxPR19BQ1RJT05fS0lORCIsIkRJQUxPR19DT05UUk9MX0xBQkVMUyIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTIiwiRElBTE9HX0RFRkFVTFRfSUNPTlMiLCJESUFMT0dfREVGQVVMVF9QUkVGSVgiLCJESUFMT0dfREVGQVVMVFMiLCJESUFMT0dfTU9ESUZJRVIiLCJESUFMT0dfTkFNRVNQQUNFIiwiRElBTE9HX1NJWkUiLCJESUFMT0dfU0xPVCIsInNjcm9sbExvY2tDb3VudCIsImdldENsYXNzTmFtZSIsInByZWZpeENscyIsInNsb3QiLCJtb2RpZmllciIsImJhc2VDbGFzc05hbWUiLCJjb25jYXQiLCJzZXRCb2R5T3ZlcmZsb3ciLCJ2YWx1ZSIsImRvY3VtZW50IiwiYm9keSIsInN0eWxlIiwib3ZlcmZsb3ciLCJsb2NrQm9keVNjcm9sbCIsIm92ZXJmbG93SGlkZGVuIiwidW5sb2NrQm9keVNjcm9sbCIsIk1hdGgiLCJtYXgiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJvdmVyZmxvd1Jlc2V0IiwidXNlQm9keVNjcm9sbExvY2siLCJsb2NrZWQiLCJpc0xvY2tlZFJlZiIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJ1c2VQcmVzZW5jZSIsIm9wZW4iLCJkZWxheSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIm1vdW50ZWQiLCJzZXRNb3VudGVkIiwiY2xvc2VUaW1lclJlZiIsIndpbmRvdyIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJ1c2VEaWFsb2dGb2N1cyIsImFjdGl2ZSIsImRpYWxvZ1JlZiIsInByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiIsImFjdGl2ZUVsZW1lbnQiLCJIVE1MRWxlbWVudCIsImZyYW1lIiwiX2EiLCJmb2N1cyIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiX2IiLCJ1c2VFc2NhcGVDbG9zZSIsImVuYWJsZWQiLCJvbkNsb3NlIiwiaGFuZGxlS2V5RG93biIsImV2ZW50Iiwia2V5IiwiZXNjYXBlS2V5IiwicHJldmVudERlZmF1bHQiLCJhZGRFdmVudExpc3RlbmVyIiwia2V5ZG93bkV2ZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlbmRlclR5cG9ncmFwaHlOb2RlIiwibm9kZSIsInJlbmRlclRleHQiLCJyZW5kZXJJbGx1c3RyYXRpb25Ob2RlIiwiaWxsdXN0cmF0aW9uIiwibmFtZSIsInNpemUiLCJpbGx1c3RyYXRpb25TaXplIiwidG9Wb2lkSGFuZGxlciIsImFjdGlvbiIsImNyZWF0ZUFjdGlvbkhhbmRsZXIiLCJidXR0b25DbGljayIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZW5kZXJDb250cm9sQnV0dG9uIiwidHlwZSIsImljb25Ob2RlIiwib25DbGljayIsImJ1dHRvbkh0bWxUeXBlIiwiY2xhc3NOYW1lIiwiY29udHJvbCIsImNoaWxkcmVuIiwicmVuZGVyQWN0aW9uQnV0dG9uIiwiX3JlZiIsImtpbmQiLCJ0ZXh0IiwiYnV0dG9uUHJvcHMiLCJhc3NpZ24iLCJidXR0b25TaXplIiwiY29sb3IiLCJhY3Rpb25CdXR0b24iLCJyZXNvbHZlRm9vdGVyTm9kZSIsIl9yZWYyIiwiZm9vdGVyIiwiY2FuY2VsQnV0dG9uIiwib2tCdXR0b24iLCJsYXJnZSIsIkRpYWxvZ0Jhc2UiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJfcHJvcHMkb3BlbiIsIl9wcm9wcyRzaXplIiwic21hbGwiLCJfcHJvcHMkbWFza0Nsb3NhYmxlIiwibWFza0Nsb3NhYmxlIiwiX3Byb3BzJHNob3dDbG9zZUljb24iLCJzaG93Q2xvc2VJY29uIiwiX3Byb3BzJHNob3dCYWNrSWNvbiIsInNob3dCYWNrSWNvbiIsIl9wcm9wcyRmdWxsV2lkdGgiLCJmdWxsV2lkdGgiLCJfcHJvcHMkZml4ZWQiLCJmaXhlZCIsInRpdGxlIiwibWVkaWEiLCJjbG9zZUljb24iLCJiYWNrSWNvbiIsIm9uT2siLCJvbkNhbmNlbCIsIm9uQmFjayIsIl9wcm9wcyRva1RleHQiLCJva1RleHQiLCJfcHJvcHMkY2FuY2VsVGV4dCIsImNhbmNlbFRleHQiLCJyb290U3R5bGUiLCJ3cmFwcGVyU3R5bGUiLCJib2R5U3R5bGUiLCJoZWFkZXJTdHlsZSIsImNvbnRlbnRTdHlsZSIsImZvb3RlclN0eWxlIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJva0J1dHRvblByb3BzIiwicmVzdCIsImNsb3NlVGltZW91dE1zIiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsImhhbmRsZUNhbmNlbCIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsImNsb3NlIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJhcyIsImNoaWxkcmVuTm9kZSIsInN0cm9uZyIsImNhbmNlbCIsIm9rIiwiZm9vdGVyTm9kZSIsInJvb3QiLCJjbG9zZWQiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdW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Q0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGekQsVUFBVSxDQUFDcUUsV0FBVyxHQUFHLFFBQVE7QUFFakMsT0FBTyxJQUFNQyxNQUFNLGdCQUFHNUwsSUFBSSxDQUFDc0gsVUFBVSxDQUFDO0FBRXRDc0UsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUU3QixlQUFlQyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB1c2VTdGF0ZSwgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuLi9Qb3J0YWwnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZmlsbFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzL3JlZic7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX0xBQkVMUywgRElBTE9HX0NPTlRST0xfVFlQRSwgRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUywgRElBTE9HX0RFRkFVTFRfSUNPTlMsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfTU9ESUZJRVIsIERJQUxPR19OQU1FU1BBQ0UsIERJQUxPR19TSVpFLCBESUFMT0dfU0xPVCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xubGV0IHNjcm9sbExvY2tDb3VudCA9IDA7XG5jb25zdCBnZXRDbGFzc05hbWUgPSAocHJlZml4Q2xzLCBzbG90LCBtb2RpZmllcikgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBgJHtESUFMT0dfTkFNRVNQQUNFfS0ke3ByZWZpeENsc30ke3Nsb3QgPyBgLSR7c2xvdH1gIDogJyd9YDtcbiAgICByZXR1cm4gbW9kaWZpZXIgPyBgJHtiYXNlQ2xhc3NOYW1lfS0ke21vZGlmaWVyfWAgOiBiYXNlQ2xhc3NOYW1lO1xufTtcbmNvbnN0IHNldEJvZHlPdmVyZmxvdyA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm47XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHZhbHVlO1xufTtcbmNvbnN0IGxvY2tCb2R5U2Nyb2xsID0gKCkgPT4ge1xuICAgIHNjcm9sbExvY2tDb3VudCArPSAxO1xuICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dIaWRkZW4pO1xufTtcbmNvbnN0IHVubG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ID0gTWF0aC5tYXgoMCwgc2Nyb2xsTG9ja0NvdW50IC0gMSk7XG4gICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dSZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5jb25zdCB1c2VCb2R5U2Nyb2xsTG9jayA9IChsb2NrZWQpID0+IHtcbiAgICBjb25zdCBpc0xvY2tlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFsb2NrZWQgfHwgaXNMb2NrZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBsb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHVubG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbG9ja2VkXSk7XG59O1xuY29uc3QgdXNlUHJlc2VuY2UgPSAob3BlbiwgZGVsYXkpID0+IHtcbiAgICBjb25zdCBbbW91bnRlZCwgc2V0TW91bnRlZF0gPSB1c2VTdGF0ZShvcGVuKTtcbiAgICBjb25zdCBjbG9zZVRpbWVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xvc2VUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChjbG9zZVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgaWYgKGNsb3NlVGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0TW91bnRlZCh0cnVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1vdW50ZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNldE1vdW50ZWQoZmFsc2UpO1xuICAgICAgICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSwgZGVsYXkpO1xuICAgIH0sIFtkZWxheSwgbW91bnRlZCwgb3Blbl0pO1xuICAgIHJldHVybiBtb3VudGVkO1xufTtcbmNvbnN0IHVzZURpYWxvZ0ZvY3VzID0gKGFjdGl2ZSwgZGlhbG9nUmVmKSA9PiB7XG4gICAgY29uc3QgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghYWN0aXZlIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCA9XG4gICAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IDogbnVsbDtcbiAgICAgICAgY29uc3QgZnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGRpYWxvZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoZnJhbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFthY3RpdmUsIGRpYWxvZ1JlZl0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChhY3RpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIChfYiA9IChfYSA9IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgIH0sIFthY3RpdmVdKTtcbn07XG5jb25zdCB1c2VFc2NhcGVDbG9zZSA9IChlbmFibGVkLCBvbkNsb3NlKSA9PiB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlbmFibGVkIHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ICE9PSBESUFMT0dfREVGQVVMVFMuZXNjYXBlS2V5KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB2b2lkIChvbkNsb3NlID09PSBudWxsIHx8IG9uQ2xvc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xvc2UoKSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoRElBTE9HX0RFRkFVTFRTLmtleWRvd25FdmVudCwgaGFuZGxlS2V5RG93bik7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICB9O1xuICAgIH0sIFtlbmFibGVkLCBvbkNsb3NlXSk7XG59O1xuY29uc3QgcmVuZGVyVHlwb2dyYXBoeU5vZGUgPSAobm9kZSwgcmVuZGVyVGV4dCkgPT4ge1xuICAgIGlmIChub2RlID09IG51bGwgfHwgdHlwZW9mIG5vZGUgPT09ICdib29sZWFuJylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygbm9kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcbmNvbnN0IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUgPSAoaWxsdXN0cmF0aW9uKSA9PiB7XG4gICAgaWYgKCFpbGx1c3RyYXRpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpbGx1c3RyYXRpb24sIHNpemU6IERJQUxPR19ERUZBVUxUUy5pbGx1c3RyYXRpb25TaXplIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnQoaWxsdXN0cmF0aW9uKSA/IGlsbHVzdHJhdGlvbiA6IG51bGw7XG59O1xuY29uc3QgdG9Wb2lkSGFuZGxlciA9IChhY3Rpb24pID0+ICgpID0+IHtcbiAgICB2b2lkIChhY3Rpb24gPT09IG51bGwgfHwgYWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhY3Rpb24oKSk7XG59O1xuY29uc3QgY3JlYXRlQWN0aW9uSGFuZGxlciA9IChhY3Rpb24sIGJ1dHRvbkNsaWNrKSA9PiAoZXZlbnQpID0+IHtcbiAgICBidXR0b25DbGljayA9PT0gbnVsbCB8fCBidXR0b25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uQ2xpY2soZXZlbnQpO1xuICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybjtcbiAgICB2b2lkIGFjdGlvbigpO1xufTtcbmNvbnN0IHJlbmRlckNvbnRyb2xCdXR0b24gPSAocHJlZml4Q2xzLCB0eXBlLCBpY29uTm9kZSwgb25DbGljaykgPT4gKF9qc3goXCJidXR0b25cIiwgeyB0eXBlOiBESUFMT0dfREVGQVVMVFMuYnV0dG9uSHRtbFR5cGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250cm9sKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCwgdHlwZSkpLCBcImFyaWEtbGFiZWxcIjogRElBTE9HX0NPTlRST0xfTEFCRUxTW3R5cGVdLCBvbkNsaWNrOiB0b1ZvaWRIYW5kbGVyKG9uQ2xpY2spLCBjaGlsZHJlbjogaWNvbk5vZGUgfSkpO1xuY29uc3QgcmVuZGVyQWN0aW9uQnV0dG9uID0gKHsgcHJlZml4Q2xzLCBraW5kLCB0ZXh0LCBhY3Rpb24sIGJ1dHRvblByb3BzLCB9KSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0ZXh0ID09IG51bGwgfHwgIWFjdGlvbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KEJ1dHRvbiwgT2JqZWN0LmFzc2lnbih7fSwgYnV0dG9uUHJvcHMsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBzaXplOiBESUFMT0dfREVGQVVMVFMuYnV0dG9uU2l6ZSwgY29sb3I6IChfYSA9IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5jb2xvcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SU1traW5kXSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmFjdGlvbkJ1dHRvbiksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmFjdGlvbkJ1dHRvbiwga2luZCksIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5jbGFzc05hbWUpLCBzdHlsZTogYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLnN0eWxlLCBvbkNsaWNrOiBjcmVhdGVBY3Rpb25IYW5kbGVyKGFjdGlvbiwgYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLm9uQ2xpY2spLCBjaGlsZHJlbjogdGV4dCB9KSkpO1xufTtcbmNvbnN0IHJlc29sdmVGb290ZXJOb2RlID0gKHsgZm9vdGVyLCBzaXplLCBjYW5jZWxCdXR0b24sIG9rQnV0dG9uLCB9KSA9PiB7XG4gICAgaWYgKGZvb3RlciA9PT0gbnVsbClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBmb290ZXIgPT09ICdmdW5jdGlvbicpXG4gICAgICAgIHJldHVybiBmb290ZXIoY2FuY2VsQnV0dG9uLCBva0J1dHRvbik7XG4gICAgaWYgKGZvb3RlciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gZm9vdGVyO1xuICAgIGlmICghY2FuY2VsQnV0dG9uICYmICFva0J1dHRvbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHNpemUgPT09IERJQUxPR19TSVpFLmxhcmdlXG4gICAgICAgID8gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2NhbmNlbEJ1dHRvbiwgb2tCdXR0b25dIH0pKVxuICAgICAgICA6IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtva0J1dHRvbiwgY2FuY2VsQnV0dG9uXSB9KSk7XG59O1xuY29uc3QgRGlhbG9nQmFzZSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IERJQUxPR19ERUZBVUxUX1BSRUZJWCwgb3BlbiA9IGZhbHNlLCBzaXplID0gRElBTE9HX1NJWkUuc21hbGwsIG1hc2tDbG9zYWJsZSA9IHRydWUsIHNob3dDbG9zZUljb24gPSB0cnVlLCBzaG93QmFja0ljb24gPSBmYWxzZSwgZnVsbFdpZHRoID0gZmFsc2UsIGZpeGVkID0gZmFsc2UsIHRpdGxlLCBjaGlsZHJlbiwgaWxsdXN0cmF0aW9uLCBtZWRpYSwgY2xvc2VJY29uLCBiYWNrSWNvbiwgZm9vdGVyLCBvbk9rLCBvbkNhbmNlbCwgb25CYWNrLCBva1RleHQgPSBESUFMT0dfREVGQVVMVFMub2tUZXh0LCBjYW5jZWxUZXh0ID0gRElBTE9HX0RFRkFVTFRTLmNhbmNlbFRleHQsIHJvb3RTdHlsZSwgd3JhcHBlclN0eWxlLCBib2R5U3R5bGUsIGhlYWRlclN0eWxlLCBjb250ZW50U3R5bGUsIGZvb3RlclN0eWxlLCBjYW5jZWxCdXR0b25Qcm9wcywgb2tCdXR0b25Qcm9wcyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCIsIFwib3BlblwiLCBcInNpemVcIiwgXCJtYXNrQ2xvc2FibGVcIiwgXCJzaG93Q2xvc2VJY29uXCIsIFwic2hvd0JhY2tJY29uXCIsIFwiZnVsbFdpZHRoXCIsIFwiZml4ZWRcIiwgXCJ0aXRsZVwiLCBcImNoaWxkcmVuXCIsIFwiaWxsdXN0cmF0aW9uXCIsIFwibWVkaWFcIiwgXCJjbG9zZUljb25cIiwgXCJiYWNrSWNvblwiLCBcImZvb3RlclwiLCBcIm9uT2tcIiwgXCJvbkNhbmNlbFwiLCBcIm9uQmFja1wiLCBcIm9rVGV4dFwiLCBcImNhbmNlbFRleHRcIiwgXCJyb290U3R5bGVcIiwgXCJ3cmFwcGVyU3R5bGVcIiwgXCJib2R5U3R5bGVcIiwgXCJoZWFkZXJTdHlsZVwiLCBcImNvbnRlbnRTdHlsZVwiLCBcImZvb3RlclN0eWxlXCIsIFwiY2FuY2VsQnV0dG9uUHJvcHNcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcbiAgICBjb25zdCBtb3VudGVkID0gdXNlUHJlc2VuY2Uob3BlbiwgRElBTE9HX0RFRkFVTFRTLmNsb3NlVGltZW91dE1zKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdGl0bGVJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaGFuZGxlU2V0RGlhbG9nUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgZGlhbG9nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBmaWxsUmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZl0pO1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkNhbmNlbCA9PT0gbnVsbCB8fCBvbkNhbmNlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DYW5jZWwoKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25PayA9PT0gbnVsbCB8fCBvbk9rID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9rKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUJhY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25CYWNrID09PSBudWxsIHx8IG9uQmFjayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CYWNrKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoIW1hc2tDbG9zYWJsZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaGFuZGxlQ2FuY2VsKCk7XG4gICAgfSk7XG4gICAgdXNlQm9keVNjcm9sbExvY2sobW91bnRlZCAmJiBvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhtb3VudGVkICYmIG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2UobW91bnRlZCAmJiBvcGVuLCBoYW5kbGVDYW5jZWwpO1xuICAgIGNvbnN0IGhhc01lZGlhID0gbWVkaWEgIT0gbnVsbDtcbiAgICBjb25zdCBjbG9zZUNvbnRyb2xOb2RlID0gc2hvd0Nsb3NlSWNvblxuICAgICAgICA/IHJlbmRlckNvbnRyb2xCdXR0b24ocHJlZml4Q2xzLCBESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlLCBjbG9zZUljb24gIT09IG51bGwgJiYgY2xvc2VJY29uICE9PSB2b2lkIDAgPyBjbG9zZUljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlXSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmNvbnRyb2xJY29uU2l6ZSB9KSksIGhhbmRsZUNhbmNlbClcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGJhY2tDb250cm9sTm9kZSA9IHNob3dCYWNrSWNvblxuICAgICAgICA/IHJlbmRlckNvbnRyb2xCdXR0b24ocHJlZml4Q2xzLCBESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2ssIGJhY2tJY29uICE9PSBudWxsICYmIGJhY2tJY29uICE9PSB2b2lkIDAgPyBiYWNrSWNvbiA6IChfanN4KEljb25zLCB7IG5hbWU6IERJQUxPR19ERUZBVUxUX0lDT05TW0RJQUxPR19DT05UUk9MX1RZUEUuYmFja10sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVCYWNrKVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgaWxsdXN0cmF0aW9uTm9kZSA9IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUoaWxsdXN0cmF0aW9uKTtcbiAgICBjb25zdCB0aXRsZU5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZSh0aXRsZSwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5SGVhZGxpbmUsIHsgc2l6ZTogXCJtZFwiLCBhczogXCJoMlwiLCBjb2xvcjogXCJkZWZhdWx0XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGNvbnN0IGNoaWxkcmVuTm9kZSA9IHJlbmRlclR5cG9ncmFwaHlOb2RlKGNoaWxkcmVuLCAodmFsdWUpID0+IChfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFwibWRcIiwgYXM6IFwicFwiLCBzdHJvbmc6IHRydWUsIGNvbG9yOiBcImRlZmF1bHQtc2Vjb25kYXJ5XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELmNhbmNlbCxcbiAgICAgICAgdGV4dDogY2FuY2VsVGV4dCxcbiAgICAgICAgYWN0aW9uOiBvbkNhbmNlbCxcbiAgICAgICAgYnV0dG9uUHJvcHM6IGNhbmNlbEJ1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IG9rQnV0dG9uID0gcmVuZGVyQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQub2ssXG4gICAgICAgIHRleHQ6IG9rVGV4dCxcbiAgICAgICAgYWN0aW9uOiBvbk9rLFxuICAgICAgICBidXR0b25Qcm9wczogb2tCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBmb290ZXJOb2RlID0gcmVzb2x2ZUZvb3Rlck5vZGUoe1xuICAgICAgICBmb290ZXIsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGNhbmNlbEJ1dHRvbixcbiAgICAgICAgb2tCdXR0b24sXG4gICAgfSk7XG4gICAgaWYgKCFtb3VudGVkKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5yb290KSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qucm9vdCwgb3BlbiA/IERJQUxPR19NT0RJRklFUi5vcGVuIDogRElBTE9HX01PRElGSUVSLmNsb3NlZCkpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscyksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgc2l6ZSksIGZ1bGxXaWR0aCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5mdWxsV2lkdGgpLCBmaXhlZCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5maXhlZCksIGhhc01lZGlhICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLndpdGhNZWRpYSksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbY2xvc2VDb250cm9sTm9kZSwgaGFzTWVkaWEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QubWVkaWEpLCBjaGlsZHJlbjogbWVkaWEgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgKGlsbHVzdHJhdGlvbk5vZGUgfHwgdGl0bGVOb2RlKSkpICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5oZWFkZXIpLCBjaGlsZHJlbjogW2JhY2tDb250cm9sTm9kZSwgZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCBmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCAhZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKSwgY2hpbGRyZW5Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGNvbnRlbnRTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250ZW50KSwgY2hpbGRyZW46IGNoaWxkcmVuTm9kZSB9KSldIH0pLCBmb290ZXJOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyLCBzaXplKSksIGNoaWxkcmVuOiBmb290ZXJOb2RlIH0pKV0gfSldIH0pKSB9KV0gfSkgfSkpO1xufSk7XG5EaWFsb2dCYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgY29uc3QgRGlhbG9nID0gbWVtbyhEaWFsb2dCYXNlKTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGRlZmF1bHQgRGlhbG9nOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
338
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwidGl0bGUiLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsImhhbmRsZUNhbmNlbCIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsImNsb3NlIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJhcyIsImNoaWxkcmVuTm9kZSIsInN0cm9uZyIsImNhbmNlbCIsIm9rIiwiZm9vdGVyTm9kZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciXSwibWFwcGluZ3MiOiJB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QztnQkFBQWxDLFFBQUEsRUFDcEVtRTtjQUFTLENBQUEsQ0FFYixFQUNBRSxZQUFZLElBQ1h4SyxJQUFBLENBQUEsS0FBQSxFQUFBO2dCQUNFMEMsS0FBSyxFQUFFMEcsWUFBWTtnQkFDbkJuRCxTQUFTLEVBQUVqRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDd0osT0FBTyxDQUFDO2dCQUFBbkYsUUFBQSxFQUV0RHFFO2NBQVksQ0FBQSxDQUVoQjtZQUFBLENBQUEsQ0FDRyxFQUNMSSxVQUFVLElBQ1Q1SyxJQUFBLENBQUEsS0FBQSxFQUFBO2NBQ0UwQyxLQUFLLEVBQUUyRyxXQUFXO2NBQ2xCcEQsU0FBUyxFQUFFM0YsVUFBVSxDQUNuQjBCLFlBQVksQ0FBQ0MsU0FBUyxFQUFFSCxXQUFXLENBQUNpRixNQUFNLENBQUMsRUFDM0MvRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDaUYsTUFBTSxFQUFFMUIsSUFBSSxDQUFDLENBQ2xEO2NBQUFjLFFBQUEsRUFFQXlFO1lBQVUsQ0FBQSxDQUVkO1VBQUEsQ0FBQSxDQUNHO1FBQUEsQ0FBQSxDQUFBO01BQ0YsQ0FBQSxDQUNGO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGekQsVUFBVSxDQUFDb0UsV0FBVyxHQUFHLFFBQVE7QUFFakMsT0FBTyxJQUFNQyxNQUFNLGdCQUFHL0ssSUFBSSxDQUFDMEcsVUFBVSxDQUFDO0FBRXRDcUUsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUU3QixlQUFlQyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGlmICghb3BlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KFBvcnRhbCwgeyBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogcm9vdFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnJvb3QpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscyksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgc2l6ZSksIGZ1bGxXaWR0aCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5mdWxsV2lkdGgpLCBmaXhlZCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5maXhlZCksIGhhc01lZGlhICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLndpdGhNZWRpYSksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbY2xvc2VDb250cm9sTm9kZSwgaGFzTWVkaWEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QubWVkaWEpLCBjaGlsZHJlbjogbWVkaWEgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgKGlsbHVzdHJhdGlvbk5vZGUgfHwgdGl0bGVOb2RlKSkpICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5oZWFkZXIpLCBjaGlsZHJlbjogW2JhY2tDb250cm9sTm9kZSwgZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCBmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCAhZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKSwgY2hpbGRyZW5Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGNvbnRlbnRTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250ZW50KSwgY2hpbGRyZW46IGNoaWxkcmVuTm9kZSB9KSldIH0pLCBmb290ZXJOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyLCBzaXplKSksIGNoaWxkcmVuOiBmb290ZXJOb2RlIH0pKV0gfSldIH0pKSB9KV0gfSkgfSkpO1xufSk7XG5EaWFsb2dCYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgY29uc3QgRGlhbG9nID0gbWVtbyhEaWFsb2dCYXNlKTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGRlZmF1bHQgRGlhbG9nOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -31,8 +31,6 @@ export declare const DIALOG_SLOT: {
|
|
|
31
31
|
readonly footer: "footer";
|
|
32
32
|
};
|
|
33
33
|
export declare const DIALOG_MODIFIER: {
|
|
34
|
-
readonly open: "open";
|
|
35
|
-
readonly closed: "closed";
|
|
36
34
|
readonly fullWidth: "full-width";
|
|
37
35
|
readonly withMedia: "with-media";
|
|
38
36
|
readonly fixed: "fixed";
|
|
@@ -43,7 +41,6 @@ export declare const DIALOG_DEFAULT_BUTTON_COLORS: Record<DialogActionKind, NonN
|
|
|
43
41
|
export declare const DIALOG_DEFAULTS: {
|
|
44
42
|
readonly buttonHtmlType: "button";
|
|
45
43
|
readonly buttonSize: "large";
|
|
46
|
-
readonly closeTimeoutMs: 200;
|
|
47
44
|
readonly controlIconSize: 24;
|
|
48
45
|
readonly illustrationSize: 74;
|
|
49
46
|
readonly okText: "Confirm";
|
|
@@ -30,8 +30,6 @@ export var DIALOG_SLOT = {
|
|
|
30
30
|
footer: 'footer'
|
|
31
31
|
};
|
|
32
32
|
export var DIALOG_MODIFIER = {
|
|
33
|
-
open: 'open',
|
|
34
|
-
closed: 'closed',
|
|
35
33
|
fullWidth: 'full-width',
|
|
36
34
|
withMedia: 'with-media',
|
|
37
35
|
fixed: 'fixed'
|
|
@@ -42,7 +40,6 @@ export var DIALOG_DEFAULT_BUTTON_COLORS = _defineProperty(_defineProperty({}, DI
|
|
|
42
40
|
export var DIALOG_DEFAULTS = {
|
|
43
41
|
buttonHtmlType: 'button',
|
|
44
42
|
buttonSize: 'large',
|
|
45
|
-
closeTimeoutMs: 200,
|
|
46
43
|
controlIconSize: 24,
|
|
47
44
|
illustrationSize: 74,
|
|
48
45
|
okText: 'Confirm',
|
|
@@ -52,4 +49,4 @@ export var DIALOG_DEFAULTS = {
|
|
|
52
49
|
escapeKey: 'Escape',
|
|
53
50
|
keydownEvent: 'keydown'
|
|
54
51
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL2NvbnN0YW50cy50cyIsImNvbXBvbmVudHMvRGlhbG9nL2NvbnN0YW50cy5qcyJdLCJuYW1lcyI6WyJESUFMT0dfTkFNRVNQQUNFIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX1NJWkUiLCJzbWFsbCIsImxhcmdlIiwiRElBTE9HX1NJWkVTIiwiRElBTE9HX0FDVElPTl9LSU5EIiwib2siLCJjYW5jZWwiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiYmFjayIsImNsb3NlIiwiRElBTE9HX1NMT1QiLCJyb290Iiwib3ZlcmxheSIsIndyYXBwZXIiLCJjb250cm9sIiwiYWN0aW9uQnV0dG9uIiwibWVkaWEiLCJpbm5lciIsImhlYWRlciIsImJvZHkiLCJpbGx1c3RyYXRpb24iLCJ0aXRsZSIsImNvbnRlbnQiLCJmb290ZXIiLCJESUFMT0dfTU9ESUZJRVIiLCJmdWxsV2lkdGgiLCJ3aXRoTWVkaWEiLCJmaXhlZCIsIkRJQUxPR19DT05UUk9MX0xBQkVMUyIsIl9kZWZpbmVQcm9wZXJ0eSIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUUyIsImJ1dHRvbkh0bWxUeXBlIiwiYnV0dG9uU2l6ZSIsImNvbnRyb2xJY29uU2l6ZSIsImlsbHVzdHJhdGlvblNpemUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib3ZlcmZsb3dIaWRkZW4iLCJvdmVyZmxvd1Jlc2V0IiwiZXNjYXBlS2V5Iiwia2V5ZG93bkV2ZW50Il0sIm1hcHBpbmdzIjoiO0FBR0EsT0FBTyxJQUFNQSxnQkFBZ0IsR0FBRyxpQkFBaUI7QUFDakQsT0FBTyxJQUFNQyxxQkFBcUIsR0FBRyxRQUFRO0FBRTdDLE9BQU8sSUFBTUMsV0FBVyxHQUFHO0VBQ3pCQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxLQUFLLEVBQUU7QUNIVCxDRElVO0FBRVYsT0FBTyxJQUFNQyxZQUFZLEdBQUcsQ0FBQ0gsV0FBVyxDQUFDQyxLQUFLLEVBQUVELFdBQVcsQ0FBQ0UsS0FBSyxDQUFVO0FBRTNFLE9BQU8sSUFBTUUsa0JBQWtCLEdBQUc7RUFDaENDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLE1BQU0sRUFBRTtBQ0xWLENETVU7QUFFVixPQUFPLElBQU1DLG1CQUFtQixHQUFHO0VBQ2pDQyxJQUFJLEVBQUUsTUFBTTtFQUNaQyxLQUFLLEVBQUU7QUNOVCxDRE9VO0FBRVYsT0FBTyxJQUFNQyxXQUFXLEdBQUc7RUFDekJDLElBQUksRUFBRSxNQUFNO0VBQ1pDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxPQUFPLEVBQUUsU0FBUztFQUNsQkMsT0FBTyxFQUFFLFNBQVM7RUFDbEJDLFlBQVksRUFBRSxlQUFlO0VBQzdCQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxLQUFLLEVBQUUsT0FBTztFQUNkQyxNQUFNLEVBQUUsUUFBUTtFQUNoQkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsWUFBWSxFQUFFLGNBQWM7RUFDNUJDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLE9BQU8sRUFBRSxTQUFTO0VBQ2xCQyxNQUFNLEVBQUU7QUNQVixDRFFVO0FBRVYsT0FBTyxJQUFNQyxlQUFlLEdBQUc7RUFDN0JDLFNBQVMsRUFBRSxZQUFZO0VBQ3ZCQyxTQUFTLEVBQUUsWUFBWTtFQUN2QkMsS0FBSyxFQUFFO0FDUlQsQ0RTVTtBQUVWLE9BQU8sSUFBTUMscUJBQXFCLEdBQUFDLGVBQUEsQ0FBQUEsZUFBQSxLQUMvQnRCLG1CQUFtQixDQUFDQyxJQUFJLEVBQUcsU0FBUyxHQUNwQ0QsbUJBQW1CLENBQUNFLEtBQUssRUFBRyxjQUFjLENBQzVDO0FBRUQsT0FBTyxJQUFNcUIsb0JBQW9CLEdBQUFELGVBQUEsQ0FBQUEsZUFBQSxLQUM5QnRCLG1CQUFtQixDQUFDQyxJQUFJLEVBQUcsV0FBVyxHQUN0Q0QsbUJBQW1CLENBQUNFLEtBQUssRUFBRyxPQUFPLENBQ3JDO0FBRUQsT0FBTyxJQUFNc0IsNEJBQTRCLEdBQUFGLGVBQUEsQ0FBQUEsZUFBQSxLQUl0Q3pCLGtCQUFrQixDQUFDRSxNQUFNLEVBQUcsTUFBTSxHQUNsQ0Ysa0JBQWtCLENBQUNDLEVBQUUsRUFBRyxTQUFTLENBQ25DO0FBRUQsT0FBTyxJQUFNMkIsZUFBZSxHQUFHO0VBQzdCQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsVUFBVSxFQUFFLE9BQWtEO0VBQzlEQyxlQUFlLEVBQUUsRUFBRTtFQUNuQkMsZ0JBQWdCLEVBQUUsRUFBRTtFQUNwQkMsTUFBTSxFQUFFLFNBQVM7RUFDakJDLFVBQVUsRUFBRSxRQUFRO0VBQ3BCQyxjQUFjLEVBQUUsUUFBUTtFQUN4QkMsYUFBYSxFQUFFLEVBQUU7RUFDakJDLFNBQVMsRUFBRSxRQUFRO0VBQ25CQyxZQUFZLEVBQUU7QUNmaEIsQ0RnQlUiLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJleHBvcnQgY29uc3QgRElBTE9HX05BTUVTUEFDRSA9ICdvbS1jb21wb25lbnQtdWknO1xuZXhwb3J0IGNvbnN0IERJQUxPR19ERUZBVUxUX1BSRUZJWCA9ICdkaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERJQUxPR19TSVpFID0ge1xuICAgIHNtYWxsOiAnc21hbGwnLFxuICAgIGxhcmdlOiAnbGFyZ2UnLFxufTtcbmV4cG9ydCBjb25zdCBESUFMT0dfU0laRVMgPSBbRElBTE9HX1NJWkUuc21hbGwsIERJQUxPR19TSVpFLmxhcmdlXTtcbmV4cG9ydCBjb25zdCBESUFMT0dfQUNUSU9OX0tJTkQgPSB7XG4gICAgb2s6ICdvaycsXG4gICAgY2FuY2VsOiAnY2FuY2VsJyxcbn07XG5leHBvcnQgY29uc3QgRElBTE9HX0NPTlRST0xfVFlQRSA9IHtcbiAgICBiYWNrOiAnYmFjaycsXG4gICAgY2xvc2U6ICdjbG9zZScsXG59O1xuZXhwb3J0IGNvbnN0IERJQUxPR19TTE9UID0ge1xuICAgIHJvb3Q6ICdyb290JyxcbiAgICBvdmVybGF5OiAnb3ZlcmxheScsXG4gICAgd3JhcHBlcjogJ3dyYXBwZXInLFxuICAgIGNvbnRyb2w6ICdjb250cm9sJyxcbiAgICBhY3Rpb25CdXR0b246ICdhY3Rpb24tYnV0dG9uJyxcbiAgICBtZWRpYTogJ21lZGlhJyxcbiAgICBpbm5lcjogJ2lubmVyJyxcbiAgICBoZWFkZXI6ICdoZWFkZXInLFxuICAgIGJvZHk6ICdib2R5JyxcbiAgICBpbGx1c3RyYXRpb246ICdpbGx1c3RyYXRpb24nLFxuICAgIHRpdGxlOiAndGl0bGUnLFxuICAgIGNvbnRlbnQ6ICdjb250ZW50JyxcbiAgICBmb290ZXI6ICdmb290ZXInLFxufTtcbmV4cG9ydCBjb25zdCBESUFMT0dfTU9ESUZJRVIgPSB7XG4gICAgZnVsbFdpZHRoOiAnZnVsbC13aWR0aCcsXG4gICAgd2l0aE1lZGlhOiAnd2l0aC1tZWRpYScsXG4gICAgZml4ZWQ6ICdmaXhlZCcsXG59O1xuZXhwb3J0IGNvbnN0IERJQUxPR19DT05UUk9MX0xBQkVMUyA9IHtcbiAgICBbRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrXTogJ0dvIGJhY2snLFxuICAgIFtESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlXTogJ0Nsb3NlIGRpYWxvZycsXG59O1xuZXhwb3J0IGNvbnN0IERJQUxPR19ERUZBVUxUX0lDT05TID0ge1xuICAgIFtESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdOiAnYXJyb3dMZWZ0JyxcbiAgICBbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV06ICdjcm9zcycsXG59O1xuZXhwb3J0IGNvbnN0IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlMgPSB7XG4gICAgW0RJQUxPR19BQ1RJT05fS0lORC5jYW5jZWxdOiAnZ3JleScsXG4gICAgW0RJQUxPR19BQ1RJT05fS0lORC5va106ICdwcmltYXJ5Jyxcbn07XG5leHBvcnQgY29uc3QgRElBTE9HX0RFRkFVTFRTID0ge1xuICAgIGJ1dHRvbkh0bWxUeXBlOiAnYnV0dG9uJyxcbiAgICBidXR0b25TaXplOiAnbGFyZ2UnLFxuICAgIGNvbnRyb2xJY29uU2l6ZTogMjQsXG4gICAgaWxsdXN0cmF0aW9uU2l6ZTogNzQsXG4gICAgb2tUZXh0OiAnQ29uZmlybScsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgb3ZlcmZsb3dIaWRkZW46ICdoaWRkZW4nLFxuICAgIG92ZXJmbG93UmVzZXQ6ICcnLFxuICAgIGVzY2FwZUtleTogJ0VzY2FwZScsXG4gICAga2V5ZG93bkV2ZW50OiAna2V5ZG93bicsXG59OyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -30,8 +30,6 @@
|
|
|
30
30
|
position: absolute;
|
|
31
31
|
inset: 0;
|
|
32
32
|
background-color: var(--om-bg-scrim-dark, rgba(0, 0, 0, 0.2));
|
|
33
|
-
opacity: 0;
|
|
34
|
-
transition: opacity 200ms ease;
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
.om-component-ui-dialog-wrapper {
|
|
@@ -59,9 +57,6 @@
|
|
|
59
57
|
border-radius: var(--om-radius-600, 24px);
|
|
60
58
|
outline: none;
|
|
61
59
|
box-shadow: var(--om-shadow-200, 0 10px 22px rgba(0, 0, 0, 0.1));
|
|
62
|
-
transform: translateY(var(--om-spacing-400, 16px));
|
|
63
|
-
opacity: 0;
|
|
64
|
-
transition: opacity 200ms ease, transform 200ms ease;
|
|
65
60
|
pointer-events: auto;
|
|
66
61
|
}
|
|
67
62
|
.om-component-ui-dialog-small {
|
|
@@ -200,22 +195,6 @@
|
|
|
200
195
|
flex: 1 1 0;
|
|
201
196
|
}
|
|
202
197
|
|
|
203
|
-
.om-component-ui-dialog-root-open .om-component-ui-dialog-overlay {
|
|
204
|
-
opacity: 1;
|
|
205
|
-
}
|
|
206
|
-
.om-component-ui-dialog-root-open .om-component-ui-dialog {
|
|
207
|
-
transform: translateY(0);
|
|
208
|
-
opacity: 1;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
.om-component-ui-dialog-root-closed .om-component-ui-dialog-overlay {
|
|
212
|
-
opacity: 0;
|
|
213
|
-
}
|
|
214
|
-
.om-component-ui-dialog-root-closed .om-component-ui-dialog {
|
|
215
|
-
transform: translateY(var(--om-spacing-400, 16px));
|
|
216
|
-
opacity: 0;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
198
|
@media (max-width: 767.98px) {
|
|
220
199
|
.om-component-ui-dialog-wrapper {
|
|
221
200
|
align-items: flex-end;
|