@1money/component-ui 0.0.99 → 0.0.100
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/business/Dialog/VerificationDialog/VerificationDialog.js +38 -39
- package/es/business/Dialog/variants/LoadingDialog.js +17 -17
- package/es/business/Filter/DateRange/DateRange.js +14 -14
- package/es/business/Select/Country/CountrySelect.js +71 -40
- package/es/business/Select/Country/interface.d.ts +31 -15
- package/es/business/Select/Country/style/CountrySelect.css +33 -0
- package/es/business/Select/Country/style/css.js +2 -0
- package/es/business/Select/Country/style/index.d.ts +1 -0
- package/es/business/Select/Country/style/index.js +2 -0
- package/es/business/shared/formCore/useSubmitAction.js +19 -19
- package/es/components/Icons/Illustrations.js +15 -15
- package/es/components/Notification/NotificationStatic.js +27 -32
- package/es/components/ProForm/ProForm.js +47 -51
- package/es/components/ProForm/Submitter.js +8 -8
- package/es/components/ProForm/core/hooks/useForm.js +77 -88
- package/es/components/ProForm/core/runRules.js +56 -61
- package/es/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/es/components/ProForm/layouts/useOverlayForm.js +9 -11
- package/es/components/ProTable/ProTable.js +8 -8
- package/es/components/ProTable/useFetchData.js +23 -23
- package/es/components/Select/SelectOptionContent.js +8 -1
- package/es/components/Select/interface.d.ts +9 -0
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +7 -0
- package/es/components/Spinner/Spinner.js +11 -11
- package/es/components/Table/internal/kernel/Table.js +8 -8
- package/es/index.css +1 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +2 -3
- package/lib/business/Dialog/Descriptions/Descriptions.js +2 -3
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +2 -3
- package/lib/business/Dialog/FormDialog/FormDialog.js +2 -3
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +39 -41
- package/lib/business/Dialog/variants/LoadingDialog.js +18 -19
- package/lib/business/FieldList/index.js +2 -3
- package/lib/business/Filter/DateRange/DateRange.js +14 -14
- package/lib/business/Select/Country/CountrySelect.js +71 -40
- package/lib/business/Select/Country/interface.d.ts +31 -15
- package/lib/business/Select/Country/style/CountrySelect.css +33 -0
- package/lib/business/Select/Country/style/css.js +4 -0
- package/lib/business/Select/Country/style/index.d.ts +1 -0
- package/lib/business/Select/Country/style/index.js +4 -0
- package/lib/business/shared/formCore/useSubmitAction.js +19 -19
- package/lib/components/Accordion/Accordion.js +2 -3
- package/lib/components/Accordion/index.js +2 -3
- package/lib/components/ActionBar/ActionBar.js +2 -3
- package/lib/components/Alert/Alert.js +2 -3
- package/lib/components/Alert/index.js +2 -3
- package/lib/components/Button/Button.js +2 -3
- package/lib/components/Button/index.js +2 -3
- package/lib/components/Calendar/Calendar.js +2 -3
- package/lib/components/Calendar/index.js +2 -3
- package/lib/components/Carousel/Carousel.js +2 -3
- package/lib/components/Carousel/index.js +2 -3
- package/lib/components/Cell/Cell.js +2 -3
- package/lib/components/Cell/index.js +2 -3
- package/lib/components/Checkbox/BaseCheckbox.js +2 -3
- package/lib/components/Checkbox/Checkbox.js +2 -3
- package/lib/components/Checkbox/CheckboxGroup.js +2 -3
- package/lib/components/Checkbox/index.js +2 -3
- package/lib/components/CoachMark/CoachMark.js +2 -3
- package/lib/components/CoachMark/index.js +2 -3
- package/lib/components/Copy/Clipboard.js +2 -3
- package/lib/components/Copy/Copy.js +2 -3
- package/lib/components/Copy/index.js +2 -3
- package/lib/components/Dialog/index.js +2 -3
- package/lib/components/Divider/Divider.js +2 -3
- package/lib/components/Drawer/Drawer.js +2 -3
- package/lib/components/Empty/Empty.js +2 -3
- package/lib/components/Empty/index.js +2 -3
- package/lib/components/Flex/Flex.js +2 -3
- package/lib/components/FormLayout/FormLayout.js +2 -3
- package/lib/components/Grid/Col.js +2 -3
- package/lib/components/Grid/Row.js +2 -3
- package/lib/components/Icons/Illustrations.js +15 -15
- package/lib/components/Icons/Logo.js +2 -3
- package/lib/components/Icons/Wrapper.js +2 -3
- package/lib/components/Icons/index.js +2 -3
- package/lib/components/Input/Amount/Amount.js +2 -3
- package/lib/components/Input/Amount/index.js +2 -3
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Input/FieldShell/index.js +2 -3
- package/lib/components/Input/Input/Input.js +2 -3
- package/lib/components/Input/Input/index.js +2 -3
- package/lib/components/Input/Mask/Mask.js +2 -3
- package/lib/components/Input/Mask/index.js +2 -3
- package/lib/components/Input/OTP/index.js +2 -3
- package/lib/components/Input/Password/Password.js +2 -3
- package/lib/components/Input/Password/index.js +2 -3
- package/lib/components/Input/Search/Search.js +2 -3
- package/lib/components/Input/Search/index.js +2 -3
- package/lib/components/Input/TextArea/TextArea.js +2 -3
- package/lib/components/Input/TextArea/index.js +2 -3
- package/lib/components/Input/Trade/Trade.js +2 -3
- package/lib/components/Input/Trade/index.js +2 -3
- package/lib/components/Input/index.js +2 -3
- package/lib/components/Link/Link.js +2 -3
- package/lib/components/Link/index.js +2 -3
- package/lib/components/Navigation/Nav.js +2 -3
- package/lib/components/Navigation/Navigation.js +2 -3
- package/lib/components/Navigation/NavigationStepper.js +2 -3
- package/lib/components/Navigation/index.js +2 -3
- package/lib/components/Notification/Notification.js +2 -3
- package/lib/components/Notification/NotificationStatic.js +28 -34
- package/lib/components/Notification/index.js +2 -3
- package/lib/components/Pagination/Pagination.js +2 -3
- package/lib/components/Pagination/index.js +2 -3
- package/lib/components/PanelLayout/PanelLayout.js +2 -3
- package/lib/components/Popconfirm/Popconfirm.js +2 -3
- package/lib/components/Popconfirm/index.js +2 -3
- package/lib/components/Portal/index.js +2 -3
- package/lib/components/ProForm/ProForm.js +48 -53
- package/lib/components/ProForm/ProFormDependency.js +2 -3
- package/lib/components/ProForm/ProFormItem.js +2 -3
- package/lib/components/ProForm/Submitter.js +8 -8
- package/lib/components/ProForm/core/devWarning.js +2 -3
- package/lib/components/ProForm/core/hooks/useForm.js +78 -90
- package/lib/components/ProForm/core/runRules.js +56 -61
- package/lib/components/ProForm/core/useFormItem.js +2 -3
- package/lib/components/ProForm/fields/ProFormFieldSet.js +2 -3
- package/lib/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/lib/components/ProForm/layouts/QueryFilter.js +2 -3
- package/lib/components/ProForm/layouts/useOverlayForm.js +10 -13
- package/lib/components/ProTable/ProTable.js +8 -8
- package/lib/components/ProTable/index.js +2 -3
- package/lib/components/ProTable/useFetchData.js +23 -23
- package/lib/components/Progress/Progress.js +2 -3
- package/lib/components/Progress/index.js +2 -3
- package/lib/components/Radio/Radio.js +2 -3
- package/lib/components/Radio/RadioGroup.js +2 -3
- package/lib/components/Radio/index.js +2 -3
- package/lib/components/ResizeObserver/Collection.js +2 -3
- package/lib/components/ResizeObserver/ResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/SingleObserver/index.js +2 -3
- package/lib/components/ResizeObserver/useResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/utils/reactUtil.js +2 -3
- package/lib/components/Segment/Segment.js +2 -3
- package/lib/components/Segment/index.js +2 -3
- package/lib/components/Select/Select.js +2 -3
- package/lib/components/Select/SelectCustom.js +2 -3
- package/lib/components/Select/SelectOptionContent.js +8 -1
- package/lib/components/Select/interface.d.ts +9 -0
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +7 -0
- package/lib/components/Skeleton/Skeleton.js +2 -3
- package/lib/components/Skeleton/index.js +2 -3
- package/lib/components/Slider/Slider.js +2 -3
- package/lib/components/Slider/index.js +2 -3
- package/lib/components/Space/Space.js +2 -3
- package/lib/components/Spinner/Spinner.js +12 -13
- package/lib/components/Spinner/index.js +2 -3
- package/lib/components/Step/Step.js +2 -3
- package/lib/components/Step/index.js +2 -3
- package/lib/components/Switch/Switch.js +2 -3
- package/lib/components/Switch/index.js +2 -3
- package/lib/components/Table/core/useTableSetup.js +2 -3
- package/lib/components/Table/internal/index.js +2 -3
- package/lib/components/Table/internal/kernel/Body/BodyRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/ExpandedRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/useCellRender.js +2 -3
- package/lib/components/Table/internal/kernel/ColGroup.js +2 -3
- package/lib/components/Table/internal/kernel/FixedHolder/index.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Cell.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Row.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/SummaryContext.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/index.js +2 -3
- package/lib/components/Table/internal/kernel/Header/Header.js +2 -3
- package/lib/components/Table/internal/kernel/Header/HeaderRow.js +2 -3
- package/lib/components/Table/internal/kernel/Panel/index.js +2 -3
- package/lib/components/Table/internal/kernel/Table.js +9 -10
- package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/BodyLine.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/VirtualCell.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +2 -3
- package/lib/components/Table/internal/kernel/context/PerfContext.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/index.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useExpand.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFixedInfo.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFlattenRecords.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useHover.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useRenderTimes.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useSticky.js +2 -3
- package/lib/components/Table/internal/kernel/index.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/Immutable.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +2 -3
- package/lib/components/Table/internal/kernel/stickyScrollBar.js +2 -3
- package/lib/components/Table/internal/kernel/utils/expandUtil.js +2 -3
- package/lib/components/Table/internal/kernel/utils/useMemo.js +2 -3
- package/lib/components/Tabs/Tabs.js +2 -3
- package/lib/components/Tabs/index.js +2 -3
- package/lib/components/Tag/Tag.js +2 -3
- package/lib/components/Tag/index.js +2 -3
- package/lib/components/Tooltip/Tooltip.js +2 -3
- package/lib/components/Tooltip/index.js +2 -3
- package/lib/components/Tour/index.js +2 -3
- package/lib/components/Trigger/Trigger.js +2 -3
- package/lib/components/Typography/index.js +2 -3
- package/lib/components/Typography/utils.js +2 -3
- package/lib/components/Upload/Upload.js +2 -3
- package/lib/components/Upload/UploadFileBar.js +2 -3
- package/lib/components/Upload/index.js +2 -3
- package/lib/components/VirtualList/Filler.js +2 -3
- package/lib/components/VirtualList/Item.js +2 -3
- package/lib/components/VirtualList/ScrollBar.js +2 -3
- package/lib/components/VirtualList/VirtualList.js +2 -3
- package/lib/components/VirtualList/hooks/useChildren.js +2 -3
- package/lib/components/VirtualList/hooks/useDiffItem.js +2 -3
- package/lib/components/VirtualList/hooks/useGetSize.js +2 -3
- package/lib/components/VirtualList/hooks/useHeights.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollDrag.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +2 -3
- package/lib/index.css +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +2 -3
- package/package.json +23 -17
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.ProForm = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -27,8 +26,9 @@ var _formStore = require("./core/formStore");
|
|
|
27
26
|
var _useUrlSync2 = require("./hooks/useUrlSync");
|
|
28
27
|
var _pathUtils = require("./core/pathUtils");
|
|
29
28
|
var _validationError = require("./core/validationError");
|
|
30
|
-
function
|
|
31
|
-
function
|
|
29
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t4 in e) "default" !== _t4 && {}.hasOwnProperty.call(e, _t4) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t4)) && (i.get || i.set) ? o(f, _t4, i) : f[_t4] = e[_t4]); return f; })(e, t); }
|
|
30
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
31
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
32
32
|
var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
|
|
33
33
|
function adopt(value) {
|
|
34
34
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -213,54 +213,54 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
213
213
|
// Re-entry guard: a second submit while one is in flight is ignored (the
|
|
214
214
|
// ref catches two calls in the same tick).
|
|
215
215
|
var wrappedHandleSubmit = (0, _useEventCallback["default"])(function (e) {
|
|
216
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator
|
|
216
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
|
|
217
217
|
var _a, _b, _c, epoch, validatedValues, pipelined, result, _t;
|
|
218
|
-
return _regenerator
|
|
219
|
-
while (1) switch (_context.
|
|
218
|
+
return _regenerator().w(function (_context) {
|
|
219
|
+
while (1) switch (_context.p = _context.n) {
|
|
220
220
|
case 0:
|
|
221
221
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
222
222
|
if (!submittingRef.current) {
|
|
223
|
-
_context.
|
|
223
|
+
_context.n = 1;
|
|
224
224
|
break;
|
|
225
225
|
}
|
|
226
|
-
return _context.
|
|
226
|
+
return _context.a(2);
|
|
227
227
|
case 1:
|
|
228
228
|
submittingRef.current = true;
|
|
229
229
|
setSubmitting(true);
|
|
230
230
|
(_a = onLoadingChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onLoadingChangeRef, true);
|
|
231
231
|
epoch = resetEpochRef.current;
|
|
232
|
-
_context.
|
|
233
|
-
_context.
|
|
232
|
+
_context.p = 2;
|
|
233
|
+
_context.n = 3;
|
|
234
234
|
return formInstance.validateFields();
|
|
235
235
|
case 3:
|
|
236
|
-
validatedValues = _context.
|
|
236
|
+
validatedValues = _context.v;
|
|
237
237
|
if (!(epoch !== resetEpochRef.current)) {
|
|
238
|
-
_context.
|
|
238
|
+
_context.n = 4;
|
|
239
239
|
break;
|
|
240
240
|
}
|
|
241
|
-
return _context.
|
|
241
|
+
return _context.a(2);
|
|
242
242
|
case 4:
|
|
243
243
|
pipelined = applyPipeline(validatedValues);
|
|
244
|
-
_context.
|
|
244
|
+
_context.n = 5;
|
|
245
245
|
return (_b = onFinishRef.current) === null || _b === void 0 ? void 0 : _b.call(onFinishRef, pipelined);
|
|
246
246
|
case 5:
|
|
247
|
-
result = _context.
|
|
247
|
+
result = _context.v;
|
|
248
248
|
// Sync the URL unless onFinish explicitly returned false (a throw above
|
|
249
249
|
// also skips — a failed submit must not pollute the URL), and only if
|
|
250
250
|
// the user did NOT reset the form while the submit was in flight.
|
|
251
251
|
if (result !== false && epoch === resetEpochRef.current) {
|
|
252
252
|
onUrlSyncFinish(pipelined);
|
|
253
253
|
}
|
|
254
|
-
_context.
|
|
254
|
+
_context.n = 8;
|
|
255
255
|
break;
|
|
256
256
|
case 6:
|
|
257
|
-
_context.
|
|
258
|
-
_t = _context
|
|
257
|
+
_context.p = 6;
|
|
258
|
+
_t = _context.v;
|
|
259
259
|
if (!(epoch !== resetEpochRef.current)) {
|
|
260
|
-
_context.
|
|
260
|
+
_context.n = 7;
|
|
261
261
|
break;
|
|
262
262
|
}
|
|
263
|
-
return _context.
|
|
263
|
+
return _context.a(2);
|
|
264
264
|
case 7:
|
|
265
265
|
// Only a VALIDATION failure routes to onFinishFailed. An exception out
|
|
266
266
|
// of the consumer's own onFinish is not a validation result: the submit
|
|
@@ -275,14 +275,13 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
275
275
|
console.error('[ProForm] onFinish threw during submit:', _t);
|
|
276
276
|
}
|
|
277
277
|
case 8:
|
|
278
|
-
_context.
|
|
278
|
+
_context.p = 8;
|
|
279
279
|
submittingRef.current = false;
|
|
280
280
|
setSubmitting(false);
|
|
281
281
|
(_c = onLoadingChangeRef.current) === null || _c === void 0 ? void 0 : _c.call(onLoadingChangeRef, false);
|
|
282
|
-
return _context.
|
|
282
|
+
return _context.f(8);
|
|
283
283
|
case 9:
|
|
284
|
-
|
|
285
|
-
return _context.stop();
|
|
284
|
+
return _context.a(2);
|
|
286
285
|
}
|
|
287
286
|
}, _callee, null, [[2, 6, 8, 9]]);
|
|
288
287
|
}));
|
|
@@ -304,33 +303,30 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
304
303
|
return (0, _pathUtils.setNestedValue)({}, name, (0, _pathUtils.resolveValue)(formatted, name));
|
|
305
304
|
},
|
|
306
305
|
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
307
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator
|
|
306
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee2() {
|
|
308
307
|
var vals, errors, _t2;
|
|
309
|
-
return _regenerator
|
|
310
|
-
while (1) switch (_context2.
|
|
308
|
+
return _regenerator().w(function (_context2) {
|
|
309
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
311
310
|
case 0:
|
|
312
|
-
_context2.
|
|
313
|
-
_context2.
|
|
311
|
+
_context2.p = 0;
|
|
312
|
+
_context2.n = 1;
|
|
314
313
|
return formInstance.validateFields();
|
|
315
314
|
case 1:
|
|
316
|
-
vals = _context2.
|
|
317
|
-
return _context2.
|
|
315
|
+
vals = _context2.v;
|
|
316
|
+
return _context2.a(2, {
|
|
318
317
|
success: true,
|
|
319
318
|
values: applyPipeline(vals)
|
|
320
319
|
});
|
|
321
320
|
case 2:
|
|
322
|
-
_context2.
|
|
323
|
-
_t2 = _context2
|
|
321
|
+
_context2.p = 2;
|
|
322
|
+
_t2 = _context2.v;
|
|
324
323
|
// validateFields rejects with an Error carrying the field errors map
|
|
325
324
|
// (same shape wrappedHandleSubmit consumes above).
|
|
326
325
|
errors = _t2.errors;
|
|
327
|
-
return _context2.
|
|
326
|
+
return _context2.a(2, {
|
|
328
327
|
success: false,
|
|
329
328
|
errors: errors !== null && errors !== void 0 ? errors : {}
|
|
330
329
|
});
|
|
331
|
-
case 3:
|
|
332
|
-
case "end":
|
|
333
|
-
return _context2.stop();
|
|
334
330
|
}
|
|
335
331
|
}, _callee2, null, [[0, 2]]);
|
|
336
332
|
}));
|
|
@@ -372,32 +368,32 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
372
368
|
// a newer request already (or will) set.
|
|
373
369
|
var stale = false;
|
|
374
370
|
var fetchData = function fetchData() {
|
|
375
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator
|
|
371
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee3() {
|
|
376
372
|
var requestFn, data, _t3;
|
|
377
|
-
return _regenerator
|
|
378
|
-
while (1) switch (_context3.
|
|
373
|
+
return _regenerator().w(function (_context3) {
|
|
374
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
379
375
|
case 0:
|
|
380
376
|
requestFn = requestRef.current;
|
|
381
377
|
if (requestFn) {
|
|
382
|
-
_context3.
|
|
378
|
+
_context3.n = 1;
|
|
383
379
|
break;
|
|
384
380
|
}
|
|
385
|
-
return _context3.
|
|
381
|
+
return _context3.a(2);
|
|
386
382
|
case 1:
|
|
387
383
|
setRequestLoading(true);
|
|
388
|
-
_context3.
|
|
389
|
-
_context3.
|
|
384
|
+
_context3.p = 2;
|
|
385
|
+
_context3.n = 3;
|
|
390
386
|
return requestFn(params);
|
|
391
387
|
case 3:
|
|
392
|
-
data = _context3.
|
|
388
|
+
data = _context3.v;
|
|
393
389
|
if (!stale && data && (0, _typeof2["default"])(data) === 'object') {
|
|
394
390
|
formInstance.setFieldsValue(data);
|
|
395
391
|
}
|
|
396
|
-
_context3.
|
|
392
|
+
_context3.n = 5;
|
|
397
393
|
break;
|
|
398
394
|
case 4:
|
|
399
|
-
_context3.
|
|
400
|
-
_t3 = _context3
|
|
395
|
+
_context3.p = 4;
|
|
396
|
+
_t3 = _context3.v;
|
|
401
397
|
// A failed request must not escape as an unhandled rejection — the
|
|
402
398
|
// form keeps its initialValues and the failure is surfaced on the
|
|
403
399
|
// console (mirrors the field-level useFieldRequest handling).
|
|
@@ -405,17 +401,16 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
405
401
|
console.error('[ProForm] request failed:', _t3);
|
|
406
402
|
}
|
|
407
403
|
case 5:
|
|
408
|
-
_context3.
|
|
404
|
+
_context3.p = 5;
|
|
409
405
|
if (!stale) {
|
|
410
406
|
setRequestLoading(false);
|
|
411
407
|
// Only a NON-superseded settle initializes the form: a stale
|
|
412
408
|
// request's data was discarded, so its values must not be reported.
|
|
413
409
|
fireInit();
|
|
414
410
|
}
|
|
415
|
-
return _context3.
|
|
411
|
+
return _context3.f(5);
|
|
416
412
|
case 6:
|
|
417
|
-
|
|
418
|
-
return _context3.stop();
|
|
413
|
+
return _context3.a(2);
|
|
419
414
|
}
|
|
420
415
|
}, _callee3, null, [[2, 4, 5, 6]]);
|
|
421
416
|
}));
|
|
@@ -521,4 +516,4 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
521
516
|
ProFormBase.displayName = 'ProForm';
|
|
522
517
|
var ProForm = exports.ProForm = /*#__PURE__*/(0, _react.memo)(ProFormBase);
|
|
523
518
|
var _default = exports["default"] = ProForm;
|
|
524
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0NCIsIl9HcmlkIiwiX3VzZUZvcm0yIiwiX2NvbnRleHQ1IiwiX1N1Ym1pdHRlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfZm9ybVN0b3JlIiwiX3VzZVVybFN5bmMyIiwiX3BhdGhVdGlscyIsIl92YWxpZGF0aW9uRXJyb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiQ1NTX1BSRUZJWCIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiREVGQVVMVF9DT0xfU1BBTiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzdWJtaXR0aW5nUmVmIiwidXNlUmVmIiwiaXNMb2FkaW5nIiwidHJhbnNmb3JtS2V5UmVmIiwidmFsdWVUeXBlUmVmIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1c2VNZW1vaXplZEZuIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsInVzZUxhdGVzdCIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXREYXRlVmFsdWVzIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdFZhbHVlc0tlZXBOaWwiLCJfdXNlVXJsU3luYyIsInVzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwidXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiX2IiLCJfYyIsImVwb2NoIiwidmFsaWRhdGVkVmFsdWVzIiwicGlwZWxpbmVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwicHJldmVudERlZmF1bHQiLCJhYnJ1cHQiLCJ2YWxpZGF0ZUZpZWxkcyIsInNlbnQiLCJGb3JtVmFsaWRhdGlvbkVycm9yIiwiZXJyb3JzIiwiY29uc29sZSIsImVycm9yIiwiZmluaXNoIiwic3RvcCIsInByb0Zvcm1Gb3JtSW5zdGFuY2UiLCJ1c2VNZW1vIiwiZ2V0RmllbGRzRm9ybWF0VmFsdWUiLCJnZXRGaWVsZEZvcm1hdFZhbHVlIiwicmVzb2x2ZVZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdCIsImZvcm1hdHRlZCIsInNldE5lc3RlZFZhbHVlIiwidmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZSIsIl9jYWxsZWUyIiwidmFscyIsIl90MiIsIl9jb250ZXh0MiIsInN1Y2Nlc3MiLCJzdWJtaXRGb3JtIiwidXNlRWZmZWN0IiwicmVxdWVzdFJlZiIsImhhc1JlcXVlc3QiLCJzZXJpYWxpemVkUGFyYW1zIiwic3RhYmxlU2VyaWFsaXplIiwiaW5pdEZpcmVkUmVmIiwiZmlyZUluaXQiLCJzdGFsZSIsImZldGNoRGF0YSIsIl9jYWxsZWUzIiwicmVxdWVzdEZuIiwiZGF0YSIsIl90MyIsIl9jb250ZXh0MyIsIl90eXBlb2YyIiwic2V0RmllbGRzVmFsdWUiLCJmb3JtRWxSZWYiLCJmaXJzdElucHV0IiwicXVlcnlTZWxlY3RvciIsImZvY3VzIiwic3RhYmxlRmllbGRQcm9wcyIsInVzZVNoYWxsb3dTdGFibGUiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIlJvdyIsIkZyYWdtZW50Iiwid3JhcHBlclByb3BzIiwiaGFuZGxlU3VibWl0dGVyUmVzZXQiLCJzdWJtaXR0ZXJOb2RlIiwiX2pzeCIsIlN1Ym1pdHRlciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvdmlkZXIiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiRm9ybUNvbnRyb2xTaXplQ29udGV4dCIsIl9qc3hzIiwicmVmIiwiam9pbkNscyIsIm9uU3VibWl0IiwiaGFuZGxlUmVzZXQiLCJkaXNwbGF5TmFtZSIsIlByb0Zvcm0iLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNwQkEsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsVUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBRCxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBRixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLEtBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFNBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLFVBQUEsR0FBQWIsT0FBQTtBQUNBLElBQUFjLFVBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLE1BQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixVQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFlBQUEsR0FBQWpCLE9BQUE7QUFDQSxJQUFBa0IsVUFBQSxHQUFBbEIsT0FBQTtBQUNBLElBQUFtQixnQkFBQSxHQUFBbkIsT0FBQTtBQUE2RCxTQUFBb0IseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFu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LENBQUNGLFFBQVEsRUFBQTtRQUFDbE4sS0FBSyxFQUFFaUUsSUFBSTtRQUFBcEMsUUFBQSxFQUM1QyxJQUFBd0wsZ0JBQUEsRUFBQSxNQUFBLEVBQUFuTyxNQUFBLENBQUFrSSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ00xQyxJQUFJLEVBQUE7VUFDUjRJLEdBQUcsRUFBRS9CLFNBQVM7VUFDZHpKLFNBQVMsRUFBRVAsV0FBVyxDQUFDeUUsU0FBUyxFQUFFLElBQUF1SCxtQkFBTyxFQUFDbk0sT0FBTyxDQUFBLENBQUUsRUFBRVUsU0FBUyxDQUFDLENBQUM7VUFDaEUwTCxRQUFRLEVBQUV6RixtQkFBbUI7VUFDN0JqRixPQUFPLEVBQUUrRSxTQUFTLENBQUM0RixXQUFXO1VBQUE1TCxRQUFBLEVBQUEsQ0FFOUIsSUFBQWtMLGVBQUEsRUFBQ04sZ0JBQWdCLEVBQUF2TixNQUFBLENBQUFrSSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUt3RixZQUFZLEVBQUE7WUFBQS9LLFFBQUEsRUFBR0E7VUFBUSxDQUFBLENBQUEsQ0FBb0IsRUFDaEVpTCxhQUFhO1FBQUEsQ0FBQSxDQUFBO01BQ1QsQ0FBQTtJQUMyQixDQUFBO0VBQ0wsQ0FBQSxDQUNEO0FBRXBDLENBQUM7QUFFRG5MLFdBQVcsQ0FBQytMLFdBQVcsR0FBRyxTQUFTO0FBYTVCLElBQU1DLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2xNLFdBQVcsQ0FBNEI7QUFBQyxJQUFBbU0sUUFBQSxHQUFBRixPQUFBLGNBRXJERCxPQUFPIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xTaXplQ29udGV4dCB9IGZyb20gJy4uL0Zvcm1MYXlvdXQvY29udGV4dCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi9HcmlkJztcbmltcG9ydCB7IHVzZUZvcm0gfSBmcm9tICcuL2NvcmUvaG9va3MvdXNlRm9ybSc7XG5pbXBvcnQgeyBQcm9Gb3JtU3RhYmxlQ29udGV4dCwgUHJvRm9ybVN0YXRlQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXR0ZXIgfSBmcm9tICcuL1N1Ym1pdHRlcic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX0NPTF9TUEFOIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgc3RhYmxlU2VyaWFsaXplLCB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMsIG9taXROaWxWYWx1ZXMsIGZvcm1hdERhdGVWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNoYWxsb3dTdGFibGUgfSBmcm9tICcuL2NvcmUvZm9ybVN0b3JlJztcbmltcG9ydCB7IHVzZVVybFN5bmMgfSBmcm9tICcuL2hvb2tzL3VzZVVybFN5bmMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vY29yZS92YWxpZGF0aW9uRXJyb3InO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoQ1NTX1BSRUZJWCk7XG5jb25zdCBmb3JtQ2xhc3NlcyA9IGNsYXNzbmFtZXMoJ2Zvcm0nKTtcbmNvbnN0IERFRkFVTFRfQ09MX1BST1BTID0geyBzcGFuOiBERUZBVUxUX0NPTF9TUEFOIH07XG5jb25zdCBQcm9Gb3JtQmFzZSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgc3VibWl0dGVyLCBtb2RlID0gJ2VkaXQnLCBncmlkID0gZmFsc2UsIGNvbFByb3BzLCByb3dQcm9wcywgbG9hZGluZyA9IGZhbHNlLCByZXF1ZXN0LCBwYXJhbXMsIGluaXRpYWxWYWx1ZXMsIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIG9uSW5pdCwgb25Mb2FkaW5nQ2hhbmdlLCBzeW5jVG9VcmwsIHN5bmNUb1VybEFzSW1wb3J0YW50ID0gZmFsc2UsIGV4dHJhVXJsUGFyYW1zLCBhdXRvRm9jdXNGaXJzdElucHV0ID0gZmFsc2UsIGZvcm1Db21wb25lbnRUeXBlLCBmb3JtUmVmLCBvbWl0TmlsID0gdHJ1ZSwgZGF0ZUZvcm1hdHRlciA9ICdzdHJpbmcnLCBmaWVsZFByb3BzLCBmb3JtSXRlbVByb3BzLCBsYXlvdXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCBwcmVmaXhDbHM6IF9wcmVmaXhDbHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiLCBcInN1Ym1pdHRlclwiLCBcIm1vZGVcIiwgXCJncmlkXCIsIFwiY29sUHJvcHNcIiwgXCJyb3dQcm9wc1wiLCBcImxvYWRpbmdcIiwgXCJyZXF1ZXN0XCIsIFwicGFyYW1zXCIsIFwiaW5pdGlhbFZhbHVlc1wiLCBcIm9uRmluaXNoXCIsIFwib25GaW5pc2hGYWlsZWRcIiwgXCJvblZhbHVlc0NoYW5nZVwiLCBcIm9uUmVzZXRcIiwgXCJvbkluaXRcIiwgXCJvbkxvYWRpbmdDaGFuZ2VcIiwgXCJzeW5jVG9VcmxcIiwgXCJzeW5jVG9VcmxBc0ltcG9ydGFudFwiLCBcImV4dHJhVXJsUGFyYW1zXCIsIFwiYXV0b0ZvY3VzRmlyc3RJbnB1dFwiLCBcImZvcm1Db21wb25lbnRUeXBlXCIsIFwiZm9ybVJlZlwiLCBcIm9taXROaWxcIiwgXCJkYXRlRm9ybWF0dGVyXCIsIFwiZmllbGRQcm9wc1wiLCBcImZvcm1JdGVtUHJvcHNcIiwgXCJsYXlvdXRcIiwgXCJzaXplXCIsIFwibGFiZWxBbGlnblwiLCBcImRpc2FibGVkXCIsIFwidmFsaWRhdGVUcmlnZ2VyXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBbcmVxdWVzdExvYWRpbmcsIHNldFJlcXVlc3RMb2FkaW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgLy8gdXNlU2FmZVN0YXRlIGZvciB0aGUgUkVOREVSRUQgc3VibWl0dGluZyBzdGF0ZSAoaXRzIHNldHRlciBpcyB1bm1vdW50LXNhZmVcbiAgICAvLyDigJQgdGhlIGZpbmFsbHkgYmVsb3cgcnVucyBhZnRlciBhd2FpdGluZyBvbkZpbmlzaCwgd2hlbiB0aGUgdHlwaWNhbFxuICAgIC8vIHN1Ym1pdC10aGVuLWNsb3NlIGZsb3cgbWF5IGFscmVhZHkgaGF2ZSB1bm1vdW50ZWQgdGhlIGZvcm0gb24gUmVhY3RcbiAgICAvLyAxNi8xNykuIFRoZSByZWYgaXMgdGhlIHN5bmNocm9ub3VzIHJlLWVudHJ5IGd1YXJkOyBAMW1vbmV5L2hvb2tzIGhhcyBub1xuICAgIC8vIHNpbmdsZSBob29rIHRoYXQgaXMgYm90aCB1bm1vdW50LXNhZmUgYW5kIHN5bmNocm9ub3VzbHkgcmVhZGFibGUuXG4gICAgY29uc3QgW3N1Ym1pdHRpbmcsIHNldFN1Ym1pdHRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzdWJtaXR0aW5nUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBpc0xvYWRpbmcgPSBsb2FkaW5nIHx8IHJlcXVlc3RMb2FkaW5nIHx8IHN1Ym1pdHRpbmc7XG4gICAgLy8g4pSA4pSAIFRyYW5zZm9ybSAvIHZhbHVlVHlwZSByZWdpc3RyaWVzIOKUgOKUgFxuICAgIGNvbnN0IHRyYW5zZm9ybUtleVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgdmFsdWVUeXBlUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID0gZm47XG4gICAgfSk7XG4gICAgLy8gVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCBndWFyZHMgcmVtb3ZhbDogZGVsZXRlIG9ubHkgd2hlbiB0aGUgcmVnaXN0cnlcbiAgICAvLyBzdGlsbCBob2xkcyB0aGUgQ0FMTEVSJ1MgcmVnaXN0cmF0aW9uLCBzbyBhbiB1bm1vdW50aW5nIGluc3RhbmNlIGNhbiBuZXZlclxuICAgIC8vIHdpcGUgYSBzYW1lLW5hbWUgc2libGluZydzIG9yIHN1Y2Nlc3NvcidzIGVudHJ5LlxuICAgIGNvbnN0IHVucmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICBpZiAoZm4gPT09IHVuZGVmaW5lZCB8fCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9PT0gZm4pIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID0gdmFsdWVUeXBlO1xuICAgIH0pO1xuICAgIGNvbnN0IHVucmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdID09PSB2YWx1ZVR5cGUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG9uRmluaXNoUmVmID0gdXNlTGF0ZXN0KG9uRmluaXNoKTtcbiAgICBjb25zdCBvbkluaXRSZWYgPSB1c2VMYXRlc3Qob25Jbml0KTtcbiAgICBjb25zdCBvbkxvYWRpbmdDaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25Mb2FkaW5nQ2hhbmdlKTtcbiAgICAvLyBTdWJtaXQgcGlwZWxpbmU6IGRhdGVzIOKGkiBmaWVsZCB0cmFuc2Zvcm1zIOKGkiBvbWl0TmlsXG4gICAgY29uc3QgYXBwbHlQaXBlbGluZSA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmVzdWx0ID0gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgICAgICBpZiAob21pdE5pbClcbiAgICAgICAgICAgIHJlc3VsdCA9IG9taXROaWxWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICAvLyBTYW1lIHBpcGVsaW5lIFdJVEhPVVQgb21pdE5pbCDigJQgc2luZ2xlLWZpZWxkIHJlYWRlcnMgbXVzdCBub3Qgc2VlIGEgZmllbGRcbiAgICAvLyB2YW5pc2gganVzdCBiZWNhdXNlIGl0cyBjdXJyZW50IHZhbHVlIGlzIGVtcHR5LlxuICAgIGNvbnN0IGZvcm1hdFZhbHVlc0tlZXBOaWwgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0RGF0ZVZhbHVlcyh2YWx1ZXMsIGRhdGVGb3JtYXR0ZXIsIHZhbHVlVHlwZVJlZi5jdXJyZW50KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgVVJMIHN5bmMgKHN5bmNUb1VybCAvIHN5bmNUb1VybEFzSW1wb3J0YW50IC8gZXh0cmFVcmxQYXJhbXMpIOKUgOKUgFxuICAgIGNvbnN0IHsgdXJsSW5pdGlhbFZhbHVlcywgb25VcmxTeW5jRmluaXNoLCBvblVybFN5bmNSZXNldCB9ID0gdXNlVXJsU3luYyh7XG4gICAgICAgIHN5bmNUb1VybCxcbiAgICAgICAgZXh0cmFVcmxQYXJhbXMsXG4gICAgfSk7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZIChkb2N1bWVudGVkIGNvbnRyYWN0OyB1c2VGb3JtQ29yZSByZS1mcmVlemVzXG4gICAgLy8gYXMgYSBzYWZldHkgbmV0KSDigJQgY29tcHV0ZSB0aGUgVVJMIG1lcmdlIG9uY2Ugc28gdGhlIGZyZWV6ZSBpcyB2aXNpYmxlXG4gICAgLy8gd2hlcmUgdGhlIHByb3BzIGVudGVyLCBpbnN0ZWFkIG9mIHJlY29tcHV0aW5nIGRlYWQgc3ByZWFkcyBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPSBzeW5jVG9VcmxcbiAgICAgICAgICAgID8gKHN5bmNUb1VybEFzSW1wb3J0YW50XG4gICAgICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGluaXRpYWxWYWx1ZXMpLCB1cmxJbml0aWFsVmFsdWVzKSA6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXJsSW5pdGlhbFZhbHVlcyksIGluaXRpYWxWYWx1ZXMpKVxuICAgICAgICAgICAgOiAoaW5pdGlhbFZhbHVlcyAhPT0gbnVsbCAmJiBpbml0aWFsVmFsdWVzICE9PSB2b2lkIDAgPyBpbml0aWFsVmFsdWVzIDoge30pO1xuICAgIH1cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEJ1bXBlZCBvbiBldmVyeSByZXNldCDigJQgYW4gaW4tZmxpZ2h0IHN1Ym1pdCBjYXB0dXJlcyBpdCBhbmQgYWJvcnRzIHdoZW5cbiAgICAvLyBpdCBjaGFuZ2VkIHVuZGVybmVhdGggKHRoZSB1c2VyIGRpc2NhcmRlZCB0aGUgc3VibWlzc2lvbidzIHZhbHVlcykuXG4gICAgY29uc3QgcmVzZXRFcG9jaFJlZiA9IHVzZVJlZigwKTtcbiAgICAvLyBSZXNldCBjaGFpbjogZm9ybS1sZXZlbCBvblJlc2V0IHJlY2VpdmVzIHRoZSAocG9zdC1yZXNldCkgZm9ybWF0dGVkXG4gICAgLy8gdmFsdWVzLCB0aGVuIHRoZSBmb3JtJ3Mgb3duIFVSTCBwYXJhbXMgYXJlIGNsZWFyZWQuIHVzZU1lbW9pemVkRm4gZGVmZXJzXG4gICAgLy8gZXhlY3V0aW9uIHRvIGV2ZW50IHRpbWUsIHdoZW4gYGZvcm1JbnN0YW5jZWAgKGNyZWF0ZWQganVzdCBiZWxvdykgZXhpc3RzLlxuICAgIGNvbnN0IGZpcmVGb3JtUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmVzZXRFcG9jaFJlZi5jdXJyZW50ICs9IDE7XG4gICAgICAgIGNvbnN0IGZpbmFsVmFsdWVzID0gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldChmaW5hbFZhbHVlcyk7XG4gICAgICAgIG9uVXJsU3luY1Jlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEZvcm0gZW5naW5lICh1c2VGb3JtIHdpdGggYXN5bmMgdmFsaWRhdGlvbikg4pSA4pSAXG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UsIGludGVybmFscywgc3RvcmUgfSA9IHVzZUZvcm0oe1xuICAgICAgICBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLFxuICAgICAgICBvblZhbHVlc0NoYW5nZSxcbiAgICAgICAgb25SZXNldDogZmlyZUZvcm1SZXNldCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICB9KTtcbiAgICAvLyDilIDilIAgQXN5bmMgc3VibWl0IHdpdGggdHJhbnNmb3JtIHBpcGVsaW5lIOKUgOKUgFxuICAgIC8vIFJlLWVudHJ5IGd1YXJkOiBhIHNlY29uZCBzdWJtaXQgd2hpbGUgb25lIGlzIGluIGZsaWdodCBpcyBpZ25vcmVkICh0aGVcbiAgICAvLyByZWYgY2F0Y2hlcyB0d28gY2FsbHMgaW4gdGhlIHNhbWUgdGljaykuXG4gICAgY29uc3Qgd3JhcHBlZEhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChzdWJtaXR0aW5nUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgICAgIChfYSA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIHRydWUpO1xuICAgICAgICBjb25zdCBlcG9jaCA9IHJlc2V0RXBvY2hSZWYuY3VycmVudDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgKGFzeW5jKSB2YWxpZGF0aW9uIGRpc2NhcmRzIHRoaXMgc3VibWlzc2lvbiBlbnRpcmVseTpcbiAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlLXJlYWRzIHRoZSBsaXZlIHN0b3JlLCBzbyBwcm9jZWVkaW5nIHdvdWxkIGhhbmRcbiAgICAgICAgICAgIC8vIG9uRmluaXNoIHRoZSBQT1NULXJlc2V0IHZhbHVlcy5cbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lZCA9IGFwcGx5UGlwZWxpbmUodmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkICgoX2IgPSBvbkZpbmlzaFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChvbkZpbmlzaFJlZiwgcGlwZWxpbmVkKSk7XG4gICAgICAgICAgICAvLyBTeW5jIHRoZSBVUkwgdW5sZXNzIG9uRmluaXNoIGV4cGxpY2l0bHkgcmV0dXJuZWQgZmFsc2UgKGEgdGhyb3cgYWJvdmVcbiAgICAgICAgICAgIC8vIGFsc28gc2tpcHMg4oCUIGEgZmFpbGVkIHN1Ym1pdCBtdXN0IG5vdCBwb2xsdXRlIHRoZSBVUkwpLCBhbmQgb25seSBpZlxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZGlkIE5PVCByZXNldCB0aGUgZm9ybSB3aGlsZSB0aGUgc3VibWl0IHdhcyBpbiBmbGlnaHQuXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSAmJiBlcG9jaCA9PT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgb25VcmxTeW5jRmluaXNoKHBpcGVsaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gQSByZXNldCBkdXJpbmcgdmFsaWRhdGlvbiBhbHNvIGludmFsaWRhdGVzIHRoZSBGQUlMVVJFIGNhbGxiYWNrIOKAlFxuICAgICAgICAgICAgLy8gdGhlIGVycm9yIGNhcnJpZXMgcG9zdC1yZXNldCB2YWx1ZXMgZm9yIGEgZGlzY2FyZGVkIHN1Ym1pc3Npb24uXG4gICAgICAgICAgICAvLyAoRmllbGQgZXJyb3JzIGZyb20gdGhlIGRlYWQgdmFsaWRhdGlvbiBhcmUgc3VwcHJlc3NlZCBieSB0aGVcbiAgICAgICAgICAgIC8vIHBlci1maWVsZCB2YWxpZGF0aW9uIGVwb2NoczogcmVzZXRGaWVsZHMgaW52YWxpZGF0ZXMgaW4tZmxpZ2h0IHJ1bnMuKVxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gT25seSBhIFZBTElEQVRJT04gZmFpbHVyZSByb3V0ZXMgdG8gb25GaW5pc2hGYWlsZWQuIEFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdDogdGhlIHN1Ym1pdFxuICAgICAgICAgICAgLy8gZmFpbHMgKFVSTCB1bnRvdWNoZWQsIG92ZXJsYXkgc3RheXMgb3BlbikgYW5kIHRoZSBlcnJvciBpcyBzdXJmYWNlZFxuICAgICAgICAgICAgLy8gb24gdGhlIGNvbnNvbGUgaW5zdGVhZCBvZiBiZWluZyBtaXNyZXBvcnRlZCB3aXRoIGFuIGVtcHR5IHBheWxvYWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHN1Ym1pdHRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIFByb0Zvcm0gaW5zdGFuY2U6IHN1cGVyc2V0IG9mIEZvcm1JbnN0YW5jZSDilIDilIBcbiAgICBjb25zdCBwcm9Gb3JtRm9ybUluc3RhbmNlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmb3JtSW5zdGFuY2UpLCB7IGdldEZpZWxkc0Zvcm1hdFZhbHVlOiAoKSA9PiBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZTogKChuYW1lKSA9PiByZXNvbHZlVmFsdWUoZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIG5hbWUpKSwgZ2V0RmllbGRGb3JtYXRWYWx1ZU9iamVjdDogKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgICAgICAgICAvLyBBIG5lc3RlZCBvYmplY3QgY2FycnlpbmcgT05MWSB0aGUgcmVxdWVzdGVkIGxlYWYg4oCUIG5vdCB0aGUgd2hvbGVcbiAgICAgICAgICAgIC8vIHRvcC1sZXZlbCBzdWJ0cmVlIHRoZSBwYXRoIGhhcHBlbnMgdG8gbGl2ZSBpbi5cbiAgICAgICAgICAgIHJldHVybiBzZXROZXN0ZWRWYWx1ZSh7fSwgbmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1hdHRlZCwgbmFtZSkpO1xuICAgICAgICB9LCB2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlOiAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFscyA9IHlpZWxkIGZvcm1JbnN0YW5jZS52YWxpZGF0ZUZpZWxkcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlczogYXBwbHlQaXBlbGluZSh2YWxzKSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlRmllbGRzIHJlamVjdHMgd2l0aCBhbiBFcnJvciBjYXJyeWluZyB0aGUgZmllbGQgZXJyb3JzIG1hcFxuICAgICAgICAgICAgICAgIC8vIChzYW1lIHNoYXBlIHdyYXBwZWRIYW5kbGVTdWJtaXQgY29uc3VtZXMgYWJvdmUpLlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzIH0gPSBlcnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDoge30gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSksIHN1Ym1pdEZvcm06IHdyYXBwZWRIYW5kbGVTdWJtaXQgfSkpLCBbZm9ybUluc3RhbmNlLCBhcHBseVBpcGVsaW5lLCB3cmFwcGVkSGFuZGxlU3VibWl0XSk7XG4gICAgLy8g4pSA4pSAIFN5bmMgdG8gZm9ybVJlZiBwcm9wIOKUgOKUgFxuICAgIC8vIFRoZSBjbGVhbnVwIGNsZWFycyB0aGUgcmVmIG9uIHVubW91bnQ6IGEgaGFuZGxlIHRvIGFuIHVubW91bnRlZCBmb3JtXG4gICAgLy8gdmFsaWRhdGVzIGFuIGVtcHR5IGZpZWxkIHN0b3JlIGFuZCByZXBvcnRzIGZha2Ugc3VjY2Vzcywgc28gY29uc3VtZXJzXG4gICAgLy8gKGFuZCB0aGUgYnVzaW5lc3Mtc2hlbGwgcmVsYXkgcmVmcykgbXVzdCBvYnNlcnZlIGB1bmRlZmluZWRgIGluc3RlYWQuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmb3JtUmVmKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gcHJvRm9ybUZvcm1JbnN0YW5jZTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChmb3JtUmVmLmN1cnJlbnQgPT09IHByb0Zvcm1Gb3JtSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW2Zvcm1SZWYsIHByb0Zvcm1Gb3JtSW5zdGFuY2VdKTtcbiAgICAvLyDilIDilIAgcmVxdWVzdCAvIHBhcmFtcyBhdXRvLWxvYWQg4pSA4pSAXG4gICAgY29uc3QgcmVxdWVzdFJlZiA9IHVzZUxhdGVzdChyZXF1ZXN0KTtcbiAgICBjb25zdCBoYXNSZXF1ZXN0ID0gISFyZXF1ZXN0O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRQYXJhbXMgPSB1c2VNZW1vKCgpID0+IHN0YWJsZVNlcmlhbGl6ZShwYXJhbXMpLCBbcGFyYW1zXSk7XG4gICAgLy8gb25Jbml0IGZpcmVzIGV4YWN0bHkgb25jZTogYWZ0ZXIgdGhlIEZJUlNUIHJlcXVlc3QgcmVzb2x2ZXMgd2hlbiBhXG4gICAgLy8gcmVxdWVzdCBpcyBjb25maWd1cmVkLCBvdGhlcndpc2UgcmlnaHQgYWZ0ZXIgbW91bnQuXG4gICAgY29uc3QgaW5pdEZpcmVkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBmaXJlSW5pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbml0RmlyZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaW5pdEZpcmVkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAoX2EgPSBvbkluaXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Jbml0UmVmLCBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgcHJvRm9ybUZvcm1JbnN0YW5jZSk7XG4gICAgfSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gU3RhbGVuZXNzIGd1YXJkOiBpZiBwYXJhbXMgY2hhbmdlIGFnYWluIGJlZm9yZSB0aGlzIGZldGNoIHJlc29sdmVzLCB0aGVcbiAgICAgICAgLy8gY2xlYW51cCBtYXJrcyBpdCBzdGFsZSBzbyB0aGUgbGF0ZSByZXNwb25zZSBjYW4ndCBvdmVyd3JpdGUgdGhlIHZhbHVlc1xuICAgICAgICAvLyBhIG5ld2VyIHJlcXVlc3QgYWxyZWFkeSAob3Igd2lsbCkgc2V0LlxuICAgICAgICBsZXQgc3RhbGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgZmV0Y2hEYXRhID0gKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0Rm4gPSByZXF1ZXN0UmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBpZiAoIXJlcXVlc3RGbilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIHJlcXVlc3RGbihwYXJhbXMpO1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUgJiYgZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUluc3RhbmNlLnNldEZpZWxkc1ZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCByZXF1ZXN0IG11c3Qgbm90IGVzY2FwZSBhcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlCB0aGVcbiAgICAgICAgICAgICAgICAvLyBmb3JtIGtlZXBzIGl0cyBpbml0aWFsVmFsdWVzIGFuZCB0aGUgZmFpbHVyZSBpcyBzdXJmYWNlZCBvbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlIChtaXJyb3JzIHRoZSBmaWVsZC1sZXZlbCB1c2VGaWVsZFJlcXVlc3QgaGFuZGxpbmcpLlxuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIHJlcXVlc3QgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgYSBOT04tc3VwZXJzZWRlZCBzZXR0bGUgaW5pdGlhbGl6ZXMgdGhlIGZvcm06IGEgc3RhbGVcbiAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWVzdCdzIGRhdGEgd2FzIGRpc2NhcmRlZCwgc28gaXRzIHZhbHVlcyBtdXN0IG5vdCBiZSByZXBvcnRlZC5cbiAgICAgICAgICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocmVxdWVzdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBmZXRjaERhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0YWxlID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gUmUtZmV0Y2ggd2hlbiBwYXJhbXMgY2hhbmdlIGJ5IFZBTFVFIChkZXBlbmRpbmcgb24gdGhlIHJhdyBgcGFyYW1zYFxuICAgICAgICAvLyByZWZlcmVuY2Ugd291bGQgcmUtcnVuIG9uIGV2ZXJ5IHJlbmRlciBmb3IgaW5saW5lIG9iamVjdCBsaXRlcmFscyBhbmQsXG4gICAgICAgIC8vIGNvbWJpbmVkIHdpdGggdGhlIGxvYWRpbmcgc2V0U3RhdGUsIGxvb3AgZm9yZXZlcikg4oCUIGFuZCB3aGVuIGByZXF1ZXN0YFxuICAgICAgICAvLyBmaXJzdCBiZWNvbWVzIGRlZmluZWQgKGUuZy4gYmVoaW5kIGEgZmVhdHVyZSBmbGFnKSwgbWlycm9yaW5nXG4gICAgICAgIC8vIHVzZUZpZWxkUmVxdWVzdC4gZmlyZUluaXQncyBvbmNlLWd1YXJkIGtlZXBzIG9uSW5pdCBmcm9tIHJlLWZpcmluZy5cbiAgICB9LCBbc2VyaWFsaXplZFBhcmFtcywgaGFzUmVxdWVzdF0pO1xuICAgIC8vIOKUgOKUgCBhdXRvRm9jdXNGaXJzdElucHV0IOKUgOKUgFxuICAgIGNvbnN0IGZvcm1FbFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghYXV0b0ZvY3VzRmlyc3RJbnB1dCB8fCBtb2RlID09PSAncmVhZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGZpcnN0SW5wdXQgPSAoX2EgPSBmb3JtRWxSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om5vdChbdHlwZT1cImhpZGRlblwiXSk6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSknKTtcbiAgICAgICAgZmlyc3RJbnB1dCA9PT0gbnVsbCB8fCBmaXJzdElucHV0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaXJzdElucHV0LmZvY3VzKCk7XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduLlxuICAgIH0sIFtdKTtcbiAgICAvLyDilIDilIAgU3BsaXQgY29udGV4dCDilIDilIBcbiAgICAvLyBGb3JtLWxldmVsIHByb3AgYmFncyBhcmUgb2Z0ZW4gaW5saW5lIGxpdGVyYWxzOiBrZWVwIHRoZWlyIGlkZW50aXR5XG4gICAgLy8gc3RhYmxlIHdoaWxlIHNoYWxsb3ctZXF1YWwgc28gdGhlIHN0YWJsZSBzbGljZSBkb2Vzbid0IGNodXJuIHBlciByZW5kZXIuXG4gICAgY29uc3Qgc3RhYmxlRmllbGRQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZmllbGRQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlRm9ybUl0ZW1Qcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoZm9ybUl0ZW1Qcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlQ29sUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGNvbFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVMYXlvdXQgPSB1c2VTaGFsbG93U3RhYmxlKGxheW91dCk7XG4gICAgLy8gU3RhYmxlIHNsaWNlOiBjb25maWd1cmF0aW9uICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzL2luc3RhbmNlLlxuICAgIC8vIENoYW5nZXMgb25seSB3aGVuIGZvcm0tbGV2ZWwgcHJvcHMgY2hhbmdlIOKAlCBOT1Qgb24ga2V5c3Ryb2tlcywgc29cbiAgICAvLyBzdWJzY3JpYmVycyBsaWtlIFN1Ym1pdHRlciBhbmQgdGhlIGZpZWxkIGZhY3RvcmllcyBza2lwIHRob3NlIHJlbmRlcnMuXG4gICAgY29uc3Qgc3RhYmxlVmFsdWUgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIGZvcm1JbnN0YW5jZTogcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZFdhcm5pbmc6IGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYzogaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgcmV0YWluRmllbGQ6IGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkOiBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICAvLyBTdWJtaXR0aW5nL2xvYWRpbmcgZG9lcyBOT1QgZGlzYWJsZSBmaWVsZHMg4oCUIG9ubHkgdGhlXG4gICAgICAgIC8vIGV4cGxpY2l0IGBkaXNhYmxlZGAgcHJvcCBkb2VzLiBLZWVwaW5nIGlzTG9hZGluZyBvdXQgb2YgdGhpcyBzbGljZVxuICAgICAgICAvLyBtZWFucyBhIHN1Ym1pdCBjeWNsZSBubyBsb25nZXIgcmUtcmVuZGVycyBldmVyeSBmaWVsZCBzaGVsbC5cbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgLy8gUHJvRm9ybSBzcGVjaWZpY3NcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgY29sUHJvcHM6IHN0YWJsZUNvbFByb3BzICE9PSBudWxsICYmIHN0YWJsZUNvbFByb3BzICE9PSB2b2lkIDAgPyBzdGFibGVDb2xQcm9wcyA6IERFRkFVTFRfQ09MX1BST1BTLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybTogcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm06IHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBmaWVsZFByb3BzOiBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBmb3JtSXRlbVByb3BzOiBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBsYXlvdXQ6IHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgfSksIFtcbiAgICAgICAgcHJvRm9ybUZvcm1JbnN0YW5jZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZEVycm9yLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnVucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmVsZWFzZUZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBzdGFibGVDb2xQcm9wcyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHVucmVnaXN0ZXJUcmFuc2Zvcm0sXG4gICAgICAgIHJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICB1bnJlZ2lzdGVyVmFsdWVUeXBlLFxuICAgICAgICBzdGFibGVGaWVsZFByb3BzLFxuICAgICAgICBzdGFibGVGb3JtSXRlbVByb3BzLFxuICAgICAgICBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIF0pO1xuICAgIGNvbnN0IFdyYXBwZXJDb21wb25lbnQgPSBncmlkID8gUm93IDogRnJhZ21lbnQ7XG4gICAgY29uc3Qgd3JhcHBlclByb3BzID0gZ3JpZCA/IE9iamVjdC5hc3NpZ24oe30sIHJvd1Byb3BzKSA6IHt9O1xuICAgIC8vIFJlc2V0IGNhbGxiYWNrIGNoYWluOiB0aGUgU3VibWl0dGVyIHJlc2V0cyB0aGUgdmFsdWVzIGZpcnN0LCB0aGVuIHRoZVxuICAgIC8vIHN1Ym1pdHRlci1sZXZlbCBvblJlc2V0LCB0aGVuIHRoZSBmb3JtLWxldmVsIG9uUmVzZXQgKHdpdGggZmluYWxWYWx1ZXMpXG4gICAgLy8gYW5kIHRoZSBVUkwgY2xlYW51cCDigJQgZmlyZWQgZXhhY3RseSBvbmNlIHBlciByZXNldCBhY3Rpb24uXG4gICAgY29uc3QgaGFuZGxlU3VibWl0dGVyUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcpXG4gICAgICAgICAgICAoX2EgPSBzdWJtaXR0ZXIub25SZXNldCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0dGVyKTtcbiAgICAgICAgZmlyZUZvcm1SZXNldCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IHN1Ym1pdHRlck5vZGUgPSBzdWJtaXR0ZXIgIT09IGZhbHNlICYmIG1vZGUgIT09ICdyZWFkJyA/IChfanN4KFN1Ym1pdHRlciwgT2JqZWN0LmFzc2lnbih7fSwgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnID8gc3VibWl0dGVyIDoge30pLCB7IG9uUmVzZXQ6IGhhbmRsZVN1Ym1pdHRlclJlc2V0LCBsb2FkaW5nOiBpc0xvYWRpbmcgfSkpKSA6IG51bGw7XG4gICAgcmV0dXJuIChfanN4KFByb0Zvcm1TdGFibGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdGFibGVWYWx1ZSwgY2hpbGRyZW46IF9qc3goUHJvRm9ybVN0YXRlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RvcmUsIGNoaWxkcmVuOiBfanN4KEZvcm1Db250cm9sU2l6ZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHNpemUsIGNoaWxkcmVuOiBfanN4cyhcImZvcm1cIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGZvcm1FbFJlZiwgY2xhc3NOYW1lOiBmb3JtQ2xhc3Nlcyh1bmRlZmluZWQsIGpvaW5DbHMoY2xhc3NlcygpLCBjbGFzc05hbWUpKSwgb25TdWJtaXQ6IHdyYXBwZWRIYW5kbGVTdWJtaXQsIG9uUmVzZXQ6IGludGVybmFscy5oYW5kbGVSZXNldCwgY2hpbGRyZW46IFtfanN4KFdyYXBwZXJDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHdyYXBwZXJQcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpLCBzdWJtaXR0ZXJOb2RlXSB9KSkgfSkgfSkgfSkpO1xufTtcblByb0Zvcm1CYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm0nO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm0gPSBtZW1vKFByb0Zvcm1CYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
519
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUxhdGVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfY2xhc3NuYW1lcyIsIl9jb250ZXh0NCIsIl9HcmlkIiwiX3VzZUZvcm0yIiwiX2NvbnRleHQ1IiwiX1N1Ym1pdHRlciIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfZm9ybVN0b3JlIiwiX3VzZVVybFN5bmMyIiwiX3BhdGhVdGlscyIsIl92YWxpZGF0aW9uRXJyb3IiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mMyIsImhhcyIsImdldCIsInNldCIsIl90NCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX3JlZ2VuZXJhdG9yIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiZG9uZSIsInZhbHVlIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJkaXNwbGF5TmFtZSIsInciLCJtIiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwidGhlbiIsImFwcGx5IiwiX19yZXN0IiwicyIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiQ1NTX1BSRUZJWCIsImZvcm1DbGFzc2VzIiwiREVGQVVMVF9DT0xfUFJPUFMiLCJzcGFuIiwiREVGQVVMVF9DT0xfU1BBTiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlcXVlc3RMb2FkaW5nIiwic2V0UmVxdWVzdExvYWRpbmciLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzdWJtaXR0aW5nUmVmIiwidXNlUmVmIiwiaXNMb2FkaW5nIiwidHJhbnNmb3JtS2V5UmVmIiwidmFsdWVUeXBlUmVmIiwicmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1c2VNZW1vaXplZEZuIiwibmFtZSIsImZuIiwiY3VycmVudCIsInVucmVnaXN0ZXJUcmFuc2Zvcm0iLCJ1bmRlZmluZWQiLCJyZWdpc3RlclZhbHVlVHlwZSIsInZhbHVlVHlwZSIsInVucmVnaXN0ZXJWYWx1ZVR5cGUiLCJvbkZpbmlzaFJlZiIsInVzZUxhdGVzdCIsIm9uSW5pdFJlZiIsIm9uTG9hZGluZ0NoYW5nZVJlZiIsImFwcGx5UGlwZWxpbmUiLCJ2YWx1ZXMiLCJmb3JtYXREYXRlVmFsdWVzIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdFZhbHVlc0tlZXBOaWwiLCJfdXNlVXJsU3luYyIsInVzZVVybFN5bmMiLCJ1cmxJbml0aWFsVmFsdWVzIiwib25VcmxTeW5jRmluaXNoIiwib25VcmxTeW5jUmVzZXQiLCJtZXJnZWRJbml0aWFsVmFsdWVzUmVmIiwiYXNzaWduIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsInJlc2V0RXBvY2hSZWYiLCJmaXJlRm9ybVJlc2V0IiwiZmluYWxWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJnZXRGaWVsZHNWYWx1ZSIsIl91c2VGb3JtIiwidXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsInVzZUV2ZW50Q2FsbGJhY2siLCJfY2FsbGVlIiwiX2EiLCJfYiIsIl9jIiwiZXBvY2giLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJwaXBlbGluZWQiLCJfdCIsIl9jb250ZXh0IiwicHJldmVudERlZmF1bHQiLCJ2YWxpZGF0ZUZpZWxkcyIsIkZvcm1WYWxpZGF0aW9uRXJyb3IiLCJlcnJvcnMiLCJjb25zb2xlIiwiZXJyb3IiLCJwcm9Gb3JtRm9ybUluc3RhbmNlIiwidXNlTWVtbyIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZSIsInJlc29sdmVWYWx1ZSIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJmb3JtYXR0ZWQiLCJzZXROZXN0ZWRWYWx1ZSIsInZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWUiLCJfY2FsbGVlMiIsInZhbHMiLCJfdDIiLCJfY29udGV4dDIiLCJzdWNjZXNzIiwic3VibWl0Rm9ybSIsInVzZUVmZmVjdCIsInJlcXVlc3RSZWYiLCJoYXNSZXF1ZXN0Iiwic2VyaWFsaXplZFBhcmFtcyIsInN0YWJsZVNlcmlhbGl6ZSIsImluaXRGaXJlZFJlZiIsImZpcmVJbml0Iiwic3RhbGUiLCJmZXRjaERhdGEiLCJfY2FsbGVlMyIsInJlcXVlc3RGbiIsImRhdGEiLCJfdDMiLCJfY29udGV4dDMiLCJfdHlwZW9mMiIsInNldEZpZWxkc1ZhbHVlIiwiZm9ybUVsUmVmIiwiZmlyc3RJbnB1dCIsInF1ZXJ5U2VsZWN0b3IiLCJmb2N1cyIsInN0YWJsZUZpZWxkUHJvcHMiLCJ1c2VTaGFsbG93U3RhYmxlIiwic3RhYmxlRm9ybUl0ZW1Qcm9wcyIsInN0YWJsZUNvbFByb3BzIiwic3RhYmxlTGF5b3V0Iiwic3RhYmxlVmFsdWUiLCJzZXRGaWVsZFZhbHVlIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkV2FybmluZyIsInZhbGlkYXRlRmllbGRBc3luYyIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJyZXRhaW5GaWVsZCIsInJlbGVhc2VGaWVsZCIsIldyYXBwZXJDb21wb25lbnQiLCJSb3ciLCJGcmFnbWVudCIsIndyYXBwZXJQcm9wcyIsImhhbmRsZVN1Ym1pdHRlclJlc2V0Iiwic3VibWl0dGVyTm9kZSIsIl9qc3giLCJTdWJtaXR0ZXIiLCJQcm9Gb3JtU3RhYmxlQ29udGV4dCIsIlByb3ZpZGVyIiwiUHJvRm9ybVN0YXRlQ29udGV4dCIsIkZvcm1Db250cm9sU2l6ZUNvbnRleHQiLCJfanN4cyIsInJlZiIsImpvaW5DbHMiLCJvblN1Ym1pdCIsImhhbmRsZVJlc2V0IiwiUHJvRm9ybSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDcEJBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQUQsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFNLGNBQUEsR0FBQUYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFILHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxLQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxTQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxTQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxVQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxVQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSxNQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsVUFBQSxHQUFBaEIsT0FBQTtBQUNBLElBQUFpQixZQUFBLEdBQUFqQixPQUFBO0FBQ0EsSUFBQWtCLFVBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsZ0JBQUEsR0FBQW5CLE9BQUE7QUFBNkQsU0FBQUUsd0JBQUFrQixDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBcEIsdUJBQUEsWUFBQUEsd0JBQUFrQixDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLFFBQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxHQUFBLElBQUFkLENBQUEsZ0JBQUFjLEdBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEdBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEdBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQU0sR0FBQSxFQUFBUCxDQUFBLElBQUFDLENBQUEsQ0FBQU0sR0FBQSxJQUFBZCxDQUFBLENBQUFjLEdBQUEsV0FBQU4sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFBQSxTQUFBbUIsYUFBQSxJRGhCN0QsdUtBQUFwQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsQ0FBQSx3QkFBQWtCLE1BQUEsR0FBQUEsTUFBQSxPQUFBakIsQ0FBQSxHQUFBRCxDQUFBLENBQUFtQixRQUFBLGtCQUFBaEIsQ0FBQSxHQUFBSCxDQUFBLENBQUFvQixXQUFBLDhCQUFBaEIsRUFBQUosQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxRQUFBaUIsQ0FBQSxHQUFBcEIsQ0FBQSxJQUFBQSxDQUFBLENBQUFxQixTQUFBLFlBQUFDLFNBQUEsR0FBQXRCLENBQUEsR0FBQXNCLFNBQUEsRUFBQUMsQ0FBQSxHQUFBVixNQUFBLENBQUFXLE1BQUEsQ0FBQUosQ0FBQSxDQUFBQyxTQUFBLFVBQUFJLG1CQUFBLENBQUFGLENBQUEsdUJBQUF4QixDQUFBLEVBQUFDLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEVBQUFpQixDQUFBLEVBQUFHLENBQUEsRUFBQW5CLENBQUEsTUFBQXNCLENBQUEsR0FBQXhCLENBQUEsUUFBQXlCLENBQUEsT0FBQUMsQ0FBQSxLQUFBRixDQUFBLEtBQUExQixDQUFBLEtBQUE2QixDQUFBLEVBQUFqQyxDQUFBLEVBQUFrQyxDQUFBLEVBQUFDLENBQUEsRUFBQTNCLENBQUEsRUFBQTJCLENBQUEsQ0FBQUMsSUFBQSxDQUFBcEMsQ0FBQSxNQUFBbUMsQ0FBQSxXQUFBQSxFQUFBbEMsQ0FBQSxFQUFBRSxDQUFBLFdBQUFJLENBQUEsR0FBQU4sQ0FBQSxFQUFBdUIsQ0FBQSxNQUFBRyxDQUFBLEdBQUEzQixDQUFBLEVBQUFnQyxDQUFBLENBQUE1QixDQUFBLEdBQUFELENBQUEsRUFBQStCLENBQUEsZ0JBQUFDLEVBQUFoQyxDQUFBLEVBQUFDLENBQUEsU0FBQW9CLENBQUEsR0FBQXJCLENBQUEsRUFBQXdCLENBQUEsR0FBQXZCLENBQUEsRUFBQUgsQ0FBQSxPQUFBOEIsQ0FBQSxJQUFBdkIsQ0FBQSxLQUFBRixDQUFBLElBQUFMLENBQUEsR0FBQTZCLENBQUEsQ0FBQU8sTUFBQSxFQUFBcEMsQ0FBQSxVQUFBSyxDQUFBLEVBQUFDLENBQUEsR0FBQXVCLENBQUEsQ0FBQTdCLENBQUEsR0FBQWtDLENBQUEsR0FBQUgsQ0FBQSxDQUFBRixDQUFBLEVBQUFRLENBQUEsR0FBQS9CLENBQUEsS0FBQUosQ0FBQSxRQUFBRyxDQUFBLEdBQUFnQyxDQUFBLEtBQUFsQyxDQUFBLE1BQUF1QixDQUFBLEdBQUFwQixDQUFBLEVBQUFpQixDQUFBLEdBQUFqQixDQUFBLFlBQUFpQixDQUFBLFdBQUFqQixDQUFBLE1BQUFBLENBQUEsTUFBQVAsQ0FBQSxJQUFBTyxDQUFBLE9BQUE0QixDQUFBLE1BQUE3QixDQUFBLEdBQUFILENBQUEsUUFBQWdDLENBQUEsR0FBQTVCLENBQUEsUUFBQWlCLENBQUEsTUFBQVEsQ0FBQSxDQUFBQyxDQUFBLEdBQUE3QixDQUFBLEVBQUE0QixDQUFBLENBQUE1QixDQUFBLEdBQUFHLENBQUEsT0FBQTRCLENBQUEsR0FBQUcsQ0FBQSxLQUFBaEMsQ0FBQSxHQUFBSCxDQUFBLFFBQUFJLENBQUEsTUFBQUgsQ0FBQSxJQUFBQSxDQUFBLEdBQUFrQyxDQUFBLE1BQUEvQixDQUFBLE1BQUFKLENBQUEsRUFBQUksQ0FBQSxNQUFBSCxDQUFBLEVBQUE0QixDQUFBLENBQUE1QixDQUFBLEdBQUFrQyxDQUFBLEVBQUFkLENBQUEsY0FBQWxCLENBQUEsSUFBQUgsQ0FBQSxhQUFBK0IsQ0FBQSxRQUFBSCxDQUFBLE9BQUEzQixDQUFBLHFCQUFBRSxDQUFBLEVBQUF3QixDQUFBLEVBQUFRLENBQUEsUUFBQTlCLENBQUEsWUFBQStCLFNBQUEsdUNBQUFSLENBQUEsVUFBQUQsQ0FBQSxJQUFBSyxDQUFBLENBQUFMLENBQUEsRUFBQVEsQ0FBQSxHQUFBZCxDQUFBLEdBQUFNLENBQUEsRUFBQUgsQ0FBQSxHQUFBVyxDQUFBLEdBQUFyQyxDQUFBLEdBQUF1QixDQUFBLE9BQUF4QixDQUFBLEdBQUEyQixDQUFBLE1BQUFJLENBQUEsS0FBQXhCLENBQUEsS0FBQWlCLENBQUEsR0FBQUEsQ0FBQSxRQUFBQSxDQUFBLFNBQUFRLENBQUEsQ0FBQTVCLENBQUEsUUFBQStCLENBQUEsQ0FBQVgsQ0FBQSxFQUFBRyxDQUFBLEtBQUFLLENBQUEsQ0FBQTVCLENBQUEsR0FBQXVCLENBQUEsR0FBQUssQ0FBQSxDQUFBQyxDQUFBLEdBQUFOLENBQUEsYUFBQW5CLENBQUEsTUFBQUQsQ0FBQSxRQUFBaUIsQ0FBQSxLQUFBbEIsQ0FBQSxZQUFBTCxDQUFBLEdBQUFNLENBQUEsQ0FBQUQsQ0FBQSxXQUFBTCxDQUFBLEdBQUFBLENBQUEsQ0FBQWUsSUFBQSxDQUFBVCxDQUFBLEVBQUFvQixDQUFBLFVBQUFZLFNBQUEsMkNBQUF0QyxDQUFBLENBQUF1QyxJQUFBLFNBQUF2QyxDQUFBLEVBQUEwQixDQUFBLEdBQUExQixDQUFBLENBQUF3QyxLQUFBLEVBQUFqQixDQUFBLFNBQUFBLENBQUEsb0JBQUFBLENBQUEsS0FBQXZCLENBQUEsR0FBQU0sQ0FBQSxlQUFBTixDQUFBLENBQUFlLElBQUEsQ0FBQVQsQ0FBQSxHQUFBaUIsQ0FBQSxTQUFBRyxDQUFBLEdBQUFZLFNBQUEsdUNBQUFqQyxDQUFBLGdCQUFBa0IsQ0FBQSxPQUFBakIsQ0FBQSxHQUFBUCxDQUFBLGNBQUFDLENBQUEsSUFBQThCLENBQUEsR0FBQUMsQ0FBQSxDQUFBNUIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBeEIsQ0FBQSxDQUFBYSxJQUFBLENBQUFaLENBQUEsRUFBQTRCLENBQUEsT0FBQUUsQ0FBQSxrQkFBQWpDLENBQUEsSUFBQU0sQ0FBQSxHQUFBUCxDQUFBLEVBQUF3QixDQUFBLE1BQUFHLENBQUEsR0FBQTFCLENBQUEsY0FBQU8sQ0FBQSxtQkFBQWlDLEtBQUEsRUFBQXhDLENBQUEsRUFBQXVDLElBQUEsRUFBQVQsQ0FBQSxTQUFBNUIsQ0FBQSxFQUFBRyxDQUFBLEVBQUFDLENBQUEsUUFBQW9CLENBQUEsUUFBQU8sQ0FBQSxnQkFBQVIsVUFBQSxjQUFBZ0Isa0JBQUEsY0FBQUMsMkJBQUEsS0FBQTFDLENBQUEsR0FBQWdCLE1BQUEsQ0FBQTJCLGNBQUEsTUFBQXBCLENBQUEsTUFBQXBCLENBQUEsSUFBQUgsQ0FBQSxDQUFBQSxDQUFBLElBQUFHLENBQUEsU0FBQXlCLG1CQUFBLENBQUE1QixDQUFBLE9BQUFHLENBQUEsaUNBQUFILENBQUEsR0FBQTBCLENBQUEsR0FBQWdCLDBCQUFBLENBQUFsQixTQUFBLEdBQUFDLFNBQUEsQ0FBQUQsU0FBQSxHQUFBUixNQUFBLENBQUFXLE1BQUEsQ0FBQUosQ0FBQSxZQUFBaEIsRUFBQVIsQ0FBQSxXQUFBaUIsTUFBQSxDQUFBNEIsY0FBQSxHQUFBNUIsTUFBQSxDQUFBNEIsY0FBQSxDQUFBN0MsQ0FBQSxFQUFBMkMsMEJBQUEsS0FBQTNDLENBQUEsQ0FBQVMsU0FBQSxHQUFBa0MsMEJBQUEsRUFBQWQsbUJBQUEsQ0FBQTdCLENBQUEsRUFBQU0sQ0FBQSx5QkFBQU4sQ0FBQSxDQUFBeUIsU0FBQSxHQUFBUixNQUFBLENBQUFXLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBM0IsQ0FBQSxXQUFBMEMsaUJBQUEsQ0FBQWpCLFNBQUEsR0FBQWtCLDBCQUFBLEVBQUFkLG1CQUFBLENBQUFGLENBQUEsaUJBQUFnQiwwQkFBQSxHQUFBZCxtQkFBQSxDQUFBYywwQkFBQSxpQkFBQUQsaUJBQUEsR0FBQUEsaUJBQUEsQ0FBQUksV0FBQSx3QkFBQWpCLG1CQUFBLENBQUFjLDBCQUFBLEVBQUFyQyxDQUFBLHdCQUFBdUIsbUJBQUEsQ0FBQUYsQ0FBQSxHQUFBRSxtQkFBQSxDQUFBRixDQUFBLEVBQUFyQixDQUFBLGdCQUFBdUIsbUJBQUEsQ0FBQUYsQ0FBQSxFQUFBdkIsQ0FBQSxpQ0FBQXlCLG1CQUFBLENBQUFGLENBQUEsOERBQUFQLFlBQUEsWUFBQUEsYUFBQSxhQUFBMkIsQ0FBQSxFQUFBeEMsQ0FBQSxFQUFBeUMsQ0FBQSxFQUFBeEMsQ0FBQTtBQUFBLFNBQUFxQixvQkFBQTdCLENBQUEsRUFBQUcsQ0FBQSxFQUFBQyxDQUFBLEVBQUFILENBQUEsUUFBQU0sQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsUUFBQVgsQ0FBQSx1QkFBQVAsQ0FBQSxJQUFBTyxDQUFBLFFBQUFzQixtQkFBQSxZQUFBb0IsbUJBQUFqRCxDQUFBLEVBQUFHLENBQUEsRUFBQUMsQ0FBQSxFQUFBSCxDQUFBLGFBQUFLLEVBQUFILENBQUEsRUFBQUMsQ0FBQSxJQUFBeUIsbUJBQUEsQ0FBQTdCLENBQUEsRUFBQUcsQ0FBQSxZQUFBSCxDQUFBLGdCQUFBa0QsT0FBQSxDQUFBL0MsQ0FBQSxFQUFBQyxDQUFBLEVBQUFKLENBQUEsU0FBQUcsQ0FBQSxHQUFBSSxDQUFBLEdBQUFBLENBQUEsQ0FBQVAsQ0FBQSxFQUFBRyxDQUFBLElBQUFzQyxLQUFBLEVBQUFyQyxDQUFBLEVBQUErQyxVQUFBLEdBQUFsRCxDQUFBLEVBQUFtRCxZQUFBLEdBQUFuRCxDQUFBLEVBQUFvRCxRQUFBLEdBQUFwRCxDQUFBLE1BQUFELENBQUEsQ0FBQUcsQ0FBQSxJQUFBQyxDQUFBLElBQUFFLENBQUEsYUFBQUEsQ0FBQSxjQUFBQSxDQUFBLG1CQUFBdUIsbUJBQUEsQ0FBQTdCLENBQUEsRUFBQUcsQ0FBQSxFQUFBQyxDQUFBLEVBQUFILENBQUE7QUFEQSxJQUFJcUQsU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDbEIsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZZ0IsQ0FBQyxHQUFHaEIsS0FBSyxHQUFHLElBQUlnQixDQUFDLENBQUMsVUFBVUcsT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ25CLEtBQUssQ0FBQztJQUFFLENBQUMsQ0FBQztFQUFFO0VBQzNHLE9BQU8sS0FBS2dCLENBQUMsS0FBS0EsQ0FBQyxHQUFHSSxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDdEIsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFdUIsSUFBSSxDQUFDTixTQUFTLENBQUNPLElBQUksQ0FBQ3hCLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU96QyxDQUFDLEVBQUU7UUFBRThELE1BQU0sQ0FBQzlELENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU2tFLFFBQVFBLENBQUN6QixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUV1QixJQUFJLENBQUNOLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ2pCLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU96QyxDQUFDLEVBQUU7UUFBRThELE1BQU0sQ0FBQzlELENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU2dFLElBQUlBLENBQUNHLE1BQU0sRUFBRTtNQUFFQSxNQUFNLENBQUMzQixJQUFJLEdBQUdvQixPQUFPLENBQUNPLE1BQU0sQ0FBQzFCLEtBQUssQ0FBQyxHQUFHa0IsS0FBSyxDQUFDUSxNQUFNLENBQUMxQixLQUFLLENBQUMsQ0FBQzJCLElBQUksQ0FBQ0wsU0FBUyxFQUFFRyxRQUFRLENBQUM7SUFBRTtJQUM3R0YsSUFBSSxDQUFDLENBQUNOLFNBQVMsR0FBR0EsU0FBUyxDQUFDVyxLQUFLLENBQUNkLE9BQU8sRUFBRUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFUyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRCxJQUFJSyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFdkUsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUk2QixDQUFDLElBQUl5QyxDQUFDLEVBQUUsSUFBSXRELE1BQU0sQ0FBQ1EsU0FBUyxDQUFDVixjQUFjLENBQUNDLElBQUksQ0FBQ3VELENBQUMsRUFBRXpDLENBQUMsQ0FBQyxJQUFJOUIsQ0FBQyxDQUFDd0UsT0FBTyxDQUFDMUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRTdCLENBQUMsQ0FBQzZCLENBQUMsQ0FBQyxHQUFHeUMsQ0FBQyxDQUFDekMsQ0FBQyxDQUFDO0VBQ2YsSUFBSXlDLENBQUMsSUFBSSxJQUFJLElBQUksT0FBT3RELE1BQU0sQ0FBQ3dELHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJbEUsQ0FBQyxHQUFHLENBQUMsRUFBRXVCLENBQUMsR0FBR2IsTUFBTSxDQUFDd0QscUJBQXFCLENBQUNGLENBQUMsQ0FBQyxFQUFFaEUsQ0FBQyxHQUFHdUIsQ0FBQyxDQUFDTyxNQUFNLEVBQUU5QixDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJUCxDQUFDLENBQUN3RSxPQUFPLENBQUMxQyxDQUFDLENBQUN2QixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSVUsTUFBTSxDQUFDUSxTQUFTLENBQUNpRCxvQkFBb0IsQ0FBQzFELElBQUksQ0FBQ3VELENBQUMsRUFBRXpDLENBQUMsQ0FBQ3ZCLENBQUMsQ0FBQyxDQUFDLEVBQzFFTixDQUFDLENBQUM2QixDQUFDLENBQUN2QixDQUFDLENBQUMsQ0FBQyxHQUFHZ0UsQ0FBQyxDQUFDekMsQ0FBQyxDQUFDdkIsQ0FBQyxDQUFDLENBQUM7RUFDekI7RUFDSixPQUFPTixDQUFDO0FBQ1osQ0FBQztBQ09ELElBQU0wRSxPQUFPLEdBQUcsSUFBQUMsc0JBQVUsRUFBQ0MscUJBQVUsQ0FBQztBQUN0QyxJQUFNQyxXQUFXLEdBQUcsSUFBQUYsc0JBQVUsRUFBQyxNQUFNLENBQUM7QUFFdEMsSUFBTUcsaUJBQWlCLEdBQUc7RUFBRUMsSUFBSSxFQUFFQztBQUFnQixDQUFFO0FBRXBELElBQU1DLFdBQVcsR0FBcUIsU0FBaENBLFdBQVdBLENBQXNCQyxLQUFLLEVBQUk7RUFDOUMsSUFDRUMsUUFBUSxHQWtDTkQsS0FBSyxDQWxDUEMsUUFBUTtJQUNSQyxTQUFTLEdBaUNQRixLQUFLLENBakNQRSxTQUFTO0lBQ1RDLFNBQVMsR0FnQ1BILEtBQUssQ0FoQ1BHLFNBQVM7SUFBQUMsV0FBQSxHQWdDUEosS0FBSyxDQS9CUEssSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxNQUFNLEdBQUFBLFdBQUE7SUFBQUUsV0FBQSxHQStCWE4sS0FBSyxDQTlCUE8sSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxLQUFLLEdBQUFBLFdBQUE7SUFDWkUsUUFBUSxHQTZCTlIsS0FBSyxDQTdCUFEsUUFBUTtJQUNSQyxRQUFRLEdBNEJOVCxLQUFLLENBNUJQUyxRQUFRO0lBQUFDLGNBQUEsR0E0Qk5WLEtBQUssQ0EzQlBXLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0lBQ2ZFLE9BQU8sR0EwQkxaLEtBQUssQ0ExQlBZLE9BQU87SUFDUEMsTUFBTSxHQXlCSmIsS0FBSyxDQXpCUGEsTUFBTTtJQUNOQyxhQUFhLEdBd0JYZCxLQUFLLENBeEJQYyxhQUFhO0lBQ2JDLFFBQVEsR0F1Qk5mLEtBQUssQ0F2QlBlLFFBQVE7SUFDUkMsY0FBYyxHQXNCWmhCLEtBQUssQ0F0QlBnQixjQUFjO0lBQ2RDLGNBQWMsR0FxQlpqQixLQUFLLENBckJQaUIsY0FBYztJQUNkQyxPQUFPLEdBb0JMbEIsS0FBSyxDQXBCUGtCLE9BQU87SUFDUEMsTUFBTSxHQW1CSm5CLEtBQUssQ0FuQlBtQixNQUFNO0lBQ05DLGVBQWUsR0FrQmJwQixLQUFLLENBbEJQb0IsZUFBZTtJQUNmQyxTQUFTLEdBaUJQckIsS0FBSyxDQWpCUHFCLFNBQVM7SUFBQUMscUJBQUEsR0FpQlB0QixLQUFLLENBaEJQdUIsb0JBQW9CO0lBQXBCQSxvQkFBb0IsR0FBQUQscUJBQUEsY0FBRyxLQUFLLEdBQUFBLHFCQUFBO0lBQzVCRSxjQUFjLEdBZVp4QixLQUFLLENBZlB3QixjQUFjO0lBQUFDLHFCQUFBLEdBZVp6QixLQUFLLENBZFAwQixtQkFBbUI7SUFBbkJBLG1CQUFtQixHQUFBRCxxQkFBQSxjQUFHLEtBQUssR0FBQUEscUJBQUE7SUFDM0JFLGlCQUFpQixHQWFmM0IsS0FBSyxDQWJQMkIsaUJBQWlCO0lBQ2pCQyxPQUFPLEdBWUw1QixLQUFLLENBWlA0QixPQUFPO0lBQUFDLGNBQUEsR0FZTDdCLEtBQUssQ0FYUDhCLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxjQUFBLGNBQUcsSUFBSSxHQUFBQSxjQUFBO0lBQUFFLG9CQUFBLEdBV1ovQixLQUFLLENBVlBnQyxhQUFhO0lBQWJBLGFBQWEsR0FBQUQsb0JBQUEsY0FBRyxRQUFRLEdBQUFBLG9CQUFBO0lBQ3hCRSxVQUFVLEdBU1JqQyxLQUFLLENBVFBpQyxVQUFVO0lBQ1ZDLGFBQWEsR0FRWGxDLEtBQUssQ0FSUGtDLGFBQWE7SUFDYkMsTUFBTSxHQU9KbkMsS0FBSyxDQVBQbUMsTUFBTTtJQUFBQyxXQUFBLEdBT0pwQyxLQUFLLENBTlBxQyxJQUFJO0lBQUpBLElBQUksR0FBQUQsV0FBQSxjQUFHLE9BQU8sR0FBQUEsV0FBQTtJQUFBRSxpQkFBQSxHQU1adEMsS0FBSyxDQUxQdUMsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGlCQUFBLGNBQUcsTUFBTSxHQUFBQSxpQkFBQTtJQUFBRSxlQUFBLEdBS2pCeEMsS0FBSyxDQUpQeUMsUUFBUTtJQUFSQSxRQUFRLEdBQUFELGVBQUEsY0FBRyxLQUFLLEdBQUFBLGVBQUE7SUFBQUUscUJBQUEsR0FJZDFDLEtBQUssQ0FIUDJDLGVBQWU7SUFBZkEsZUFBZSxHQUFBRCxxQkFBQSxjQUFHLFVBQVUsR0FBQUEscUJBQUE7SUFDakJFLFVBQVUsR0FFbkI1QyxLQUFLLENBRlA2QyxTQUFTO0lBQ05DLElBQUksR0FBQTNELE1BQUEsQ0FDTGEsS0FBSyxFQW5DSCxDQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLFFBQUEsRUFBQSxlQUFBLEVBQUEsVUFBQSxFQUFBLGdCQUFBLEVBQUEsZ0JBQUEsRUFBQSxTQUFBLEVBQUEsUUFBQSxFQUFBLGlCQUFBLEVBQUEsV0FBQSxFQUFBLHNCQUFBLEVBQUEsZ0JBQUEsRUFBQSxxQkFBQSxFQUFBLG1CQUFBLEVBQUEsU0FBQSxFQUFBLFNBQUEsRUFBQSxlQUFBLEVBQUEsWUFBQSxFQUFBLGVBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLFlBQUEsRUFBQSxVQUFBLEVBQUEsaUJBQUEsRUFBQSxXQUFBLENBbUNMLENBQVE7RUFFVCxJQUFBK0MsYUFBQSxHQUE0QyxJQUFBQyx5QkFBWSxFQUFDLEtBQUssQ0FBQztJQUFBQyxjQUFBLE9BQUFDLGVBQUEsYUFBQUgsYUFBQTtJQUF4REksY0FBYyxHQUFBRixjQUFBO0lBQUVHLGlCQUFpQixHQUFBSCxjQUFBO0VBQ3hDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFBSSxjQUFBLEdBQW9DLElBQUFMLHlCQUFZLEVBQUMsS0FBSyxDQUFDO0lBQUFNLGNBQUEsT0FBQUosZUFBQSxhQUFBRyxjQUFBO0lBQWhERSxVQUFVLEdBQUFELGNBQUE7SUFBRUUsYUFBYSxHQUFBRixjQUFBO0VBQ2hDLElBQU1HLGFBQWEsR0FBRyxJQUFBQyxhQUFNLEVBQUMsS0FBSyxDQUFDO0VBQ25DLElBQU1DLFNBQVMsR0FBR2hELE9BQU8sSUFBSXdDLGNBQWMsSUFBSUksVUFBVTtFQUV6RDtFQUNBLElBQU1LLGVBQWUsR0FBRyxJQUFBRixhQUFNLEVBQTBDLENBQUEsQ0FBRSxDQUFDO0VBQzNFLElBQU1HLFlBQVksR0FBRyxJQUFBSCxhQUFNLEVBQW1DLENBQUEsQ0FBRSxDQUFDO0VBRWpFLElBQU1JLGlCQUFpQixHQUFHLElBQUFDLHlCQUFhLEVBQUMsVUFBQ0MsSUFBWSxFQUFFQyxFQUEyQixFQUFJO0lBQ3BGTCxlQUFlLENBQUNNLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDLEdBQUdDLEVBQUU7RUFDcEMsQ0FBQyxDQUFDO0VBRUY7RUFDQTtFQUNBO0VBQ0EsSUFBTUUsbUJBQW1CLEdBQUcsSUFBQUoseUJBQWEsRUFBQyxVQUFDQyxJQUFZLEVBQUVDLEVBQTRCLEVBQUk7SUFDdkYsSUFBSUEsRUFBRSxLQUFLRyxTQUFTLElBQUlSLGVBQWUsQ0FBQ00sT0FBTyxDQUFDRixJQUFJLENBQUMsS0FBS0MsRUFBRSxFQUFFO01BQzVELE9BQU9MLGVBQWUsQ0FBQ00sT0FBTyxDQUFDRixJQUFJLENBQUM7SUFDdEM7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNSyxpQkFBaUIsR0FBRyxJQUFBTix5QkFBYSxFQUFDLFVBQUNDLElBQVksRUFBRU0sU0FBMkIsRUFBSTtJQUNwRlQsWUFBWSxDQUFDSyxPQUFPLENBQUNGLElBQUksQ0FBQyxHQUFHTSxTQUFTO0VBQ3hDLENBQUMsQ0FBQztFQUVGLElBQU1DLG1CQUFtQixHQUFHLElBQUFSLHlCQUFhLEVBQUMsVUFBQ0MsSUFBWSxFQUFFTSxTQUE0QixFQUFJO0lBQ3ZGLElBQUlBLFNBQVMsS0FBS0YsU0FBUyxJQUFJUCxZQUFZLENBQUNLLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDLEtBQUtNLFNBQVMsRUFBRTtNQUN2RSxPQUFPVCxZQUFZLENBQUNLLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDO0lBQ25DO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBTVEsV0FBVyxHQUFHLElBQUFDLHFCQUFTLEVBQUMxRCxRQUFRLENBQUM7RUFDdkMsSUFBTTJELFNBQVMsR0FBRyxJQUFBRCxxQkFBUyxFQUFDdEQsTUFBTSxDQUFDO0VBQ25DLElBQU13RCxrQkFBa0IsR0FBRyxJQUFBRixxQkFBUyxFQUFDckQsZUFBZSxDQUFDO0VBRXJEO0VBQ0EsSUFBTXdELGFBQWEsR0FBRyxJQUFBYix5QkFBYSxFQUFDLFVBQUNjLE1BQTJCLEVBQUk7SUFDbEUsSUFBSTdGLE1BQU0sR0FBRyxJQUFBOEYsdUJBQWdCLEVBQUNELE1BQU0sRUFBRTdDLGFBQWEsRUFBRTZCLFlBQVksQ0FBQ0ssT0FBTyxDQUFDO0lBQzFFbEYsTUFBTSxHQUFHLElBQUErRiw0QkFBcUIsRUFBQy9GLE1BQU0sRUFBRTRFLGVBQWUsQ0FBQ00sT0FBTyxDQUFDO0lBQy9ELElBQUlwQyxPQUFPLEVBQUU5QyxNQUFNLEdBQUcsSUFBQWdHLG9CQUFhLEVBQUNoRyxNQUFNLENBQUM7SUFDM0MsT0FBT0EsTUFBTTtFQUNmLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQSxJQUFNaUcsbUJBQW1CLEdBQUcsSUFBQWxCLHlCQUFhLEVBQUMsVUFBQ2MsTUFBMkIsRUFBSTtJQUN4RSxJQUFNN0YsTUFBTSxHQUFHLElBQUE4Rix1QkFBZ0IsRUFBQ0QsTUFBTSxFQUFFN0MsYUFBYSxFQUFFNkIsWUFBWSxDQUFDSyxPQUFPLENBQUM7SUFDNUUsT0FBTyxJQUFBYSw0QkFBcUIsRUFBQy9GLE1BQU0sRUFBRTRFLGVBQWUsQ0FBQ00sT0FBTyxDQUFDO0VBQy9ELENBQUMsQ0FBQztFQUVGO0VBQ0EsSUFBQWdCLFdBQUEsR0FBOEQsSUFBQUMsdUJBQVUsRUFBQztNQUN2RTlELFNBQVMsRUFBVEEsU0FBUztNQUNURyxjQUFjLEVBQWRBO0lEakNBLENDa0NELENBQUM7SUFITTRELGdCQUFnQixHQUFBRixXQUFBLENBQWhCRSxnQkFBZ0I7SUFBRUMsZUFBZSxHQUFBSCxXQUFBLENBQWZHLGVBQWU7SUFBRUMsY0FBYyxHQUFBSixXQUFBLENBQWRJLGNBQWM7RUFJekQ7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsc0JBQXNCLEdBQUcsSUFBQTdCLGFBQU0sRUFBc0MsSUFBSSxDQUFDO0VBQ2hGLElBQUk2QixzQkFBc0IsQ0FBQ3JCLE9BQU8sS0FBSyxJQUFJLEVBQUU7SUFDM0NxQixzQkFBc0IsQ0FBQ3JCLE9BQU8sR0FBRzdDLFNBQVMsR0FDckNFLG9CQUFvQixHQUNwQnpGLE1BQUEsQ0FBQTBKLE1BQUEsQ0FBQTFKLE1BQUEsQ0FBQTBKLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTTFFLGFBQWEsQ0FBQSxFQUFLc0UsZ0JBQWdCLENBQUEsR0FDeEN0SixNQUFBLENBQUEwSixNQUFBLENBQUExSixNQUFBLENBQUEwSixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQU1KLGdCQUFnQixDQUFBLEVBQUt0RSxhQUFhLENBQUUsR0FDMUNBLGFBQWEsS0FBQSxJQUFBLElBQWJBLGFBQWEsS0FBQSxLQUFBLENBQUEsR0FBYkEsYUFBYSxHQUFJLENBQUEsQ0FBRztFQUMzQjtFQUNBLElBQU0yRSxtQkFBbUIsR0FBR0Ysc0JBQXNCLENBQUNyQixPQUFPO0VBRTFEO0VBQ0E7RUFDQSxJQUFNd0IsYUFBYSxHQUFHLElBQUFoQyxhQUFNLEVBQUMsQ0FBQyxDQUFDO0VBRS9CO0VBQ0E7RUFDQTtFQUNBLElBQU1pQyxhQUFhLEdBQUcsSUFBQTVCLHlCQUFhLEVBQUMsWUFBSztJQUN2QzJCLGFBQWEsQ0FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQzFCLElBQU0wQixXQUFXLEdBQUdoQixhQUFhLENBQUNpQixZQUFZLENBQUNDLGNBQWMsQ0FBQSxDQUFFLENBQUM7SUFDaEU1RSxPQUFPLEtBQUEsSUFBQSxJQUFQQSxPQUFPLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVBBLE9BQU8sQ0FBRzBFLFdBQVcsQ0FBQztJQUN0Qk4sY0FBYyxDQUFBLENBQUU7RUFDbEIsQ0FBQyxDQUFDO0VBRUY7RUFDQSxJQUFBUyxRQUFBLEdBQTJDLElBQUFDLGlCQUFPLEVBQUM7TUFDakRsRixhQUFhLEVBQUUyRSxtQkFBbUI7TUFDbEN4RSxjQUFjLEVBQWRBLGNBQWM7TUFDZEMsT0FBTyxFQUFFeUUsYUFBYTtNQUN0QnRELElBQUksRUFBSkEsSUFBSTtNQUNKRSxVQUFVLEVBQVZBLFVBQVU7TUFDVkUsUUFBUSxFQUFSQSxRQUFRO01BQ1JFLGVBQWUsRUFBZkE7SURyQ0EsQ0NzQ0QsQ0FBQztJQVJNa0QsWUFBWSxHQUFBRSxRQUFBLENBQVpGLFlBQVk7SUFBRUksU0FBUyxHQUFBRixRQUFBLENBQVRFLFNBQVM7SUFBRUMsS0FBSyxHQUFBSCxRQUFBLENBQUxHLEtBQUs7RUFVdEM7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsbUJBQW1CLEdBQUcsSUFBQUMsNEJBQWdCLEVBQUMsVUFBT3ZMLENBQW1CO0lBQUEsT0FBSXNELFNBQUEsQ0FBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQWxDLFlBQUEsR0FBQTRCLENBQUEsQ0FBQSxTQUFBd0ksUUFBQTtNQUFBLElBQUFDLEVBQUEsRUFBQUMsRUFBQSxFQUFBQyxFQUFBLEVBQUFDLEtBQUEsRUFBQUMsZUFBQSxFQUFBQyxTQUFBLEVBQUEzSCxNQUFBLEVBQUE0SCxFQUFBO01BQUEsT0FBQTNLLFlBQUEsR0FBQTJCLENBQUEsV0FBQWlKLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBbEssQ0FBQSxHQUFBa0ssUUFBQSxDQUFBNUwsQ0FBQTtVQUFBO1lBQ3pFSixDQUFDLEtBQUEsSUFBQSxJQUFEQSxDQUFDLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQURBLENBQUMsQ0FBRWlNLGNBQWMsQ0FBQSxDQUFFO1lBQUMsS0FDaEJyRCxhQUFhLENBQUNTLE9BQU87Y0FBQTJDLFFBQUEsQ0FBQTVMLENBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQTRMLFFBQUEsQ0FBQTlKLENBQUE7VUFBQTtZQUN6QjBHLGFBQWEsQ0FBQ1MsT0FBTyxHQUFHLElBQUk7WUFDNUJWLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDbkIsQ0FBQThDLEVBQUEsR0FBQTNCLGtCQUFrQixDQUFDVCxPQUFPLE1BQUEsSUFBQSxJQUFBb0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUF6SyxJQUFBLENBQUE4SSxrQkFBQSxFQUFHLElBQUksQ0FBQztZQUM1QjhCLEtBQUssR0FBR2YsYUFBYSxDQUFDeEIsT0FBTztZQUFBMkMsUUFBQSxDQUFBbEssQ0FBQTtZQUFBa0ssUUFBQSxDQUFBNUwsQ0FBQTtZQUVULE9BQU00SyxZQUFZLENBQUNrQixjQUFjLENBQUEsQ0FBRTtVQUFBO1lBQXJETCxlQUFlLEdBQUFHLFFBQUEsQ0FBQS9KLENBQUE7WUFBQSxNQUlqQjJKLEtBQUssS0FBS2YsYUFBYSxDQUFDeEIsT0FBTztjQUFBMkMsUUFBQSxDQUFBNUwsQ0FBQTtjQUFBO1lBQUE7WUFBQSxPQUFBNEwsUUFBQSxDQUFBOUosQ0FBQTtVQUFBO1lBQzdCNEosU0FBUyxHQUFHL0IsYUFBYSxDQUFDOEIsZUFBZSxDQUFDO1lBQUFHLFFBQUEsQ0FBQTVMLENBQUE7WUFDakMsT0FBTSxDQUFBc0wsRUFBQSxHQUFBL0IsV0FBVyxDQUFDTixPQUFPLE1BQUEsSUFBQSxJQUFBcUMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUExSyxJQUFBLENBQUEySSxXQUFBLEVBQUdtQyxTQUFTLENBQUM7VUFBQTtZQUEvQzNILE1BQU0sR0FBQTZILFFBQUEsQ0FBQS9KLENBQUE7WUFDWjtZQUNBO1lBQ0E7WUFDQSxJQUFJa0MsTUFBTSxLQUFLLEtBQUssSUFBSXlILEtBQUssS0FBS2YsYUFBYSxDQUFDeEIsT0FBTyxFQUFFO2NBQ3ZEbUIsZUFBZSxDQUFDc0IsU0FBUyxDQUFDO1lBQzVCO1lBQUNFLFFBQUEsQ0FBQTVMLENBQUE7WUFBQTtVQUFBO1lBQUE0TCxRQUFBLENBQUFsSyxDQUFBO1lBQUFpSyxFQUFBLEdBQUFDLFFBQUEsQ0FBQS9KLENBQUE7WUFBQSxNQU1HMkosS0FBSyxLQUFLZixhQUFhLENBQUN4QixPQUFPO2NBQUEyQyxRQUFBLENBQUE1TCxDQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUE0TCxRQUFBLENBQUE5SixDQUFBO1VBQUE7WUFDbkM7WUFDQTtZQUNBO1lBQ0E7WUFDQSxJQUFJNkosRUFBQSxZQUFlSSxvQ0FBbUIsRUFBRTtjQUN0Q2hHLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxDQUFHO2dCQUFFNkQsTUFBTSxFQUFFK0IsRUFBQSxDQUFJL0IsTUFBTTtnQkFBRW9DLE1BQU0sRUFBRUwsRUFBQSxDQUFJSztjQUFNLENBQUUsQ0FBQztZQUM5RCxDQUFDLE1BQU07Y0FDTEMsT0FBTyxDQUFDQyxLQUFLLENBQUMseUNBQXlDLEVBQUFQLEVBQUssQ0FBQztZQUMvRDtVQUFDO1lBQUFDLFFBQUEsQ0FBQWxLLENBQUE7WUFFRDhHLGFBQWEsQ0FBQ1MsT0FBTyxHQUFHLEtBQUs7WUFDN0JWLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDcEIsQ0FBQWdELEVBQUEsR0FBQTdCLGtCQUFrQixDQUFDVCxPQUFPLE1BQUEsSUFBQSxJQUFBc0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUEzSyxJQUFBLENBQUE4SSxrQkFBQSxFQUFHLEtBQUssQ0FBQztZQUFDLE9BQUFrQyxRQUFBLENBQUF4TCxDQUFBO1VBQUE7WUFBQSxPQUFBd0wsUUFBQSxDQUFBOUosQ0FBQTtRQUFBO01BQUEsR0FBQXNKLE9BQUE7SUFBQSxDQUV2QyxFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTWUsbUJBQW1CLEdBQUcsSUFBQUMsY0FBTyxFQUNqQztJQUFBLE9BQU12TCxNQUFBLENBQUEwSixNQUFBLENBQUExSixNQUFBLENBQUEwSixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0RLLFlBQVksQ0FBQSxFQUFBO01BQ2Z5QixvQkFBb0IsRUFBRSxTQUF0QkEsb0JBQW9CQSxDQUFBO1FBQUEsT0FBUTFDLGFBQWEsQ0FBQ2lCLFlBQVksQ0FBQ0MsY0FBYyxDQUFBLENBQUUsQ0FBQztNQUFBO01BQ3hFeUIsbUJBQW1CLEVBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSXZELElBQVk7UUFBQSxPQUNqQyxJQUFBd0QsdUJBQVksRUFDVnZDLG1CQUFtQixDQUFDWSxZQUFZLENBQUNDLGNBQWMsQ0FBQSxDQUFFLENBQUMsRUFDbEQ5QixJQUFJLENBQ0w7TUFBQSxDQUErQztNQUNsRHlELHlCQUF5QixFQUFFLFNBQTNCQSx5QkFBeUJBLENBQUd6RCxJQUFhLEVBQUk7UUFDM0MsSUFBTTBELFNBQVMsR0FBR3pDLG1CQUFtQixDQUFDWSxZQUFZLENBQUNDLGNBQWMsQ0FBQSxDQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDOUIsSUFBSSxFQUFFLE9BQU8wRCxTQUFTO1FBQzNCO1FBQ0E7UUFDQSxPQUFPLElBQUFDLHlCQUFjLEVBQUMsQ0FBQSxDQUFFLEVBQUUzRCxJQUFJLEVBQUUsSUFBQXdELHVCQUFZLEVBQUNFLFNBQVMsRUFBRTFELElBQUksQ0FBQyxDQUFDO01BQ2hFLENBQUM7TUFDRDRELCtCQUErQixFQUFFLFNBQWpDQSwrQkFBK0JBLENBQUE7UUFBQSxPQUFhekosU0FBQSxDQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBbEMsWUFBQSxHQUFBNEIsQ0FBQSxDQUFBLFNBQUFnSyxTQUFBO1VBQUEsSUFBQUMsSUFBQSxFQUFBYixNQUFBLEVBQUFjLEdBQUE7VUFBQSxPQUFBOUwsWUFBQSxHQUFBMkIsQ0FBQSxXQUFBb0ssU0FBQTtZQUFBLGtCQUFBQSxTQUFBLENBQUFyTCxDQUFBLEdBQUFxTCxTQUFBLENBQUEvTSxDQUFBO2NBQUE7Z0JBQUErTSxTQUFBLENBQUFyTCxDQUFBO2dCQUFBcUwsU0FBQSxDQUFBL00sQ0FBQTtnQkFFM0IsT0FBTTRLLFlBQVksQ0FBQ2tCLGNBQWMsQ0FBQSxDQUFFO2NBQUE7Z0JBQTFDZSxJQUFJLEdBQUFFLFNBQUEsQ0FBQWxMLENBQUE7Z0JBQUEsT0FBQWtMLFNBQUEsQ0FBQWpMLENBQUEsSUFDSDtrQkFBRWtMLE9BQU8sRUFBRSxJQUFJO2tCQUFFcEQsTUFBTSxFQUFFRCxhQUFhLENBQUNrRCxJQUFJO2dCQUFDLENBQUU7Y0FBQTtnQkFBQUUsU0FBQSxDQUFBckwsQ0FBQTtnQkFBQW9MLEdBQUEsR0FBQUMsU0FBQSxDQUFBbEwsQ0FBQTtnQkFFckQ7Z0JBQ0E7Z0JBQ1FtSyxNQUFNLEdBQUFjLEdBQUEsQ0FBTmQsTUFBTTtnQkFBQSxPQUFBZSxTQUFBLENBQUFqTCxDQUFBLElBQ1A7a0JBQUVrTCxPQUFPLEVBQUUsS0FBSztrQkFBRWhCLE1BQU0sRUFBRUEsTUFBTSxLQUFBLElBQUEsSUFBTkEsTUFBTSxLQUFBLEtBQUEsQ0FBQSxHQUFOQSxNQUFNLEdBQUksQ0FBQTtnQkFBRSxDQUFFO1lBQUE7VUFBQSxHQUFBWSxRQUFBO1FBQUEsQ0FFbEQsRUFBQTtNQUFBO01BQ0RLLFVBQVUsRUFBRS9CO0lBQW1CLENBQUEsQ0FBQTtFQUFBLENBQy9CLEVBQ0YsQ0FBQ04sWUFBWSxFQUFFakIsYUFBYSxFQUFFdUIsbUJBQW1CLENBQUMsQ0FDbkQ7RUFFRDtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQUFnQyxnQkFBUyxFQUFDLFlBQUs7SUFDYixJQUFJLENBQUN2RyxPQUFPLEVBQUUsT0FBT3dDLFNBQVM7SUFDOUJ4QyxPQUFPLENBQUNzQyxPQUFPLEdBQUdrRCxtQkFBbUI7SUFDckMsT0FBTyxZQUFLO01BQ1YsSUFBSXhGLE9BQU8sQ0FBQ3NDLE9BQU8sS0FBS2tELG1CQUFtQixFQUFFO1FBQzNDeEYsT0FBTyxDQUFDc0MsT0FBTyxHQUFHRSxTQUFTO01BQzdCO0lBQ0YsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDeEMsT0FBTyxFQUFFd0YsbUJBQW1CLENBQUMsQ0FBQztFQUVsQztFQUNBLElBQU1nQixVQUFVLEdBQUcsSUFBQTNELHFCQUFTLEVBQUM3RCxPQUFPLENBQUM7RUFDckMsSUFBTXlILFVBQVUsR0FBRyxDQUFDLENBQUN6SCxPQUFPO0VBRTVCLElBQU0wSCxnQkFBZ0IsR0FBRyxJQUFBakIsY0FBTyxFQUM5QjtJQUFBLE9BQU0sSUFBQWtCLHNCQUFlLEVBQUMxSCxNQUFNLENBQUM7RUFBQSxHQUM3QixDQUFDQSxNQUFNLENBQUMsQ0FDVDtFQUVEO0VBQ0E7RUFDQSxJQUFNMkgsWUFBWSxHQUFHLElBQUE5RSxhQUFNLEVBQUMsS0FBSyxDQUFDO0VBQ2xDLElBQU0rRSxRQUFRLEdBQUcsSUFBQTFFLHlCQUFhLEVBQUMsWUFBSztJRGxEOUIsSUFBSXVDLEVBQUU7SUNtRFYsSUFBSWtDLFlBQVksQ0FBQ3RFLE9BQU8sRUFBRTtJQUMxQnNFLFlBQVksQ0FBQ3RFLE9BQU8sR0FBRyxJQUFJO0lBQzNCLENBQUFvQyxFQUFBLEdBQUE1QixTQUFTLENBQUNSLE9BQU8sTUFBQSxJQUFBLElBQUFvQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQXpLLElBQUEsQ0FBQTZJLFNBQUEsRUFBR0UsYUFBYSxDQUFDaUIsWUFBWSxDQUFDQyxjQUFjLENBQUEsQ0FBRSxDQUFDLEVBQUVzQixtQkFBbUIsQ0FBQztFQUN4RixDQUFDLENBQUM7RUFFRixJQUFBZSxnQkFBUyxFQUFDLFlBQUs7SUFDYjtJQUNBO0lBQ0E7SUFDQSxJQUFJTyxLQUFLLEdBQUcsS0FBSztJQUVqQixJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQTtNQUFBLE9BQWN4SyxTQUFBLENBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLEVBQUEsS0FBQSxDQUFBLGVBQUFsQyxZQUFBLEdBQUE0QixDQUFBLENBQUEsU0FBQStLLFNBQUE7UUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsRUFBQUMsR0FBQTtRQUFBLE9BQUE5TSxZQUFBLEdBQUEyQixDQUFBLFdBQUFvTCxTQUFBO1VBQUEsa0JBQUFBLFNBQUEsQ0FBQXJNLENBQUEsR0FBQXFNLFNBQUEsQ0FBQS9OLENBQUE7WUFBQTtjQUNyQjROLFNBQVMsR0FBR1QsVUFBVSxDQUFDbEUsT0FBTztjQUFBLElBQy9CMkUsU0FBUztnQkFBQUcsU0FBQSxDQUFBL04sQ0FBQTtnQkFBQTtjQUFBO2NBQUEsT0FBQStOLFNBQUEsQ0FBQWpNLENBQUE7WUFBQTtjQUVkcUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2NBQUM0RixTQUFBLENBQUFyTSxDQUFBO2NBQUFxTSxTQUFBLENBQUEvTixDQUFBO2NBRVQsT0FBTTROLFNBQVMsQ0FBQ2hJLE1BQU0sQ0FBQztZQUFBO2NBQTlCaUksSUFBSSxHQUFBRSxTQUFBLENBQUFsTSxDQUFBO2NBQ1YsSUFBSSxDQUFDNEwsS0FBSyxJQUFJSSxJQUFJLElBQUksSUFBQUcsUUFBQSxhQUFPSCxJQUFJLE1BQUssUUFBUSxFQUFFO2dCQUM5Q2pELFlBQVksQ0FBQ3FELGNBQWMsQ0FBQ0osSUFBMkIsQ0FBQztjQUMxRDtjQUFDRSxTQUFBLENBQUEvTixDQUFBO2NBQUE7WUFBQTtjQUFBK04sU0FBQSxDQUFBck0sQ0FBQTtjQUFBb00sR0FBQSxHQUFBQyxTQUFBLENBQUFsTSxDQUFBO2NBRUQ7Y0FDQTtjQUNBO2NBQ0EsSUFBSSxDQUFDNEwsS0FBSyxFQUFFO2dCQUNWeEIsT0FBTyxDQUFDQyxLQUFLLENBQUMsMkJBQTJCLEVBQUE0QixHQUFLLENBQUM7Y0FDakQ7WUFBQztjQUFBQyxTQUFBLENBQUFyTSxDQUFBO2NBRUQsSUFBSSxDQUFDK0wsS0FBSyxFQUFFO2dCQUNWdEYsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2dCQUN4QjtnQkFDQTtnQkFDQXFGLFFBQVEsQ0FBQSxDQUFFO2NBQ1o7Y0FBQyxPQUFBTyxTQUFBLENBQUEzTixDQUFBO1lBQUE7Y0FBQSxPQUFBMk4sU0FBQSxDQUFBak0sQ0FBQTtVQUFBO1FBQUEsR0FBQTZMLFFBQUE7TUFBQSxDQUVKLEVBQUE7SUFBQTtJQUVELElBQUlSLFVBQVUsQ0FBQ2xFLE9BQU8sRUFBRTtNQUN0QnlFLFNBQVMsQ0FBQSxDQUFFO0lBQ2IsQ0FBQyxNQUFNO01BQ0xGLFFBQVEsQ0FBQSxDQUFFO0lBQ1o7SUFDQSxPQUFPLFlBQUs7TUFDVkMsS0FBSyxHQUFHLElBQUk7SUFDZCxDQUFDO0lBQ0Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtFQUNGLENBQUMsRUFBRSxDQUFDSixnQkFBZ0IsRUFBRUQsVUFBVSxDQUFDLENBQUM7RUFFbEM7RUFDQSxJQUFNYyxTQUFTLEdBQUcsSUFBQXpGLGFBQU0sRUFBa0IsSUFBSSxDQUFDO0VBQy9DLElBQUF5RSxnQkFBUyxFQUFDLFlBQUs7SURqRFQsSUFBSTdCLEVBQUU7SUNrRFYsSUFBSSxDQUFDNUUsbUJBQW1CLElBQUlyQixJQUFJLEtBQUssTUFBTSxFQUFFO0lBQzdDLElBQU0rSSxVQUFVLEdBQUcsQ0FBQTlDLEVBQUEsR0FBQTZDLFNBQVMsQ0FBQ2pGLE9BQU8sTUFBQSxJQUFBLElBQUFvQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRStDLGFBQWEsQ0FDakQsOEZBQThGLENBQy9GO0lBQ0RELFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFRSxLQUFLLENBQUEsQ0FBRTtJQUNuQjtFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjtFQUNBO0VBQ0E7RUFDQSxJQUFNQyxnQkFBZ0IsR0FBRyxJQUFBQywyQkFBZ0IsRUFBQ3ZILFVBQVUsQ0FBQztFQUNyRCxJQUFNd0gsbUJBQW1CLEdBQUcsSUFBQUQsMkJBQWdCLEVBQUN0SCxhQUFhLENBQUM7RUFDM0QsSUFBTXdILGNBQWMsR0FBRyxJQUFBRiwyQkFBZ0IsRUFBQ2hKLFFBQVEsQ0FBQztFQUNqRCxJQUFNbUosWUFBWSxHQUFHLElBQUFILDJCQUFnQixFQUFDckgsTUFBTSxDQUFDO0VBRTdDO0VBQ0E7RUFDQTtFQUNBLElBQU15SCxXQUFXLEdBQUcsSUFBQXZDLGNBQU8sRUFDekI7SUFBQSxPQUFPO01BQ0x4QixZQUFZLEVBQUV1QixtQkFBbUI7TUFDakN5QyxhQUFhLEVBQUU1RCxTQUFTLENBQUM0RCxhQUFhO01BQ3RDQyxhQUFhLEVBQUU3RCxTQUFTLENBQUM2RCxhQUFhO01BQ3RDQyxlQUFlLEVBQUU5RCxTQUFTLENBQUM4RCxlQUFlO01BQzFDQyxrQkFBa0IsRUFBRS9ELFNBQVMsQ0FBQytELGtCQUFrQjtNQUNoREMsYUFBYSxFQUFFaEUsU0FBUyxDQUFDZ0UsYUFBYTtNQUN0Q0MsZUFBZSxFQUFFakUsU0FBUyxDQUFDaUUsZUFBZTtNQUMxQ0MsV0FBVyxFQUFFbEUsU0FBUyxDQUFDa0UsV0FBVztNQUNsQ0MsWUFBWSxFQUFFbkUsU0FBUyxDQUFDbUUsWUFBWTtNQUNwQy9ILElBQUksRUFBSkEsSUFBSTtNQUNKRSxVQUFVLEVBQVZBLFVBQVU7TUFDVjtNQUNBO01BQ0E7TUFDQUUsUUFBUSxFQUFSQSxRQUFRO01BQ1JFLGVBQWUsRUFBZkEsZUFBZTtNQUNmO01BQ0F0QyxJQUFJLEVBQUpBLElBQUk7TUFDSkUsSUFBSSxFQUFKQSxJQUFJO01BQ0pDLFFBQVEsRUFBRWtKLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxHQUFJOUosaUJBQWlCO01BQzdDa0UsaUJBQWlCLEVBQUVBLGlCQUFtRTtNQUN0RkssbUJBQW1CLEVBQUVBLG1CQUF1RTtNQUM1RkUsaUJBQWlCLEVBQWpCQSxpQkFBaUI7TUFDakJFLG1CQUFtQixFQUFuQkEsbUJBQW1CO01BQ25CdEMsVUFBVSxFQUFFc0gsZ0JBQWdCO01BQzVCckgsYUFBYSxFQUFFdUgsbUJBQW1CO01BQ2xDdEgsTUFBTSxFQUFFd0gsWUFBWTtNQUNwQmhJLGlCQUFpQixFQUFqQkE7SURwREYsQ0NxREM7RUFBQSxDQUFDLEVBQ0YsQ0FDRXlGLG1CQUFtQixFQUNuQm5CLFNBQVMsQ0FBQzRELGFBQWEsRUFDdkI1RCxTQUFTLENBQUM2RCxhQUFhLEVBQ3ZCN0QsU0FBUyxDQUFDOEQsZUFBZSxFQUN6QjlELFNBQVMsQ0FBQytELGtCQUFrQixFQUM1Qi9ELFNBQVMsQ0FBQ2dFLGFBQWEsRUFDdkJoRSxTQUFTLENBQUNpRSxlQUFlLEVBQ3pCakUsU0FBUyxDQUFDa0UsV0FBVyxFQUNyQmxFLFNBQVMsQ0FBQ21FLFlBQVksRUFDdEIvSCxJQUFJLEVBQ0pFLFVBQVUsRUFDVkUsUUFBUSxFQUNSRSxlQUFlLEVBQ2Z0QyxJQUFJLEVBQ0pFLElBQUksRUFDSm1KLGNBQWMsRUFDZDVGLGlCQUFpQixFQUNqQkssbUJBQW1CLEVBQ25CRSxpQkFBaUIsRUFDakJFLG1CQUFtQixFQUNuQmdGLGdCQUFnQixFQUNoQkUsbUJBQW1CLEVBQ25CRSxZQUFZLEVBQ1poSSxpQkFBaUIsQ0FDbEIsQ0FDRjtFQUVELElBQU0wSSxnQkFBZ0IsR0FBRzlKLElBQUksR0FBRytKLFNBQUcsR0FBR0MsZUFBUTtFQUM5QyxJQUFNQyxZQUFZLEdBQUdqSyxJQUFJLEdBQUV6RSxNQUFBLENBQUEwSixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQU0vRSxRQUFRLENBQUEsR0FBSyxDQUFBLENBQUU7RUFFaEQ7RUFDQTtFQUNBO0VBQ0EsSUFBTWdLLG9CQUFvQixHQUFHLElBQUExRyx5QkFBYSxFQUFDLFlBQUs7SUR4RDFDLElBQUl1QyxFQUFFO0lDeURWLElBQUksSUFBQTJDLFFBQUEsYUFBTzlJLFNBQVMsTUFBSyxRQUFRLEVBQUUsQ0FBQW1HLEVBQUEsR0FBQW5HLFNBQVMsQ0FBQ2UsT0FBTyxNQUFBLElBQUEsSUFBQW9GLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFBekssSUFBQSxDQUFBc0UsU0FBQSxDQUFJO0lBQ3hEd0YsYUFBYSxDQUFBLENBQUU7RUFDakIsQ0FBQyxDQUFDO0VBRUYsSUFBTStFLGFBQWEsR0FDakJ2SyxTQUFTLEtBQUssS0FBSyxJQUFJRSxJQUFJLEtBQUssTUFBTSxHQUNwQyxJQUFBc0ssZUFBQSxFQUFDQyxvQkFBUyxFQUFBOU8sTUFBQSxDQUFBMEosTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNILElBQUF5RCxRQUFBLGFBQU85SSxTQUFTLE1BQUssUUFBUSxHQUFHQSxTQUFTLEdBQUcsQ0FBQSxDQUFFLEVBQUM7SUFDcERlLE9BQU8sRUFBRXVKLG9CQUFvQjtJQUM3QjlKLE9BQU8sRUFBRWdEO0VBQVMsQ0FBQSxDQUFBLENBQ2xCLEdBQ0EsSUFBSTtFQUVWLE9BQ0UsSUFBQWdILGVBQUEsRUFBQ0UsOEJBQW9CLENBQUNDLFFBQVEsRUFBQTtJQUFDeE4sS0FBSyxFQUFFc00sV0FBVztJQUFBM0osUUFBQSxFQUcvQyxJQUFBMEssZUFBQSxFQUFDSSw2QkFBbUIsQ0FBQ0QsUUFBUSxFQUFBO01BQUN4TixLQUFLLEVBQUU0SSxLQUFLO01BQUFqRyxRQUFBLEVBTXhDLElBQUEwSyxlQUFBLEVBQUNLLGdDQUFzQixDQUFDRixRQUFRLEVBQUE7UUFBQ3hOLEtBQUssRUFBRStFLElBQUk7UUFBQXBDLFFBQUEsRUFDNUMsSUFBQWdMLGdCQUFBLEVBQUEsTUFBQSxFQUFBblAsTUFBQSxDQUFBMEosTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNNMUMsSUFBSSxFQUFBO1VBQ1JvSSxHQUFHLEVBQUUvQixTQUFTO1VBQ2RqSixTQUFTLEVBQUVQLFdBQVcsQ0FBQ3lFLFNBQVMsRUFBRSxJQUFBK0csbUJBQU8sRUFBQzNMLE9BQU8sQ0FBQSxDQUFFLEVBQUVVLFNBQVMsQ0FBQyxDQUFDO1VBQ2hFa0wsUUFBUSxFQUFFakYsbUJBQW1CO1VBQzdCakYsT0FBTyxFQUFFK0UsU0FBUyxDQUFDb0YsV0FBVztVQUFBcEwsUUFBQSxFQUFBLENBRTlCLElBQUEwSyxlQUFBLEVBQUNOLGdCQUFnQixFQUFBdk8sTUFBQSxDQUFBMEosTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLZ0YsWUFBWSxFQUFBO1lBQUF2SyxRQUFBLEVBQUdBO1VBQVEsQ0FBQSxDQUFBLENBQW9CLEVBQ2hFeUssYUFBYTtRQUFBLENBQUEsQ0FBQTtNQUNULENBQUE7SUFDMkIsQ0FBQTtFQUNMLENBQUEsQ0FDRDtBQUVwQyxDQUFDO0FBRUQzSyxXQUFXLENBQUNwQyxXQUFXLEdBQUcsU0FBUztBQWE1QixJQUFNMk4sT0FBTyxHQUFBQyxPQUFBLENBQUFELE9BQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDekwsV0FBVyxDQUE0QjtBQUFDLElBQUEwTCxRQUFBLEdBQUFGLE9BQUEsY0FFckRELE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFNpemVDb250ZXh0IH0gZnJvbSAnLi4vRm9ybUxheW91dC9jb250ZXh0JztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJy4vY29yZS9ob29rcy91c2VGb3JtJztcbmltcG9ydCB7IFByb0Zvcm1TdGFibGVDb250ZXh0LCBQcm9Gb3JtU3RhdGVDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IFN1Ym1pdHRlciB9IGZyb20gJy4vU3VibWl0dGVyJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ09MX1NQQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzdGFibGVTZXJpYWxpemUsIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcywgb21pdE5pbFZhbHVlcywgZm9ybWF0RGF0ZVZhbHVlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2hhbGxvd1N0YWJsZSB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgdXNlVXJsU3luYyB9IGZyb20gJy4vaG9va3MvdXNlVXJsU3luYyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9jb3JlL3ZhbGlkYXRpb25FcnJvcic7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhDU1NfUFJFRklYKTtcbmNvbnN0IGZvcm1DbGFzc2VzID0gY2xhc3NuYW1lcygnZm9ybScpO1xuY29uc3QgREVGQVVMVF9DT0xfUFJPUFMgPSB7IHNwYW46IERFRkFVTFRfQ09MX1NQQU4gfTtcbmNvbnN0IFByb0Zvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzdWJtaXR0ZXIsIG1vZGUgPSAnZWRpdCcsIGdyaWQgPSBmYWxzZSwgY29sUHJvcHMsIHJvd1Byb3BzLCBsb2FkaW5nID0gZmFsc2UsIHJlcXVlc3QsIHBhcmFtcywgaW5pdGlhbFZhbHVlcywgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgb25Jbml0LCBvbkxvYWRpbmdDaGFuZ2UsIHN5bmNUb1VybCwgc3luY1RvVXJsQXNJbXBvcnRhbnQgPSBmYWxzZSwgZXh0cmFVcmxQYXJhbXMsIGF1dG9Gb2N1c0ZpcnN0SW5wdXQgPSBmYWxzZSwgZm9ybUNvbXBvbmVudFR5cGUsIGZvcm1SZWYsIG9taXROaWwgPSB0cnVlLCBkYXRlRm9ybWF0dGVyID0gJ3N0cmluZycsIGZpZWxkUHJvcHMsIGZvcm1JdGVtUHJvcHMsIGxheW91dCwgc2l6ZSA9ICdsYXJnZScsIGxhYmVsQWxpZ24gPSAnbGVmdCcsIGRpc2FibGVkID0gZmFsc2UsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIHByZWZpeENsczogX3ByZWZpeENscyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwic3VibWl0dGVyXCIsIFwibW9kZVwiLCBcImdyaWRcIiwgXCJjb2xQcm9wc1wiLCBcInJvd1Byb3BzXCIsIFwibG9hZGluZ1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJpbml0aWFsVmFsdWVzXCIsIFwib25GaW5pc2hcIiwgXCJvbkZpbmlzaEZhaWxlZFwiLCBcIm9uVmFsdWVzQ2hhbmdlXCIsIFwib25SZXNldFwiLCBcIm9uSW5pdFwiLCBcIm9uTG9hZGluZ0NoYW5nZVwiLCBcInN5bmNUb1VybFwiLCBcInN5bmNUb1VybEFzSW1wb3J0YW50XCIsIFwiZXh0cmFVcmxQYXJhbXNcIiwgXCJhdXRvRm9jdXNGaXJzdElucHV0XCIsIFwiZm9ybUNvbXBvbmVudFR5cGVcIiwgXCJmb3JtUmVmXCIsIFwib21pdE5pbFwiLCBcImRhdGVGb3JtYXR0ZXJcIiwgXCJmaWVsZFByb3BzXCIsIFwiZm9ybUl0ZW1Qcm9wc1wiLCBcImxheW91dFwiLCBcInNpemVcIiwgXCJsYWJlbEFsaWduXCIsIFwiZGlzYWJsZWRcIiwgXCJ2YWxpZGF0ZVRyaWdnZXJcIiwgXCJwcmVmaXhDbHNcIl0pO1xuICAgIGNvbnN0IFtyZXF1ZXN0TG9hZGluZywgc2V0UmVxdWVzdExvYWRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICAvLyB1c2VTYWZlU3RhdGUgZm9yIHRoZSBSRU5ERVJFRCBzdWJtaXR0aW5nIHN0YXRlIChpdHMgc2V0dGVyIGlzIHVubW91bnQtc2FmZVxuICAgIC8vIOKAlCB0aGUgZmluYWxseSBiZWxvdyBydW5zIGFmdGVyIGF3YWl0aW5nIG9uRmluaXNoLCB3aGVuIHRoZSB0eXBpY2FsXG4gICAgLy8gc3VibWl0LXRoZW4tY2xvc2UgZmxvdyBtYXkgYWxyZWFkeSBoYXZlIHVubW91bnRlZCB0aGUgZm9ybSBvbiBSZWFjdFxuICAgIC8vIDE2LzE3KS4gVGhlIHJlZiBpcyB0aGUgc3luY2hyb25vdXMgcmUtZW50cnkgZ3VhcmQ7IEAxbW9uZXkvaG9va3MgaGFzIG5vXG4gICAgLy8gc2luZ2xlIGhvb2sgdGhhdCBpcyBib3RoIHVubW91bnQtc2FmZSBhbmQgc3luY2hyb25vdXNseSByZWFkYWJsZS5cbiAgICBjb25zdCBbc3VibWl0dGluZywgc2V0U3VibWl0dGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHN1Ym1pdHRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IGxvYWRpbmcgfHwgcmVxdWVzdExvYWRpbmcgfHwgc3VibWl0dGluZztcbiAgICAvLyDilIDilIAgVHJhbnNmb3JtIC8gdmFsdWVUeXBlIHJlZ2lzdHJpZXMg4pSA4pSAXG4gICAgY29uc3QgdHJhbnNmb3JtS2V5UmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCB2YWx1ZVR5cGVSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPSBmbjtcbiAgICB9KTtcbiAgICAvLyBUaGUgb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IGd1YXJkcyByZW1vdmFsOiBkZWxldGUgb25seSB3aGVuIHRoZSByZWdpc3RyeVxuICAgIC8vIHN0aWxsIGhvbGRzIHRoZSBDQUxMRVInUyByZWdpc3RyYXRpb24sIHNvIGFuIHVubW91bnRpbmcgaW5zdGFuY2UgY2FuIG5ldmVyXG4gICAgLy8gd2lwZSBhIHNhbWUtbmFtZSBzaWJsaW5nJ3Mgb3Igc3VjY2Vzc29yJ3MgZW50cnkuXG4gICAgY29uc3QgdW5yZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIGlmIChmbiA9PT0gdW5kZWZpbmVkIHx8IHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID09PSBmbikge1xuICAgICAgICAgICAgZGVsZXRlIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV0gPSB2YWx1ZVR5cGU7XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWVUeXBlID09PSB1bmRlZmluZWQgfHwgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV0gPT09IHZhbHVlVHlwZSkge1xuICAgICAgICAgICAgZGVsZXRlIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgb25GaW5pc2hSZWYgPSB1c2VMYXRlc3Qob25GaW5pc2gpO1xuICAgIGNvbnN0IG9uSW5pdFJlZiA9IHVzZUxhdGVzdChvbkluaXQpO1xuICAgIGNvbnN0IG9uTG9hZGluZ0NoYW5nZVJlZiA9IHVzZUxhdGVzdChvbkxvYWRpbmdDaGFuZ2UpO1xuICAgIC8vIFN1Ym1pdCBwaXBlbGluZTogZGF0ZXMg4oaSIGZpZWxkIHRyYW5zZm9ybXMg4oaSIG9taXROaWxcbiAgICBjb25zdCBhcHBseVBpcGVsaW5lID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBmb3JtYXREYXRlVmFsdWVzKHZhbHVlcywgZGF0ZUZvcm1hdHRlciwgdmFsdWVUeXBlUmVmLmN1cnJlbnQpO1xuICAgICAgICByZXN1bHQgPSB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgICAgIGlmIChvbWl0TmlsKVxuICAgICAgICAgICAgcmVzdWx0ID0gb21pdE5pbFZhbHVlcyhyZXN1bHQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICAgIC8vIFNhbWUgcGlwZWxpbmUgV0lUSE9VVCBvbWl0TmlsIOKAlCBzaW5nbGUtZmllbGQgcmVhZGVycyBtdXN0IG5vdCBzZWUgYSBmaWVsZFxuICAgIC8vIHZhbmlzaCBqdXN0IGJlY2F1c2UgaXRzIGN1cnJlbnQgdmFsdWUgaXMgZW1wdHkuXG4gICAgY29uc3QgZm9ybWF0VmFsdWVzS2VlcE5pbCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXREYXRlVmFsdWVzKHZhbHVlcywgZGF0ZUZvcm1hdHRlciwgdmFsdWVUeXBlUmVmLmN1cnJlbnQpO1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBVUkwgc3luYyAoc3luY1RvVXJsIC8gc3luY1RvVXJsQXNJbXBvcnRhbnQgLyBleHRyYVVybFBhcmFtcykg4pSA4pSAXG4gICAgY29uc3QgeyB1cmxJbml0aWFsVmFsdWVzLCBvblVybFN5bmNGaW5pc2gsIG9uVXJsU3luY1Jlc2V0IH0gPSB1c2VVcmxTeW5jKHtcbiAgICAgICAgc3luY1RvVXJsLFxuICAgICAgICBleHRyYVVybFBhcmFtcyxcbiAgICB9KTtcbiAgICAvLyBpbml0aWFsVmFsdWVzIGlzIE1PVU5ULU9OTFkgKGRvY3VtZW50ZWQgY29udHJhY3Q7IHVzZUZvcm1Db3JlIHJlLWZyZWV6ZXNcbiAgICAvLyBhcyBhIHNhZmV0eSBuZXQpIOKAlCBjb21wdXRlIHRoZSBVUkwgbWVyZ2Ugb25jZSBzbyB0aGUgZnJlZXplIGlzIHZpc2libGVcbiAgICAvLyB3aGVyZSB0aGUgcHJvcHMgZW50ZXIsIGluc3RlYWQgb2YgcmVjb21wdXRpbmcgZGVhZCBzcHJlYWRzIHBlciByZW5kZXIuXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBpZiAobWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9IHN5bmNUb1VybFxuICAgICAgICAgICAgPyAoc3luY1RvVXJsQXNJbXBvcnRhbnRcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlcyksIHVybEluaXRpYWxWYWx1ZXMpIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB1cmxJbml0aWFsVmFsdWVzKSwgaW5pdGlhbFZhbHVlcykpXG4gICAgICAgICAgICA6IChpbml0aWFsVmFsdWVzICE9PSBudWxsICYmIGluaXRpYWxWYWx1ZXMgIT09IHZvaWQgMCA/IGluaXRpYWxWYWx1ZXMgOiB7fSk7XG4gICAgfVxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQ7XG4gICAgLy8gQnVtcGVkIG9uIGV2ZXJ5IHJlc2V0IOKAlCBhbiBpbi1mbGlnaHQgc3VibWl0IGNhcHR1cmVzIGl0IGFuZCBhYm9ydHMgd2hlblxuICAgIC8vIGl0IGNoYW5nZWQgdW5kZXJuZWF0aCAodGhlIHVzZXIgZGlzY2FyZGVkIHRoZSBzdWJtaXNzaW9uJ3MgdmFsdWVzKS5cbiAgICBjb25zdCByZXNldEVwb2NoUmVmID0gdXNlUmVmKDApO1xuICAgIC8vIFJlc2V0IGNoYWluOiBmb3JtLWxldmVsIG9uUmVzZXQgcmVjZWl2ZXMgdGhlIChwb3N0LXJlc2V0KSBmb3JtYXR0ZWRcbiAgICAvLyB2YWx1ZXMsIHRoZW4gdGhlIGZvcm0ncyBvd24gVVJMIHBhcmFtcyBhcmUgY2xlYXJlZC4gdXNlTWVtb2l6ZWRGbiBkZWZlcnNcbiAgICAvLyBleGVjdXRpb24gdG8gZXZlbnQgdGltZSwgd2hlbiBgZm9ybUluc3RhbmNlYCAoY3JlYXRlZCBqdXN0IGJlbG93KSBleGlzdHMuXG4gICAgY29uc3QgZmlyZUZvcm1SZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXNldEVwb2NoUmVmLmN1cnJlbnQgKz0gMTtcbiAgICAgICAgY29uc3QgZmluYWxWYWx1ZXMgPSBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KGZpbmFsVmFsdWVzKTtcbiAgICAgICAgb25VcmxTeW5jUmVzZXQoKTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgRm9ybSBlbmdpbmUgKHVzZUZvcm0gd2l0aCBhc3luYyB2YWxpZGF0aW9uKSDilIDilIBcbiAgICBjb25zdCB7IGZvcm1JbnN0YW5jZSwgaW50ZXJuYWxzLCBzdG9yZSB9ID0gdXNlRm9ybSh7XG4gICAgICAgIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlLFxuICAgICAgICBvblJlc2V0OiBmaXJlRm9ybVJlc2V0LFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBBc3luYyBzdWJtaXQgd2l0aCB0cmFuc2Zvcm0gcGlwZWxpbmUg4pSA4pSAXG4gICAgLy8gUmUtZW50cnkgZ3VhcmQ6IGEgc2Vjb25kIHN1Ym1pdCB3aGlsZSBvbmUgaXMgaW4gZmxpZ2h0IGlzIGlnbm9yZWQgKHRoZVxuICAgIC8vIHJlZiBjYXRjaGVzIHR3byBjYWxscyBpbiB0aGUgc2FtZSB0aWNrKS5cbiAgICBjb25zdCB3cmFwcGVkSGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHN1Ym1pdHRpbmdSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3VibWl0dGluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICAgICAgKF9hID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGVwb2NoID0gcmVzZXRFcG9jaFJlZi5jdXJyZW50O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVkVmFsdWVzID0geWllbGQgZm9ybUluc3RhbmNlLnZhbGlkYXRlRmllbGRzKCk7XG4gICAgICAgICAgICAvLyBBIHJlc2V0IGR1cmluZyAoYXN5bmMpIHZhbGlkYXRpb24gZGlzY2FyZHMgdGhpcyBzdWJtaXNzaW9uIGVudGlyZWx5OlxuICAgICAgICAgICAgLy8gdmFsaWRhdGVGaWVsZHMgcmUtcmVhZHMgdGhlIGxpdmUgc3RvcmUsIHNvIHByb2NlZWRpbmcgd291bGQgaGFuZFxuICAgICAgICAgICAgLy8gb25GaW5pc2ggdGhlIFBPU1QtcmVzZXQgdmFsdWVzLlxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgcGlwZWxpbmVkID0gYXBwbHlQaXBlbGluZSh2YWxpZGF0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKChfYiA9IG9uRmluaXNoUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKG9uRmluaXNoUmVmLCBwaXBlbGluZWQpKTtcbiAgICAgICAgICAgIC8vIFN5bmMgdGhlIFVSTCB1bmxlc3Mgb25GaW5pc2ggZXhwbGljaXRseSByZXR1cm5lZCBmYWxzZSAoYSB0aHJvdyBhYm92ZVxuICAgICAgICAgICAgLy8gYWxzbyBza2lwcyDigJQgYSBmYWlsZWQgc3VibWl0IG11c3Qgbm90IHBvbGx1dGUgdGhlIFVSTCksIGFuZCBvbmx5IGlmXG4gICAgICAgICAgICAvLyB0aGUgdXNlciBkaWQgTk9UIHJlc2V0IHRoZSBmb3JtIHdoaWxlIHRoZSBzdWJtaXQgd2FzIGluIGZsaWdodC5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IGZhbHNlICYmIGVwb2NoID09PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBvblVybFN5bmNGaW5pc2gocGlwZWxpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBBIHJlc2V0IGR1cmluZyB2YWxpZGF0aW9uIGFsc28gaW52YWxpZGF0ZXMgdGhlIEZBSUxVUkUgY2FsbGJhY2sg4oCUXG4gICAgICAgICAgICAvLyB0aGUgZXJyb3IgY2FycmllcyBwb3N0LXJlc2V0IHZhbHVlcyBmb3IgYSBkaXNjYXJkZWQgc3VibWlzc2lvbi5cbiAgICAgICAgICAgIC8vIChGaWVsZCBlcnJvcnMgZnJvbSB0aGUgZGVhZCB2YWxpZGF0aW9uIGFyZSBzdXBwcmVzc2VkIGJ5IHRoZVxuICAgICAgICAgICAgLy8gcGVyLWZpZWxkIHZhbGlkYXRpb24gZXBvY2hzOiByZXNldEZpZWxkcyBpbnZhbGlkYXRlcyBpbi1mbGlnaHQgcnVucy4pXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvLyBPbmx5IGEgVkFMSURBVElPTiBmYWlsdXJlIHJvdXRlcyB0byBvbkZpbmlzaEZhaWxlZC4gQW4gZXhjZXB0aW9uIG91dFxuICAgICAgICAgICAgLy8gb2YgdGhlIGNvbnN1bWVyJ3Mgb3duIG9uRmluaXNoIGlzIG5vdCBhIHZhbGlkYXRpb24gcmVzdWx0OiB0aGUgc3VibWl0XG4gICAgICAgICAgICAvLyBmYWlscyAoVVJMIHVudG91Y2hlZCwgb3ZlcmxheSBzdGF5cyBvcGVuKSBhbmQgdGhlIGVycm9yIGlzIHN1cmZhY2VkXG4gICAgICAgICAgICAvLyBvbiB0aGUgY29uc29sZSBpbnN0ZWFkIG9mIGJlaW5nIG1pc3JlcG9ydGVkIHdpdGggYW4gZW1wdHkgcGF5bG9hZC5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBGb3JtVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzOiBlcnIudmFsdWVzLCBlcnJvcnM6IGVyci5lcnJvcnMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gb25GaW5pc2ggdGhyZXcgZHVyaW5nIHN1Ym1pdDonLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgc3VibWl0dGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIChfYyA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgUHJvRm9ybSBpbnN0YW5jZTogc3VwZXJzZXQgb2YgRm9ybUluc3RhbmNlIOKUgOKUgFxuICAgIGNvbnN0IHByb0Zvcm1Gb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZvcm1JbnN0YW5jZSksIHsgZ2V0RmllbGRzRm9ybWF0VmFsdWU6ICgpID0+IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBnZXRGaWVsZEZvcm1hdFZhbHVlOiAoKG5hbWUpID0+IHJlc29sdmVWYWx1ZShmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgbmFtZSkpLCBnZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0OiAobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgICAgICBpZiAoIW5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICAgICAgICAgIC8vIEEgbmVzdGVkIG9iamVjdCBjYXJyeWluZyBPTkxZIHRoZSByZXF1ZXN0ZWQgbGVhZiDigJQgbm90IHRoZSB3aG9sZVxuICAgICAgICAgICAgLy8gdG9wLWxldmVsIHN1YnRyZWUgdGhlIHBhdGggaGFwcGVucyB0byBsaXZlIGluLlxuICAgICAgICAgICAgcmV0dXJuIHNldE5lc3RlZFZhbHVlKHt9LCBuYW1lLCByZXNvbHZlVmFsdWUoZm9ybWF0dGVkLCBuYW1lKSk7XG4gICAgICAgIH0sIHZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWU6ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxzID0geWllbGQgZm9ybUluc3RhbmNlLnZhbGlkYXRlRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgdmFsdWVzOiBhcHBseVBpcGVsaW5lKHZhbHMpIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gdmFsaWRhdGVGaWVsZHMgcmVqZWN0cyB3aXRoIGFuIEVycm9yIGNhcnJ5aW5nIHRoZSBmaWVsZCBlcnJvcnMgbWFwXG4gICAgICAgICAgICAgICAgLy8gKHNhbWUgc2hhcGUgd3JhcHBlZEhhbmRsZVN1Ym1pdCBjb25zdW1lcyBhYm92ZSkuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMgfSA9IGVycjtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JzOiBlcnJvcnMgIT09IG51bGwgJiYgZXJyb3JzICE9PSB2b2lkIDAgPyBlcnJvcnMgOiB7fSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgc3VibWl0Rm9ybTogd3JhcHBlZEhhbmRsZVN1Ym1pdCB9KSksIFtmb3JtSW5zdGFuY2UsIGFwcGx5UGlwZWxpbmUsIHdyYXBwZWRIYW5kbGVTdWJtaXRdKTtcbiAgICAvLyDilIDilIAgU3luYyB0byBmb3JtUmVmIHByb3Ag4pSA4pSAXG4gICAgLy8gVGhlIGNsZWFudXAgY2xlYXJzIHRoZSByZWYgb24gdW5tb3VudDogYSBoYW5kbGUgdG8gYW4gdW5tb3VudGVkIGZvcm1cbiAgICAvLyB2YWxpZGF0ZXMgYW4gZW1wdHkgZmllbGQgc3RvcmUgYW5kIHJlcG9ydHMgZmFrZSBzdWNjZXNzLCBzbyBjb25zdW1lcnNcbiAgICAvLyAoYW5kIHRoZSBidXNpbmVzcy1zaGVsbCByZWxheSByZWZzKSBtdXN0IG9ic2VydmUgYHVuZGVmaW5lZGAgaW5zdGVhZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWZvcm1SZWYpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1SZWYuY3VycmVudCA9PT0gcHJvRm9ybUZvcm1JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGZvcm1SZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbZm9ybVJlZiwgcHJvRm9ybUZvcm1JbnN0YW5jZV0pO1xuICAgIC8vIOKUgOKUgCByZXF1ZXN0IC8gcGFyYW1zIGF1dG8tbG9hZCDilIDilIBcbiAgICBjb25zdCByZXF1ZXN0UmVmID0gdXNlTGF0ZXN0KHJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc1JlcXVlc3QgPSAhIXJlcXVlc3Q7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHVzZU1lbW8oKCkgPT4gc3RhYmxlU2VyaWFsaXplKHBhcmFtcyksIFtwYXJhbXNdKTtcbiAgICAvLyBvbkluaXQgZmlyZXMgZXhhY3RseSBvbmNlOiBhZnRlciB0aGUgRklSU1QgcmVxdWVzdCByZXNvbHZlcyB3aGVuIGFcbiAgICAvLyByZXF1ZXN0IGlzIGNvbmZpZ3VyZWQsIG90aGVyd2lzZSByaWdodCBhZnRlciBtb3VudC5cbiAgICBjb25zdCBpbml0RmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGZpcmVJbml0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGluaXRGaXJlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbml0RmlyZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIChfYSA9IG9uSW5pdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkluaXRSZWYsIGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBwcm9Gb3JtRm9ybUluc3RhbmNlKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBTdGFsZW5lc3MgZ3VhcmQ6IGlmIHBhcmFtcyBjaGFuZ2UgYWdhaW4gYmVmb3JlIHRoaXMgZmV0Y2ggcmVzb2x2ZXMsIHRoZVxuICAgICAgICAvLyBjbGVhbnVwIG1hcmtzIGl0IHN0YWxlIHNvIHRoZSBsYXRlIHJlc3BvbnNlIGNhbid0IG92ZXJ3cml0ZSB0aGUgdmFsdWVzXG4gICAgICAgIC8vIGEgbmV3ZXIgcmVxdWVzdCBhbHJlYWR5IChvciB3aWxsKSBzZXQuXG4gICAgICAgIGxldCBzdGFsZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBmZXRjaERhdGEgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RGbiA9IHJlcXVlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdEZuKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVxdWVzdEZuKHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSAmJiBkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBmb3JtSW5zdGFuY2Uuc2V0RmllbGRzVmFsdWUoZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIEEgZmFpbGVkIHJlcXVlc3QgbXVzdCBub3QgZXNjYXBlIGFzIGFuIHVuaGFuZGxlZCByZWplY3Rpb24g4oCUIHRoZVxuICAgICAgICAgICAgICAgIC8vIGZvcm0ga2VlcHMgaXRzIGluaXRpYWxWYWx1ZXMgYW5kIHRoZSBmYWlsdXJlIGlzIHN1cmZhY2VkIG9uIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUgKG1pcnJvcnMgdGhlIGZpZWxkLWxldmVsIHVzZUZpZWxkUmVxdWVzdCBoYW5kbGluZykuXG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gcmVxdWVzdCBmYWlsZWQ6JywgZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBhIE5PTi1zdXBlcnNlZGVkIHNldHRsZSBpbml0aWFsaXplcyB0aGUgZm9ybTogYSBzdGFsZVxuICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0J3MgZGF0YSB3YXMgZGlzY2FyZGVkLCBzbyBpdHMgdmFsdWVzIG11c3Qgbm90IGJlIHJlcG9ydGVkLlxuICAgICAgICAgICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXF1ZXN0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZldGNoRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc3RhbGUgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICAvLyBSZS1mZXRjaCB3aGVuIHBhcmFtcyBjaGFuZ2UgYnkgVkFMVUUgKGRlcGVuZGluZyBvbiB0aGUgcmF3IGBwYXJhbXNgXG4gICAgICAgIC8vIHJlZmVyZW5jZSB3b3VsZCByZS1ydW4gb24gZXZlcnkgcmVuZGVyIGZvciBpbmxpbmUgb2JqZWN0IGxpdGVyYWxzIGFuZCxcbiAgICAgICAgLy8gY29tYmluZWQgd2l0aCB0aGUgbG9hZGluZyBzZXRTdGF0ZSwgbG9vcCBmb3JldmVyKSDigJQgYW5kIHdoZW4gYHJlcXVlc3RgXG4gICAgICAgIC8vIGZpcnN0IGJlY29tZXMgZGVmaW5lZCAoZS5nLiBiZWhpbmQgYSBmZWF0dXJlIGZsYWcpLCBtaXJyb3JpbmdcbiAgICAgICAgLy8gdXNlRmllbGRSZXF1ZXN0LiBmaXJlSW5pdCdzIG9uY2UtZ3VhcmQga2VlcHMgb25Jbml0IGZyb20gcmUtZmlyaW5nLlxuICAgIH0sIFtzZXJpYWxpemVkUGFyYW1zLCBoYXNSZXF1ZXN0XSk7XG4gICAgLy8g4pSA4pSAIGF1dG9Gb2N1c0ZpcnN0SW5wdXQg4pSA4pSAXG4gICAgY29uc3QgZm9ybUVsUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFhdXRvRm9jdXNGaXJzdElucHV0IHx8IG1vZGUgPT09ICdyZWFkJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZmlyc3RJbnB1dCA9IChfYSA9IGZvcm1FbFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucXVlcnlTZWxlY3RvcignaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKTpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScpO1xuICAgICAgICBmaXJzdElucHV0ID09PSBudWxsIHx8IGZpcnN0SW5wdXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpcnN0SW5wdXQuZm9jdXMoKTtcbiAgICAgICAgLy8gTW91bnQtb25seSBieSBkZXNpZ24uXG4gICAgfSwgW10pO1xuICAgIC8vIOKUgOKUgCBTcGxpdCBjb250ZXh0IOKUgOKUgFxuICAgIC8vIEZvcm0tbGV2ZWwgcHJvcCBiYWdzIGFyZSBvZnRlbiBpbmxpbmUgbGl0ZXJhbHM6IGtlZXAgdGhlaXIgaWRlbnRpdHlcbiAgICAvLyBzdGFibGUgd2hpbGUgc2hhbGxvdy1lcXVhbCBzbyB0aGUgc3RhYmxlIHNsaWNlIGRvZXNuJ3QgY2h1cm4gcGVyIHJlbmRlci5cbiAgICBjb25zdCBzdGFibGVGaWVsZFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShmaWVsZFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVGb3JtSXRlbVByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShmb3JtSXRlbVByb3BzKTtcbiAgICBjb25zdCBzdGFibGVDb2xQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoY29sUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUxheW91dCA9IHVzZVNoYWxsb3dTdGFibGUobGF5b3V0KTtcbiAgICAvLyBTdGFibGUgc2xpY2U6IGNvbmZpZ3VyYXRpb24gKyBpZGVudGl0eS1zdGFibGUgZGlzcGF0Y2hlcnMvaW5zdGFuY2UuXG4gICAgLy8gQ2hhbmdlcyBvbmx5IHdoZW4gZm9ybS1sZXZlbCBwcm9wcyBjaGFuZ2Ug4oCUIE5PVCBvbiBrZXlzdHJva2VzLCBzb1xuICAgIC8vIHN1YnNjcmliZXJzIGxpa2UgU3VibWl0dGVyIGFuZCB0aGUgZmllbGQgZmFjdG9yaWVzIHNraXAgdGhvc2UgcmVuZGVycy5cbiAgICBjb25zdCBzdGFibGVWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgZm9ybUluc3RhbmNlOiBwcm9Gb3JtRm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlOiBpbnRlcm5hbHMuc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcjogaW50ZXJuYWxzLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZzogaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgdmFsaWRhdGVGaWVsZEFzeW5jOiBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICByZWdpc3RlckZpZWxkOiBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkOiBpbnRlcm5hbHMudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZDogaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICByZWxlYXNlRmllbGQ6IGludGVybmFscy5yZWxlYXNlRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIC8vIFN1Ym1pdHRpbmcvbG9hZGluZyBkb2VzIE5PVCBkaXNhYmxlIGZpZWxkcyDigJQgb25seSB0aGVcbiAgICAgICAgLy8gZXhwbGljaXQgYGRpc2FibGVkYCBwcm9wIGRvZXMuIEtlZXBpbmcgaXNMb2FkaW5nIG91dCBvZiB0aGlzIHNsaWNlXG4gICAgICAgIC8vIG1lYW5zIGEgc3VibWl0IGN5Y2xlIG5vIGxvbmdlciByZS1yZW5kZXJzIGV2ZXJ5IGZpZWxkIHNoZWxsLlxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICAvLyBQcm9Gb3JtIHNwZWNpZmljc1xuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBjb2xQcm9wczogc3RhYmxlQ29sUHJvcHMgIT09IG51bGwgJiYgc3RhYmxlQ29sUHJvcHMgIT09IHZvaWQgMCA/IHN0YWJsZUNvbFByb3BzIDogREVGQVVMVF9DT0xfUFJPUFMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtOiByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybTogdW5yZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgcmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHVucmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIGZpZWxkUHJvcHM6IHN0YWJsZUZpZWxkUHJvcHMsXG4gICAgICAgIGZvcm1JdGVtUHJvcHM6IHN0YWJsZUZvcm1JdGVtUHJvcHMsXG4gICAgICAgIGxheW91dDogc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICB9KSwgW1xuICAgICAgICBwcm9Gb3JtRm9ybUluc3RhbmNlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZWxlYXNlRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIHN0YWJsZUNvbFByb3BzLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgcmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHVucmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHN0YWJsZUZpZWxkUHJvcHMsXG4gICAgICAgIHN0YWJsZUZvcm1JdGVtUHJvcHMsXG4gICAgICAgIHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgXSk7XG4gICAgY29uc3QgV3JhcHBlckNvbXBvbmVudCA9IGdyaWQgPyBSb3cgOiBGcmFnbWVudDtcbiAgICBjb25zdCB3cmFwcGVyUHJvcHMgPSBncmlkID8gT2JqZWN0LmFzc2lnbih7fSwgcm93UHJvcHMpIDoge307XG4gICAgLy8gUmVzZXQgY2FsbGJhY2sgY2hhaW46IHRoZSBTdWJtaXR0ZXIgcmVzZXRzIHRoZSB2YWx1ZXMgZmlyc3QsIHRoZW4gdGhlXG4gICAgLy8gc3VibWl0dGVyLWxldmVsIG9uUmVzZXQsIHRoZW4gdGhlIGZvcm0tbGV2ZWwgb25SZXNldCAod2l0aCBmaW5hbFZhbHVlcylcbiAgICAvLyBhbmQgdGhlIFVSTCBjbGVhbnVwIOKAlCBmaXJlZCBleGFjdGx5IG9uY2UgcGVyIHJlc2V0IGFjdGlvbi5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXR0ZXJSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JylcbiAgICAgICAgICAgIChfYSA9IHN1Ym1pdHRlci5vblJlc2V0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzdWJtaXR0ZXIpO1xuICAgICAgICBmaXJlRm9ybVJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3Qgc3VibWl0dGVyTm9kZSA9IHN1Ym1pdHRlciAhPT0gZmFsc2UgJiYgbW9kZSAhPT0gJ3JlYWQnID8gKF9qc3goU3VibWl0dGVyLCBPYmplY3QuYXNzaWduKHt9LCAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcgPyBzdWJtaXR0ZXIgOiB7fSksIHsgb25SZXNldDogaGFuZGxlU3VibWl0dGVyUmVzZXQsIGxvYWRpbmc6IGlzTG9hZGluZyB9KSkpIDogbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybVN0YWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0YWJsZVZhbHVlLCBjaGlsZHJlbjogX2pzeChQcm9Gb3JtU3RhdGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdG9yZSwgY2hpbGRyZW46IF9qc3goRm9ybUNvbnRyb2xTaXplQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc2l6ZSwgY2hpbGRyZW46IF9qc3hzKFwiZm9ybVwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogZm9ybUVsUmVmLCBjbGFzc05hbWU6IGZvcm1DbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSkpLCBvblN1Ym1pdDogd3JhcHBlZEhhbmRsZVN1Ym1pdCwgb25SZXNldDogaW50ZXJuYWxzLmhhbmRsZVJlc2V0LCBjaGlsZHJlbjogW19qc3goV3JhcHBlckNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgd3JhcHBlclByb3BzLCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSksIHN1Ym1pdHRlck5vZGVdIH0pKSB9KSB9KSB9KSk7XG59O1xuUHJvRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybSA9IG1lbW8oUHJvRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -10,8 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _context = require("./context");
|
|
11
11
|
var _formStore = require("./core/formStore");
|
|
12
12
|
var _utils = require("./utils");
|
|
13
|
-
function
|
|
14
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
14
|
var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
16
15
|
var name = _ref.name,
|
|
17
16
|
children = _ref.children;
|
|
@@ -52,4 +51,4 @@ var ProFormDependencyBase = function ProFormDependencyBase(_ref) {
|
|
|
52
51
|
ProFormDependencyBase.displayName = 'ProFormDependency';
|
|
53
52
|
var ProFormDependency = exports.ProFormDependency = /*#__PURE__*/(0, _react.memo)(ProFormDependencyBase);
|
|
54
53
|
var _default = exports["default"] = ProFormDependency;
|
|
55
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfY29udGV4dCIsIl9mb3JtU3RvcmUiLCJfdXRpbHMiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIlByb0Zvcm1EZXBlbmRlbmN5QmFzZSIsIl9yZWYiLCJuYW1lIiwiY2hpbGRyZW4iLCJfdXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdGFibGUiLCJmb3JtSW5zdGFuY2UiLCJzdG9yZSIsInVzZVByb0Zvcm1TdG9yZSIsIndhdGNoZWRBcnJheSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsIm1hcCIsInBhdGgiLCJpbmNsdWRlcyIsImdldE5lc3RlZFZhbHVlIiwidmFsdWVzIiwic2hhbGxvd0VxdWFsQXJyYXlzIiwid2F0Y2hlZFZhbHVlcyIsInVzZU1lbW8iLCJmb3JtYXR0ZWQiLCJnZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0IiwicmVzdWx0IiwibGVuZ3RoIiwidmFsdWUiLCJmb3JtYXR0ZWRWYWx1ZSIsInVuZGVmaW5lZCIsIl9qc3giLCJfRnJhZ21lbnQiLCJkaXNwbGF5TmFtZSIsIlByb0Zvcm1EZXBlbmRlbmN5IiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFD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QUFJLENBQUNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FDckMsSUFBQUMscUJBQWMsRUFBQ0ssU0FBUyxFQUFFUCxJQUFJLENBQUMsR0FDOUJBLElBQUksSUFBSU8sU0FBUyxHQUFHQSxTQUFTLENBQUNQLElBQUksQ0FBQyxHQUFHYSxTQUFVO01BQ3JELElBQUlELGNBQWMsS0FBS0MsU0FBUyxFQUFFO1FBQ2hDRixLQUFLLEdBQUdDLGNBQWM7TUFDeEI7TUFDQUgsTUFBTSxDQUFDVCxJQUFJLENBQUMsR0FBR1csS0FBSztJQUN0QjtJQUNBLE9BQU9GLE1BQTJEO0VBQ3BFLENBQUMsRUFBRSxDQUFDcEIsSUFBSSxFQUFFTyxZQUFZLEVBQUVILFlBQVksQ0FBQyxDQUFDO0VBRXRDLE9BQU8sSUFBQXFCLGVBQUEsRUFBQUMsb0JBQUEsRUFBQTtJQUFBekIsUUFBQSxFQUFHQSxRQUFRLENBQUNlLGFBQWEsRUFBRVosWUFBWTtFQUFDLENBQUEsQ0FBSTtBQUNyRCxDQUFDO0FBRUROLHFCQUFxQixDQUFDNkIsV0FBVyxHQUFHLG1CQUFtQjtBQWlCaEQsSUFBTUMsaUJBQWlCLEdBQUFDLE9BQUEsQ0FBQUQsaUJBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUNuQ2hDLHFCQUFxQixDQUNlO0FBQUMsSUFBQWlDLFFBQUEsR0FBQUYsT0FBQSxjQUV4QkQsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtRGVwZW5kZW5jeS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZyYWdtZW50IGFzIF9GcmFnbWVudCwganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUHJvRm9ybVN0YWJsZSwgdXNlUHJvRm9ybVN0b3JlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3V0aWxzJztcbmNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5QmFzZSA9ICh7IG5hbWUsIGNoaWxkcmVuLCB9KSA9PiB7XG4gICAgY29uc3QgeyBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFN1YnNjcmliZSBPTkxZIHRvIHRoZSB3YXRjaGVkIHBhdGhzOiBhIGNvbW1pdCB0aGF0IGxlYXZlcyBldmVyeSB3YXRjaGVkXG4gICAgLy8gdmFsdWUgT2JqZWN0LmlzLWVxdWFsIHNob3J0LWNpcmN1aXRzLCBzbyBjaGlsZHJlbiBhcmUgTk9UIHJlLWludm9rZWQgd2hlblxuICAgIC8vIHVucmVsYXRlZCBmaWVsZHMgY2hhbmdlLiBSZWFjdGl2aXR5IHRyYWNrcyB0aGUgUkFXIHZhbHVlczsgdGhlIHBheWxvYWRcbiAgICAvLyBiZWxvdyBpcyBkZXJpdmVkIGZyb20gdGhlIEZPUk1BVFRFRCB2YWx1ZXMuXG4gICAgY29uc3Qgd2F0Y2hlZEFycmF5ID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiBuYW1lLm1hcCgocGF0aCkgPT4gcGF0aC5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUoc3RhdGUudmFsdWVzLCBwYXRoKSA6IHN0YXRlLnZhbHVlc1twYXRoXSksIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3Qgd2F0Y2hlZFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAvLyBDaGlsZHJlbiByZWNlaXZlIEZPUk1BVFRFRCB2YWx1ZXMgKGRhdGVGb3JtYXR0ZXIgKyB0cmFuc2Zvcm0gYXBwbGllZCksXG4gICAgICAgIC8vIG1hdGNoaW5nIHdoYXQgb25GaW5pc2ggd291bGQgc3VibWl0IGZvciB0aG9zZSBmaWVsZHMuIEEgdHJhbnNmb3JtIHRoYXRcbiAgICAgICAgLy8gUkVOQU1FUyBpdHMga2V5IGRlbGV0ZXMgdGhlIG9yaWdpbmFsIHBhdGggZnJvbSB0aGUgZm9ybWF0dGVkIG9iamVjdCDigJRcbiAgICAgICAgLy8gZmFsbCBiYWNrIHRvIHRoZSByYXcgdmFsdWUgc28gdGhlIHdhdGNoZXIgc3RpbGwgc2VlcyB0aGUgZmllbGQuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1JbnN0YW5jZS5nZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBuYW1lW2ldO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gd2F0Y2hlZEFycmF5W2ldO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSBwYXRoLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKGZvcm1hdHRlZCwgcGF0aClcbiAgICAgICAgICAgICAgICA6IChwYXRoIGluIGZvcm1hdHRlZCA/IGZvcm1hdHRlZFtwYXRoXSA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbcGF0aF0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtuYW1lLCB3YXRjaGVkQXJyYXksIGZvcm1JbnN0YW5jZV0pO1xuICAgIHJldHVybiBfanN4KF9GcmFnbWVudCwgeyBjaGlsZHJlbjogY2hpbGRyZW4od2F0Y2hlZFZhbHVlcywgZm9ybUluc3RhbmNlKSB9KTtcbn07XG5Qcm9Gb3JtRGVwZW5kZW5jeUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURlcGVuZGVuY3knO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1EZXBlbmRlbmN5ID0gbWVtbyhQcm9Gb3JtRGVwZW5kZW5jeUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURlcGVuZGVuY3k7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|