@1money/component-ui 0.0.73 → 0.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/Dialog/Dialog.js +7 -39
- package/es/components/Dialog/constants.d.ts +0 -3
- package/es/components/Dialog/constants.js +1 -4
- package/es/components/Dialog/style/Dialog.css +0 -21
- package/es/components/ProForm/ProForm.js +201 -48
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -136
- package/es/components/ProForm/ProFormItem.js +81 -24
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/Submitter.js +15 -4
- package/es/components/ProForm/context.d.ts +11 -3
- package/es/components/ProForm/context.js +32 -12
- package/es/components/ProForm/core/constants.d.ts +10 -2
- package/es/components/ProForm/core/constants.js +17 -3
- package/es/components/ProForm/core/formStore.d.ts +24 -0
- package/es/components/ProForm/core/formStore.js +101 -0
- package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/es/components/ProForm/core/hooks/useForm.js +220 -120
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +114 -90
- package/es/components/ProForm/core/runRules.d.ts +5 -3
- package/es/components/ProForm/core/runRules.js +13 -5
- package/es/components/ProForm/core/useFormItem.d.ts +2 -2
- package/es/components/ProForm/core/useFormItem.js +46 -23
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +14 -4
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
- package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/es/components/ProForm/hooks/useUrlSync.js +170 -0
- package/es/components/ProForm/index.d.ts +2 -2
- package/es/components/ProForm/index.js +1 -1
- package/es/components/ProForm/interface.d.ts +105 -23
- package/es/components/ProForm/layouts/DialogForm.js +17 -7
- package/es/components/ProForm/layouts/DrawerForm.js +16 -7
- package/es/components/ProForm/layouts/QueryFilter.js +46 -135
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
- package/es/components/ProForm/style/ProForm.css +0 -7
- package/es/components/ProForm/utils.js +32 -8
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/Dialog/Dialog.js +6 -38
- package/lib/components/Dialog/constants.d.ts +0 -3
- package/lib/components/Dialog/constants.js +1 -4
- package/lib/components/Dialog/style/Dialog.css +0 -21
- package/lib/components/ProForm/ProForm.js +201 -48
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -138
- package/lib/components/ProForm/ProFormItem.js +78 -21
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/Submitter.js +15 -4
- package/lib/components/ProForm/context.d.ts +11 -3
- package/lib/components/ProForm/context.js +33 -13
- package/lib/components/ProForm/core/constants.d.ts +10 -2
- package/lib/components/ProForm/core/constants.js +18 -4
- package/lib/components/ProForm/core/formStore.d.ts +24 -0
- package/lib/components/ProForm/core/formStore.js +110 -0
- package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/lib/components/ProForm/core/hooks/useForm.js +220 -120
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +113 -89
- package/lib/components/ProForm/core/runRules.d.ts +5 -3
- package/lib/components/ProForm/core/runRules.js +13 -5
- package/lib/components/ProForm/core/useFormItem.d.ts +2 -2
- package/lib/components/ProForm/core/useFormItem.js +44 -21
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +14 -4
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
- package/lib/components/ProForm/index.d.ts +2 -2
- package/lib/components/ProForm/index.js +1 -1
- package/lib/components/ProForm/interface.d.ts +105 -23
- package/lib/components/ProForm/layouts/DialogForm.js +17 -7
- package/lib/components/ProForm/layouts/DrawerForm.js +16 -7
- package/lib/components/ProForm/layouts/QueryFilter.js +45 -134
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
- package/lib/components/ProForm/style/ProForm.css +0 -7
- package/lib/components/ProForm/utils.js +32 -8
- package/lib/components/ProTable/ProTable.js +3 -3
- 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 +36 -0
- package/scripts/mcp-server/index.generated.json +538 -16
|
@@ -48,16 +48,40 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
|
48
48
|
// ---------------------------------------------------------------------------
|
|
49
49
|
// stableSerialize — deterministic deep serialization for params comparison
|
|
50
50
|
// ---------------------------------------------------------------------------
|
|
51
|
-
function
|
|
51
|
+
function serializeWithSeen(value, seen) {
|
|
52
|
+
var _a;
|
|
52
53
|
if (value === null || value === undefined) return String(value);
|
|
53
|
-
|
|
54
|
+
// Date must be serialized by VALUE: the generic object branch would see no
|
|
55
|
+
// enumerable keys and collapse every Date to '{}', so a params object whose
|
|
56
|
+
// only change is a date would never trigger a request re-fetch.
|
|
57
|
+
if (value instanceof Date) return "Date(".concat(value.getTime(), ")");
|
|
58
|
+
if ((0, _typeof2["default"])(value) !== 'object') {
|
|
59
|
+
// JSON.stringify yields undefined for functions/symbols — fall back to a
|
|
60
|
+
// (still deterministic) String() so the result always concatenates.
|
|
61
|
+
return (_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : String(value);
|
|
62
|
+
}
|
|
63
|
+
// `seen` tracks the current ANCESTOR chain only (entries are removed on the
|
|
64
|
+
// way back out), so shared-but-acyclic references serialize normally and
|
|
65
|
+
// genuine cycles short-circuit instead of overflowing the stack.
|
|
66
|
+
if (seen.has(value)) return '"[Circular]"';
|
|
67
|
+
seen.add(value);
|
|
68
|
+
var result;
|
|
54
69
|
if (Array.isArray(value)) {
|
|
55
|
-
|
|
70
|
+
result = '[' + value.map(function (item) {
|
|
71
|
+
return serializeWithSeen(item, seen);
|
|
72
|
+
}).join(',') + ']';
|
|
73
|
+
} else {
|
|
74
|
+
var record = value;
|
|
75
|
+
var keys = Object.keys(record).sort();
|
|
76
|
+
result = '{' + keys.map(function (k) {
|
|
77
|
+
return JSON.stringify(k) + ':' + serializeWithSeen(record[k], seen);
|
|
78
|
+
}).join(',') + '}';
|
|
56
79
|
}
|
|
57
|
-
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
seen["delete"](value);
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
function stableSerialize(value) {
|
|
84
|
+
return serializeWithSeen(value, new WeakSet());
|
|
61
85
|
}
|
|
62
86
|
// ---------------------------------------------------------------------------
|
|
63
87
|
// Readonly renderers
|
|
@@ -242,4 +266,4 @@ function valueEnumToOptions(valueEnum) {
|
|
|
242
266
|
};
|
|
243
267
|
});
|
|
244
268
|
}
|
|
245
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInN0YWJsZVNlcmlhbGl6ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwiX3R5cGVvZjIiLCJKU09OIiwic3RyaW5naWZ5IiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiam9pbiIsImtleXMiLCJzb3J0IiwiayIsInJlbmRlclRleHRSZWFkb25seSIsInJlbmRlckJvb2xlYW5SZWFkb25seSIsInJlbmRlck51bWVyaWNSZWFkb25seSIsIm51bSIsIk51bWJlciIsImlzTmFOIiwicmVzb2x2ZVdpZHRoIiwid2lkdGgiLCJfYSIsIldJRFRIX1NJWkVfTUFQIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJyZXN1bHQiLCJhc3NpZ24iLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJnZXROZXN0ZWRWYWx1ZSIsInRyYW5zZm9ybWVkIiwiZG90SW5kZXgiLCJsYXN0SW5kZXhPZiIsInBhcmVudFBhdGgiLCJzbGljZSIsInBhcmVudCIsImNoaWxkS2V5IiwibmV3UGFyZW50Iiwic2V0TmVzdGVkVmFsdWUiLCJpbmNsdWRlcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJEQVRFX0ZPUk1BVCIsImV4cG9ydHMiLCJEQVRFX1RJTUVfRk9STUFUIiwiZm9ybWF0RGF0ZUJ5UGF0dGVybiIsImRhdGUiLCJwYXR0ZXJuIiwicGFkIiwibiIsInBhZFN0YXJ0IiwicmVwbGFjZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJkYXRlRm9ybWF0dGVyIiwidmFsdWVUeXBlcyIsImZvcm1hdE9uZSIsInBhdGgiLCJnZXRUaW1lIiwid2FsayIsIkRhdGUiLCJjaGFuZ2VkIiwibmV4dCIsIml0ZW0iLCJpbmRleCIsIndhbGtlZCIsImNvbmNhdCIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5IiwiY2hpbGQiLCJvbWl0TmlsVmFsdWVzIiwiX2kyIiwiX09iamVjdCRrZXlzMiIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5MiIsImxhYmVsIiwidGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FDSEEsSUFBSUUsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FB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O0lBQ0YsQ0FBQyxNQUFNO01BQ0x4RCxNQUFNLENBQUNrRCxHQUFHLENBQUMsR0FBR0ssQ0FBQztJQUNqQjtFQUNGO0VBQ0EsT0FBT3ZELE1BQU07QUFDZjtBQVdNLFNBQVV5RCxrQkFBa0JBLENBQ2hDQyxTQUE4QixFQUFBO0VBRTlCLE9BQU9yRyxNQUFNLENBQUNzRyxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDbkYsR0FBRyxDQUFDLFVBQUFxRixJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBaEJWLEdBQUcsR0FBQVcsS0FBQTtNQUFFckUsTUFBTSxHQUFBcUUsS0FBQTtJQUNoRCxJQUFJLE9BQU9yRSxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRXVFLEtBQUssRUFBRXZFLE1BQU07UUFBRXpCLEtBQUssRUFBRW1GO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRWEsS0FBSyxFQUFFdkUsTUFBTSxDQUFDd0UsSUFBSTtNQUFFakcsS0FBSyxFQUFFbUYsR0FBRztNQUFFekQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHN0YWJsZVNlcmlhbGl6ZSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JylcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICdbJyArIHZhbHVlLm1hcChzdGFibGVTZXJpYWxpemUpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKS5zb3J0KCk7XG4gICAgcmV0dXJuICgneycgK1xuICAgICAgICBrZXlzXG4gICAgICAgICAgICAubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArXG4gICAgICAgICAgICAnOicgK1xuICAgICAgICAgICAgc3RhYmxlU2VyaWFsaXplKHZhbHVlW2tdKSlcbiAgICAgICAgICAgIC5qb2luKCcsJykgK1xuICAgICAgICAnfScpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCAvICcnIGZyb20gb2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBvbWl0TmlsVmFsdWVzKHZhbHVlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlcykpIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlc1trZXldO1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBvbWl0TmlsVmFsdWVzKHYpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsZWFuZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNsZWFuZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlRW51bSkubWFwKChba2V5LCBjb25maWddKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZywgdmFsdWU6IGtleSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcudGV4dCwgdmFsdWU6IGtleSwgZGlzYWJsZWQ6IGNvbmZpZy5kaXNhYmxlZCB9O1xuICAgIH0pO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
269
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyIsImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyJdLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9wYXRoVXRpbHMiLCJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInNlcmlhbGl6ZVdpdGhTZWVuIiwidmFsdWUiLCJzZWVuIiwiX2EiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJEYXRlIiwiY29uY2F0IiwiZ2V0VGltZSIsIl90eXBlb2YyIiwiSlNPTiIsInN0cmluZ2lmeSIsImhhcyIsImFkZCIsInJlc3VsdCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsIml0ZW0iLCJqb2luIiwicmVjb3JkIiwia2V5cyIsInNvcnQiLCJrIiwic3RhYmxlU2VyaWFsaXplIiwiV2Vha1NldCIsInJlbmRlclRleHRSZWFkb25seSIsInJlbmRlckJvb2xlYW5SZWFkb25seSIsInJlbmRlck51bWVyaWNSZWFkb25seSIsIm51bSIsIk51bWJlciIsImlzTmFOIiwicmVzb2x2ZVdpZHRoIiwid2lkdGgiLCJXSURUSF9TSVpFX01BUCIsIm1kIiwiZXh0cmFjdEJ1dHRvblByb3BzIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJyZXN0IiwiX2NvbmZpZyRkaXNhYmxlZCIsImlzUGxhaW5PYmplY3QiLCJ0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMiLCJ2YWx1ZXMiLCJ0cmFuc2Zvcm1zIiwiYXNzaWduIiwiZm9yRWFjaCIsIm5hbWUiLCJ0cmFuc2Zvcm1GbiIsInJhd1ZhbHVlIiwiZ2V0TmVzdGVkVmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsIm5ld1BhcmVudCIsInNldE5lc3RlZFZhbHVlIiwiaW5jbHVkZXMiLCJfZGVmaW5lUHJvcGVydHkyIiwiREFURV9GT1JNQVQiLCJleHBvcnRzIiwiREFURV9USU1FX0ZPUk1BVCIsImZvcm1hdERhdGVCeVBhdHRlcm4iLCJkYXRlIiwicGF0dGVybiIsInBhZCIsIm4iLCJwYWRTdGFydCIsInJlcGxhY2UiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJmb3JtYXREYXRlVmFsdWVzIiwiZGF0ZUZvcm1hdHRlciIsInZhbHVlVHlwZXMiLCJmb3JtYXRPbmUiLCJwYXRoIiwid2FsayIsImNoYW5nZWQiLCJuZXh0IiwiaW5kZXgiLCJ3YWxrZWQiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleSIsImNoaWxkIiwib21pdE5pbFZhbHVlcyIsIl9pMiIsIl9PYmplY3Qka2V5czIiLCJ2IiwiY2xlYW5lZCIsInZhbHVlRW51bVRvT3B0aW9ucyIsInZhbHVlRW51bSIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJfc2xpY2VkVG9BcnJheTIiLCJsYWJlbCIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQ0hBLElBQUlFLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFD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QUM0RyxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDakYsR0FBRyxDQUFDLFVBQUFtRixJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxPQUFBQyxlQUFBLGFBQUFGLElBQUE7TUFBaEJWLEdBQUcsR0FBQVcsS0FBQTtNQUFFaEUsTUFBTSxHQUFBZ0UsS0FBQTtJQUNoRCxJQUFJLE9BQU9oRSxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRWtFLEtBQUssRUFBRWxFLE1BQU07UUFBRXBDLEtBQUssRUFBRXlGO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRWEsS0FBSyxFQUFFbEUsTUFBTSxDQUFDbUUsSUFBSTtNQUFFdkcsS0FBSyxFQUFFeUYsR0FBRztNQUFFcEQsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG4vLyBSZS1leHBvcnRlZCBmb3IgY29uc3VtZXJzIHRoYXQgaW1wb3J0IHRoZSBuZXN0ZWQtcGF0aCBoZWxwZXJzIGZyb20gYC4vdXRpbHNgXG4vLyAoUHJvRm9ybURlcGVuZGVuY3ksIFByb0Zvcm1MaXN0KS4gQ2Fub25pY2FsIGRlZmluaXRpb25zIGxpdmUgaW4gY29yZS9wYXRoVXRpbHMuXG5leHBvcnQgeyBnZXROZXN0ZWRWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfTtcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gc3RhYmxlU2VyaWFsaXplIOKAlCBkZXRlcm1pbmlzdGljIGRlZXAgc2VyaWFsaXphdGlvbiBmb3IgcGFyYW1zIGNvbXBhcmlzb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIHNlZW4pIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIC8vIERhdGUgbXVzdCBiZSBzZXJpYWxpemVkIGJ5IFZBTFVFOiB0aGUgZ2VuZXJpYyBvYmplY3QgYnJhbmNoIHdvdWxkIHNlZSBub1xuICAgIC8vIGVudW1lcmFibGUga2V5cyBhbmQgY29sbGFwc2UgZXZlcnkgRGF0ZSB0byAne30nLCBzbyBhIHBhcmFtcyBvYmplY3Qgd2hvc2VcbiAgICAvLyBvbmx5IGNoYW5nZSBpcyBhIGRhdGUgd291bGQgbmV2ZXIgdHJpZ2dlciBhIHJlcXVlc3QgcmUtZmV0Y2guXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgcmV0dXJuIGBEYXRlKCR7dmFsdWUuZ2V0VGltZSgpfSlgO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEpTT04uc3RyaW5naWZ5IHlpZWxkcyB1bmRlZmluZWQgZm9yIGZ1bmN0aW9ucy9zeW1ib2xzIOKAlCBmYWxsIGJhY2sgdG8gYVxuICAgICAgICAvLyAoc3RpbGwgZGV0ZXJtaW5pc3RpYykgU3RyaW5nKCkgc28gdGhlIHJlc3VsdCBhbHdheXMgY29uY2F0ZW5hdGVzLlxuICAgICAgICByZXR1cm4gKF9hID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICAvLyBgc2VlbmAgdHJhY2tzIHRoZSBjdXJyZW50IEFOQ0VTVE9SIGNoYWluIG9ubHkgKGVudHJpZXMgYXJlIHJlbW92ZWQgb24gdGhlXG4gICAgLy8gd2F5IGJhY2sgb3V0KSwgc28gc2hhcmVkLWJ1dC1hY3ljbGljIHJlZmVyZW5jZXMgc2VyaWFsaXplIG5vcm1hbGx5IGFuZFxuICAgIC8vIGdlbnVpbmUgY3ljbGVzIHNob3J0LWNpcmN1aXQgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyB0aGUgc3RhY2suXG4gICAgaWYgKHNlZW4uaGFzKHZhbHVlKSlcbiAgICAgICAgcmV0dXJuICdcIltDaXJjdWxhcl1cIic7XG4gICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgIGxldCByZXN1bHQ7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICdbJyArIHZhbHVlLm1hcCgoaXRlbSkgPT4gc2VyaWFsaXplV2l0aFNlZW4oaXRlbSwgc2VlbikpLmpvaW4oJywnKSArICddJztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocmVjb3JkKS5zb3J0KCk7XG4gICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAneycgK1xuICAgICAgICAgICAgICAgIGtleXMubWFwKChrKSA9PiBKU09OLnN0cmluZ2lmeShrKSArICc6JyArIHNlcmlhbGl6ZVdpdGhTZWVuKHJlY29yZFtrXSwgc2VlbikpLmpvaW4oJywnKSArXG4gICAgICAgICAgICAgICAgJ30nO1xuICAgIH1cbiAgICBzZWVuLmRlbGV0ZSh2YWx1ZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICByZXR1cm4gc2VyaWFsaXplV2l0aFNlZW4odmFsdWUsIG5ldyBXZWFrU2V0KCkpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSZWFkb25seSByZW5kZXJlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclRleHRSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJCb29sZWFuUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gdmFsdWUgPyAnWWVzJyA6ICdObyc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyTnVtZXJpY1JlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICBjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obnVtKSlcbiAgICAgICAgcmV0dXJuICctJztcbiAgICByZXR1cm4gU3RyaW5nKG51bSk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHJlc29sdmVXaWR0aCDigJQgY29udmVydCBuYW1lZCB3aWR0aCB0byBweCBvciBwYXNzIHRocm91Z2ggbnVtYmVyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlV2lkdGgod2lkdGgpIHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICByZXR1cm4gKF9hID0gV0lEVEhfU0laRV9NQVBbd2lkdGhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBXSURUSF9TSVpFX01BUC5tZDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gZXh0cmFjdEJ1dHRvblByb3BzIOKAlCBzYWZlbHkgZXh0cmFjdCBwcm9wcyBmcm9tIGJ1dHRvbiBjb25maWdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RCdXR0b25Qcm9wcyhjb25maWcpIHtcbiAgICBpZiAoY29uZmlnID09PSBmYWxzZSB8fCBjb25maWcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4geyBkaXNhYmxlZDogZmFsc2UsIHJlc3Q6IHt9IH07XG4gICAgfVxuICAgIGNvbnN0IHsgZGlzYWJsZWQgPSBmYWxzZSB9ID0gY29uZmlnLCByZXN0ID0gX19yZXN0KGNvbmZpZywgW1wiZGlzYWJsZWRcIl0pO1xuICAgIHJldHVybiB7IGRpc2FibGVkLCByZXN0IH07XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyDigJQgYXBwbHkgcmVnaXN0ZXJlZCBmaWVsZCB0cmFuc2Zvcm1zIHRvIGZvcm0gdmFsdWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHZhbHVlcywgdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh0cmFuc2Zvcm1zKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgLy8gQWxsIG5lc3RlZCB3cml0ZXMgZ28gdGhyb3VnaCBzZXROZXN0ZWRWYWx1ZSAoY2xvbmVzIGV2ZXJ5IG9iamVjdC9hcnJheSBvblxuICAgIC8vIHRoZSBwYXRoKSDigJQgYHZhbHVlc2AgaXMgdGhlIGxpdmUgZm9ybSBzdGF0ZSBhbmQgbXVzdCBuZXZlciBiZSBtdXRhdGVkO1xuICAgIC8vIG9ubHkgYHJlc3VsdGAgaXRzZWxmIChvdXIgb3duIHNoYWxsb3cgY29weSkgbWF5IGJlIHdyaXR0ZW4gZGlyZWN0bHkuXG4gICAgbGV0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIHJlYnVpbGQgdGhlIHBhcmVudCB3aXRob3V0IHRoZSBvcmlnaW5hbCBrZXksIG1lcmdlZFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKG5ld1BhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgsIG5ld1BhcmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGF0IHRoZSAocG9zc2libHkgbmVzdGVkKSBwYXRoXG4gICAgICAgICAgICByZXN1bHQgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSwgdHJhbnNmb3JtZWQpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3VsdCksIHsgW25hbWVdOiB0cmFuc2Zvcm1lZCB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhdGUgZm9ybWF0dGluZyAoZm9ybS1sZXZlbCBkYXRlRm9ybWF0dGVyLCBkZXBlbmRlbmN5LWZyZWUpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBjb25zdCBEQVRFX0ZPUk1BVCA9ICdZWVlZLU1NLUREJztcbmV4cG9ydCBjb25zdCBEQVRFX1RJTUVfRk9STUFUID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuLyoqIE1pbmltYWwgcGF0dGVybiBmb3JtYXR0ZXIgc3VwcG9ydGluZyBZWVlZIC8gTU0gLyBERCAvIEhIIC8gbW0gLyBzcyB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKSB7XG4gICAgY29uc3QgcGFkID0gKG4pID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBwYXR0ZXJuXG4gICAgICAgIC5yZXBsYWNlKC9ZWVlZL2csIFN0cmluZyhkYXRlLmdldEZ1bGxZZWFyKCkpKVxuICAgICAgICAucmVwbGFjZSgvTU0vZywgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpKVxuICAgICAgICAucmVwbGFjZSgvREQvZywgcGFkKGRhdGUuZ2V0RGF0ZSgpKSlcbiAgICAgICAgLnJlcGxhY2UoL0hIL2csIHBhZChkYXRlLmdldEhvdXJzKCkpKVxuICAgICAgICAucmVwbGFjZSgvbW0vZywgcGFkKGRhdGUuZ2V0TWludXRlcygpKSlcbiAgICAgICAgLnJlcGxhY2UoL3NzL2csIHBhZChkYXRlLmdldFNlY29uZHMoKSkpO1xufVxuLyoqXG4gKiBSZWN1cnNpdmVseSBzZXJpYWxpemUgZXZlcnkgYERhdGVgIGluIGB2YWx1ZXNgIGFjY29yZGluZyB0byBgZGF0ZUZvcm1hdHRlcmAuXG4gKiBXaXRoIGAnc3RyaW5nJ2AsIGZpZWxkcyByZWdpc3RlcmVkIGFzIGB2YWx1ZVR5cGU6ICdkYXRlVGltZSdgIHVzZVxuICogYFlZWVktTU0tREQgSEg6bW06c3NgLCBldmVyeXRoaW5nIGVsc2UgYFlZWVktTU0tRERgLiBVbnRvdWNoZWQgd2hlbiB0aGVcbiAqIGZvcm1hdHRlciBpcyBgZmFsc2VgLiBOb24tRGF0ZSB2YWx1ZXMgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVzKSB7XG4gICAgaWYgKGRhdGVGb3JtYXR0ZXIgPT09IGZhbHNlKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IGZvcm1hdE9uZSA9IChkYXRlLCBwYXRoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0ZUZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0dGVyKGRhdGUsIHBhdGgpO1xuICAgICAgICBpZiAoZGF0ZUZvcm1hdHRlciA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlRm9ybWF0dGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgcGF0dGVybiA9IHZhbHVlVHlwZXNbcGF0aF0gPT09ICdkYXRlVGltZScgPyBEQVRFX1RJTUVfRk9STUFUIDogREFURV9GT1JNQVQ7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZUJ5UGF0dGVybihkYXRlLCBkYXRlRm9ybWF0dGVyKTtcbiAgICB9O1xuICAgIGNvbnN0IHdhbGsgPSAodmFsdWUsIHBhdGgpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRPbmUodmFsdWUsIHBhdGgpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdhbGtlZCA9IHdhbGsoaXRlbSwgcGF0aCA/IGAke3BhdGh9LiR7aW5kZXh9YCA6IFN0cmluZyhpbmRleCkpO1xuICAgICAgICAgICAgICAgIGlmICh3YWxrZWQgIT09IGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybiB3YWxrZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdmFsdWVba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCB3YWxrZWQgPSB3YWxrKGNoaWxkLCBwYXRoID8gYCR7cGF0aH0uJHtrZXl9YCA6IGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKHdhbGtlZCAhPT0gY2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5leHRba2V5XSA9IHdhbGtlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkID8gbmV4dCA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiB3YWxrKHZhbHVlcywgJycpO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBvbWl0TmlsVmFsdWVzIOKAlCByZWN1cnNpdmVseSByZW1vdmUgbnVsbCAvIHVuZGVmaW5lZCAvICcnIGZyb20gb2JqZWN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBvbWl0TmlsVmFsdWVzKHZhbHVlcykge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHZhbHVlcykpIHtcbiAgICAgICAgY29uc3QgdiA9IHZhbHVlc1trZXldO1xuICAgICAgICBpZiAodiA9PT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gJycpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFuZWQgPSBvbWl0TmlsVmFsdWVzKHYpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGNsZWFuZWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IGNsZWFuZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHY7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlRW51bSkubWFwKChba2V5LCBjb25maWddKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZywgdmFsdWU6IGtleSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcudGV4dCwgdmFsdWU6IGtleSwgZGlzYWJsZWQ6IGNvbmZpZy5kaXNhYmxlZCB9O1xuICAgIH0pO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -180,8 +180,8 @@ function ProTableInner(props) {
|
|
|
180
180
|
});
|
|
181
181
|
var handleSearchReset = (0, _useMemoizedFn["default"])(function () {
|
|
182
182
|
var _a;
|
|
183
|
-
// Use the array form (`resetFields(names)`)
|
|
184
|
-
//
|
|
183
|
+
// Use the array form (`resetFields(names)`) to reset ONLY the search
|
|
184
|
+
// fields — a full reset would also wipe non-search form state.
|
|
185
185
|
(_a = formRef.current) === null || _a === void 0 ? void 0 : _a.resetFields(searchFieldNames);
|
|
186
186
|
setSearchParams({});
|
|
187
187
|
setPageInfo({
|
|
@@ -314,4 +314,4 @@ function ProTableInner(props) {
|
|
|
314
314
|
}
|
|
315
315
|
var ProTable = exports.ProTable = /*#__PURE__*/(0, _react.memo)(ProTableInner);
|
|
316
316
|
var _default = exports["default"] = ProTable;
|
|
317
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNyIsIl9QYWdpbmF0aW9uIiwiX1RhYmxlIiwiX1Byb0Zvcm0iLCJfY2xhc3NuYW1lcyIsIl9jb25zdGFudHMiLCJfdXNlRmV0Y2hEYXRhMiIsIl9nZW5Db2x1bW5zIiwiX2dlblNlYXJjaEZpZWxkcyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlYWRVcmxWYWx1ZXMiLCJzeW5jVG9VcmwiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJrZXkiLCJQcm9UYWJsZUlubmVyIiwicHJvcHMiLCJfdGhpcyIsIl9hIiwiX2IiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiQ1NTX1BSRUZJWCIsImNsYXNzTmFtZSIsImNvbHVtbnMiLCJyZXF1ZXN0IiwiY29udHJvbGxlZERhdGEiLCJkYXRhU291cmNlIiwiY29udHJvbGxlZExvYWRpbmciLCJsb2FkaW5nIiwiZGVmYXVsdERhdGEiLCJtYW51YWxSZXF1ZXN0IiwiZGVib3VuY2VUaW1lIiwicG9zdERhdGEiLCJwb2xsaW5nIiwiYmVmb3JlU2VhcmNoU3VibWl0IiwiY29sdW1uRW1wdHlUZXh0Iiwic2VhcmNoRm9ybVJlbmRlciIsIl9wcm9wcyRwYWdpbmF0aW9uIiwicGFnaW5hdGlvbiIsIl9wcm9wcyRzZWFyY2giLCJyb3dTZWxlY3Rpb24iLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJhY3Rpb25SZWYiLCJvbkxvYWQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJvblJlcXVlc3RFcnJvciIsIm9uQ2hhbmdlIiwicm93S2V5IiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiYm9yZGVyZWQiLCJzY3JvbGwiLCJzdGlja3kiLCJleHBhbmRhYmxlIiwiZW1wdHkiLCJ0YWJsZUxheW91dCIsInJvd0NsYXNzTmFtZSIsIm9uUm93Iiwic3VtbWFyeSIsImZvb3RlciIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwidGFibGVDb2x1bW5zIiwidXNlTWVtbyIsImdlbkNvbHVtbnMiLCJzZWFyY2hDZmciLCJ1bmRlZmluZWQiLCJfdXNlTWVtbyIsImdlblNlYXJjaEZpZWxkcyIsInNlYXJjaEZpZWxkcyIsImZpZWxkcyIsInNlYXJjaEluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwic2VhcmNoRmllbGROYW1lcyIsIm5hbWVzIiwiaGFzU2VhcmNoIiwibGVuZ3RoIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJ1c2VSZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJERUZBVUxUX1BBR0VfU0laRSIsImRlZmF1bHRDdXJyZW50IiwiY3VycmVudCIsIkRFRkFVTFRfQ1VSUkVOVCIsIm1hbnVhbCIsIl91c2VGZXRjaERhdGEiLCJ1c2VGZXRjaERhdGEiLCJmZXRjaGVkRGF0YSIsImZldGNoTG9hZGluZyIsInBhZ2VJbmZvIiwic2V0UGFnZUluZm8iLCJyZWxvYWQiLCJyZXNldCIsImhhbmRsZVNlYXJjaEZpbmlzaCIsInVzZU1lbW9pemVkRm4iLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJhcHBseVNlYXJjaFRyYW5zZm9ybXMiLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJTdHJpbmciLCJmaWx0ZXJzIiwiaGFuZGxlUGFnZUNoYW5nZSIsInBhZ2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImFjdGlvbiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJyZWxvYWRBbmRSZXN0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RvcCIsInNlYXJjaE5vZGUiLCJzZWFyY2hGb3JtIiwiX2pzeCIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdENvbGxhcHNlZCIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsInNlYXJjaENvbmZpZyIsInNlYXJjaFRleHQiLCJERUZBVUxUX1RFWFQiLCJyZXNldFRleHQiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9qc3hzIiwiVGFibGUiLCJQYWdpbmF0aW9uIiwidG90YWwiLCJQcm9UYWJsZSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFELHNCQUFBLENBQUFILE9B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TTtRQUNkQyxNQUFNLEVBQUVBLE1BQU07UUFDZEMsVUFBVSxFQUFFQSxVQUFVO1FBQ3RCQyxLQUFLLEVBQUVBLEtBQUs7UUFDWkMsV0FBVyxFQUFFQSxXQUFXO1FBQ3hCQyxZQUFZLEVBQUVBLFlBQVk7UUFDMUJDLEtBQUssRUFBRUEsS0FBSztRQUNaQyxPQUFPLEVBQUVBLE9BQU87UUFDaEJDLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQ2QsRUFFRHFDLFNBQVMsSUFDUixJQUFBZ0QsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLM0gsU0FBUyxFQUFFdUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUFBK0YsUUFBQSxFQUNuQyxJQUFBWCxlQUFBLEVBQUNjLHNCQUFVLEVBQUE7VUFDVEMsS0FBSyxFQUFFbkQsUUFBUSxDQUFDbUQsS0FBSztVQUNyQjFELE9BQU8sRUFBRU8sUUFBUSxDQUFDUCxPQUFPO1VBQ3pCSCxRQUFRLEVBQUVVLFFBQVEsQ0FBQ1YsUUFBUTtVQUMzQnBELFFBQVEsRUFBRW1GO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFTyxJQUFNK0IsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDckosYUFBYSxDQUF5QjtBQUFDLElBQUFzSixRQUFBLEdBQUFGLE9BQUEsY0FFckRELFFBQVEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9Qcm9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vVGFibGUnO1xuaW1wb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DVVJSRU5ULCBERUZBVUxUX1BBR0VfU0laRSwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlRmV0Y2hEYXRhIH0gZnJvbSAnLi91c2VGZXRjaERhdGEnO1xuaW1wb3J0IHsgZ2VuQ29sdW1ucyB9IGZyb20gJy4vY29yZS9nZW5Db2x1bW5zJztcbmltcG9ydCB7IGFwcGx5U2VhcmNoVHJhbnNmb3JtcywgZ2VuU2VhcmNoRmllbGRzIH0gZnJvbSAnLi9jb3JlL2dlblNlYXJjaEZpZWxkcyc7XG4vKiogUmVhZCB0aGUgY3VycmVudCBVUkwgcXVlcnkgc3RyaW5nIGludG8gc2VhcmNoIHZhbHVlcywgYXBwbHlpbmcgdGhlIGAnZ2V0J2AgdHJhbnNmb3JtLiAqL1xuZnVuY3Rpb24gcmVhZFVybFZhbHVlcyhzeW5jVG9VcmwpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJyA/IHN5bmNUb1VybChwYXJhbXMsICdnZXQnKSA6IHBhcmFtcztcbn1cbmZ1bmN0aW9uIFByb1RhYmxlSW5uZXIocHJvcHMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gQ1NTX1BSRUZJWCwgY2xhc3NOYW1lLCBjb2x1bW5zLCByZXF1ZXN0LCBwYXJhbXMsIGRhdGFTb3VyY2U6IGNvbnRyb2xsZWREYXRhLCBsb2FkaW5nOiBjb250cm9sbGVkTG9hZGluZywgZGVmYXVsdERhdGEsIG1hbnVhbFJlcXVlc3QsIGRlYm91bmNlVGltZSwgcG9zdERhdGEsIHBvbGxpbmcsIGJlZm9yZVNlYXJjaFN1Ym1pdCwgY29sdW1uRW1wdHlUZXh0LCBzZWFyY2hGb3JtUmVuZGVyLCBwYWdpbmF0aW9uID0ge30sIHNlYXJjaCA9IHt9LCByb3dTZWxlY3Rpb24sIHNpemUgPSAnc21hbGwnLCBhY3Rpb25SZWYsIG9uTG9hZCwgb25Mb2FkaW5nQ2hhbmdlLCBvblJlcXVlc3RFcnJvciwgb25DaGFuZ2UsIHJvd0tleSwgdmFyaWFudCA9ICdzdHJva2UnLCBib3JkZXJlZCwgc2Nyb2xsLCBzdGlja3ksIGV4cGFuZGFibGUsIGVtcHR5LCB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lLCBvblJvdywgc3VtbWFyeSwgZm9vdGVyLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCB0YWJsZUNvbHVtbnMgPSB1c2VNZW1vKCgpID0+IGdlbkNvbHVtbnMoY29sdW1ucywgY29sdW1uRW1wdHlUZXh0KSwgW2NvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dF0pO1xuICAgIC8vIOKUgOKUgCBzZWFyY2ggZm9ybSAoYXV0by1nZW5lcmF0ZWQgZnJvbSBjb2x1bW5zKSDilIDilIBcbiAgICBjb25zdCBzZWFyY2hDZmcgPSBzZWFyY2ggPT09IGZhbHNlID8gdW5kZWZpbmVkIDogc2VhcmNoO1xuICAgIGNvbnN0IHsgZmllbGRzOiBzZWFyY2hGaWVsZHMsIGluaXRpYWxWYWx1ZXM6IHNlYXJjaEluaXRpYWxWYWx1ZXMsIG5hbWVzOiBzZWFyY2hGaWVsZE5hbWVzIH0gPSB1c2VNZW1vKCgpID0+IGdlblNlYXJjaEZpZWxkcyhjb2x1bW5zKSwgW2NvbHVtbnNdKTtcbiAgICBjb25zdCBoYXNTZWFyY2ggPSBzZWFyY2ggIT09IGZhbHNlICYmIHNlYXJjaEZpZWxkcy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHN5bmNUb1VybCA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zeW5jVG9Vcmw7XG4gICAgLy8gU2VlZCBpbml0aWFsIHZhbHVlcyAoYW5kIHRoZSBmaXJzdCByZXF1ZXN0KSBmcm9tIHRoZSBVUkwgd2hlbiBzeW5jVG9VcmwgaXMgb24uXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4gKHN5bmNUb1VybCA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2VhcmNoSW5pdGlhbFZhbHVlcyksIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSkgOiBzZWFyY2hJbml0aWFsVmFsdWVzKSwgXG4gICAgLy8gbW91bnQtb25seSBzbmFwc2hvdCBvZiB0aGUgVVJMXG4gICAgW3NlYXJjaEluaXRpYWxWYWx1ZXNdKTtcbiAgICBjb25zdCBbc2VhcmNoUGFyYW1zLCBzZXRTZWFyY2hQYXJhbXNdID0gdXNlU2FmZVN0YXRlKCgpID0+IG1lcmdlZEluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IGZvcm1SZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICAvLyDilIDilIAgc2VydmVyIHNvcnQgLyBmaWx0ZXIg4pSA4pSAXG4gICAgY29uc3QgW3NvcnQsIHNldFNvcnRdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbZmlsdGVyLCBzZXRGaWx0ZXJdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICAvLyDilIDilIAgcGFnaW5hdGlvbiBjb25maWcg4pSA4pSAXG4gICAgY29uc3QgcGFnaW5hdGVkID0gcGFnaW5hdGlvbiAhPT0gZmFsc2U7XG4gICAgY29uc3QgZGVmYXVsdFBhZ2VTaXplID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0UGFnZVNpemUpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24ucGFnZVNpemUpIHx8IERFRkFVTFRfUEFHRV9TSVpFO1xuICAgIGNvbnN0IGRlZmF1bHRDdXJyZW50ID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0Q3VycmVudCkgfHwgKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5jdXJyZW50KSB8fCBERUZBVUxUX0NVUlJFTlQ7XG4gICAgY29uc3QgbWFudWFsID0gY29udHJvbGxlZERhdGEgIT09IHVuZGVmaW5lZCB8fCAhcmVxdWVzdDtcbiAgICBjb25zdCB7IGRhdGFTb3VyY2U6IGZldGNoZWREYXRhLCBsb2FkaW5nOiBmZXRjaExvYWRpbmcsIHBhZ2VJbmZvLCBzZXRQYWdlSW5mbywgcmVsb2FkLCByZXNldCB9ID0gdXNlRmV0Y2hEYXRhKHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgbWFudWFsLFxuICAgICAgICBtYW51YWxSZXF1ZXN0LFxuICAgICAgICBkZWJvdW5jZVRpbWUsXG4gICAgICAgIHBvc3REYXRhLFxuICAgICAgICBwb2xsaW5nLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGRlZmF1bHREYXRhLFxuICAgICAgICBwYWdpbmF0ZWQsXG4gICAgICAgIGRlZmF1bHRDdXJyZW50LFxuICAgICAgICBkZWZhdWx0UGFnZVNpemUsXG4gICAgICAgIHNlYXJjaFBhcmFtcyxcbiAgICAgICAgc29ydCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgICBvbkxvYWQsXG4gICAgICAgIG9uTG9hZGluZ0NoYW5nZSxcbiAgICAgICAgb25SZXF1ZXN0RXJyb3IsXG4gICAgfSk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IGNvbnRyb2xsZWREYXRhICE9PSBudWxsICYmIGNvbnRyb2xsZWREYXRhICE9PSB2b2lkIDAgPyBjb250cm9sbGVkRGF0YSA6IGZldGNoZWREYXRhO1xuICAgIGNvbnN0IGxvYWRpbmcgPSBjb250cm9sbGVkTG9hZGluZyAhPT0gbnVsbCAmJiBjb250cm9sbGVkTG9hZGluZyAhPT0gdm9pZCAwID8gY29udHJvbGxlZExvYWRpbmcgOiAobWFudWFsID8gZmFsc2UgOiBmZXRjaExvYWRpbmcpO1xuICAgIC8vIOKUgOKUgCBoYW5kbGVycyDilIDilIBcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcGVyQ29sdW1uID0gYXBwbHlTZWFyY2hUcmFuc2Zvcm1zKHZhbHVlcywgY29sdW1ucyk7XG4gICAgICAgIGNvbnN0IGZpbmFsUGFyYW1zID0gYmVmb3JlU2VhcmNoU3VibWl0ID8gYmVmb3JlU2VhcmNoU3VibWl0KHBlckNvbHVtbikgOiBwZXJDb2x1bW47XG4gICAgICAgIHNldFNlYXJjaFBhcmFtcyhmaW5hbFBhcmFtcyk7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAvLyBVc2UgdGhlIGFycmF5IGZvcm0gKGByZXNldEZpZWxkcyhuYW1lcylgKSDigJQgdGhlIG5vLWFyZyBmb3JtIHJlLWludm9rZXMgdGhlXG4gICAgICAgIC8vIGZvcm0ncyBvd24gYG9uUmVzZXRgLCB3aGljaCBsb29wcyBiYWNrIGhlcmUgYW5kIHJlY3Vyc2VzIGluZmluaXRlbHkuXG4gICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoe30pO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhYmxlQ2hhbmdlID0gdXNlTWVtb2l6ZWRGbigobWV0YSkgPT4ge1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29sdW1uS2V5LCBvcmRlciB9ID0gbWV0YS5zb3J0ZXI7XG4gICAgICAgICAgICBzZXRTb3J0KGNvbHVtbktleSAmJiBvcmRlciA/IHsgW1N0cmluZyhjb2x1bW5LZXkpXTogb3JkZXIgfSA6IHt9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0RmlsdGVyKG1ldGEuZmlsdGVycyk7XG4gICAgICAgIGlmIChtZXRhLnNvcnRlciB8fCBtZXRhLmZpbHRlcnMpXG4gICAgICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobWV0YSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUGFnZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKHBhZ2UsIHBhZ2VTaXplKSA9PiB7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogcGFnZSwgcGFnZVNpemUgfSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZSh7XG4gICAgICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogZGF0YVNvdXJjZSxcbiAgICAgICAgICAgIGFjdGlvbjogJ3BhZ2luYXRlJyxcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHsgY3VycmVudDogcGFnZSwgcGFnZVNpemUgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIGltcGVyYXRpdmUgaGFuZGxlIOKUgOKUgFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUoYWN0aW9uUmVmLCAoKSA9PiAoe1xuICAgICAgICByZWxvYWQ6ICgpID0+IHJlbG9hZCgpLFxuICAgICAgICByZWxvYWRBbmRSZXN0OiAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICAgICAgeWllbGQgcmVsb2FkKCk7XG4gICAgICAgIH0pLFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgKF9hID0gZm9ybVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzZXRGaWVsZHMoc2VhcmNoRmllbGROYW1lcyk7XG4gICAgICAgICAgICBzZXRTZWFyY2hQYXJhbXMoc2VhcmNoSW5pdGlhbFZhbHVlcyk7XG4gICAgICAgICAgICBzZXRTb3J0KHt9KTtcbiAgICAgICAgICAgIHNldEZpbHRlcih7fSk7XG4gICAgICAgICAgICByZXNldCgpO1xuICAgICAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0UGFnZUluZm8sXG4gICAgfSkpO1xuICAgIC8vIOKUgOKUgCBzZWFyY2ggZm9ybSBub2RlIChvbmx5IGJ1aWx0IHdoZW4gdGhlcmUgYXJlIHNlYXJjaGFibGUgY29sdW1ucykg4pSA4pSAXG4gICAgbGV0IHNlYXJjaE5vZGUgPSBudWxsO1xuICAgIGlmIChoYXNTZWFyY2gpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoRm9ybSA9IChfanN4KFF1ZXJ5RmlsdGVyLCB7IGZvcm1SZWY6IGZvcm1SZWYsIHNpemU6IFwic21hbGxcIiwgaW5pdGlhbFZhbHVlczogbWVyZ2VkSW5pdGlhbFZhbHVlcywgZGVmYXVsdENvbGxhcHNlZDogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xsYXBzZWQsIGRlZmF1bHRDb2xzTnVtYmVyOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuZGVmYXVsdENvbHNOdW1iZXIsIGxhYmVsV2lkdGg6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5sYWJlbFdpZHRoLCBzeW5jVG9Vcmw6IHN5bmNUb1VybCwgc2VhcmNoQ29uZmlnOiB7XG4gICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogKF9hID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnNlYXJjaFRleHQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERFRkFVTFRfVEVYVC5zZWFyY2gsXG4gICAgICAgICAgICAgICAgcmVzZXRUZXh0OiAoX2IgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcucmVzZXRUZXh0KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBERUZBVUxUX1RFWFQucmVzZXQsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICB9LCBvbkZpbmlzaDogaGFuZGxlU2VhcmNoRmluaXNoLCBvblJlc2V0OiBoYW5kbGVTZWFyY2hSZXNldCwgY2hpbGRyZW46IHNlYXJjaEZpZWxkcyB9KSk7XG4gICAgICAgIHNlYXJjaE5vZGUgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc2VhcmNoJyksIGNoaWxkcmVuOiBzZWFyY2hGb3JtUmVuZGVyID8gc2VhcmNoRm9ybVJlbmRlcihzZWFyY2hGb3JtKSA6IHNlYXJjaEZvcm0gfSkpO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHVuZGVmaW5lZCwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtzZWFyY2hOb2RlLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGFpbmVyJyksIGNoaWxkcmVuOiBbX2pzeChUYWJsZSwgeyByb3dLZXk6IHJvd0tleSwgY29sdW1uczogdGFibGVDb2x1bW5zLCBkYXRhU291cmNlOiBkYXRhU291cmNlLCBsb2FkaW5nOiBsb2FkaW5nLCBzaXplOiBzaXplLCBwYWdpbmF0aW9uOiBmYWxzZSwgcm93U2VsZWN0aW9uOiByb3dTZWxlY3Rpb24sIG9uQ2hhbmdlOiBoYW5kbGVUYWJsZUNoYW5nZSwgdmFyaWFudDogdmFyaWFudCwgYm9yZGVyZWQ6IGJvcmRlcmVkLCBzY3JvbGw6IHNjcm9sbCwgc3RpY2t5OiBzdGlja3ksIGV4cGFuZGFibGU6IGV4cGFuZGFibGUsIGVtcHR5OiBlbXB0eSwgdGFibGVMYXlvdXQ6IHRhYmxlTGF5b3V0LCByb3dDbGFzc05hbWU6IHJvd0NsYXNzTmFtZSwgb25Sb3c6IG9uUm93LCBzdW1tYXJ5OiBzdW1tYXJ5LCBmb290ZXI6IGZvb3RlciB9KSwgcGFnaW5hdGVkICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYWdpbmF0aW9uJyksIGNoaWxkcmVuOiBfanN4KFBhZ2luYXRpb24sIHsgdG90YWw6IHBhZ2VJbmZvLnRvdGFsLCBjdXJyZW50OiBwYWdlSW5mby5jdXJyZW50LCBwYWdlU2l6ZTogcGFnZUluZm8ucGFnZVNpemUsIG9uQ2hhbmdlOiBoYW5kbGVQYWdlQ2hhbmdlIH0pIH0pKV0gfSldIH0pKTtcbn1cbmV4cG9ydCBjb25zdCBQcm9UYWJsZSA9IG1lbW8oUHJvVGFibGVJbm5lcik7XG5leHBvcnQgZGVmYXVsdCBQcm9UYWJsZTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNyIsIl9QYWdpbmF0aW9uIiwiX1RhYmxlIiwiX1Byb0Zvcm0iLCJfY2xhc3NuYW1lcyIsIl9jb25zdGFudHMiLCJfdXNlRmV0Y2hEYXRhMiIsIl9nZW5Db2x1bW5zIiwiX2dlblNlYXJjaEZpZWxkcyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlYWRVcmxWYWx1ZXMiLCJzeW5jVG9VcmwiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJrZXkiLCJQcm9UYWJsZUlubmVyIiwicHJvcHMiLCJfdGhpcyIsIl9hIiwiX2IiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiQ1NTX1BSRUZJWCIsImNsYXNzTmFtZSIsImNvbHVtbnMiLCJyZXF1ZXN0IiwiY29udHJvbGxlZERhdGEiLCJkYXRhU291cmNlIiwiY29udHJvbGxlZExvYWRpbmciLCJsb2FkaW5nIiwiZGVmYXVsdERhdGEiLCJtYW51YWxSZXF1ZXN0IiwiZGVib3VuY2VUaW1lIiwicG9zdERhdGEiLCJwb2xsaW5nIiwiYmVmb3JlU2VhcmNoU3VibWl0IiwiY29sdW1uRW1wdHlUZXh0Iiwic2VhcmNoRm9ybVJlbmRlciIsIl9wcm9wcyRwYWdpbmF0aW9uIiwicGFnaW5hdGlvbiIsIl9wcm9wcyRzZWFyY2giLCJyb3dTZWxlY3Rpb24iLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJhY3Rpb25SZWYiLCJvbkxvYWQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJvblJlcXVlc3RFcnJvciIsIm9uQ2hhbmdlIiwicm93S2V5IiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiYm9yZGVyZWQiLCJzY3JvbGwiLCJzdGlja3kiLCJleHBhbmRhYmxlIiwiZW1wdHkiLCJ0YWJsZUxheW91dCIsInJvd0NsYXNzTmFtZSIsIm9uUm93Iiwic3VtbWFyeSIsImZvb3RlciIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwidGFibGVDb2x1bW5zIiwidXNlTWVtbyIsImdlbkNvbHVtbnMiLCJzZWFyY2hDZmciLCJ1bmRlZmluZWQiLCJfdXNlTWVtbyIsImdlblNlYXJjaEZpZWxkcyIsInNlYXJjaEZpZWxkcyIsImZpZWxkcyIsInNlYXJjaEluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwic2VhcmNoRmllbGROYW1lcyIsIm5hbWVzIiwiaGFzU2VhcmNoIiwibGVuZ3RoIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJ1c2VSZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJERUZBVUxUX1BBR0VfU0laRSIsImRlZmF1bHRDdXJyZW50IiwiY3VycmVudCIsIkRFRkFVTFRfQ1VSUkVOVCIsIm1hbnVhbCIsIl91c2VGZXRjaERhdGEiLCJ1c2VGZXRjaERhdGEiLCJmZXRjaGVkRGF0YSIsImZldGNoTG9hZGluZyIsInBhZ2VJbmZvIiwic2V0UGFnZUluZm8iLCJyZWxvYWQiLCJyZXNldCIsImhhbmRsZVNlYXJjaEZpbmlzaCIsInVzZU1lbW9pemVkRm4iLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJhcHBseVNlYXJjaFRyYW5zZm9ybXMiLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJTdHJpbmciLCJmaWx0ZXJzIiwiaGFuZGxlUGFnZUNoYW5nZSIsInBhZ2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImFjdGlvbiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJyZWxvYWRBbmRSZXN0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RvcCIsInNlYXJjaE5vZGUiLCJzZWFyY2hGb3JtIiwiX2pzeCIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdENvbGxhcHNlZCIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsInNlYXJjaENvbmZpZyIsInNlYXJjaFRleHQiLCJERUZBVUxUX1RFWFQiLCJyZXNldFRleHQiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9qc3hzIiwiVGFibGUiLCJQYWdpbmF0aW9uIiwidG90YWwiLCJQcm9UYWJsZSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFELHNCQUFBLENBQUFILE9B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TTtRQUNkQyxNQUFNLEVBQUVBLE1BQU07UUFDZEMsVUFBVSxFQUFFQSxVQUFVO1FBQ3RCQyxLQUFLLEVBQUVBLEtBQUs7UUFDWkMsV0FBVyxFQUFFQSxXQUFXO1FBQ3hCQyxZQUFZLEVBQUVBLFlBQVk7UUFDMUJDLEtBQUssRUFBRUEsS0FBSztRQUNaQyxPQUFPLEVBQUVBLE9BQU87UUFDaEJDLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQ2QsRUFFRHFDLFNBQVMsSUFDUixJQUFBZ0QsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLM0gsU0FBUyxFQUFFdUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUFBK0YsUUFBQSxFQUNuQyxJQUFBWCxlQUFBLEVBQUNjLHNCQUFVLEVBQUE7VUFDVEMsS0FBSyxFQUFFbkQsUUFBUSxDQUFDbUQsS0FBSztVQUNyQjFELE9BQU8sRUFBRU8sUUFBUSxDQUFDUCxPQUFPO1VBQ3pCSCxRQUFRLEVBQUVVLFFBQVEsQ0FBQ1YsUUFBUTtVQUMzQnBELFFBQVEsRUFBRW1GO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFTyxJQUFNK0IsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDckosYUFBYSxDQUF5QjtBQUFDLElBQUFzSixRQUFBLEdBQUFGLE9BQUEsY0FFckRELFFBQVEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9Qcm9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vVGFibGUnO1xuaW1wb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DVVJSRU5ULCBERUZBVUxUX1BBR0VfU0laRSwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlRmV0Y2hEYXRhIH0gZnJvbSAnLi91c2VGZXRjaERhdGEnO1xuaW1wb3J0IHsgZ2VuQ29sdW1ucyB9IGZyb20gJy4vY29yZS9nZW5Db2x1bW5zJztcbmltcG9ydCB7IGFwcGx5U2VhcmNoVHJhbnNmb3JtcywgZ2VuU2VhcmNoRmllbGRzIH0gZnJvbSAnLi9jb3JlL2dlblNlYXJjaEZpZWxkcyc7XG4vKiogUmVhZCB0aGUgY3VycmVudCBVUkwgcXVlcnkgc3RyaW5nIGludG8gc2VhcmNoIHZhbHVlcywgYXBwbHlpbmcgdGhlIGAnZ2V0J2AgdHJhbnNmb3JtLiAqL1xuZnVuY3Rpb24gcmVhZFVybFZhbHVlcyhzeW5jVG9VcmwpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJyA/IHN5bmNUb1VybChwYXJhbXMsICdnZXQnKSA6IHBhcmFtcztcbn1cbmZ1bmN0aW9uIFByb1RhYmxlSW5uZXIocHJvcHMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gQ1NTX1BSRUZJWCwgY2xhc3NOYW1lLCBjb2x1bW5zLCByZXF1ZXN0LCBwYXJhbXMsIGRhdGFTb3VyY2U6IGNvbnRyb2xsZWREYXRhLCBsb2FkaW5nOiBjb250cm9sbGVkTG9hZGluZywgZGVmYXVsdERhdGEsIG1hbnVhbFJlcXVlc3QsIGRlYm91bmNlVGltZSwgcG9zdERhdGEsIHBvbGxpbmcsIGJlZm9yZVNlYXJjaFN1Ym1pdCwgY29sdW1uRW1wdHlUZXh0LCBzZWFyY2hGb3JtUmVuZGVyLCBwYWdpbmF0aW9uID0ge30sIHNlYXJjaCA9IHt9LCByb3dTZWxlY3Rpb24sIHNpemUgPSAnc21hbGwnLCBhY3Rpb25SZWYsIG9uTG9hZCwgb25Mb2FkaW5nQ2hhbmdlLCBvblJlcXVlc3RFcnJvciwgb25DaGFuZ2UsIHJvd0tleSwgdmFyaWFudCA9ICdzdHJva2UnLCBib3JkZXJlZCwgc2Nyb2xsLCBzdGlja3ksIGV4cGFuZGFibGUsIGVtcHR5LCB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lLCBvblJvdywgc3VtbWFyeSwgZm9vdGVyLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCB0YWJsZUNvbHVtbnMgPSB1c2VNZW1vKCgpID0+IGdlbkNvbHVtbnMoY29sdW1ucywgY29sdW1uRW1wdHlUZXh0KSwgW2NvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dF0pO1xuICAgIC8vIOKUgOKUgCBzZWFyY2ggZm9ybSAoYXV0by1nZW5lcmF0ZWQgZnJvbSBjb2x1bW5zKSDilIDilIBcbiAgICBjb25zdCBzZWFyY2hDZmcgPSBzZWFyY2ggPT09IGZhbHNlID8gdW5kZWZpbmVkIDogc2VhcmNoO1xuICAgIGNvbnN0IHsgZmllbGRzOiBzZWFyY2hGaWVsZHMsIGluaXRpYWxWYWx1ZXM6IHNlYXJjaEluaXRpYWxWYWx1ZXMsIG5hbWVzOiBzZWFyY2hGaWVsZE5hbWVzIH0gPSB1c2VNZW1vKCgpID0+IGdlblNlYXJjaEZpZWxkcyhjb2x1bW5zKSwgW2NvbHVtbnNdKTtcbiAgICBjb25zdCBoYXNTZWFyY2ggPSBzZWFyY2ggIT09IGZhbHNlICYmIHNlYXJjaEZpZWxkcy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHN5bmNUb1VybCA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zeW5jVG9Vcmw7XG4gICAgLy8gU2VlZCBpbml0aWFsIHZhbHVlcyAoYW5kIHRoZSBmaXJzdCByZXF1ZXN0KSBmcm9tIHRoZSBVUkwgd2hlbiBzeW5jVG9VcmwgaXMgb24uXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4gKHN5bmNUb1VybCA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2VhcmNoSW5pdGlhbFZhbHVlcyksIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSkgOiBzZWFyY2hJbml0aWFsVmFsdWVzKSwgXG4gICAgLy8gbW91bnQtb25seSBzbmFwc2hvdCBvZiB0aGUgVVJMXG4gICAgW3NlYXJjaEluaXRpYWxWYWx1ZXNdKTtcbiAgICBjb25zdCBbc2VhcmNoUGFyYW1zLCBzZXRTZWFyY2hQYXJhbXNdID0gdXNlU2FmZVN0YXRlKCgpID0+IG1lcmdlZEluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IGZvcm1SZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICAvLyDilIDilIAgc2VydmVyIHNvcnQgLyBmaWx0ZXIg4pSA4pSAXG4gICAgY29uc3QgW3NvcnQsIHNldFNvcnRdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbZmlsdGVyLCBzZXRGaWx0ZXJdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICAvLyDilIDilIAgcGFnaW5hdGlvbiBjb25maWcg4pSA4pSAXG4gICAgY29uc3QgcGFnaW5hdGVkID0gcGFnaW5hdGlvbiAhPT0gZmFsc2U7XG4gICAgY29uc3QgZGVmYXVsdFBhZ2VTaXplID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0UGFnZVNpemUpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24ucGFnZVNpemUpIHx8IERFRkFVTFRfUEFHRV9TSVpFO1xuICAgIGNvbnN0IGRlZmF1bHRDdXJyZW50ID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0Q3VycmVudCkgfHwgKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5jdXJyZW50KSB8fCBERUZBVUxUX0NVUlJFTlQ7XG4gICAgY29uc3QgbWFudWFsID0gY29udHJvbGxlZERhdGEgIT09IHVuZGVmaW5lZCB8fCAhcmVxdWVzdDtcbiAgICBjb25zdCB7IGRhdGFTb3VyY2U6IGZldGNoZWREYXRhLCBsb2FkaW5nOiBmZXRjaExvYWRpbmcsIHBhZ2VJbmZvLCBzZXRQYWdlSW5mbywgcmVsb2FkLCByZXNldCB9ID0gdXNlRmV0Y2hEYXRhKHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgbWFudWFsLFxuICAgICAgICBtYW51YWxSZXF1ZXN0LFxuICAgICAgICBkZWJvdW5jZVRpbWUsXG4gICAgICAgIHBvc3REYXRhLFxuICAgICAgICBwb2xsaW5nLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGRlZmF1bHREYXRhLFxuICAgICAgICBwYWdpbmF0ZWQsXG4gICAgICAgIGRlZmF1bHRDdXJyZW50LFxuICAgICAgICBkZWZhdWx0UGFnZVNpemUsXG4gICAgICAgIHNlYXJjaFBhcmFtcyxcbiAgICAgICAgc29ydCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgICBvbkxvYWQsXG4gICAgICAgIG9uTG9hZGluZ0NoYW5nZSxcbiAgICAgICAgb25SZXF1ZXN0RXJyb3IsXG4gICAgfSk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IGNvbnRyb2xsZWREYXRhICE9PSBudWxsICYmIGNvbnRyb2xsZWREYXRhICE9PSB2b2lkIDAgPyBjb250cm9sbGVkRGF0YSA6IGZldGNoZWREYXRhO1xuICAgIGNvbnN0IGxvYWRpbmcgPSBjb250cm9sbGVkTG9hZGluZyAhPT0gbnVsbCAmJiBjb250cm9sbGVkTG9hZGluZyAhPT0gdm9pZCAwID8gY29udHJvbGxlZExvYWRpbmcgOiAobWFudWFsID8gZmFsc2UgOiBmZXRjaExvYWRpbmcpO1xuICAgIC8vIOKUgOKUgCBoYW5kbGVycyDilIDilIBcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcGVyQ29sdW1uID0gYXBwbHlTZWFyY2hUcmFuc2Zvcm1zKHZhbHVlcywgY29sdW1ucyk7XG4gICAgICAgIGNvbnN0IGZpbmFsUGFyYW1zID0gYmVmb3JlU2VhcmNoU3VibWl0ID8gYmVmb3JlU2VhcmNoU3VibWl0KHBlckNvbHVtbikgOiBwZXJDb2x1bW47XG4gICAgICAgIHNldFNlYXJjaFBhcmFtcyhmaW5hbFBhcmFtcyk7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAvLyBVc2UgdGhlIGFycmF5IGZvcm0gKGByZXNldEZpZWxkcyhuYW1lcylgKSB0byByZXNldCBPTkxZIHRoZSBzZWFyY2hcbiAgICAgICAgLy8gZmllbGRzIOKAlCBhIGZ1bGwgcmVzZXQgd291bGQgYWxzbyB3aXBlIG5vbi1zZWFyY2ggZm9ybSBzdGF0ZS5cbiAgICAgICAgKF9hID0gZm9ybVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzZXRGaWVsZHMoc2VhcmNoRmllbGROYW1lcyk7XG4gICAgICAgIHNldFNlYXJjaFBhcmFtcyh7fSk7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChtZXRhKSA9PiB7XG4gICAgICAgIGlmIChtZXRhLnNvcnRlcikge1xuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5LZXksIG9yZGVyIH0gPSBtZXRhLnNvcnRlcjtcbiAgICAgICAgICAgIHNldFNvcnQoY29sdW1uS2V5ICYmIG9yZGVyID8geyBbU3RyaW5nKGNvbHVtbktleSldOiBvcmRlciB9IDoge30pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRhLmZpbHRlcnMpXG4gICAgICAgICAgICBzZXRGaWx0ZXIobWV0YS5maWx0ZXJzKTtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyIHx8IG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShtZXRhKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVQYWdlQ2hhbmdlID0gdXNlTWVtb2l6ZWRGbigocGFnZSwgcGFnZVNpemUpID0+IHtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBwYWdlLCBwYWdlU2l6ZSB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBkYXRhU291cmNlLFxuICAgICAgICAgICAgYWN0aW9uOiAncGFnaW5hdGUnLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiBwYWdlLCBwYWdlU2l6ZSB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgaW1wZXJhdGl2ZSBoYW5kbGUg4pSA4pSAXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShhY3Rpb25SZWYsICgpID0+ICh7XG4gICAgICAgIHJlbG9hZDogKCkgPT4gcmVsb2FkKCksXG4gICAgICAgIHJlbG9hZEFuZFJlc3Q6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgICAgICB5aWVsZCByZWxvYWQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgICAgIHNldFNlYXJjaFBhcmFtcyhzZWFyY2hJbml0aWFsVmFsdWVzKTtcbiAgICAgICAgICAgIHNldFNvcnQoe30pO1xuICAgICAgICAgICAgc2V0RmlsdGVyKHt9KTtcbiAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRQYWdlSW5mbyxcbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIHNlYXJjaCBmb3JtIG5vZGUgKG9ubHkgYnVpbHQgd2hlbiB0aGVyZSBhcmUgc2VhcmNoYWJsZSBjb2x1bW5zKSDilIDilIBcbiAgICBsZXQgc2VhcmNoTm9kZSA9IG51bGw7XG4gICAgaWYgKGhhc1NlYXJjaCkge1xuICAgICAgICBjb25zdCBzZWFyY2hGb3JtID0gKF9qc3goUXVlcnlGaWx0ZXIsIHsgZm9ybVJlZjogZm9ybVJlZiwgc2l6ZTogXCJzbWFsbFwiLCBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLCBkZWZhdWx0Q29sbGFwc2VkOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuZGVmYXVsdENvbGxhcHNlZCwgZGVmYXVsdENvbHNOdW1iZXI6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sc051bWJlciwgbGFiZWxXaWR0aDogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmxhYmVsV2lkdGgsIHN5bmNUb1VybDogc3luY1RvVXJsLCBzZWFyY2hDb25maWc6IHtcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0OiAoX2EgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaCxcbiAgICAgICAgICAgICAgICByZXNldFRleHQ6IChfYiA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldCxcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIH0sIG9uRmluaXNoOiBoYW5kbGVTZWFyY2hGaW5pc2gsIG9uUmVzZXQ6IGhhbmRsZVNlYXJjaFJlc2V0LCBjaGlsZHJlbjogc2VhcmNoRmllbGRzIH0pKTtcbiAgICAgICAgc2VhcmNoTm9kZSA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzZWFyY2gnKSwgY2hpbGRyZW46IHNlYXJjaEZvcm1SZW5kZXIgPyBzZWFyY2hGb3JtUmVuZGVyKHNlYXJjaEZvcm0pIDogc2VhcmNoRm9ybSB9KSk7XG4gICAgfVxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW3NlYXJjaE5vZGUsIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250YWluZXInKSwgY2hpbGRyZW46IFtfanN4KFRhYmxlLCB7IHJvd0tleTogcm93S2V5LCBjb2x1bW5zOiB0YWJsZUNvbHVtbnMsIGRhdGFTb3VyY2U6IGRhdGFTb3VyY2UsIGxvYWRpbmc6IGxvYWRpbmcsIHNpemU6IHNpemUsIHBhZ2luYXRpb246IGZhbHNlLCByb3dTZWxlY3Rpb246IHJvd1NlbGVjdGlvbiwgb25DaGFuZ2U6IGhhbmRsZVRhYmxlQ2hhbmdlLCB2YXJpYW50OiB2YXJpYW50LCBib3JkZXJlZDogYm9yZGVyZWQsIHNjcm9sbDogc2Nyb2xsLCBzdGlja3k6IHN0aWNreSwgZXhwYW5kYWJsZTogZXhwYW5kYWJsZSwgZW1wdHk6IGVtcHR5LCB0YWJsZUxheW91dDogdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZTogcm93Q2xhc3NOYW1lLCBvblJvdzogb25Sb3csIHN1bW1hcnk6IHN1bW1hcnksIGZvb3RlcjogZm9vdGVyIH0pLCBwYWdpbmF0ZWQgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhZ2luYXRpb24nKSwgY2hpbGRyZW46IF9qc3goUGFnaW5hdGlvbiwgeyB0b3RhbDogcGFnZUluZm8udG90YWwsIGN1cnJlbnQ6IHBhZ2VJbmZvLmN1cnJlbnQsIHBhZ2VTaXplOiBwYWdlSW5mby5wYWdlU2l6ZSwgb25DaGFuZ2U6IGhhbmRsZVBhZ2VDaGFuZ2UgfSkgfSkpXSB9KV0gfSkpO1xufVxuZXhwb3J0IGNvbnN0IFByb1RhYmxlID0gbWVtbyhQcm9UYWJsZUlubmVyKTtcbmV4cG9ydCBkZWZhdWx0IFByb1RhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|