@1money/component-ui 0.0.75 → 0.0.77
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/ProForm/ProForm.d.ts +1 -1
- package/es/components/ProForm/ProForm.js +46 -34
- package/es/components/ProForm/ProFormDependency.d.ts +2 -1
- package/es/components/ProForm/ProFormDependency.js +6 -16
- package/es/components/ProForm/ProFormItem.d.ts +7 -2
- package/es/components/ProForm/ProFormItem.js +5 -7
- package/es/components/ProForm/ProFormList.d.ts +6 -1
- package/es/components/ProForm/ProFormList.js +122 -42
- package/es/components/ProForm/SchemaForm.d.ts +1 -1
- package/es/components/ProForm/SchemaForm.js +8 -5
- package/es/components/ProForm/context.d.ts +8 -7
- package/es/components/ProForm/context.js +1 -1
- package/es/components/ProForm/core/constants.d.ts +3 -1
- package/es/components/ProForm/core/constants.js +8 -2
- package/es/components/ProForm/core/devWarning.d.ts +3 -0
- package/es/components/ProForm/core/devWarning.js +22 -0
- package/es/components/ProForm/core/formStore.d.ts +14 -6
- package/es/components/ProForm/core/formStore.js +21 -2
- package/es/components/ProForm/core/hooks/useForm.d.ts +1 -1
- package/es/components/ProForm/core/hooks/useForm.js +275 -107
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
- package/es/components/ProForm/core/hooks/useFormCore.js +121 -121
- package/es/components/ProForm/core/interface.d.ts +157 -103
- package/es/components/ProForm/core/namePathType.d.ts +25 -0
- package/es/components/ProForm/core/namePathType.js +2 -0
- package/es/components/ProForm/core/pathUtils.d.ts +5 -3
- package/es/components/ProForm/core/pathUtils.js +19 -1
- package/es/components/ProForm/core/runRules.d.ts +40 -17
- package/es/components/ProForm/core/runRules.js +480 -136
- package/es/components/ProForm/core/useFormItem.d.ts +7 -8
- package/es/components/ProForm/core/useFormItem.js +52 -82
- package/es/components/ProForm/core/validationError.d.ts +13 -0
- package/es/components/ProForm/core/validationError.js +29 -0
- package/es/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
- package/es/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/es/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
- package/es/components/ProForm/fields/ProFormFieldSet.js +49 -12
- package/es/components/ProForm/fields/ProFormPassword.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
- package/es/components/ProForm/fields/ProFormSelect.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormSelect.js +13 -7
- package/es/components/ProForm/fields/ProFormSlider.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormText.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormUpload.d.ts +1 -1
- package/es/components/ProForm/fields/ProFormUpload.js +1 -1
- package/es/components/ProForm/fields/createProFormField.d.ts +8 -2
- package/es/components/ProForm/fields/createProFormField.js +20 -27
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
- package/es/components/ProForm/hooks/useUrlSync.d.ts +8 -7
- package/es/components/ProForm/hooks/useUrlSync.js +1 -1
- package/es/components/ProForm/index.d.ts +37 -27
- package/es/components/ProForm/index.js +4 -1
- package/es/components/ProForm/interface.d.ts +115 -119
- package/es/components/ProForm/layouts/DialogForm.d.ts +1 -1
- package/es/components/ProForm/layouts/DialogForm.js +1 -1
- package/es/components/ProForm/layouts/DrawerForm.d.ts +1 -1
- package/es/components/ProForm/layouts/DrawerForm.js +1 -1
- package/es/components/ProForm/layouts/QueryFilter.d.ts +1 -1
- package/es/components/ProForm/layouts/QueryFilter.js +24 -16
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/es/components/ProForm/utils.d.ts +15 -7
- package/es/components/ProForm/utils.js +51 -3
- package/es/components/Table/core/useTableSetup.js +2 -2
- package/es/components/Table/interface.d.ts +1 -1
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/ProForm/ProForm.d.ts +1 -1
- package/lib/components/ProForm/ProForm.js +45 -33
- package/lib/components/ProForm/ProFormDependency.d.ts +2 -1
- package/lib/components/ProForm/ProFormDependency.js +5 -15
- package/lib/components/ProForm/ProFormItem.d.ts +7 -2
- package/lib/components/ProForm/ProFormItem.js +5 -7
- package/lib/components/ProForm/ProFormList.d.ts +6 -1
- package/lib/components/ProForm/ProFormList.js +120 -40
- package/lib/components/ProForm/SchemaForm.d.ts +1 -1
- package/lib/components/ProForm/SchemaForm.js +8 -5
- package/lib/components/ProForm/context.d.ts +8 -7
- package/lib/components/ProForm/context.js +1 -1
- package/lib/components/ProForm/core/constants.d.ts +3 -1
- package/lib/components/ProForm/core/constants.js +9 -3
- package/lib/components/ProForm/core/devWarning.d.ts +3 -0
- package/lib/components/ProForm/core/devWarning.js +29 -0
- package/lib/components/ProForm/core/formStore.d.ts +14 -6
- package/lib/components/ProForm/core/formStore.js +23 -2
- package/lib/components/ProForm/core/hooks/useForm.d.ts +1 -1
- package/lib/components/ProForm/core/hooks/useForm.js +271 -103
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +2 -2
- package/lib/components/ProForm/core/hooks/useFormCore.js +119 -119
- package/lib/components/ProForm/core/interface.d.ts +157 -103
- package/lib/components/ProForm/core/namePathType.d.ts +25 -0
- package/lib/components/ProForm/core/namePathType.js +6 -0
- package/lib/components/ProForm/core/pathUtils.d.ts +5 -3
- package/lib/components/ProForm/core/pathUtils.js +20 -1
- package/lib/components/ProForm/core/runRules.d.ts +40 -17
- package/lib/components/ProForm/core/runRules.js +483 -137
- package/lib/components/ProForm/core/useFormItem.d.ts +7 -8
- package/lib/components/ProForm/core/useFormItem.js +54 -84
- package/lib/components/ProForm/core/validationError.d.ts +13 -0
- package/lib/components/ProForm/core/validationError.js +36 -0
- package/lib/components/ProForm/fields/ProFormCheckbox.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
- package/lib/components/ProForm/fields/ProFormDatePicker.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.d.ts +7 -2
- package/lib/components/ProForm/fields/ProFormFieldSet.js +49 -12
- package/lib/components/ProForm/fields/ProFormPassword.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormRadioGroup.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
- package/lib/components/ProForm/fields/ProFormSelect.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
- package/lib/components/ProForm/fields/ProFormSlider.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormSwitch.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormText.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormTextArea.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormUpload.d.ts +1 -1
- package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
- package/lib/components/ProForm/fields/createProFormField.d.ts +8 -2
- package/lib/components/ProForm/fields/createProFormField.js +20 -27
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +1 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +8 -7
- package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
- package/lib/components/ProForm/index.d.ts +37 -27
- package/lib/components/ProForm/index.js +10 -1
- package/lib/components/ProForm/interface.d.ts +115 -119
- package/lib/components/ProForm/layouts/DialogForm.d.ts +1 -1
- package/lib/components/ProForm/layouts/DialogForm.js +1 -1
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +1 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +1 -1
- package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/lib/components/ProForm/utils.d.ts +15 -7
- package/lib/components/ProForm/utils.js +52 -3
- package/lib/components/Table/core/useTableSetup.js +2 -2
- package/lib/components/Table/interface.d.ts +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +95 -53
- package/scripts/mcp-server/index.generated.json +1715 -185
|
@@ -68,32 +68,40 @@ var QueryFilterBase = function QueryFilterBase(props) {
|
|
|
68
68
|
setCollapsed(next);
|
|
69
69
|
onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(next);
|
|
70
70
|
});
|
|
71
|
+
// Count children and split visible/hidden
|
|
72
|
+
var childArray = (0, _react.useMemo)(function () {
|
|
73
|
+
var arr = [];
|
|
74
|
+
_react["default"].Children.forEach(children, function (child) {
|
|
75
|
+
if (/*#__PURE__*/_react["default"].isValidElement(child)) {
|
|
76
|
+
arr.push(child);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return arr;
|
|
80
|
+
}, [children]);
|
|
71
81
|
// A collapsed (display:none) field failing validation would block Search
|
|
72
82
|
// with an INVISIBLE error — auto-expand so the user can see and fix it.
|
|
83
|
+
// Detection is inverted on purpose: an error whose name is NOT among the
|
|
84
|
+
// VISIBLE children's `name` props may belong to a wrapped/overflow field
|
|
85
|
+
// (e.g. inside a Dependency), so expand. Worst case the bar expands while
|
|
86
|
+
// the error was visible — harmless; the opposite (an invisible error)
|
|
87
|
+
// blocks the user.
|
|
73
88
|
var handleFinishFailed = (0, _useMemoizedFn["default"])(function (errorInfo) {
|
|
74
89
|
if (collapsed) {
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return
|
|
90
|
+
var visibleNames = new Set(childArray.slice(0, defaultColsNumber).map(function (child) {
|
|
91
|
+
return /*#__PURE__*/_react["default"].isValidElement(child) ? child.props.name : undefined;
|
|
92
|
+
}).filter(function (name) {
|
|
93
|
+
return name !== undefined;
|
|
94
|
+
}));
|
|
95
|
+
var hasHiddenError = Object.keys(errorInfo.errors).some(function (errorName) {
|
|
96
|
+
return !visibleNames.has(errorName);
|
|
79
97
|
});
|
|
80
|
-
if (
|
|
98
|
+
if (hasHiddenError) {
|
|
81
99
|
setCollapsed(false);
|
|
82
100
|
onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(false);
|
|
83
101
|
}
|
|
84
102
|
}
|
|
85
103
|
onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);
|
|
86
104
|
});
|
|
87
|
-
// Count children and split visible/hidden
|
|
88
|
-
var childArray = (0, _react.useMemo)(function () {
|
|
89
|
-
var arr = [];
|
|
90
|
-
_react["default"].Children.forEach(children, function (child) {
|
|
91
|
-
if (/*#__PURE__*/_react["default"].isValidElement(child)) {
|
|
92
|
-
arr.push(child);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
return arr;
|
|
96
|
-
}, [children]);
|
|
97
105
|
var hasMore = childArray.length > defaultColsNumber;
|
|
98
106
|
var searchText = (_a = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.searchText) !== null && _a !== void 0 ? _a : _constants.DEFAULT_TEXT.search;
|
|
99
107
|
var resetText = (_b = searchConfig === null || searchConfig === void 0 ? void 0 : searchConfig.resetText) !== null && _b !== void 0 ? _b : _constants.DEFAULT_TEXT.reset;
|
|
@@ -145,4 +153,4 @@ QueryFilterBase.displayName = 'QueryFilter';
|
|
|
145
153
|
/** Generic-aware export — keeps `<QueryFilter<MyValues> …>` fully typed. */
|
|
146
154
|
var QueryFilter = exports.QueryFilter = /*#__PURE__*/(0, _react.memo)(QueryFilterBase);
|
|
147
155
|
var _default = exports["default"] = QueryFilter;
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9jbGFzc25hbWVzIiwiX0J1dHRvbiIsIl9Qcm9Gb3JtIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiSElEREVOX1NUWUxFIiwiZGlzcGxheSIsIkNPTlRFTlRTX1NUWUxFIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImNoaWxkcmVuIiwib25GaW5pc2hGYWlsZWQiLCJfc3VibWl0dGVyIiwic3VibWl0dGVyIiwiZm9ybVByb3BzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0Q29sbGFwc2VkIiwiaGFuZGxlQ29sbGFwc2UiLCJ1c2VNZW1vaXplZEZuIiwibmV4dCIsImhhbmRsZUZpbmlzaEZhaWxlZCIsImVycm9ySW5mbyIsIm92ZXJmbG93SGFzRXJyb3IiLCJSZWFjdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInNsaWNlIiwic29tZSIsImNoaWxkIiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZE5hbWUiLCJuYW1lIiwidW5kZWZpbmVkIiwiZXJyb3JzIiwiY2hpbGRBcnJheSIsInVzZU1lbW8iLCJhcnIiLCJmb3JFYWNoIiwicHVzaCIsImhhc01vcmUiLCJzZWFyY2hUZXh0IiwiREVGQVVMVF9URVhUIiwic2VhcmNoIiwicmVzZXRUZXh0IiwicmVzZXQiLCJidXR0b25TaXplIiwic2l6ZSIsImxhYmVsU3R5bGUiLCJ3aWR0aCIsIl9qc3giLCJQcm9Gb3JtIiwiYXNzaWduIiwiZm9ybUNvbXBvbmVudFR5cGUiLCJfanN4cyIsImNsYXNzTmFtZSIsIm1hcCIsImluZGV4IiwiaGlkZGVuQnlDb2xsYXBzZSIsIkZyYWdtZW50Iiwic3R5bGUiLCJCdXR0b24iLCJ0eXBlIiwiY29sb3IiLCJ2YXJpYW50Iiwib25DbGljayIsImV4cGFuZCIsImNvbGxhcHNlIiwiZGlzcGxheU5hbWUiLCJRdWVyeUZpbHRlciIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FB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eEIsdUJBQVksQ0FBQ3lCO1FBQVEsQ0FBQSxDQUUzRDtNQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQUEsQ0FDRTtBQUVkLENBQUM7QUFFRDVFLGVBQWUsQ0FBQzZFLFdBQVcsR0FBRyxhQUFhO0FBRTNDO0FBQ08sSUFBTUMsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDaEYsZUFBZSxDQUVLO0FBQUMsSUFBQWlGLFFBQUEsR0FBQUYsT0FBQSxjQUV0Q0QsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbmNvbnN0IEhJRERFTl9TVFlMRSA9IHsgZGlzcGxheTogJ25vbmUnIH07XG4vLyBLZWVwcyB0aGUgd3JhcHBlciBsYXlvdXQtbmV1dHJhbDogdGhlIGZpZWxkIHN0YXlzIGEgZGlyZWN0IGZsZXggaXRlbS5cbmNvbnN0IENPTlRFTlRTX1NUWUxFID0geyBkaXNwbGF5OiAnY29udGVudHMnIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyIOKAlCBhIGNvbXBhY3QgZmlsdGVyIGJhciBvbiB0b3Agb2YgUHJvRm9ybS5cbi8vXG4vLyBVUkwgc3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgYnkgUHJvRm9ybSBpdHNlbGYgKGBzeW5jVG9VcmxgKTsgUXVlcnlGaWx0ZXJcbi8vIG9ubHkgZmxpcHMgdGhlIGRlZmF1bHQgb2YgYHN5bmNUb1VybEFzSW1wb3J0YW50YCB0byB0cnVlOiBhIGZpbHRlcidzIHJlYXNvblxuLy8gdG8gc3luYyBpcyByZXN0b3Jpbmcgc3RhdGUgZnJvbSB0aGUgVVJMIG9uIHJlZnJlc2gsIHNvIFVSTCBwYXJhbXMgd2luIG92ZXJcbi8vIGBpbml0aWFsVmFsdWVzYCBoZXJlIChwbGFpbiBQcm9Gb3JtIGtlZXBzIHRoZSBvcHBvc2l0ZSBkZWZhdWx0KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUXVlcnlGaWx0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IGRlZmF1bHRDb2xsYXBzZWQgPSB0cnVlLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIG9uQ29sbGFwc2UsIGRlZmF1bHRDb2xzTnVtYmVyID0gMywgbGFiZWxXaWR0aCwgc3BsaXQgPSBmYWxzZSwgc2VhcmNoQ29uZmlnLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IHRydWUsIGNoaWxkcmVuLCBvbkZpbmlzaEZhaWxlZCwgXG4gICAgLy8gUXVlcnlGaWx0ZXIgYWx3YXlzIHJlbmRlcnMgaXRzIG93biBTZWFyY2gvUmVzZXQvRXhwYW5kIGJ1dHRvbnMuXG4gICAgc3VibWl0dGVyOiBfc3VibWl0dGVyIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2VkXCIsIFwib25Db2xsYXBzZVwiLCBcImRlZmF1bHRDb2xzTnVtYmVyXCIsIFwibGFiZWxXaWR0aFwiLCBcInNwbGl0XCIsIFwic2VhcmNoQ29uZmlnXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJjaGlsZHJlblwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwic3VibWl0dGVyXCJdKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSAhY29sbGFwc2VkO1xuICAgICAgICBzZXRDb2xsYXBzZWQobmV4dCk7XG4gICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShuZXh0KTtcbiAgICB9KTtcbiAgICAvLyBBIGNvbGxhcHNlZCAoZGlzcGxheTpub25lKSBmaWVsZCBmYWlsaW5nIHZhbGlkYXRpb24gd291bGQgYmxvY2sgU2VhcmNoXG4gICAgLy8gd2l0aCBhbiBJTlZJU0lCTEUgZXJyb3Ig4oCUIGF1dG8tZXhwYW5kIHNvIHRoZSB1c2VyIGNhbiBzZWUgYW5kIGZpeCBpdC5cbiAgICBjb25zdCBoYW5kbGVGaW5pc2hGYWlsZWQgPSB1c2VNZW1vaXplZEZuKChlcnJvckluZm8pID0+IHtcbiAgICAgICAgaWYgKGNvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3dIYXNFcnJvciA9IFJlYWN0LkNoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgLnNsaWNlKGRlZmF1bHRDb2xzTnVtYmVyKVxuICAgICAgICAgICAgICAgIC5zb21lKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGROYW1lID0gY2hpbGQucHJvcHMubmFtZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGROYW1lICE9PSB1bmRlZmluZWQgJiYgZXJyb3JJbmZvLmVycm9yc1tjaGlsZE5hbWVdICE9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChvdmVyZmxvd0hhc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgc2V0Q29sbGFwc2VkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZChlcnJvckluZm8pO1xuICAgIH0pO1xuICAgIC8vIENvdW50IGNoaWxkcmVuIGFuZCBzcGxpdCB2aXNpYmxlL2hpZGRlblxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gW107XG4gICAgICAgIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgICAgICAgIGFyci5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhcnI7XG4gICAgfSwgW2NoaWxkcmVuXSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBzeW5jVG9VcmxBc0ltcG9ydGFudDogc3luY1RvVXJsQXNJbXBvcnRhbnQsIGZvcm1Db21wb25lbnRUeXBlOiBcIlF1ZXJ5RmlsdGVyXCIsIG9uRmluaXNoRmFpbGVkOiBoYW5kbGVGaW5pc2hGYWlsZWQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2NoaWxkQXJyYXkubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuQnlDb2xsYXBzZSA9IGNvbGxhcHNlZCAmJiBpbmRleCA+PSBkZWZhdWx0Q29sc051bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhSZWFjdC5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3NwbGl0ICYmIGluZGV4ID4gMCAmJiAhaGlkZGVuQnlDb2xsYXBzZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGxpdCcpIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGhpZGRlbkJ5Q29sbGFwc2UgPyBISURERU5fU1RZTEUgOiAobGFiZWxTdHlsZSAhPT0gbnVsbCAmJiBsYWJlbFN0eWxlICE9PSB2b2lkIDAgPyBsYWJlbFN0eWxlIDogQ09OVEVOVFNfU1RZTEUpLCBjaGlsZHJlbjogY2hpbGQgfSldIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJyZXNldFwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgaGFzTW9yZSAmJiAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgdmFyaWFudDogXCJ0ZXh0XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZUNvbGxhcHNlLCBjaGlsZHJlbjogY29sbGFwc2VkID8gREVGQVVMVF9URVhULmV4cGFuZCA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZSB9KSldIH0pXSB9KSB9KSkpO1xufTtcblF1ZXJ5RmlsdGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdRdWVyeUZpbHRlcic7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8UXVlcnlGaWx0ZXI8TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
156
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL1F1ZXJ5RmlsdGVyLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9jbGFzc25hbWVzIiwiX0J1dHRvbiIsIl9Qcm9Gb3JtIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJDU1NfUFJFRklYIiwiSElEREVOX1NUWUxFIiwiZGlzcGxheSIsIkNPTlRFTlRTX1NUWUxFIiwiUXVlcnlGaWx0ZXJCYXNlIiwicHJvcHMiLCJfYSIsIl9iIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJvbkNvbGxhcHNlIiwiX3Byb3BzJGRlZmF1bHRDb2xzTnVtIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwiX3Byb3BzJHNwbGl0Iiwic3BsaXQiLCJzZWFyY2hDb25maWciLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImNoaWxkcmVuIiwib25GaW5pc2hGYWlsZWQiLCJfc3VibWl0dGVyIiwic3VibWl0dGVyIiwiZm9ybVByb3BzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0Q29sbGFwc2VkIiwiaGFuZGxlQ29sbGFwc2UiLCJ1c2VNZW1vaXplZEZuIiwibmV4dCIsImNoaWxkQXJyYXkiLCJ1c2VNZW1vIiwiYXJyIiwiUmVhY3QiLCJDaGlsZHJlbiIsImZvckVhY2giLCJjaGlsZCIsImlzVmFsaWRFbGVtZW50IiwicHVzaCIsImhhbmRsZUZpbmlzaEZhaWxlZCIsImVycm9ySW5mbyIsInZpc2libGVOYW1lcyIsIlNldCIsInNsaWNlIiwibWFwIiwibmFtZSIsInVuZGVmaW5lZCIsImZpbHRlciIsImhhc0hpZGRlbkVycm9yIiwia2V5cyIsImVycm9ycyIsInNvbWUiLCJlcnJvck5hbWUiLCJoYXNNb3JlIiwic2VhcmNoVGV4dCIsIkRFRkFVTFRfVEVYVCIsInNlYXJjaCIsInJlc2V0VGV4dCIsInJlc2V0IiwiYnV0dG9uU2l6ZSIsInNpemUiLCJsYWJlbFN0eWxlIiwid2lkdGgiLCJfanN4IiwiUHJvRm9ybSIsImFzc2lnbiIsImZvcm1Db21wb25lbnRUeXBlIiwiX2pzeHMiLCJjbGFzc05hbWUiLCJpbmRleCIsImhpZGRlbkJ5Q29sbGFwc2UiLCJGcmFnbWVudCIsInN0eWxlIiwiQnV0dG9uIiwidHlwZSIsImNvbG9yIiwidmFyaWFudCIsIm9uQ2xpY2siLCJleHBhbmQiLCJjb2xsYXBzZSIsImRpc3BsYXlOYW1lIiwiUXVlcnlGaWx0ZXIiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQXdELFNBQUFVLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBRFB4RCxJQUFJVyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFcEIsQ0FBQyxFQUFFO0VBQ2xELElBQUlHLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlrQixDQUFDLElBQUlELENBQUMsRUFBRSxJQUFJVCxNQUFNLENBQUNXLFNBQVMsQ0FBQ1AsY0FBYyxDQUFDQyxJQUFJLENBQUNJLENBQUMsRUFBRUMsQ0FBQyxDQUFDLElBQUlyQixDQUFDLENBQUN1QixPQUFPLENBQUNGLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VsQixDQUFDLENBQUNrQixDQUFDLENBQUMsR0FBR0QsQ0FBQyxDQUFDQyxDQUFDLENBQUM7RUFDZixJQUFJRCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9ULE1BQU0sQ0FBQ2EscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlQLENBQUMsR0FBRyxDQUFDLEVBQUVJLENBQUMsR0FBR1YsTUFBTSxDQUFDYSxxQkFBcUIsQ0FBQ0osQ0FBQyxDQUFDLEVBQUVILENBQUMsR0FBR0ksQ0FBQyxDQUFDSSxNQUFNLEVBQUVSLENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlqQixDQUFDLENBQUN1QixPQUFPLENBQUNGLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ1csU0FBUyxDQUFDSSxvQkFBb0IsQ0FBQ1YsSUFBSSxDQUFDSSxDQUFDLEVBQUVDLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsRUFDMUVkLENBQUMsQ0FBQ2tCLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBR0csQ0FBQyxDQUFDQyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT2QsQ0FBQztBQUNaLENBQUM7QUNDRCxJQUFNd0IsT0FBTyxHQUFHLElBQUFDLHNCQUFVLEtBQUFDLE1BQUEsQ0FBSUMscUJBQVUsa0JBQWUsQ0FBQztBQUV4RCxJQUFNQyxZQUFZLEdBQXdCO0VBQUVDLE9BQU8sRUFBRTtBQUFNLENBQUU7QUFDN0Q7QUFDQSxJQUFNQyxjQUFjLEdBQXdCO0VBQUVELE9BQU8sRUFBRTtBQUFVLENBQUU7QUFFbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1FLGVBQWUsR0FBeUIsU0FBeENBLGVBQWVBLENBQTBCQyxLQUFLLEVBQUk7RURRcEQsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDUFosSUFBQUMscUJBQUEsR0FjSUgsS0FBSyxDQWJQSSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDWkUsbUJBQW1CLEdBWTVCTCxLQUFLLENBWlBNLFNBQVM7SUFDVEMsVUFBVSxHQVdSUCxLQUFLLENBWFBPLFVBQVU7SUFBQUMscUJBQUEsR0FXUlIsS0FBSyxDQVZQUyxpQkFBaUI7SUFBakJBLGlCQUFpQixHQUFBRCxxQkFBQSxjQUFHLENBQUMsR0FBQUEscUJBQUE7SUFDckJFLFVBQVUsR0FTUlYsS0FBSyxDQVRQVSxVQUFVO0lBQUFDLFlBQUEsR0FTUlgsS0FBSyxDQVJQWSxLQUFLO0lBQUxBLEtBQUssR0FBQUQsWUFBQSxjQUFHLEtBQUssR0FBQUEsWUFBQTtJQUNiRSxZQUFZLEdBT1ZiLEtBQUssQ0FQUGEsWUFBWTtJQUFBQyxxQkFBQSxHQU9WZCxLQUFLLENBTlBlLG9CQUFvQjtJQUFwQkEsb0JBQW9CLEdBQUFELHFCQUFBLGNBQUcsSUFBSSxHQUFBQSxxQkFBQTtJQUMzQkUsUUFBUSxHQUtOaEIsS0FBSyxDQUxQZ0IsUUFBUTtJQUNSQyxjQUFjLEdBSVpqQixLQUFLLENBSlBpQixjQUFjO0lBRUhDLFVBQVUsR0FFbkJsQixLQUFLLENBRlBtQixTQUFTO0lBQ05DLFNBQVMsR0FBQXBDLE1BQUEsQ0FDVmdCLEtBQUssRUFkSCxDQUFBLGtCQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxtQkFBQSxFQUFBLFlBQUEsRUFBQSxPQUFBLEVBQUEsY0FBQSxFQUFBLHNCQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLEVBQUEsV0FBQSxDQWNMLENBQVE7RUFFVCxJQUFBcUIsbUJBQUEsR0FBa0MsSUFBQUMsK0JBQWtCLEVBQ2xEbEIsZ0JBQWdCLEVBQ2hCQyxtQkFBbUIsQ0FDcEI7SUFBQWtCLG9CQUFBLE9BQUFDLGVBQUEsYUFBQUgsbUJBQUE7SUFITWYsU0FBUyxHQUFBaUIsb0JBQUE7SUFBRUUsWUFBWSxHQUFBRixvQkFBQTtFQUs5QixJQUFNRyxjQUFjLEdBQUcsSUFBQUMseUJBQWEsRUFBQyxZQUFLO0lBQ3hDLElBQU1DLElBQUksR0FBRyxDQUFDdEIsU0FBUztJQUN2Qm1CLFlBQVksQ0FBQ0csSUFBSSxDQUFDO0lBQ2xCckIsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUdxQixJQUFJLENBQUM7RUFDcEIsQ0FBQyxDQUFDO0VBRUY7RUFDQSxJQUFNQyxVQUFVLEdBQUcsSUFBQUMsY0FBTyxFQUFDLFlBQUs7SUFDOUIsSUFBTUMsR0FBRyxHQUFnQixFQUFFO0lBQzNCQyxpQkFBSyxDQUFDQyxRQUFRLENBQUNDLE9BQU8sQ0FBQ2xCLFFBQVEsRUFBRSxVQUFDbUIsS0FBSyxFQUFJO01BQ3pDLGlCQUFJSCxpQkFBSyxDQUFDSSxjQUFjLENBQUNELEtBQUssQ0FBQyxFQUFFO1FBQy9CSixHQUFHLENBQUNNLElBQUksQ0FBQ0YsS0FBSyxDQUFDO01BQ2pCO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBT0osR0FBRztFQUNaLENBQUMsRUFBRSxDQUFDZixRQUFRLENBQUMsQ0FBQztFQUVkO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTXNCLGtCQUFrQixHQUFHLElBQUFYLHlCQUFhLEVBQ3RDLFVBQUNZLFNBQTZFLEVBQUk7SUFDaEYsSUFBSWpDLFNBQVMsRUFBRTtNQUNiLElBQU1rQyxZQUFZLEdBQUcsSUFBSUMsR0FBRyxDQUMxQlosVUFBVSxDQUNQYSxLQUFLLENBQUMsQ0FBQyxFQUFFakMsaUJBQWlCLENBQUMsQ0FDM0JrQyxHQUFHLENBQUMsVUFBQ1IsS0FBSztRQUFBLE9BQ1QsYUFBQUgsaUJBQUssQ0FBQ0ksY0FBYyxDQUFDRCxLQUFLLENBQUMsR0FDdEJBLEtBQUssQ0FBQ25DLEtBQTJCLENBQUM0QyxJQUFJLEdBQ3ZDQyxTQUFTO01BQUEsRUFDZCxDQUNBQyxNQUFNLENBQUMsVUFBQ0YsSUFBSTtRQUFBLE9BQXFCQSxJQUFJLEtBQUtDLFNBQVM7TUFBQSxFQUFDLENBQ3hEO01BQ0QsSUFBTUUsY0FBYyxHQUFHdkUsTUFBTSxDQUFDd0UsSUFBSSxDQUFDVCxTQUFTLENBQUNVLE1BQU0sQ0FBQyxDQUFDQyxJQUFJLENBQ3ZELFVBQUNDLFNBQVM7UUFBQSxPQUFLLENBQUNYLFlBQVksQ0FBQ3JFLEdBQUcsQ0FBQ2dGLFNBQVMsQ0FBQztNQUFBLEVBQzVDO01BQ0QsSUFBSUosY0FBYyxFQUFFO1FBQ2xCdEIsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNuQmxCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFHLEtBQUssQ0FBQztNQUNyQjtJQUNGO0lBQ0FVLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxDQUFHc0IsU0FBUyxDQUFDO0VBQzdCLENBQUMsQ0FDRjtFQUVELElBQU1hLE9BQU8sR0FBR3ZCLFVBQVUsQ0FBQ3ZDLE1BQU0sR0FBR21CLGlCQUFpQjtFQUVyRCxJQUFNNEMsVUFBVSxHQUFHLENBQUFwRCxFQUFBLEdBQUFZLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFd0MsVUFBVSxNQUFBLElBQUEsSUFBQXBELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJcUQsdUJBQVksQ0FBQ0MsTUFBTTtFQUNsRSxJQUFNQyxTQUFTLEdBQUcsQ0FBQXRELEVBQUEsR0FBQVcsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUUyQyxTQUFTLE1BQUEsSUFBQSxJQUFBdEQsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlvRCx1QkFBWSxDQUFDRyxLQUFLO0VBQy9ELElBQU1DLFVBQVUsR0FBRzdDLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFFOEMsSUFBSTtFQUVyQyxJQUFNQyxVQUFVLEdBQUdsRCxVQUFVLEtBQUttQyxTQUFTLElBQUluQyxVQUFVLEtBQUssTUFBTSxHQUNoRTtJQUFFbUQsS0FBSyxFQUFFbkQ7RUFBVSxDQUF5QixHQUM1Q21DLFNBQVM7RUFFYixPQUNFLElBQUFpQixlQUFBLEVBQUNDLGdCQUFPLEVBQUF2RixNQUFBLENBQUF3RixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0Y1QyxTQUFTLEVBQUE7SUFDYkwsb0JBQW9CLEVBQUVBLG9CQUFvQjtJQUMxQ2tELGlCQUFpQixFQUFDLGFBQWE7SUFDL0JoRCxjQUFjLEVBQUVxQixrQkFBa0I7SUFDbENuQixTQUFTLEVBQUUsS0FBSztJQUFBSCxRQUFBLEVBRWhCLElBQUFrRCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtNQUFLQyxTQUFTLEVBQUUzRSxPQUFPLENBQUEsQ0FBRTtNQUFBd0IsUUFBQSxFQUFBLENBTXRCYSxVQUFVLENBQUNjLEdBQUcsQ0FBQyxVQUFDUixLQUFLLEVBQUVpQyxLQUFLLEVBQUk7UUFDL0IsSUFBTUMsZ0JBQWdCLEdBQUcvRCxTQUFTLElBQUk4RCxLQUFLLElBQUkzRCxpQkFBaUI7UUFDaEUsT0FDRSxJQUFBeUQsZ0JBQUEsRUFBQ2xDLGlCQUFLLENBQUNzQyxRQUFRLEVBQUE7VUFBQXRELFFBQUEsRUFBQSxDQUNaSixLQUFLLElBQUl3RCxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUNDLGdCQUFnQixJQUFJLElBQUFQLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS0ssU0FBUyxFQUFFM0UsT0FBTyxDQUFDLE9BQU87VUFBQyxDQUFBLENBQUksRUFDaEYsSUFBQXNFLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS1MsS0FBSyxFQUFFRixnQkFBZ0IsR0FBR3pFLFlBQVksR0FBSWdFLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxHQUFJOUQsY0FBZTtZQUFBa0IsUUFBQSxFQUN6RW1CO1VBQUssQ0FBQSxDQUNGO1FBQUEsQ0FBQSxFQUphaUMsS0FBSyxDQUtUO01BRXJCLENBQUMsQ0FBQyxFQUVGLElBQUFGLGdCQUFBLEVBQUEsS0FBQSxFQUFBO1FBQUtDLFNBQVMsRUFBRTNFLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFBQXdCLFFBQUEsRUFBQSxDQUNoQyxJQUFBOEMsZUFBQSxFQUFDVSxjQUFNLEVBQUE7VUFBQ0MsSUFBSSxFQUFDLFFBQVE7VUFBQ0MsS0FBSyxFQUFDLFNBQVM7VUFBQ2YsSUFBSSxFQUFFRCxVQUFVO1VBQUExQyxRQUFBLEVBQ25EcUM7UUFBVSxDQUFBLENBQ0osRUFHVCxJQUFBUyxlQUFBLEVBQUNVLGNBQU0sRUFBQTtVQUFDQyxJQUFJLEVBQUMsT0FBTztVQUFDQyxLQUFLLEVBQUMsV0FBVztVQUFDZixJQUFJLEVBQUVELFVBQVU7VUFBQTFDLFFBQUEsRUFDcER3QztRQUFTLENBQUEsQ0FDSCxFQUNSSixPQUFPLElBQ04sSUFBQVUsZUFBQSxFQUFDVSxjQUFNLEVBQUE7VUFBQ0MsSUFBSSxFQUFDLFFBQVE7VUFBQ0UsT0FBTyxFQUFDLE1BQU07VUFBQ2hCLElBQUksRUFBRUQsVUFBVTtVQUFFa0IsT0FBTyxFQUFFbEQsY0FBYztVQUFBVixRQUFBLEVBQzNFVixTQUFTLEdBQUdnRCx1QkFBWSxDQUFDdUIsTUFBTSxHQUFHdkIsdUJBQVksQ0FBQ3dCO1FBQVEsQ0FBQSxDQUUzRDtNQUFBLENBQUEsQ0FDRztJQUFBLENBQUE7RUFDRixDQUFBLENBQUEsQ0FDRTtBQUVkLENBQUM7QUFFRC9FLGVBQWUsQ0FBQ2dGLFdBQVcsR0FBRyxhQUFhO0FBRTNDO0FBQ08sSUFBTUMsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDbkYsZUFBZSxDQUtLO0FBQUMsSUFBQW9GLFFBQUEsR0FBQUYsT0FBQSxjQUV0Q0QsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy9RdWVyeUZpbHRlci5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi8uLi9CdXR0b24nO1xuaW1wb3J0IHsgUHJvRm9ybSB9IGZyb20gJy4uL1Byb0Zvcm0nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1xdWVyeS1maWx0ZXJgKTtcbmNvbnN0IEhJRERFTl9TVFlMRSA9IHsgZGlzcGxheTogJ25vbmUnIH07XG4vLyBLZWVwcyB0aGUgd3JhcHBlciBsYXlvdXQtbmV1dHJhbDogdGhlIGZpZWxkIHN0YXlzIGEgZGlyZWN0IGZsZXggaXRlbS5cbmNvbnN0IENPTlRFTlRTX1NUWUxFID0geyBkaXNwbGF5OiAnY29udGVudHMnIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJ5RmlsdGVyIOKAlCBhIGNvbXBhY3QgZmlsdGVyIGJhciBvbiB0b3Agb2YgUHJvRm9ybS5cbi8vXG4vLyBVUkwgc3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgYnkgUHJvRm9ybSBpdHNlbGYgKGBzeW5jVG9VcmxgKTsgUXVlcnlGaWx0ZXJcbi8vIG9ubHkgZmxpcHMgdGhlIGRlZmF1bHQgb2YgYHN5bmNUb1VybEFzSW1wb3J0YW50YCB0byB0cnVlOiBhIGZpbHRlcidzIHJlYXNvblxuLy8gdG8gc3luYyBpcyByZXN0b3Jpbmcgc3RhdGUgZnJvbSB0aGUgVVJMIG9uIHJlZnJlc2gsIHNvIFVSTCBwYXJhbXMgd2luIG92ZXJcbi8vIGBpbml0aWFsVmFsdWVzYCBoZXJlIChwbGFpbiBQcm9Gb3JtIGtlZXBzIHRoZSBvcHBvc2l0ZSBkZWZhdWx0KS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuY29uc3QgUXVlcnlGaWx0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IGRlZmF1bHRDb2xsYXBzZWQgPSB0cnVlLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIG9uQ29sbGFwc2UsIGRlZmF1bHRDb2xzTnVtYmVyID0gMywgbGFiZWxXaWR0aCwgc3BsaXQgPSBmYWxzZSwgc2VhcmNoQ29uZmlnLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IHRydWUsIGNoaWxkcmVuLCBvbkZpbmlzaEZhaWxlZCwgXG4gICAgLy8gUXVlcnlGaWx0ZXIgYWx3YXlzIHJlbmRlcnMgaXRzIG93biBTZWFyY2gvUmVzZXQvRXhwYW5kIGJ1dHRvbnMuXG4gICAgc3VibWl0dGVyOiBfc3VibWl0dGVyIH0gPSBwcm9wcywgZm9ybVByb3BzID0gX19yZXN0KHByb3BzLCBbXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2VkXCIsIFwib25Db2xsYXBzZVwiLCBcImRlZmF1bHRDb2xzTnVtYmVyXCIsIFwibGFiZWxXaWR0aFwiLCBcInNwbGl0XCIsIFwic2VhcmNoQ29uZmlnXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJjaGlsZHJlblwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwic3VibWl0dGVyXCJdKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHQgPSAhY29sbGFwc2VkO1xuICAgICAgICBzZXRDb2xsYXBzZWQobmV4dCk7XG4gICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShuZXh0KTtcbiAgICB9KTtcbiAgICAvLyBDb3VudCBjaGlsZHJlbiBhbmQgc3BsaXQgdmlzaWJsZS9oaWRkZW5cbiAgICBjb25zdCBjaGlsZEFycmF5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFyciA9IFtdO1xuICAgICAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICBhcnIucHVzaChjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYXJyO1xuICAgIH0sIFtjaGlsZHJlbl0pO1xuICAgIC8vIEEgY29sbGFwc2VkIChkaXNwbGF5Om5vbmUpIGZpZWxkIGZhaWxpbmcgdmFsaWRhdGlvbiB3b3VsZCBibG9jayBTZWFyY2hcbiAgICAvLyB3aXRoIGFuIElOVklTSUJMRSBlcnJvciDigJQgYXV0by1leHBhbmQgc28gdGhlIHVzZXIgY2FuIHNlZSBhbmQgZml4IGl0LlxuICAgIC8vIERldGVjdGlvbiBpcyBpbnZlcnRlZCBvbiBwdXJwb3NlOiBhbiBlcnJvciB3aG9zZSBuYW1lIGlzIE5PVCBhbW9uZyB0aGVcbiAgICAvLyBWSVNJQkxFIGNoaWxkcmVuJ3MgYG5hbWVgIHByb3BzIG1heSBiZWxvbmcgdG8gYSB3cmFwcGVkL292ZXJmbG93IGZpZWxkXG4gICAgLy8gKGUuZy4gaW5zaWRlIGEgRGVwZW5kZW5jeSksIHNvIGV4cGFuZC4gV29yc3QgY2FzZSB0aGUgYmFyIGV4cGFuZHMgd2hpbGVcbiAgICAvLyB0aGUgZXJyb3Igd2FzIHZpc2libGUg4oCUIGhhcm1sZXNzOyB0aGUgb3Bwb3NpdGUgKGFuIGludmlzaWJsZSBlcnJvcilcbiAgICAvLyBibG9ja3MgdGhlIHVzZXIuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoRmFpbGVkID0gdXNlTWVtb2l6ZWRGbigoZXJyb3JJbmZvKSA9PiB7XG4gICAgICAgIGlmIChjb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGVOYW1lcyA9IG5ldyBTZXQoY2hpbGRBcnJheVxuICAgICAgICAgICAgICAgIC5zbGljZSgwLCBkZWZhdWx0Q29sc051bWJlcilcbiAgICAgICAgICAgICAgICAubWFwKChjaGlsZCkgPT4gUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpXG4gICAgICAgICAgICAgICAgPyBjaGlsZC5wcm9wcy5uYW1lXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigobmFtZSkgPT4gbmFtZSAhPT0gdW5kZWZpbmVkKSk7XG4gICAgICAgICAgICBjb25zdCBoYXNIaWRkZW5FcnJvciA9IE9iamVjdC5rZXlzKGVycm9ySW5mby5lcnJvcnMpLnNvbWUoKGVycm9yTmFtZSkgPT4gIXZpc2libGVOYW1lcy5oYXMoZXJyb3JOYW1lKSk7XG4gICAgICAgICAgICBpZiAoaGFzSGlkZGVuRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBzZXRDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uQ29sbGFwc2UgPT09IG51bGwgfHwgb25Db2xsYXBzZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db2xsYXBzZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKGVycm9ySW5mbyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFzTW9yZSA9IGNoaWxkQXJyYXkubGVuZ3RoID4gZGVmYXVsdENvbHNOdW1iZXI7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChfYSA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoO1xuICAgIGNvbnN0IHJlc2V0VGV4dCA9IChfYiA9IHNlYXJjaENvbmZpZyA9PT0gbnVsbCB8fCBzZWFyY2hDb25maWcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENvbmZpZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldDtcbiAgICBjb25zdCBidXR0b25TaXplID0gc2VhcmNoQ29uZmlnID09PSBudWxsIHx8IHNlYXJjaENvbmZpZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ29uZmlnLnNpemU7XG4gICAgY29uc3QgbGFiZWxTdHlsZSA9IGxhYmVsV2lkdGggIT09IHVuZGVmaW5lZCAmJiBsYWJlbFdpZHRoICE9PSAnYXV0bydcbiAgICAgICAgPyB7IHdpZHRoOiBsYWJlbFdpZHRoIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm0sIE9iamVjdC5hc3NpZ24oe30sIGZvcm1Qcm9wcywgeyBzeW5jVG9VcmxBc0ltcG9ydGFudDogc3luY1RvVXJsQXNJbXBvcnRhbnQsIGZvcm1Db21wb25lbnRUeXBlOiBcIlF1ZXJ5RmlsdGVyXCIsIG9uRmluaXNoRmFpbGVkOiBoYW5kbGVGaW5pc2hGYWlsZWQsIHN1Ym1pdHRlcjogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBjaGlsZHJlbjogW2NoaWxkQXJyYXkubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuQnlDb2xsYXBzZSA9IGNvbGxhcHNlZCAmJiBpbmRleCA+PSBkZWZhdWx0Q29sc051bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhSZWFjdC5GcmFnbWVudCwgeyBjaGlsZHJlbjogW3NwbGl0ICYmIGluZGV4ID4gMCAmJiAhaGlkZGVuQnlDb2xsYXBzZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzcGxpdCcpIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGhpZGRlbkJ5Q29sbGFwc2UgPyBISURERU5fU1RZTEUgOiAobGFiZWxTdHlsZSAhPT0gbnVsbCAmJiBsYWJlbFN0eWxlICE9PSB2b2lkIDAgPyBsYWJlbFN0eWxlIDogQ09OVEVOVFNfU1RZTEUpLCBjaGlsZHJlbjogY2hpbGQgfSldIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb25zJyksIGNoaWxkcmVuOiBbX2pzeChCdXR0b24sIHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBzaXplOiBidXR0b25TaXplLCBjaGlsZHJlbjogc2VhcmNoVGV4dCB9KSwgX2pzeChCdXR0b24sIHsgdHlwZTogXCJyZXNldFwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiwgc2l6ZTogYnV0dG9uU2l6ZSwgY2hpbGRyZW46IHJlc2V0VGV4dCB9KSwgaGFzTW9yZSAmJiAoX2pzeChCdXR0b24sIHsgdHlwZTogXCJidXR0b25cIiwgdmFyaWFudDogXCJ0ZXh0XCIsIHNpemU6IGJ1dHRvblNpemUsIG9uQ2xpY2s6IGhhbmRsZUNvbGxhcHNlLCBjaGlsZHJlbjogY29sbGFwc2VkID8gREVGQVVMVF9URVhULmV4cGFuZCA6IERFRkFVTFRfVEVYVC5jb2xsYXBzZSB9KSldIH0pXSB9KSB9KSkpO1xufTtcblF1ZXJ5RmlsdGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdRdWVyeUZpbHRlcic7XG4vKiogR2VuZXJpYy1hd2FyZSBleHBvcnQg4oCUIGtlZXBzIGA8UXVlcnlGaWx0ZXI8TXlWYWx1ZXM+IOKApj5gIGZ1bGx5IHR5cGVkLiAqL1xuZXhwb3J0IGNvbnN0IFF1ZXJ5RmlsdGVyID0gbWVtbyhRdWVyeUZpbHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUXVlcnlGaWx0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -9,9 +9,9 @@ interface UseOverlayFormOptions {
|
|
|
9
9
|
interface UseOverlayFormReturn {
|
|
10
10
|
mergedOpen: boolean;
|
|
11
11
|
triggerNode: ReactElement | null;
|
|
12
|
-
handleFinish: (values: Record<string,
|
|
12
|
+
handleFinish: (values: Record<string, any>) => Promise<void | boolean>;
|
|
13
13
|
handleHide: () => void;
|
|
14
14
|
handleShow: () => void;
|
|
15
15
|
}
|
|
16
|
-
export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string,
|
|
16
|
+
export declare function useOverlayForm(options: UseOverlayFormOptions, onFinish?: (values: Record<string, any>) => void | boolean | Promise<void | boolean>): UseOverlayFormReturn;
|
|
17
17
|
export default useOverlayForm;
|
|
@@ -136,4 +136,4 @@ function useOverlayForm(options, onFinish) {
|
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
var _default = exports["default"] = useOverlayForm;
|
|
139
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1lcmdlZE9wZW4iLCJzZXRNZXJnZWRPcGVuIiwic2Vzc2lvblJlZiIsInVzZVJlZiIsInNldE9wZW4iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dE9wZW4iLCJjdXJyZW50IiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzZXNzaW9uIiwic2NoZWR1bGVDbG9zZSIsInJ1biIsImNhbmNlbFNjaGVkdWxlZENsb3NlIiwiY2FuY2VsIiwidXNlRWZmZWN0IiwiaGFuZGxlU2hvdyIsImhhbmRsZUhpZGUiLCJoYW5kbGVGaW5pc2giLCJ2YWx1ZXMiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzZW50IiwiYWJydXB0Iiwic3RvcCIsInRyaWdnZXJOb2RlIiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiX2EiLCJvcmlnaW5hbE9uQ2xpY2siLCJwcm9wcyIsImFyZ3VtZW50cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBOEQsU0FBQUsseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FB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LFFBQUEsQ0FBQUcsTUFBQSxXQUNNOUMsTUFBTTtVQUFBO1VBQUE7WUFBQSxPQUFBMkMsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBTixPQUFBO0lBQUEsQ0FDZCxFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTU8sV0FBVyxHQUFHckMsT0FBTyxnQkFDdkJzQyxpQkFBSyxDQUFDQyxZQUFZLENBQUN2QyxPQUFzRCxFQUFFO0lBQ3pFd0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBeUI7TUM1QnhCLElBQUlDLEVBQUU7TUQ2QlpqQixVQUFVLENBQUEsQ0FBRTtNQUNaLElBQU1rQixlQUFlLEdBQUcsQ0FBQUQsRUFBQSxHQUFDekMsT0FBTyxDQUFDMkMsS0FBaUMsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRCxPQUFPO01BQzNFLElBQUksT0FBT0UsZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN4Q0EsZUFBNkMsQ0FBQWxELEtBQUEsU0FBQW9ELFNBQVEsQ0FBQztNQUN6RDtJQUNGO0VDM0JBLENENEJELENBQUMsR0FDRixJQUFJO0VBRVIsT0FBTztJQUNMcEMsVUFBVSxFQUFWQSxVQUFVO0lBQ1Y2QixXQUFXLEVBQVhBLFdBQVc7SUFDWFgsWUFBWSxFQUFaQSxZQUFZO0lBQ1pELFVBQVUsRUFBVkEsVUFBVTtJQUNWRCxVQUFVLEVBQVZBO0VDNUJBLENENkJEO0FBQ0g7QUFBQyxJQUFBcUIsUUFBQSxHQUFBQyxPQUFBLGNBRWNyRCxjQUFjIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgLy8gU2Vzc2lvbiBnZW5lcmF0aW9uIOKAlCBldmVyeSBvcGVuLXN0YXRlIGNoYW5nZSBzdGFydHMgYSBuZXcgc2Vzc2lvbiwgc28gYVxuICAgIC8vIFNUQUxFIGluLWZsaWdodCBzdWJtaXQgKHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBzZXNzaW9uKSBjYW4ndCBhdXRvLWNsb3NlXG4gICAgLy8gdGhlIG92ZXJsYXkgdGhlIHVzZXIgaGFzIHNpbmNlIGNsb3NlZCBhbmQgcmVvcGVuZWQuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2Vzc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBUaGUgZmlyZS10aW1lIHNlc3Npb24gY2hlY2sgbWFrZXMgYVxuICAgIC8vIFNUQUxFIHRpbWVyIChzY2hlZHVsZWQgaW4gYSBwcmV2aW91cyBvcGVuL2Nsb3NlIHNlc3Npb24pIGEgbm8tb3A7XG4gICAgLy8gYGNhbmNlbGAgY2xlYXJzIGFueSBwZW5kaW5nIGNsb3NlIGFuZCB0aGUgdGltZXIgYWxzbyBhdXRvLWNhbmNlbHMgb25cbiAgICAvLyB1bm1vdW50LlxuICAgIGNvbnN0IHsgcnVuOiBzY2hlZHVsZUNsb3NlLCBjYW5jZWw6IGNhbmNlbFNjaGVkdWxlZENsb3NlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2Vzc2lvbikgPT4ge1xuICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gc2Vzc2lvblJlZi5jdXJyZW50KVxuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgc3VibWl0VGltZW91dCk7XG4gICAgLy8gQW55IG9wZW4tc3RhdGUgdHJhbnNpdGlvbiDigJQgaW5jbHVkaW5nIENPTlRST0xMRUQgYG9wZW5gIHByb3AgZmxpcHMgdGhhdFxuICAgIC8vIGJ5cGFzcyBzZXRPcGVuIOKAlCBzdGFydHMgYSBuZXcgc2Vzc2lvbiBhbmQgZGlzY2FyZHMgYSBwZW5kaW5nIGNsb3NlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIH0sIFttZXJnZWRPcGVuLCBjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFByb3BhZ2F0ZSB0aGUgY29uc3VtZXIncyByZXR1cm4gdmFsdWUg4oCUIFByb0Zvcm0gZ2F0ZXMgVVJMIHN5bmMgb24gaXQsXG4gICAgLy8gYW5kIGF1dG9DbG9zZSBob25vcnMgaXQgdG9vOiBhbiBleHBsaWNpdCBgZmFsc2VgIG1lYW5zIHRoZSBzdWJtaXQgRkFJTEVELFxuICAgIC8vIHNvIHRoZSBvdmVybGF5IHN0YXlzIG9wZW4gaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSB1c2VyJ3MgaW5wdXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSAmJiBzZXNzaW9uID09PSBzZXNzaW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDbG9zZShzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2xheW91dHMvdXNlT3ZlcmxheUZvcm0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm1lcmdlZE9wZW4iLCJzZXRNZXJnZWRPcGVuIiwic2Vzc2lvblJlZiIsInVzZVJlZiIsInNldE9wZW4iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dE9wZW4iLCJjdXJyZW50IiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzZXNzaW9uIiwic2NoZWR1bGVDbG9zZSIsInJ1biIsImNhbmNlbFNjaGVkdWxlZENsb3NlIiwiY2FuY2VsIiwidXNlRWZmZWN0IiwiaGFuZGxlU2hvdyIsImhhbmRsZUhpZGUiLCJoYW5kbGVGaW5pc2giLCJ2YWx1ZXMiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzZW50IiwiYWJydXB0Iiwic3RvcCIsInRyaWdnZXJOb2RlIiwiUmVhY3QiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiX2EiLCJvcmlnaW5hbE9uQ2xpY2siLCJwcm9wcyIsImFyZ3VtZW50cyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBOEQsU0FBQUsseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FB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LFFBQUEsQ0FBQUcsTUFBQSxXQUNNOUMsTUFBTTtVQUFBO1VBQUE7WUFBQSxPQUFBMkMsUUFBQSxDQUFBSSxJQUFBO1FBQUE7TUFBQSxHQUFBTixPQUFBO0lBQUEsQ0FDZCxFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTU8sV0FBVyxHQUFHckMsT0FBTyxnQkFDdkJzQyxpQkFBSyxDQUFDQyxZQUFZLENBQUN2QyxPQUFrRCxFQUFFO0lBQ3JFd0MsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUEsRUFBcUI7TUM1QnBCLElBQUlDLEVBQUU7TUQ2QlpqQixVQUFVLENBQUEsQ0FBRTtNQUNaLElBQU1rQixlQUFlLEdBQUcsQ0FBQUQsRUFBQSxHQUFDekMsT0FBTyxDQUFDMkMsS0FBNkIsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRCxPQUFPO01BQ3ZFLElBQUksT0FBT0UsZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN4Q0EsZUFBeUMsQ0FBQWxELEtBQUEsU0FBQW9ELFNBQVEsQ0FBQztNQUNyRDtJQUNGO0VDM0JBLENENEJELENBQUMsR0FDRixJQUFJO0VBRVIsT0FBTztJQUNMcEMsVUFBVSxFQUFWQSxVQUFVO0lBQ1Y2QixXQUFXLEVBQVhBLFdBQVc7SUFDWFgsWUFBWSxFQUFaQSxZQUFZO0lBQ1pELFVBQVUsRUFBVkEsVUFBVTtJQUNWRCxVQUFVLEVBQVZBO0VDNUJBLENENkJEO0FBQ0g7QUFBQyxJQUFBcUIsUUFBQSxHQUFBQyxPQUFBLGNBRWNyRCxjQUFjIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgLy8gU2Vzc2lvbiBnZW5lcmF0aW9uIOKAlCBldmVyeSBvcGVuLXN0YXRlIGNoYW5nZSBzdGFydHMgYSBuZXcgc2Vzc2lvbiwgc28gYVxuICAgIC8vIFNUQUxFIGluLWZsaWdodCBzdWJtaXQgKHN0YXJ0ZWQgaW4gYSBwcmV2aW91cyBzZXNzaW9uKSBjYW4ndCBhdXRvLWNsb3NlXG4gICAgLy8gdGhlIG92ZXJsYXkgdGhlIHVzZXIgaGFzIHNpbmNlIGNsb3NlZCBhbmQgcmVvcGVuZWQuXG4gICAgY29uc3Qgc2Vzc2lvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBzZXRPcGVuID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dE9wZW4pID0+IHtcbiAgICAgICAgc2Vzc2lvblJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBUaGUgZmlyZS10aW1lIHNlc3Npb24gY2hlY2sgbWFrZXMgYVxuICAgIC8vIFNUQUxFIHRpbWVyIChzY2hlZHVsZWQgaW4gYSBwcmV2aW91cyBvcGVuL2Nsb3NlIHNlc3Npb24pIGEgbm8tb3A7XG4gICAgLy8gYGNhbmNlbGAgY2xlYXJzIGFueSBwZW5kaW5nIGNsb3NlIGFuZCB0aGUgdGltZXIgYWxzbyBhdXRvLWNhbmNlbHMgb25cbiAgICAvLyB1bm1vdW50LlxuICAgIGNvbnN0IHsgcnVuOiBzY2hlZHVsZUNsb3NlLCBjYW5jZWw6IGNhbmNlbFNjaGVkdWxlZENsb3NlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2Vzc2lvbikgPT4ge1xuICAgICAgICBpZiAoc2Vzc2lvbiA9PT0gc2Vzc2lvblJlZi5jdXJyZW50KVxuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgfSwgc3VibWl0VGltZW91dCk7XG4gICAgLy8gQW55IG9wZW4tc3RhdGUgdHJhbnNpdGlvbiDigJQgaW5jbHVkaW5nIENPTlRST0xMRUQgYG9wZW5gIHByb3AgZmxpcHMgdGhhdFxuICAgIC8vIGJ5cGFzcyBzZXRPcGVuIOKAlCBzdGFydHMgYSBuZXcgc2Vzc2lvbiBhbmQgZGlzY2FyZHMgYSBwZW5kaW5nIGNsb3NlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNlc3Npb25SZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIH0sIFttZXJnZWRPcGVuLCBjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFByb3BhZ2F0ZSB0aGUgY29uc3VtZXIncyByZXR1cm4gdmFsdWUg4oCUIFByb0Zvcm0gZ2F0ZXMgVVJMIHN5bmMgb24gaXQsXG4gICAgLy8gYW5kIGF1dG9DbG9zZSBob25vcnMgaXQgdG9vOiBhbiBleHBsaWNpdCBgZmFsc2VgIG1lYW5zIHRoZSBzdWJtaXQgRkFJTEVELFxuICAgIC8vIHNvIHRoZSBvdmVybGF5IHN0YXlzIG9wZW4gaW5zdGVhZCBvZiBkaXNjYXJkaW5nIHRoZSB1c2VyJ3MgaW5wdXQuXG4gICAgY29uc3QgaGFuZGxlRmluaXNoID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWVzKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBzZXNzaW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIChvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKSk7XG4gICAgICAgIGlmIChhdXRvQ2xvc2UgJiYgcmVzdWx0ICE9PSBmYWxzZSAmJiBzZXNzaW9uID09PSBzZXNzaW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlmIChzdWJtaXRUaW1lb3V0ICYmIHN1Ym1pdFRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgICAgICAgc2NoZWR1bGVDbG9zZShzZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -3,16 +3,24 @@ import type { ButtonProps } from "../Button";
|
|
|
3
3
|
import { getNestedValue, setNestedValue } from './core/pathUtils';
|
|
4
4
|
import type { ProFormDateFormatter, ProFormFieldTransformFn, ProFormValueEnumObj, ProFormValueType } from './interface';
|
|
5
5
|
export { getNestedValue, setNestedValue };
|
|
6
|
-
export declare function stableSerialize(value:
|
|
7
|
-
export declare function renderTextReadonly(value:
|
|
8
|
-
export declare function renderBooleanReadonly(value:
|
|
9
|
-
export declare function renderNumericReadonly(value:
|
|
6
|
+
export declare function stableSerialize(value: any): string;
|
|
7
|
+
export declare function renderTextReadonly(value: any): ReactNode;
|
|
8
|
+
export declare function renderBooleanReadonly(value: any): ReactNode;
|
|
9
|
+
export declare function renderNumericReadonly(value: any): ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Find the `label` of the option whose `value` matches. Non-object entries
|
|
12
|
+
* (plain-value options, e.g. CheckboxGroup's shorthand) and missing labels
|
|
13
|
+
* yield undefined — callers fall back to rendering the raw value. Matching is
|
|
14
|
+
* strict first, then by String() (valueEnum keys are always strings while the
|
|
15
|
+
* form value may be a number).
|
|
16
|
+
*/
|
|
17
|
+
export declare function findOptionLabel(options: any, value: any): ReactNode | undefined;
|
|
10
18
|
export declare function resolveWidth(width: 'sm' | 'md' | 'lg' | 'xl' | number): number;
|
|
11
19
|
export declare function extractButtonProps(config: false | Partial<ButtonProps> | undefined): {
|
|
12
20
|
disabled: boolean;
|
|
13
21
|
rest: Partial<ButtonProps>;
|
|
14
22
|
};
|
|
15
|
-
export declare function transformSubmitValues(values: Record<string,
|
|
23
|
+
export declare function transformSubmitValues(values: Record<string, any>, transforms: Record<string, ProFormFieldTransformFn>): Record<string, any>;
|
|
16
24
|
export declare const DATE_FORMAT = "YYYY-MM-DD";
|
|
17
25
|
export declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
|
|
18
26
|
/** Minimal pattern formatter supporting YYYY / MM / DD / HH / mm / ss tokens. */
|
|
@@ -23,8 +31,8 @@ export declare function formatDateByPattern(date: Date, pattern: string): string
|
|
|
23
31
|
* `YYYY-MM-DD HH:mm:ss`, everything else `YYYY-MM-DD`. Untouched when the
|
|
24
32
|
* formatter is `false`. Non-Date values pass through unchanged.
|
|
25
33
|
*/
|
|
26
|
-
export declare function formatDateValues(values: Record<string,
|
|
27
|
-
export declare function omitNilValues(values: Record<string,
|
|
34
|
+
export declare function formatDateValues(values: Record<string, any>, dateFormatter: ProFormDateFormatter, valueTypes: Record<string, ProFormValueType>): Record<string, any>;
|
|
35
|
+
export declare function omitNilValues(values: Record<string, any>): Record<string, any>;
|
|
28
36
|
export interface ValueEnumOption {
|
|
29
37
|
label: string;
|
|
30
38
|
value: string | number;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.DATE_TIME_FORMAT = exports.DATE_FORMAT = void 0;
|
|
8
8
|
exports.extractButtonProps = extractButtonProps;
|
|
9
|
+
exports.findOptionLabel = findOptionLabel;
|
|
9
10
|
exports.formatDateByPattern = formatDateByPattern;
|
|
10
11
|
exports.formatDateValues = formatDateValues;
|
|
11
12
|
Object.defineProperty(exports, "getNestedValue", {
|
|
@@ -33,6 +34,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
33
34
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
34
35
|
var _constants = require("./constants");
|
|
35
36
|
var _pathUtils = require("./core/pathUtils");
|
|
37
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
38
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
39
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
36
40
|
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
37
41
|
var t = {};
|
|
38
42
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -102,6 +106,37 @@ function renderNumericReadonly(value) {
|
|
|
102
106
|
return String(num);
|
|
103
107
|
}
|
|
104
108
|
// ---------------------------------------------------------------------------
|
|
109
|
+
// findOptionLabel — resolve a raw value to its option label for read mode
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
/**
|
|
112
|
+
* Find the `label` of the option whose `value` matches. Non-object entries
|
|
113
|
+
* (plain-value options, e.g. CheckboxGroup's shorthand) and missing labels
|
|
114
|
+
* yield undefined — callers fall back to rendering the raw value. Matching is
|
|
115
|
+
* strict first, then by String() (valueEnum keys are always strings while the
|
|
116
|
+
* form value may be a number).
|
|
117
|
+
*/
|
|
118
|
+
function findOptionLabel(options, value) {
|
|
119
|
+
if (!Array.isArray(options)) return undefined;
|
|
120
|
+
var _iterator = _createForOfIteratorHelper(options),
|
|
121
|
+
_step;
|
|
122
|
+
try {
|
|
123
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
124
|
+
var option = _step.value;
|
|
125
|
+
if (option === null || (0, _typeof2["default"])(option) !== 'object' || !('value' in option)) continue;
|
|
126
|
+
var optionValue = option.value,
|
|
127
|
+
label = option.label;
|
|
128
|
+
if (optionValue === value || String(optionValue) === String(value)) {
|
|
129
|
+
return label !== null && label !== void 0 ? label : undefined;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
} catch (err) {
|
|
133
|
+
_iterator.e(err);
|
|
134
|
+
} finally {
|
|
135
|
+
_iterator.f();
|
|
136
|
+
}
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
105
140
|
// resolveWidth — convert named width to px or pass through number
|
|
106
141
|
// ---------------------------------------------------------------------------
|
|
107
142
|
function resolveWidth(width) {
|
|
@@ -229,19 +264,33 @@ function formatDateValues(values, dateFormatter, valueTypes) {
|
|
|
229
264
|
return _walk(values, '');
|
|
230
265
|
}
|
|
231
266
|
// ---------------------------------------------------------------------------
|
|
232
|
-
// omitNilValues — recursively remove null / undefined
|
|
267
|
+
// omitNilValues — recursively remove null / undefined keys from objects.
|
|
268
|
+
//
|
|
269
|
+
// Nil means null/undefined ONLY: an empty string is a real value (clearing a
|
|
270
|
+
// text field must reach onFinish so the backend learns about it). Arrays are
|
|
271
|
+
// walked too — their OBJECT items are cleaned — but items themselves are
|
|
272
|
+
// never dropped: removing one would shift list indices.
|
|
233
273
|
// ---------------------------------------------------------------------------
|
|
274
|
+
function omitNilInArray(items) {
|
|
275
|
+
return items.map(function (item) {
|
|
276
|
+
if (isPlainObject(item)) return omitNilValues(item);
|
|
277
|
+
if (Array.isArray(item)) return omitNilInArray(item);
|
|
278
|
+
return item;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
234
281
|
function omitNilValues(values) {
|
|
235
282
|
var result = {};
|
|
236
283
|
for (var _i2 = 0, _Object$keys2 = Object.keys(values); _i2 < _Object$keys2.length; _i2++) {
|
|
237
284
|
var key = _Object$keys2[_i2];
|
|
238
285
|
var v = values[key];
|
|
239
|
-
if (v === null || v === undefined
|
|
286
|
+
if (v === null || v === undefined) continue;
|
|
240
287
|
if (isPlainObject(v)) {
|
|
241
288
|
var cleaned = omitNilValues(v);
|
|
242
289
|
if (Object.keys(cleaned).length > 0) {
|
|
243
290
|
result[key] = cleaned;
|
|
244
291
|
}
|
|
292
|
+
} else if (Array.isArray(v)) {
|
|
293
|
+
result[key] = omitNilInArray(v);
|
|
245
294
|
} else {
|
|
246
295
|
result[key] = v;
|
|
247
296
|
}
|
|
@@ -266,4 +315,4 @@ function valueEnumToOptions(valueEnum) {
|
|
|
266
315
|
};
|
|
267
316
|
});
|
|
268
317
|
}
|
|
269
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInNlcmlhbGl6ZVdpdGhTZWVuIiwidmFsdWUiLCJzZWVuIiwiX2EiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJEYXRlIiwiY29uY2F0IiwiZ2V0VGltZSIsIl90eXBlb2YyIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhcyIsImFkZCIsInJlc3VsdCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsIml0ZW0iLCJqb2luIiwicmVjb3JkIiwia2V5cyIsInNvcnQiLCJrIiwic3RhYmxlU2VyaWFsaXplIiwiV2Vha1NldCIsInJlbmRlclRleHRSZWFkb25seSIsInJlbmRlckJvb2xlYW5SZWFkb25seSIsInJlbmRlck51bWVyaWNSZWFkb25seSIsIm51bSIsIk51bWJlciIsImlzTmFOIiwicmVzb2x2ZVdpZHRoIiwid2lkdGgiLCJXSURUSF9TSVpFX01BUCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiYXNzaWduIiwiZm9yRWFjaCIsIm5hbWUiLCJ0cmFuc2Zvcm1GbiIsInJhd1ZhbHVlIiwiZ2V0TmVzdGVkVmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsIm5ld1BhcmVudCIsInNldE5lc3RlZFZhbHVlIiwiaW5jbHVkZXMiLCJfZGVmaW5lUHJvcGVydHkyIiwiREFURV9GT1JNQVQiLCJleHBvcnRzIiwiREFURV9USU1FX0ZPUk1BVCIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJkYXRlIiwicGF0dGVybiIsInBhZCIsIm4iLCJwYWRTdGFydCIsInJlcGxhY2UiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJmb3JtYXREYXRlVmFsdWVzIiwiZGF0ZUZvcm1hdHRlciIsInZhbHVlVHlwZXMiLCJmb3JtYXRPbmUiLCJwYXRoIiwid2FsayIsImNoYW5nZWQiLCJuZXh0IiwiaW5kZXgiLCJ3YWxrZWQiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleSIsImNoaWxkIiwib21pdE5pbFZhbHVlcyIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJ2IiwiY2xlYW5lZCIsInZhbHVlRW51bVRvT3B0aW9ucyIsInZhbHVlRW51bSIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYWJlbCIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQ0hBLElBQUlFLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFD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QUM0RyxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDakYsR0FBRyxDQUFDLFVBQUFtRixJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBaEJWLEdBQUcsR0FBQVcsS0FBQTtNQUFFaEUsTUFBTSxHQUFBZ0UsS0FBQTtJQUNoRCxJQUFJLE9BQU9oRSxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRWtFLEtBQUssRUFBRWxFLE1BQU07UUFBRXBDLEtBQUssRUFBRXlGO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRWEsS0FBSyxFQUFFbEUsTUFBTSxDQUFDbUUsSUFBSTtNQUFFdkcsS0FBSyxFQUFFeUYsR0FBRztNQUFFcEQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIHNlZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIC8vIERhdGUgbXVzdCBiZSBzZXJpYWxpemVkIGJ5IFZBTFVFOiB0aGUgZ2VuZXJpYyBvYmplY3QgYnJhbmNoIHdvdWxkIHNlZSBub1xuICAgIC8vIGVudW1lcmFibGUga2V5cyBhbmQgY29sbGFwc2UgZXZlcnkgRGF0ZSB0byAne30nLCBzbyBhIHBhcmFtcyBvYmplY3Qgd2hvc2VcbiAgICAvLyBvbmx5IGNoYW5nZSBpcyBhIGRhdGUgd291bGQgbmV2ZXIgdHJpZ2dlciBhIHJlcXVlc3QgcmUtZmV0Y2guXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIGBEYXRlKCR7dmFsdWUuZ2V0VGltZSgpfSlgO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEpTT04uc3RyaW5naWZ5IHlpZWxkcyB1bmRlZmluZWQgZm9yIGZ1bmN0aW9ucy9zeW1ib2xzIOKAlCBmYWxsIGJhY2sgdG8gYVxuICAgICAgICAvLyAoc3RpbGwgZGV0ZXJtaW5pc3RpYykgU3RyaW5nKCkgc28gdGhlIHJlc3VsdCBhbHdheXMgY29uY2F0ZW5hdGVzLlxuICAgICAgICByZXR1cm4gKF9hID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICAvLyBgc2VlbmAgdHJhY2tzIHRoZSBjdXJyZW50IEFOQ0VTVE9SIGNoYWluIG9ubHkgKGVudHJpZXMgYXJlIHJlbW92ZWQgb24gdGhlXG4gICAgLy8gd2F5IGJhY2sgb3V0KSwgc28gc2hhcmVkLWJ1dC1hY3ljbGljIHJlZmVyZW5jZXMgc2VyaWFsaXplIG5vcm1hbGx5IGFuZFxuICAgIC8vIGdlbnVpbmUgY3ljbGVzIHNob3J0LWNpcmN1aXQgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyB0aGUgc3RhY2suXG4gICAgaWYgKHNlZW4uaGFzKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuICdcIltDaXJjdWxhcl1cIic7XG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICdbJyArIHZhbHVlLm1hcCgoaXRlbSkgPT4gc2VyaWFsaXplV2l0aFNlZW4oaXRlbSwgc2VlbikpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocmVjb3JkKS5zb3J0KCk7XG4gICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAneycgK1xuICAgICAgICAgICAgICAgIGtleXMubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArICc6JyArIHNlcmlhbGl6ZVdpdGhTZWVuKHJlY29yZFtrXSwgc2VlbikpLmpvaW4oJywnKSArXG4gICAgICAgICAgICAgICAgJ30nO1xuICAgIH1cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIG5ldyBXZWFrU2V0KCkpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCAvICcnIGZyb20gb2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBvbWl0TmlsVmFsdWVzKHZhbHVlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlcykpIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlc1trZXldO1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBvbWl0TmlsVmFsdWVzKHYpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsZWFuZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNsZWFuZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlRW51bSkubWFwKChba2V5LCBjb25maWddKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZywgdmFsdWU6IGtleSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcudGV4dCwgdmFsdWU6IGtleSwgZGlzYWJsZWQ6IGNvbmZpZy5kaXNhYmxlZCB9O1xuICAgIH0pO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
318
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJlIiwidCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIl9fcmVzdCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzZXJpYWxpemVXaXRoU2VlbiIsInNlZW4iLCJfYSIsInVuZGVmaW5lZCIsIlN0cmluZyIsIkRhdGUiLCJjb25jYXQiLCJnZXRUaW1lIiwiX3R5cGVvZjIiLCJKU09OIiwic3RyaW5naWZ5IiwiaGFzIiwiYWRkIiwicmVzdWx0IiwibWFwIiwiaXRlbSIsImpvaW4iLCJyZWNvcmQiLCJrZXlzIiwic29ydCIsImsiLCJzdGFibGVTZXJpYWxpemUiLCJXZWFrU2V0IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJmaW5kT3B0aW9uTGFiZWwiLCJvcHRpb25zIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJvcHRpb24iLCJvcHRpb25WYWx1ZSIsImxhYmVsIiwiZXJyIiwicmVzb2x2ZVdpZHRoIiwid2lkdGgiLCJXSURUSF9TSVpFX01BUCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiYXNzaWduIiwiZm9yRWFjaCIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJnZXROZXN0ZWRWYWx1ZSIsInRyYW5zZm9ybWVkIiwiZG90SW5kZXgiLCJsYXN0SW5kZXhPZiIsInBhcmVudFBhdGgiLCJwYXJlbnQiLCJjaGlsZEtleSIsIm5ld1BhcmVudCIsInNldE5lc3RlZFZhbHVlIiwiaW5jbHVkZXMiLCJfZGVmaW5lUHJvcGVydHkyIiwiREFURV9GT1JNQVQiLCJleHBvcnRzIiwiREFURV9USU1FX0ZPUk1BVCIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJkYXRlIiwicGF0dGVybiIsInBhZCIsInBhZFN0YXJ0IiwicmVwbGFjZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJkYXRlRm9ybWF0dGVyIiwidmFsdWVUeXBlcyIsImZvcm1hdE9uZSIsInBhdGgiLCJ3YWxrIiwiY2hhbmdlZCIsImluZGV4Iiwid2Fsa2VkIiwiX2kiLCJfT2JqZWN0JGtleXMiLCJrZXkiLCJjaGlsZCIsIm9taXROaWxJbkFycmF5IiwiaXRlbXMiLCJvbWl0TmlsVmFsdWVzIiwiX2kyIiwiX09iamVjdCRrZXlzMiIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJ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Q2pJLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkMyQyxNQUFNLENBQUM4RSxHQUFHLENBQUMsR0FBR1EsT0FBTztNQUN2QjtJQUNGLENBQUMsTUFBTSxJQUFJcEksS0FBSyxDQUFDQyxPQUFPLENBQUNrSSxDQUFDLENBQUMsRUFBRTtNQUMzQnJGLE1BQU0sQ0FBQzhFLEdBQUcsQ0FBQyxHQUFHRSxjQUFjLENBQUNLLENBQUMsQ0FBQztJQUNqQyxDQUFDLE1BQU07TUFDTHJGLE1BQU0sQ0FBQzhFLEdBQUcsQ0FBQyxHQUFHTyxDQUFDO0lBQ2pCO0VBQ0Y7RUFDQSxPQUFPckYsTUFBTTtBQUNmO0FBV00sU0FBVXVGLGtCQUFrQkEsQ0FDaENDLFNBQThCLEVBQUE7RUFFOUIsT0FBTzVHLE1BQU0sQ0FBQzZHLE9BQU8sQ0FBQ0QsU0FBUyxDQUFDLENBQUN2RixHQUFHLENBQUMsVUFBQXlGLElBQUEsRUFBa0I7SUFBQSxJQUFBQyxLQUFBLE9BQUFDLGVBQUEsYUFBQUYsSUFBQTtNQUFoQlosR0FBRyxHQUFBYSxLQUFBO01BQUU5RCxNQUFNLEdBQUE4RCxLQUFBO0lBQ2hELElBQUksT0FBTzlELE1BQU0sS0FBSyxRQUFRLEVBQUU7TUFDOUIsT0FBTztRQUFFUCxLQUFLLEVBQUVPLE1BQU07UUFBRWxFLEtBQUssRUFBRW1IO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRXhELEtBQUssRUFBRU8sTUFBTSxDQUFDZ0UsSUFBSTtNQUFFbEksS0FBSyxFQUFFbUgsR0FBRztNQUFFaEQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIHNlZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIC8vIERhdGUgbXVzdCBiZSBzZXJpYWxpemVkIGJ5IFZBTFVFOiB0aGUgZ2VuZXJpYyBvYmplY3QgYnJhbmNoIHdvdWxkIHNlZSBub1xuICAgIC8vIGVudW1lcmFibGUga2V5cyBhbmQgY29sbGFwc2UgZXZlcnkgRGF0ZSB0byAne30nLCBzbyBhIHBhcmFtcyBvYmplY3Qgd2hvc2VcbiAgICAvLyBvbmx5IGNoYW5nZSBpcyBhIGRhdGUgd291bGQgbmV2ZXIgdHJpZ2dlciBhIHJlcXVlc3QgcmUtZmV0Y2guXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIGBEYXRlKCR7dmFsdWUuZ2V0VGltZSgpfSlgO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEpTT04uc3RyaW5naWZ5IHlpZWxkcyB1bmRlZmluZWQgZm9yIGZ1bmN0aW9ucy9zeW1ib2xzIOKAlCBmYWxsIGJhY2sgdG8gYVxuICAgICAgICAvLyAoc3RpbGwgZGV0ZXJtaW5pc3RpYykgU3RyaW5nKCkgc28gdGhlIHJlc3VsdCBhbHdheXMgY29uY2F0ZW5hdGVzLlxuICAgICAgICByZXR1cm4gKF9hID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICAvLyBgc2VlbmAgdHJhY2tzIHRoZSBjdXJyZW50IEFOQ0VTVE9SIGNoYWluIG9ubHkgKGVudHJpZXMgYXJlIHJlbW92ZWQgb24gdGhlXG4gICAgLy8gd2F5IGJhY2sgb3V0KSwgc28gc2hhcmVkLWJ1dC1hY3ljbGljIHJlZmVyZW5jZXMgc2VyaWFsaXplIG5vcm1hbGx5IGFuZFxuICAgIC8vIGdlbnVpbmUgY3ljbGVzIHNob3J0LWNpcmN1aXQgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyB0aGUgc3RhY2suXG4gICAgaWYgKHNlZW4uaGFzKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuICdcIltDaXJjdWxhcl1cIic7XG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICdbJyArIHZhbHVlLm1hcCgoaXRlbSkgPT4gc2VyaWFsaXplV2l0aFNlZW4oaXRlbSwgc2VlbikpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocmVjb3JkKS5zb3J0KCk7XG4gICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAneycgK1xuICAgICAgICAgICAgICAgIGtleXMubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArICc6JyArIHNlcmlhbGl6ZVdpdGhTZWVuKHJlY29yZFtrXSwgc2VlbikpLmpvaW4oJywnKSArXG4gICAgICAgICAgICAgICAgJ30nO1xuICAgIH1cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIG5ldyBXZWFrU2V0KCkpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGZpbmRPcHRpb25MYWJlbCDigJQgcmVzb2x2ZSBhIHJhdyB2YWx1ZSB0byBpdHMgb3B0aW9uIGxhYmVsIGZvciByZWFkIG1vZGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyoqXG4gKiBGaW5kIHRoZSBgbGFiZWxgIG9mIHRoZSBvcHRpb24gd2hvc2UgYHZhbHVlYCBtYXRjaGVzLiBOb24tb2JqZWN0IGVudHJpZXNcbiAqIChwbGFpbi12YWx1ZSBvcHRpb25zLCBlLmcuIENoZWNrYm94R3JvdXAncyBzaG9ydGhhbmQpIGFuZCBtaXNzaW5nIGxhYmVsc1xuICogeWllbGQgdW5kZWZpbmVkIOKAlCBjYWxsZXJzIGZhbGwgYmFjayB0byByZW5kZXJpbmcgdGhlIHJhdyB2YWx1ZS4gTWF0Y2hpbmcgaXNcbiAqIHN0cmljdCBmaXJzdCwgdGhlbiBieSBTdHJpbmcoKSAodmFsdWVFbnVtIGtleXMgYXJlIGFsd2F5cyBzdHJpbmdzIHdoaWxlIHRoZVxuICogZm9ybSB2YWx1ZSBtYXkgYmUgYSBudW1iZXIpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE9wdGlvbkxhYmVsKG9wdGlvbnMsIHZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbiA9PT0gbnVsbCB8fCB0eXBlb2Ygb3B0aW9uICE9PSAnb2JqZWN0JyB8fCAhKCd2YWx1ZScgaW4gb3B0aW9uKSlcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCB7IHZhbHVlOiBvcHRpb25WYWx1ZSwgbGFiZWwgfSA9IG9wdGlvbjtcbiAgICAgICAgaWYgKG9wdGlvblZhbHVlID09PSB2YWx1ZSB8fCBTdHJpbmcob3B0aW9uVmFsdWUpID09PSBTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbGFiZWwgIT09IG51bGwgJiYgbGFiZWwgIT09IHZvaWQgMCA/IGxhYmVsIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCBrZXlzIGZyb20gb2JqZWN0cy5cbi8vXG4vLyBOaWwgbWVhbnMgbnVsbC91bmRlZmluZWQgT05MWTogYW4gZW1wdHkgc3RyaW5nIGlzIGEgcmVhbCB2YWx1ZSAoY2xlYXJpbmcgYVxuLy8gdGV4dCBmaWVsZCBtdXN0IHJlYWNoIG9uRmluaXNoIHNvIHRoZSBiYWNrZW5kIGxlYXJucyBhYm91dCBpdCkuIEFycmF5cyBhcmVcbi8vIHdhbGtlZCB0b28g4oCUIHRoZWlyIE9CSkVDVCBpdGVtcyBhcmUgY2xlYW5lZCDigJQgYnV0IGl0ZW1zIHRoZW1zZWx2ZXMgYXJlXG4vLyBuZXZlciBkcm9wcGVkOiByZW1vdmluZyBvbmUgd291bGQgc2hpZnQgbGlzdCBpbmRpY2VzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBvbWl0TmlsSW5BcnJheShpdGVtcykge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QoaXRlbSkpXG4gICAgICAgICAgICByZXR1cm4gb21pdE5pbFZhbHVlcyhpdGVtKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpXG4gICAgICAgICAgICByZXR1cm4gb21pdE5pbEluQXJyYXkoaXRlbSk7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG9taXROaWxWYWx1ZXModmFsdWVzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2ID0gdmFsdWVzW2tleV07XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2KSkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IG9taXROaWxWYWx1ZXModik7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2xlYW5lZCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG9taXROaWxJbkFycmF5KHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZUVudW0pLm1hcCgoW2tleSwgY29uZmlnXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcsIHZhbHVlOiBrZXkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLnRleHQsIHZhbHVlOiBrZXksIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfTtcbiAgICB9KTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|