@1money/component-ui 0.0.42-alpha.2 → 0.0.42-alpha.4

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.
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = exports.Select = void 0;
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  var _react = require("@floating-ui/react");
@@ -15,11 +16,11 @@ var _Icons = require("../Icons");
15
16
  var _Spinner = require("../Spinner");
16
17
  var _Typography = require("../Typography");
17
18
  var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
18
- var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
19
19
  var _SelectFieldShell = _interopRequireDefault(require("./SelectFieldShell"));
20
20
  var _SelectOptionContent = _interopRequireDefault(require("./SelectOptionContent"));
21
21
  var _SelectSearchControl = _interopRequireDefault(require("./SelectSearchControl"));
22
22
  var _SelectValueContent = _interopRequireDefault(require("./SelectValueContent"));
23
+ var _useSelectShell2 = require("./useSelectShell");
23
24
  var _constants = require("./constants");
24
25
  var _utils = require("./utils");
25
26
  require("./style");
@@ -79,8 +80,6 @@ var Select = exports.Select = function Select(props) {
79
80
  portal = _props$portal === void 0 ? true : _props$portal,
80
81
  _props$allowDeselect = props.allowDeselect,
81
82
  allowDeselect = _props$allowDeselect === void 0 ? false : _props$allowDeselect,
82
- _props$clearable = props.clearable,
83
- clearable = _props$clearable === void 0 ? false : _props$clearable,
84
83
  panelClassName = props.panelClassName,
85
84
  optionClassName = props.optionClassName,
86
85
  _props$listMaxHeight = props.listMaxHeight,
@@ -105,14 +104,10 @@ var Select = exports.Select = function Select(props) {
105
104
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
106
105
  innerValue = _useControlledState2[0],
107
106
  setInnerValue = _useControlledState2[1];
108
- var _useControlledState3 = (0, _hooks.useControlledState)(defaultOpen, open),
107
+ var _useControlledState3 = (0, _hooks.useControlledState)(defaultSearchValue, searchValue),
109
108
  _useControlledState4 = (0, _slicedToArray2["default"])(_useControlledState3, 2),
110
- innerOpen = _useControlledState4[0],
111
- setInnerOpen = _useControlledState4[1];
112
- var _useControlledState5 = (0, _hooks.useControlledState)(defaultSearchValue, searchValue),
113
- _useControlledState6 = (0, _slicedToArray2["default"])(_useControlledState5, 2),
114
- innerSearchValue = _useControlledState6[0],
115
- setInnerSearchValue = _useControlledState6[1];
109
+ innerSearchValue = _useControlledState4[0],
110
+ setInnerSearchValue = _useControlledState4[1];
116
111
  var _useState = (0, _react2.useState)(null),
117
112
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
118
113
  activeIndex = _useState2[0],
@@ -154,45 +149,22 @@ var Select = exports.Select = function Select(props) {
154
149
  ref.current = node;
155
150
  }
156
151
  });
157
- var handleOpenChange = (0, _hooks.useEventCallback)(function (nextOpen) {
158
- setInnerOpen(nextOpen);
159
- onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
160
- });
161
- var _useFloating = (0, _react.useFloating)({
162
- open: innerOpen,
163
- onOpenChange: handleOpenChange,
164
- placement: 'bottom-start',
165
- whileElementsMounted: _react.autoUpdate,
166
- transform: false,
167
- middleware: [(0, _react.offset)(0), (0, _react.flip)({
168
- padding: 8
169
- }), (0, _react.shift)({
170
- padding: 8
171
- }), (0, _react.size)({
172
- apply: function apply(_ref) {
173
- var rects = _ref.rects,
174
- elements = _ref.elements,
175
- availableHeight = _ref.availableHeight;
176
- var nextMaxHeight = Math.max(120, Math.min(listMaxHeight, availableHeight));
177
- Object.assign(elements.floating.style, {
178
- width: "".concat(rects.reference.width, "px"),
179
- maxHeight: "".concat(nextMaxHeight, "px")
180
- });
181
- }
182
- })]
152
+ var _useSelectShell = (0, _useSelectShell2.useSelectShell)({
153
+ open: open,
154
+ defaultOpen: defaultOpen,
155
+ onOpenChange: onOpenChange,
156
+ disabled: disabled,
157
+ listMaxHeight: listMaxHeight,
158
+ animation: animation
183
159
  }),
184
- refs = _useFloating.refs,
185
- floatingStyles = _useFloating.floatingStyles,
186
- context = _useFloating.context,
187
- resolvedPlacement = _useFloating.placement;
188
- var resolvedAnimation = (0, _react2.useMemo)(function () {
189
- return animation === false ? false : Object.assign({
190
- kind: 'height'
191
- }, animation !== null && animation !== void 0 ? animation : {});
192
- }, [animation]);
193
- var _useFloatingAnimation = (0, _useFloatingAnimation2.useFloatingAnimation)(context, resolvedPlacement, resolvedAnimation),
194
- isMounted = _useFloatingAnimation.isMounted,
195
- transitionStyles = _useFloatingAnimation.styles;
160
+ innerOpen = _useSelectShell.isOpen,
161
+ handleOpenChange = _useSelectShell.setOpen,
162
+ refs = _useSelectShell.refs,
163
+ context = _useSelectShell.context,
164
+ floatingStyles = _useSelectShell.floatingStyles,
165
+ transitionStyles = _useSelectShell.transitionStyles,
166
+ isMounted = _useSelectShell.isMounted,
167
+ baseInteractions = _useSelectShell.baseInteractions;
196
168
  var setReference = (0, _hooks.useEventCallback)(function (node) {
197
169
  refs.setReference(node);
198
170
  handleTriggerRef(node);
@@ -201,16 +173,6 @@ var Select = exports.Select = function Select(props) {
201
173
  refs.setFloating(node);
202
174
  floatingRef.current = node;
203
175
  });
204
- var click = (0, _react.useClick)(context, {
205
- enabled: !disabled
206
- });
207
- var dismiss = (0, _react.useDismiss)(context, {
208
- enabled: !disabled,
209
- outsidePressEvent: 'mousedown'
210
- });
211
- var role = (0, _react.useRole)(context, {
212
- role: 'select'
213
- });
214
176
  var listNavigation = (0, _react.useListNavigation)(context, {
215
177
  listRef: listRef,
216
178
  activeIndex: activeIndex,
@@ -226,7 +188,7 @@ var Select = exports.Select = function Select(props) {
226
188
  enabled: innerOpen && !searchable,
227
189
  onMatch: setActiveIndex
228
190
  });
229
- var _useInteractions = (0, _react.useInteractions)([click, dismiss, role, listNavigation, typeahead]),
191
+ var _useInteractions = (0, _react.useInteractions)([].concat((0, _toConsumableArray2["default"])(baseInteractions), [listNavigation, typeahead])),
230
192
  getReferenceProps = _useInteractions.getReferenceProps,
231
193
  getFloatingProps = _useInteractions.getFloatingProps,
232
194
  getItemProps = _useInteractions.getItemProps;
@@ -326,15 +288,6 @@ var Select = exports.Select = function Select(props) {
326
288
  preventScroll: true
327
289
  });
328
290
  });
329
- var handleClear = (0, _hooks.useEventCallback)(function (event) {
330
- event.preventDefault();
331
- event.stopPropagation();
332
- if (multiple) {
333
- commitChange([], []);
334
- } else {
335
- commitChange(undefined, undefined);
336
- }
337
- });
338
291
  var handleRemoveSelectedValue = (0, _hooks.useEventCallback)(function (optionValue) {
339
292
  if (!multiple) {
340
293
  return;
@@ -473,20 +426,6 @@ var Select = exports.Select = function Select(props) {
473
426
  onRemoveMouseDown: handleTagRemoveMouseDown
474
427
  })
475
428
  })]
476
- }), clearable && hasSelection && !disabled && !loading && (0, _jsxRuntime.jsx)("span", {
477
- className: classes('clear'),
478
- role: "button",
479
- "aria-label": "Clear",
480
- onMouseDown: function onMouseDown(event) {
481
- event.preventDefault();
482
- event.stopPropagation();
483
- },
484
- onClick: handleClear,
485
- children: (0, _jsxRuntime.jsx)(_Icons.Icons, {
486
- name: "cross",
487
- size: iconSize,
488
- color: "currentColor"
489
- })
490
429
  }), (0, _jsxRuntime.jsx)("span", {
491
430
  className: classes('icon'),
492
431
  children: loading ? (0, _jsxRuntime.jsx)(_Spinner.Spinner, {
@@ -594,4 +533,4 @@ var Select = exports.Select = function Select(props) {
594
533
  };
595
534
  Select.displayName = 'Select';
596
535
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
597
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uMiIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9TZWxlY3RPcHRpb25Db250ZW50IiwiX1NlbGVjdFNlYXJjaENvbnRyb2wiLCJfU2VsZWN0VmFsdWVDb250ZW50IiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsIl9wcm9wcyRjbGVhcmFibGUiLCJjbGVhcmFibGUiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJWYWx1ZSIsInJlZiIsImNsYXNzZXMiLCJyb290Q2xhc3NuYW1lcyIsImF1dG9JZCIsInVzZUlkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl91c2VDb250cm9sbGVkU3RhdGU0IiwiaW5uZXJPcGVuIiwic2V0SW5uZXJPcGVuIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTUiLCJfdXNlQ29udHJvbGxlZFN0YXRlNiIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsImhhbmRsZU9wZW5DaGFuZ2UiLCJuZXh0T3BlbiIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwicGxhY2VtZW50Iiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidHJhbnNmb3JtIiwibWlkZGxld2FyZSIsIm9mZnNldCIsImZsaXAiLCJwYWRkaW5nIiwic2hpZnQiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYiLCJyZWN0cyIsImVsZW1lbnRzIiwiYXZhaWxhYmxlSGVpZ2h0IiwibmV4dE1heEhlaWdodCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJhc3NpZ24iLCJmbG9hdGluZyIsIndpZHRoIiwiY29uY2F0IiwicmVmZXJlbmNlIiwibWF4SGVpZ2h0IiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwicmVzb2x2ZWRBbmltYXRpb24iLCJraW5kIiwiX3VzZUZsb2F0aW5nQW5pbWF0aW9uIiwidXNlRmxvYXRpbmdBbmltYXRpb24iLCJpc01vdW50ZWQiLCJ0cmFuc2l0aW9uU3R5bGVzIiwic3R5bGVzIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJyb2xlIiwidXNlUm9sZSIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwibG9vcCIsInR5cGVhaGVhZCIsInVzZVR5cGVhaGVhZCIsIm9uTWF0Y2giLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVDbGVhciIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSIsIm9wdGlvblZhbHVlIiwiZ2V0TXVsdGlwbGVWYWx1ZSIsImluY2x1ZGVzIiwicmVtb3ZlTXVsdGlwbGVWYWx1ZSIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiS0VZQk9BUkQiLCJFTlRFUiIsIlNQQUNFIiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSIsImRlc2NyaWJlZEJ5SWRzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsInR5cGUiLCJvbktleURvd24iLCJfanN4IiwiU2VsZWN0VmFsdWVDb250ZW50Iiwib25SZW1vdmUiLCJvblJlbW92ZUNsaWNrIiwib25SZW1vdmVNb3VzZURvd24iLCJvbk1vdXNlRG93biIsIm9uQ2xpY2siLCJJY29ucyIsImNvbG9yIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiU2VsZWN0U2VhcmNoQ29udHJvbCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFnQkEsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBQ0EsSUFBQVMsc0JBQUEsR0FBQVQsT0FBQTtBQWdCQSxJQUFBVSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBWCxPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUQsc0JBQUEsQ0FBQVgsT0FBQTtBQUNBLElBQUFhLG9CQUFBLEdBQUFGLHNCQUFBLENBQUFYLE9BQUE7QUFDQSxJQUFBYyxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBWCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLE1BQUEsR0FBQWhCLE9BQUE7QUFhQUEsT0FBQTtBQUFpQixTQUFBaUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFB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b0JEL1NRLENDZ1RqQixDQUFDLEVBQUE7c0JBQUE2QyxRQUFBLEVBRUR4TCxZQUFZLEdBQ1hBLFlBQVksQ0FBQytDLE1BQU0sRUFBRTBLLFVBQVUsQ0FBQyxHQUVoQyxJQUFBOUIsZUFBQSxFQUFDaUMsK0JBQW1CLEVBQUE7d0JBQ2xCek4sT0FBTyxFQUFFQSxPQUFPO3dCQUNoQjRDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZHVLLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFqSSxNQUFBLENBbENPNEgsS0FBSyxDQUFDckQsR0FBRyxPQUFBdkUsTUFBQSxDQUFJdEMsTUFBTSxDQUFDbkcsS0FBSyxDQUFFLENBbUM1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTlETXFRLEtBQUssQ0FBQ3JELEdBQUcsQ0ErRGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTGhMLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUErTSxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUszUCxTQUFTLEVBQUVtRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUFxTCxRQUFBLEVBQUc1TTtVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQTBNLGVBQUEsRUFBQ2tDLHFCQUFjLEVBQUE7UUFBQXJDLFFBQUEsRUFBRWM7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEMVEsTUFBTSxDQUFDa1MsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUFsUyxPQUFBLDJCQUVmLElBQUFtUyxZQUFJLEVBQUNwUyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgY2xlYXJhYmxlID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRPcGVuLCBvcGVuKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsXG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoMCksXG4gICAgICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRNYXhIZWlnaHQgPSBNYXRoLm1heCgxMjAsIE1hdGgubWluKGxpc3RNYXhIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNvbHZlZEFuaW1hdGlvbiA9IHVzZU1lbW8oKCkgPT4gKGFuaW1hdGlvbiA9PT0gZmFsc2UgPyBmYWxzZSA6IE9iamVjdC5hc3NpZ24oeyBraW5kOiAnaGVpZ2h0JyB9LCAoYW5pbWF0aW9uICE9PSBudWxsICYmIGFuaW1hdGlvbiAhPT0gdm9pZCAwID8gYW5pbWF0aW9uIDoge30pKSksIFthbmltYXRpb25dKTtcbiAgICBjb25zdCB7IGlzTW91bnRlZCwgc3R5bGVzOiB0cmFuc2l0aW9uU3R5bGVzIH0gPSB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCByZXNvbHZlZFBsYWNlbWVudCwgcmVzb2x2ZWRBbmltYXRpb24pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2xlYXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UoW10sIFtdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiAmJiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoZmlyc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2ZpcnN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCAmJiBsYXN0RW5hYmxlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobGFzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2IgPSBsaXN0UmVmLmN1cnJlbnRbbGFzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgY2xlYXJhYmxlICYmIGhhc1NlbGVjdGlvbiAmJiAhZGlzYWJsZWQgJiYgIWxvYWRpbmcgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjbGVhcicpLCByb2xlOiBcImJ1dHRvblwiLCBcImFyaWEtbGFiZWxcIjogXCJDbGVhclwiLCBvbk1vdXNlRG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQ2xpY2s6IGhhbmRsZUNsZWFyLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNyb3NzXCIsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSkpIDogKF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkpIH0pXSB9KSksIGlzTW91bnRlZCAmJiAhZGlzYWJsZWQgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
536
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlclZhbHVlIiwicmVmIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJ1c2VNZW1vIiwibm9ybWFsaXplT3B0aW9uR3JvdXBzIiwiYWxsRmxhdE9wdGlvbnMiLCJmbGF0dGVuT3B0aW9uR3JvdXBzIiwidmlzaWJsZU9wdGlvbkdyb3VwcyIsImZpbHRlck9wdGlvbkdyb3VwcyIsInZpc2libGVGbGF0T3B0aW9ucyIsInNlbGVjdGVkT3B0aW9ucyIsImdldFNlbGVjdGVkT3B0aW9ucyIsInNlbGVjdGVkSW5kZXgiLCJsZW5ndGgiLCJtYXRjaGVkSW5kZXgiLCJmaW5kSW5kZXgiLCJvcHRpb24iLCJoYXNTZWxlY3Rpb24iLCJsaXN0UmVmIiwidXNlUmVmIiwibGlzdENvbnRlbnRSZWYiLCJmbG9hdGluZ1JlZiIsInRyaWdnZXJSZWYiLCJzZWFyY2hJbnB1dFJlZiIsImhhbmRsZVRyaWdnZXJSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJ1c2VTZWxlY3RTaGVsbCIsImlubmVyT3BlbiIsImlzT3BlbiIsImhhbmRsZU9wZW5DaGFuZ2UiLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJsaXN0TmF2aWdhdGlvbiIsInVzZUxpc3ROYXZpZ2F0aW9uIiwib25OYXZpZ2F0ZSIsImVuYWJsZWQiLCJsb29wIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJsYXN0RW5hYmxlZEluZGV4IiwiX2EiLCJpbmRleCIsInVzZUVmZmVjdCIsInByZXYiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYiIsIm5leHRUYXJnZXQiLCJ3aXRoaW5UcmlnZ2VyIiwiY29udGFpbnMiLCJ3aXRoaW5GbG9hdGluZyIsImhhbmRsZVRyaWdnZXJCbHVyIiwiaGFuZGxlT3B0aW9uQmx1ciIsImNvbW1pdENoYW5nZSIsIm5leHRWYWx1ZSIsIm5leHRPcHRpb24iLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwibmV4dE9wdGlvbnMiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJnZXRNdWx0aXBsZVZhbHVlIiwiaW5jbHVkZXMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJLRVlCT0FSRCIsIkVOVEVSIiwiU1BBQ0UiLCJwcmV2ZW50RGVmYXVsdCIsIkFSUk9XX0RPV04iLCJBUlJPV19VUCIsImhhbmRsZUl0ZW1Nb3VzZUVudGVyIiwiaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlVGFnUmVtb3ZlQ2xpY2siLCJoYW5kbGVTZWFyY2hCbHVyIiwiaGFuZGxlU2VhcmNoQ2hhbmdlIiwiX2V2ZW50IiwiaGFuZGxlU2VhcmNoS2V5RG93biIsIl9jIiwiRVNDQVBFIiwicmVuZGVyVmFsdWVNZXRhIiwidmFsdWVMYWJlbENsYXNzIiwiaXNNdWx0aXBsZVZhbHVlRmlsbGVkIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJhc3NpZ24iLCJ0eXBlIiwib25LZXlEb3duIiwiX2pzeCIsIlNlbGVjdFZhbHVlQ29udGVudCIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwiSWNvbnMiLCJjb2xvciIsInBhbmVsTm9kZSIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwibW9kYWwiLCJpbml0aWFsRm9jdXMiLCJyZXR1cm5Gb2N1cyIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJUeXBvZ3JhcGh5Qm9keSIsIlNFTEVDVF9UWVBPR1JBUEhZIiwiZW1wdHkiLCJmbGF0SW5kZXgiLCJtYXAiLCJncm91cCIsIlR5cG9ncmFwaHlMYWJlbCIsImdyb3VwTGFiZWwiLCJzdHJvbmciLCJvcHRpb25GbGF0SW5kZXgiLCJzZWxlY3RlZCIsImlzT3B0aW9uU2VsZWN0ZWQiLCJhY3RpdmUiLCJvcHRpb25NZXRhIiwiZXh0cmFjdE9wdGlvblRleHQiLCJyb2xlIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxH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QUE7d0JBQ2xCcEwsT0FBTyxFQUFFQSxPQUFPO3dCQUNoQndDLE1BQU0sRUFBRUEsTUFBTTt3QkFDZG9JLFFBQVEsRUFBRUE7c0JBQVEsQ0FBQTtvQkFFckIsQ0FBQSxDQUFBLEtBQUFoRyxNQUFBLENBbENPMkYsS0FBSyxDQUFDdEQsR0FBRyxPQUFBckMsTUFBQSxDQUFJcEMsTUFBTSxDQUFDN0YsS0FBSyxDQUFFLENBbUM1QjtrQkFFYixDQUFDLENBQUM7Z0JBQUEsQ0FBQSxFQTlETTROLEtBQUssQ0FBQ3RELEdBQUcsQ0ErRGI7Y0FBQSxDQUNQLENBQUM7WUFDSixDQUFDLENBQUM7VUFDSCxDQUFBLENBQ0csRUFDTHRJLFdBQVcsSUFBSSxJQUFJLElBQ2xCLElBQUF3SyxlQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUtwTixTQUFTLEVBQUVpRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQUErSSxRQUFBLEVBQUdwSztVQUFXLENBQUEsQ0FDdEQ7UUFBQSxDQUFBLENBQUE7TUFDRyxDQUFBLENBRVQ7TUFFRCxPQUFPSyxNQUFNLEdBQUcsSUFBQW1LLGVBQUEsRUFBQ2tDLHFCQUFjLEVBQUE7UUFBQXRDLFFBQUEsRUFBRWE7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEak8sTUFBTSxDQUFDMlAsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBQyxRQUFBLEdBQUEzUCxPQUFBLDJCQUVmLElBQUE0UCxZQUFJLEVBQUM3UCxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBsYXN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5uZXJPcGVuICYmIHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIChfYSA9IHNlYXJjaElucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOICYmIGZpcnN0RW5hYmxlZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChmaXJzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbZmlyc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQICYmIGxhc3RFbmFibGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChsYXN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYiA9IGxpc3RSZWYuY3VycmVudFtsYXN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYyA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,6 @@
1
+ import type { FC } from 'react';
2
+ import type { SelectCustomProps } from './interface';
3
+ import './style';
4
+ export declare const SelectCustom: FC<SelectCustomProps>;
5
+ declare const _default: import("react").NamedExoticComponent<SelectCustomProps>;
6
+ export default _default;