@1money/component-ui 0.0.70 → 0.0.71

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.
Files changed (201) hide show
  1. package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
  2. package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
  3. package/es/business/Select/Network/NetworkSelect.js +2 -2
  4. package/es/components/Accordion/Accordion.js +3 -2
  5. package/es/components/Calendar/Calendar.js +3 -2
  6. package/es/components/Carousel/Carousel.js +3 -2
  7. package/es/components/Checkbox/BaseCheckbox.js +3 -2
  8. package/es/components/Checkbox/Checkbox.js +2 -2
  9. package/es/components/Checkbox/CheckboxGroup.js +3 -2
  10. package/es/components/CoachMark/CoachMark.js +3 -2
  11. package/es/components/Copy/Copy.js +2 -2
  12. package/es/components/Dialog/Dialog.js +2 -2
  13. package/es/components/Drawer/Drawer.js +2 -2
  14. package/es/components/Input/Amount/Amount.js +2 -2
  15. package/es/components/Input/Input/Input.js +3 -2
  16. package/es/components/Input/Mask/Mask.js +3 -2
  17. package/es/components/Input/OTP/OTP.js +3 -2
  18. package/es/components/Input/Password/Password.js +3 -2
  19. package/es/components/Input/Search/Search.js +3 -2
  20. package/es/components/Input/TextArea/TextArea.js +3 -2
  21. package/es/components/Input/Trade/Trade.js +2 -2
  22. package/es/components/Input/useAmountInput.js +4 -2
  23. package/es/components/Input/useSyncRef.js +2 -2
  24. package/es/components/Navigation/Nav.js +2 -2
  25. package/es/components/Navigation/Navigation.js +5 -2
  26. package/es/components/Pagination/Pagination.js +2 -2
  27. package/es/components/Pagination/usePagination.js +3 -2
  28. package/es/components/Popconfirm/Popconfirm.js +2 -2
  29. package/es/components/Portal/Portal.js +2 -2
  30. package/es/components/ProForm/ProForm.js +6 -3
  31. package/es/components/ProForm/ProFormGroup.js +2 -2
  32. package/es/components/ProForm/ProFormList.js +3 -2
  33. package/es/components/ProForm/Submitter.js +2 -2
  34. package/es/components/ProForm/core/constants.d.ts +6 -0
  35. package/es/components/ProForm/core/constants.js +7 -1
  36. package/es/components/ProForm/core/hooks/useForm.js +25 -195
  37. package/es/components/ProForm/core/hooks/useFormCore.js +14 -142
  38. package/es/components/ProForm/core/pathUtils.d.ts +6 -0
  39. package/es/components/ProForm/core/pathUtils.js +59 -0
  40. package/es/components/ProForm/core/runRules.d.ts +13 -0
  41. package/es/components/ProForm/core/runRules.js +186 -0
  42. package/es/components/ProForm/core/useFormItem.js +10 -28
  43. package/es/components/ProForm/fields/createProFormField.js +43 -57
  44. package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
  45. package/es/components/ProForm/layouts/QueryFilter.js +3 -2
  46. package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
  47. package/es/components/ProForm/utils.d.ts +2 -2
  48. package/es/components/ProForm/utils.js +5 -51
  49. package/es/components/ProTable/ProTable.js +3 -2
  50. package/es/components/ProTable/core/useAwaitableReload.js +3 -2
  51. package/es/components/ProTable/useFetchData.js +4 -2
  52. package/es/components/Radio/Radio.js +3 -2
  53. package/es/components/Radio/RadioGroup.js +3 -2
  54. package/es/components/ResizeObserver/useResizeObserver.js +2 -2
  55. package/es/components/Segment/Segment.js +4 -2
  56. package/es/components/Select/Select.js +3 -2
  57. package/es/components/Select/SelectCustom.js +2 -2
  58. package/es/components/Select/useSelectShell.js +3 -2
  59. package/es/components/Slider/Slider.js +3 -2
  60. package/es/components/Switch/Switch.js +3 -2
  61. package/es/components/Table/Table.js +14 -28
  62. package/es/components/Table/VirtualTable.js +18 -28
  63. package/es/components/Table/core/columnUtil.d.ts +9 -0
  64. package/es/components/Table/core/columnUtil.js +34 -0
  65. package/es/components/Table/core/useTableColumns.d.ts +4 -13
  66. package/es/components/Table/core/useTableColumns.js +55 -24
  67. package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
  68. package/es/components/Table/core/useTableDataPipeline.js +66 -73
  69. package/es/components/Table/core/useTableExpand.js +3 -2
  70. package/es/components/Table/core/useTableSelection.js +7 -4
  71. package/es/components/Table/core/useTableSetup.js +4 -2
  72. package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
  73. package/es/components/Table/features/ExpandTrigger.js +14 -8
  74. package/es/components/Table/features/FilterTrigger.js +21 -17
  75. package/es/components/Table/features/SelectionColumn.d.ts +11 -6
  76. package/es/components/Table/features/SelectionColumn.js +12 -5
  77. package/es/components/Table/features/SortTrigger.d.ts +4 -2
  78. package/es/components/Table/features/SortTrigger.js +8 -3
  79. package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
  80. package/es/components/Table/internal/kernel/Cell/index.js +2 -2
  81. package/es/components/Table/internal/kernel/Table.js +3 -3
  82. package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
  83. package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
  84. package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
  85. package/es/components/Table/renderers/HeaderCell.js +3 -2
  86. package/es/components/Table/renderers/TableShell.d.ts +13 -0
  87. package/es/components/Table/renderers/TableShell.js +25 -0
  88. package/es/components/Table/style/Table.css +3 -0
  89. package/es/components/Tabs/Tabs.js +4 -2
  90. package/es/components/Tooltip/Tooltip.js +3 -2
  91. package/es/components/Tour/Tour.js +3 -2
  92. package/es/components/Trigger/Trigger.js +3 -2
  93. package/es/components/Typography/Typography.js +2 -2
  94. package/es/components/Typography/useTypographyEnhancements.js +3 -2
  95. package/es/components/Upload/Upload.js +2 -2
  96. package/es/components/Upload/UploadFileBar.js +2 -2
  97. package/es/components/VirtualList/VirtualList.js +3 -2
  98. package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
  99. package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
  100. package/es/index.css +1 -1
  101. package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
  102. package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
  103. package/lib/business/Select/Network/NetworkSelect.js +3 -3
  104. package/lib/components/Accordion/Accordion.js +5 -4
  105. package/lib/components/Calendar/Calendar.js +6 -5
  106. package/lib/components/Carousel/Carousel.js +5 -4
  107. package/lib/components/Checkbox/BaseCheckbox.js +5 -4
  108. package/lib/components/Checkbox/Checkbox.js +3 -3
  109. package/lib/components/Checkbox/CheckboxGroup.js +7 -6
  110. package/lib/components/CoachMark/CoachMark.js +7 -6
  111. package/lib/components/Copy/Copy.js +3 -3
  112. package/lib/components/Dialog/Dialog.js +6 -6
  113. package/lib/components/Drawer/Drawer.js +10 -10
  114. package/lib/components/Input/Amount/Amount.js +6 -5
  115. package/lib/components/Input/Input/Input.js +7 -6
  116. package/lib/components/Input/Mask/Mask.js +9 -8
  117. package/lib/components/Input/OTP/OTP.js +9 -8
  118. package/lib/components/Input/Password/Password.js +6 -5
  119. package/lib/components/Input/Search/Search.js +8 -7
  120. package/lib/components/Input/TextArea/TextArea.js +5 -4
  121. package/lib/components/Input/Trade/Trade.js +5 -4
  122. package/lib/components/Input/useAmountInput.js +13 -11
  123. package/lib/components/Input/useSyncRef.js +4 -3
  124. package/lib/components/Navigation/Nav.js +3 -3
  125. package/lib/components/Navigation/Navigation.js +10 -7
  126. package/lib/components/Pagination/Pagination.js +4 -3
  127. package/lib/components/Pagination/usePagination.js +7 -6
  128. package/lib/components/Popconfirm/Popconfirm.js +3 -3
  129. package/lib/components/Portal/Portal.js +4 -4
  130. package/lib/components/ProForm/ProForm.js +14 -11
  131. package/lib/components/ProForm/ProFormGroup.js +3 -3
  132. package/lib/components/ProForm/ProFormList.js +10 -9
  133. package/lib/components/ProForm/Submitter.js +4 -4
  134. package/lib/components/ProForm/core/constants.d.ts +6 -0
  135. package/lib/components/ProForm/core/constants.js +8 -2
  136. package/lib/components/ProForm/core/hooks/useForm.js +36 -206
  137. package/lib/components/ProForm/core/hooks/useFormCore.js +32 -160
  138. package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
  139. package/lib/components/ProForm/core/pathUtils.js +68 -0
  140. package/lib/components/ProForm/core/runRules.d.ts +13 -0
  141. package/lib/components/ProForm/core/runRules.js +194 -0
  142. package/lib/components/ProForm/core/useFormItem.js +15 -33
  143. package/lib/components/ProForm/fields/createProFormField.js +42 -56
  144. package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
  145. package/lib/components/ProForm/layouts/QueryFilter.js +8 -7
  146. package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
  147. package/lib/components/ProForm/utils.d.ts +2 -2
  148. package/lib/components/ProForm/utils.js +20 -55
  149. package/lib/components/ProTable/ProTable.js +10 -9
  150. package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
  151. package/lib/components/ProTable/useFetchData.js +15 -13
  152. package/lib/components/Radio/Radio.js +6 -5
  153. package/lib/components/Radio/RadioGroup.js +5 -4
  154. package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
  155. package/lib/components/Segment/Segment.js +7 -5
  156. package/lib/components/Select/Select.js +23 -22
  157. package/lib/components/Select/SelectCustom.js +8 -8
  158. package/lib/components/Select/useSelectShell.js +5 -4
  159. package/lib/components/Slider/Slider.js +6 -5
  160. package/lib/components/Switch/Switch.js +5 -4
  161. package/lib/components/Table/Table.js +13 -27
  162. package/lib/components/Table/VirtualTable.js +17 -27
  163. package/lib/components/Table/core/columnUtil.d.ts +9 -0
  164. package/lib/components/Table/core/columnUtil.js +42 -0
  165. package/lib/components/Table/core/useTableColumns.d.ts +4 -13
  166. package/lib/components/Table/core/useTableColumns.js +57 -26
  167. package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
  168. package/lib/components/Table/core/useTableDataPipeline.js +73 -80
  169. package/lib/components/Table/core/useTableExpand.js +6 -5
  170. package/lib/components/Table/core/useTableSelection.js +13 -10
  171. package/lib/components/Table/core/useTableSetup.js +8 -5
  172. package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
  173. package/lib/components/Table/features/ExpandTrigger.js +14 -8
  174. package/lib/components/Table/features/FilterTrigger.js +21 -17
  175. package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
  176. package/lib/components/Table/features/SelectionColumn.js +12 -5
  177. package/lib/components/Table/features/SortTrigger.d.ts +4 -2
  178. package/lib/components/Table/features/SortTrigger.js +8 -3
  179. package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
  180. package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
  181. package/lib/components/Table/internal/kernel/Table.js +7 -6
  182. package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
  183. package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
  184. package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
  185. package/lib/components/Table/renderers/HeaderCell.js +3 -2
  186. package/lib/components/Table/renderers/TableShell.d.ts +13 -0
  187. package/lib/components/Table/renderers/TableShell.js +31 -0
  188. package/lib/components/Table/style/Table.css +3 -0
  189. package/lib/components/Tabs/Tabs.js +7 -5
  190. package/lib/components/Tooltip/Tooltip.js +5 -4
  191. package/lib/components/Tour/Tour.js +7 -6
  192. package/lib/components/Trigger/Trigger.js +5 -4
  193. package/lib/components/Typography/Typography.js +5 -4
  194. package/lib/components/Typography/useTypographyEnhancements.js +8 -7
  195. package/lib/components/Upload/Upload.js +5 -4
  196. package/lib/components/Upload/UploadFileBar.js +4 -3
  197. package/lib/components/VirtualList/VirtualList.js +8 -7
  198. package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
  199. package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
  200. package/lib/index.css +1 -1
  201. package/package.json +2 -2
@@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useAmountInput = useAmountInput;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
- var _hooks = require("@1money/hooks");
10
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
11
+ var _useLatest = _interopRequireDefault(require("@1money/hooks/useLatest"));
12
+ var _useLayoutEffect = _interopRequireDefault(require("@1money/hooks/useLayoutEffect"));
11
13
  var _useSyncRef3 = require("./useSyncRef");
12
14
  var _helper = require("./Amount/helper");
13
15
  /**
@@ -41,11 +43,11 @@ function useAmountInput(options) {
41
43
  setInnerValue = _useState2[1];
42
44
  var caretPosRef = (0, _react.useRef)(0);
43
45
  var ignoreSelectRef = (0, _react.useRef)(false);
44
- var onChangeRef = (0, _hooks.useLatest)(onChange);
46
+ var onChangeRef = (0, _useLatest["default"])(onChange);
45
47
  var formattedValue = (0, _react.useMemo)(function () {
46
48
  return (0, _helper.formatThousands)(innerValue !== null && innerValue !== void 0 ? innerValue : '', negative);
47
49
  }, [innerValue, negative]);
48
- var stateRef = (0, _hooks.useLatest)({
50
+ var stateRef = (0, _useLatest["default"])({
49
51
  innerValue: innerValue,
50
52
  formattedValue: formattedValue,
51
53
  min: min,
@@ -53,7 +55,7 @@ function useAmountInput(options) {
53
55
  negative: negative,
54
56
  maxFractionDigits: maxFractionDigits
55
57
  });
56
- var calcCaretPos = (0, _hooks.useEventCallback)(function (val) {
58
+ var calcCaretPos = (0, _useEventCallback["default"])(function (val) {
57
59
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
58
60
  var currPos = arguments.length > 2 ? arguments[2] : undefined;
59
61
  var _a, _b;
@@ -78,7 +80,7 @@ function useAmountInput(options) {
78
80
  }, []);
79
81
  caretPosRef.current = position + offset;
80
82
  });
81
- var commitValue = (0, _hooks.useEventCallback)(function (val, hasDecimalPoint, event) {
83
+ var commitValue = (0, _useEventCallback["default"])(function (val, hasDecimalPoint, event) {
82
84
  var _a;
83
85
  if (isUncontrolled) {
84
86
  setInnerValue(val === '' ? null : val);
@@ -87,7 +89,7 @@ function useAmountInput(options) {
87
89
  }
88
90
  (_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, val, event);
89
91
  });
90
- var handleChange = (0, _hooks.useEventCallback)(function (event) {
92
+ var handleChange = (0, _useEventCallback["default"])(function (event) {
91
93
  var _a;
92
94
  if (disabled || readOnly) return;
93
95
  var _stateRef$current2 = stateRef.current,
@@ -127,7 +129,7 @@ function useAmountInput(options) {
127
129
  }
128
130
  commitValue(val, hasDecimalPoint, event);
129
131
  });
130
- var handleSelect = (0, _hooks.useEventCallback)(function () {
132
+ var handleSelect = (0, _useEventCallback["default"])(function () {
131
133
  var _a;
132
134
  if (ignoreSelectRef.current) {
133
135
  ignoreSelectRef.current = false;
@@ -137,14 +139,14 @@ function useAmountInput(options) {
137
139
  if (typeof currPos === 'number') caretPosRef.current = currPos;
138
140
  });
139
141
  // Keep caret at the expected position after formatted re-render
140
- (0, _hooks.useLayoutEffect)(function () {
142
+ (0, _useLayoutEffect["default"])(function () {
141
143
  var input = inputRef.current;
142
144
  if (!input || document.activeElement !== input) return;
143
145
  var pos = caretPosRef.current;
144
146
  input.setSelectionRange(pos, pos);
145
147
  }, [formattedValue]);
146
148
  // Sync external controlled value (or defaultValue) through the same pipeline
147
- (0, _hooks.useLayoutEffect)(function () {
149
+ (0, _useLayoutEffect["default"])(function () {
148
150
  var _a;
149
151
  var val = isUncontrolled ? innerValue : value !== null && value !== void 0 ? value : null;
150
152
  var hasDecimalPoint = false;
@@ -193,7 +195,7 @@ function useAmountInput(options) {
193
195
  calcCaretPos((val !== null && val !== void 0 ? val : '').toString(), hasDecimalPoint ? _helper.DECIMAL_POINT_OFFSET : 0, Math.max(caretPosRef.current, 0));
194
196
  ignoreSelectRef.current = true;
195
197
  }, [value, maxFractionDigits, min, max, negative]);
196
- var clear = (0, _hooks.useEventCallback)(function () {
198
+ var clear = (0, _useEventCallback["default"])(function () {
197
199
  var _a;
198
200
  if (isUncontrolled) setInnerValue(null);
199
201
  (_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, '', {
@@ -211,4 +213,4 @@ function useAmountInput(options) {
211
213
  clear: clear
212
214
  };
213
215
  }
214
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvSW5wdXQvdXNlQW1vdW50SW5wdXQudHMiLCJjb21wb25lbnRzL0lucHV0L3VzZUFtb3VudElucHV0LmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfaG9va3MiLCJfdXNlU3luY1JlZjMiLCJfaGVscGVyIiwidXNlQW1vdW50SW5wdXQiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJvbkNoYW5nZSIsIm1pbiIsIm1heCIsIm1heEZyYWN0aW9uRGlnaXRzIiwibmVnYXRpdmUiLCJkaXNhYmxlZCIsInJlYWRPbmx5IiwicmVmIiwiX3VzZVN5bmNSZWYiLCJ1c2VTeW5jUmVmIiwiX3VzZVN5bmNSZWYyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5wdXRSZWYiLCJzeW5jUmVmIiwiaXNVbmNvbnRyb2xsZWQiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIlN0cmluZyIsIl91c2VTdGF0ZTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImNhcmV0UG9zUmVmIiwidXNlUmVmIiwiaWdub3JlU2VsZWN0UmVmIiwib25DaGFuZ2VSZWYiLCJ1c2VMYXRlc3QiLCJmb3JtYXR0ZWRWYWx1ZSIsInVzZU1lbW8iLCJmb3JtYXRUaG91c2FuZHMiLCJzdGF0ZVJlZiIsImNhbGNDYXJldFBvcyIsInVzZUV2ZW50Q2FsbGJhY2siLCJ2YWwiLCJvZmZzZXQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJjdXJyUG9zIiwiX2EiLCJfYiIsImlucHV0IiwiY3VycmVudCIsIl9zdGF0ZVJlZiRjdXJyZW50IiwicHJldiIsImZvcm1hdHRlZE5ld1ZhbCIsIm9yaWdpbk9mZnNldCIsInBvc2l0aW9uIiwic2VsZWN0aW9uRW5kIiwic3RyaXBDb21tYXMiLCJzbGljZSIsIk1hdGgiLCJwb3NWYWwiLCJzcGxpdCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiam9pbiIsImNvbW1pdFZhbHVlIiwiaGFzRGVjaW1hbFBvaW50IiwiZXZlbnQiLCJERUNJTUFMX1BPSU5UX09GRlNFVCIsImNhbGwiLCJoYW5kbGVDaGFuZ2UiLCJfc3RhdGVSZWYkY3VycmVudDIiLCJwYXJzZWQiLCJwYXJzZVJhd0lucHV0IiwidGFyZ2V0IiwiaXNTdGFuZGFsb25lTWludXMiLCJpc051bWVyaWNUeXBlIiwiX3RydW5jYXRlRnJhY3Rpb25EaWdpIiwidHJ1bmNhdGVGcmFjdGlvbkRpZ2l0cyIsIk51bWJlciIsImludCIsInRydW5jYXRlZCIsIm92ZXJmbG93IiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0IiwiQ0hBUl9ET1QiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkSW50IiwiY2FsY1ZhbHVlSW5SYW5nZSIsIkNIQVJfTUlOVVMiLCJub3JtYWxpemVWYWx1ZSIsImhhbmRsZVNlbGVjdCIsInVzZUxheW91dEVmZmVjdCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsInBvcyIsInNldFNlbGVjdGlvblJhbmdlIiwic3RyaXBNaW51cyIsImFic1ZhbHVlIiwiX3RydW5jYXRlRnJhY3Rpb25EaWdpMiIsImNvbmNhdCIsIm5vcm1hbGl6ZWQiLCJ0b1N0cmluZyIsImNsZWFyIiwiaGFzVmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBMENBO0FDeENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQwQ00sU0FBVUksY0FBY0EsQ0FBQ0MsT0FBOEIsRUFBQTtFQUMzRCxJQUNFQyxLQUFLLEdBVUhELE9BQU8sQ0FWVEMsS0FBSztJQUNMQyxZQUFZLEdBU1ZGLE9BQU8sQ0FUVEUsWUFBWTtJQUNaQyxRQUFRLEdBUU5ILE9BQU8sQ0FSVEcsUUFBUTtJQUNSQyxHQUFHLEdBT0RKLE9B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bnVsbCwiaW1wb3J0IHsgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUV2ZW50Q2FsbGJhY2ssIHVzZUxhdGVzdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyB1c2VTeW5jUmVmIH0gZnJvbSAnLi91c2VTeW5jUmVmJztcbmltcG9ydCB7IENIQVJfRE9ULCBDSEFSX01JTlVTLCBERUNJTUFMX1BPSU5UX09GRlNFVCwgYWJzVmFsdWUsIGNhbGNWYWx1ZUluUmFuZ2UsIGZvcm1hdFRob3VzYW5kcywgaXNOdW1lcmljVHlwZSwgbm9ybWFsaXplVmFsdWUsIHBhcnNlUmF3SW5wdXQsIHN0cmlwQ29tbWFzLCBzdHJpcE1pbnVzLCB0cnVuY2F0ZUZyYWN0aW9uRGlnaXRzLCB9IGZyb20gJy4vQW1vdW50L2hlbHBlcic7XG4vKipcbiAqIEVuY2Fwc3VsYXRlcyB0aGUgbnVtZXJpYyBpbnB1dCBwaXBlbGluZSBzaGFyZWQgYnkgSW5wdXRBbW91bnQgYW5kIElucHV0VHJhZGUuXG4gKlxuICogSGFuZGxlczpcbiAqIC0gVGhvdXNhbmRzLXNlcGFyYXRvciBmb3JtYXR0aW5nIChkaXNwbGF5IG9ubHk7IGludGVybmFsIHZhbHVlIHN0YXlzIHJhdylcbiAqIC0gcGFyc2UgLyBub3JtYWxpemUgLyBmcmFjdGlvbi1kaWdpdCB0cnVuY2F0aW9uIC8gbWluLW1heCBjbGFtcGluZ1xuICogLSBDb250cm9sbGVkICYgdW5jb250cm9sbGVkIG1vZGVzIHRocm91Z2ggdGhlIHNhbWUgcGlwZWxpbmVcbiAqIC0gQ2FyZXQgcG9zaXRpb24gcHJlc2VydmF0aW9uIGFjcm9zcyBmb3JtYXR0ZWQgcmUtcmVuZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQW1vdW50SW5wdXQob3B0aW9ucykge1xuICAgIGNvbnN0IHsgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgb25DaGFuZ2UsIG1pbiwgbWF4LCBtYXhGcmFjdGlvbkRpZ2l0cywgbmVnYXRpdmUsIGRpc2FibGVkLCByZWFkT25seSwgcmVmLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBbaW5wdXRSZWYsIHN5bmNSZWZdID0gdXNlU3luY1JlZihyZWYpO1xuICAgIGNvbnN0IGlzVW5jb250cm9sbGVkID0gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VTdGF0ZShkZWZhdWx0VmFsdWUgIT0gbnVsbCAmJiBkZWZhdWx0VmFsdWUgIT09ICcnID8gU3RyaW5nKGRlZmF1bHRWYWx1ZSkgOiBudWxsKTtcbiAgICBjb25zdCBjYXJldFBvc1JlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBpZ25vcmVTZWxlY3RSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IG9uQ2hhbmdlUmVmID0gdXNlTGF0ZXN0KG9uQ2hhbmdlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gZm9ybWF0VGhvdXNhbmRzKGlubmVyVmFsdWUgIT09IG51bGwgJiYgaW5uZXJWYWx1ZSAhPT0gdm9pZCAwID8gaW5uZXJWYWx1ZSA6ICcnLCBuZWdhdGl2ZSksIFtpbm5lclZhbHVlLCBuZWdhdGl2ZV0pO1xuICAgIGNvbnN0IHN0YXRlUmVmID0gdXNlTGF0ZXN0KHtcbiAgICAgICAgaW5uZXJWYWx1ZSxcbiAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgIG1pbixcbiAgICAgICAgbWF4LFxuICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgbWF4RnJhY3Rpb25EaWdpdHMsXG4gICAgfSk7XG4gICAgY29uc3QgY2FsY0NhcmV0UG9zID0gdXNlRXZlbnRDYWxsYmFjaygodmFsLCBvZmZzZXQgPSAwLCBjdXJyUG9zKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBpbm5lclZhbHVlOiBwcmV2LCBuZWdhdGl2ZSwgZm9ybWF0dGVkVmFsdWUgfSA9IHN0YXRlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE5ld1ZhbCA9IGZvcm1hdFRob3VzYW5kcyh2YWwsIG5lZ2F0aXZlKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luT2Zmc2V0ID0gdmFsLmxlbmd0aCAtICgoX2EgPSBwcmV2ID09PSBudWxsIHx8IHByZXYgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHByZXYubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKTtcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gKF9iID0gY3VyclBvcyAhPT0gbnVsbCAmJiBjdXJyUG9zICE9PSB2b2lkIDAgPyBjdXJyUG9zIDogaW5wdXQuc2VsZWN0aW9uRW5kKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgICAgICAvLyBNYXAgZm9ybWF0dGVkIHBvc2l0aW9uIGJhY2sgdG8gcmF3IHBvc2l0aW9uXG4gICAgICAgIHBvc2l0aW9uID0gc3RyaXBDb21tYXMoZm9ybWF0dGVkVmFsdWUuc2xpY2UoMCwgTWF0aC5tYXgocG9zaXRpb24sIDApKSkubGVuZ3RoO1xuICAgICAgICAvLyBNYXAgcmF3IHBvc2l0aW9uIGZvcndhcmQgdG8gZm9ybWF0dGVkIHBvc2l0aW9uXG4gICAgICAgIGNvbnN0IHBvc1ZhbCA9IHZhbC5zbGljZSgwLCBwb3NpdGlvbiArIG9yaWdpbk9mZnNldCk7XG4gICAgICAgIGZvcm1hdHRlZE5ld1ZhbC5zcGxpdCgnJykucmVkdWNlKChhY2MsIGNoYXIsIGluZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT09ICcsJylcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICBpZiAoYWNjLmpvaW4oJycpID09PSBwb3NWYWwpXG4gICAgICAgICAgICAgICAgcG9zaXRpb24gPSBpbmQgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuICAgICAgICBjYXJldFBvc1JlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0VmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKCh2YWwsIGhhc0RlY2ltYWxQb2ludCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaXNVbmNvbnRyb2xsZWQpIHtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUodmFsID09PSAnJyA/IG51bGwgOiB2YWwpO1xuICAgICAgICAgICAgY2FsY0NhcmV0UG9zKHZhbCwgaGFzRGVjaW1hbFBvaW50ID8gREVDSU1BTF9QT0lOVF9PRkZTRVQgOiAwLCBNYXRoLm1heChjYXJldFBvc1JlZi5jdXJyZW50LCAwKSk7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gb25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25DaGFuZ2VSZWYsIHZhbCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHJlYWRPbmx5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGlubmVyVmFsdWUsIGZvcm1hdHRlZFZhbHVlLCBtaW4sIG1heCwgbmVnYXRpdmUsIG1heEZyYWN0aW9uRGlnaXRzIH0gPSBzdGF0ZVJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVJhd0lucHV0KChfYSA9IGV2ZW50LnRhcmdldC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsIG5lZ2F0aXZlKTtcbiAgICAgICAgaWYgKCFwYXJzZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCB7IHZhbCB9ID0gcGFyc2VkO1xuICAgICAgICBjb25zdCB7IGhhc0RlY2ltYWxQb2ludCwgaXNTdGFuZGFsb25lTWludXMgfSA9IHBhcnNlZDtcbiAgICAgICAgaWYgKHZhbCA9PT0gaW5uZXJWYWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBFbmZvcmNlIGZyYWN0aW9uIGRpZ2l0IGxpbWl0XG4gICAgICAgIGlmIChpc051bWVyaWNUeXBlKG1heEZyYWN0aW9uRGlnaXRzKSkge1xuICAgICAgICAgICAgY29uc3QgeyBpbnQsIHRydW5jYXRlZCwgb3ZlcmZsb3cgfSA9IHRydW5jYXRlRnJhY3Rpb25EaWdpdHModmFsLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIGlmIChvdmVyZmxvdykge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvbGRJbnRdID0gZm9ybWF0dGVkVmFsdWUuc3BsaXQoQ0hBUl9ET1QpO1xuICAgICAgICAgICAgICAgIGlmIChzdHJpcENvbW1hcyhvbGRJbnQpID09PSBpbnQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YWwgPSB0cnVuY2F0ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2xhbXAgdG8gbWluL21heCByYW5nZVxuICAgICAgICBpZiAoaXNOdW1lcmljVHlwZShtaW4pIHx8IGlzTnVtZXJpY1R5cGUobWF4KSkge1xuICAgICAgICAgICAgdmFsID0gY2FsY1ZhbHVlSW5SYW5nZSh2YWwsIG1pbiwgbWF4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3JtYWxpemUgdGhlIGZpbmFsIHZhbHVlXG4gICAgICAgIGlmICh2YWwgIT09ICcnKSB7XG4gICAgICAgICAgICB2YWwgPSBpc1N0YW5kYWxvbmVNaW51cyA/IENIQVJfTUlOVVMgOiBub3JtYWxpemVWYWx1ZSh2YWwsIGhhc0RlY2ltYWxQb2ludCwgbmVnYXRpdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdFZhbHVlKHZhbCwgaGFzRGVjaW1hbFBvaW50LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBpZ25vcmVTZWxlY3RSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJQb3MgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2VsZWN0aW9uRW5kO1xuICAgICAgICBpZiAodHlwZW9mIGN1cnJQb3MgPT09ICdudW1iZXInKVxuICAgICAgICAgICAgY2FyZXRQb3NSZWYuY3VycmVudCA9IGN1cnJQb3M7XG4gICAgfSk7XG4gICAgLy8gS2VlcCBjYXJldCBhdCB0aGUgZXhwZWN0ZWQgcG9zaXRpb24gYWZ0ZXIgZm9ybWF0dGVkIHJlLXJlbmRlclxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgcG9zID0gY2FyZXRQb3NSZWYuY3VycmVudDtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xuICAgIH0sIFtmb3JtYXR0ZWRWYWx1ZV0pO1xuICAgIC8vIFN5bmMgZXh0ZXJuYWwgY29udHJvbGxlZCB2YWx1ZSAob3IgZGVmYXVsdFZhbHVlKSB0aHJvdWdoIHRoZSBzYW1lIHBpcGVsaW5lXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBsZXQgdmFsID0gaXNVbmNvbnRyb2xsZWQgPyBpbm5lclZhbHVlIDogKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgPyB2YWx1ZSA6IG51bGwpO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1N0YW5kYWxvbmVNaW51cyA9IGZhbHNlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmF3SW5wdXQodmFsLCBuZWdhdGl2ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJzZWQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YWwgPSBwYXJzZWQudmFsO1xuICAgICAgICAgICAgICAgIGhhc0RlY2ltYWxQb2ludCA9IHBhcnNlZC5oYXNEZWNpbWFsUG9pbnQ7XG4gICAgICAgICAgICAgICAgaXNTdGFuZGFsb25lTWludXMgPSBwYXJzZWQuaXNTdGFuZGFsb25lTWludXM7XG4gICAgICAgICAgICAgICAgaWYgKCFuZWdhdGl2ZSlcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gc3RyaXBNaW51cyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCAhPT0gbnVsbCAmJiAhaXNOdW1lcmljVHlwZSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFuZWdhdGl2ZSAmJiBpc051bWVyaWNUeXBlKHZhbCkpIHtcbiAgICAgICAgICAgIHZhbCA9IGFic1ZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgJiZcbiAgICAgICAgICAgIGlzTnVtZXJpY1R5cGUobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICBjb25zdCB7IHRydW5jYXRlZCwgb3ZlcmZsb3cgfSA9IHRydW5jYXRlRnJhY3Rpb25EaWdpdHMoYCR7dmFsfWAsIE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpO1xuICAgICAgICAgICAgaWYgKG92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzVW5jb250cm9sbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldElubmVyVmFsdWUodHJ1bmNhdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IG9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uQ2hhbmdlUmVmLCB0cnVuY2F0ZWQgIT09IG51bGwgJiYgdHJ1bmNhdGVkICE9PSB2b2lkIDAgPyB0cnVuY2F0ZWQgOiAnJywgeyB0YXJnZXQ6IGlucHV0UmVmLmN1cnJlbnQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOdW1lcmljVHlwZSh2YWwpIHx8IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKGAke3ZhbH1gLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkID0gaXNTdGFuZGFsb25lTWludXNcbiAgICAgICAgICAgICAgICA/IENIQVJfTUlOVVNcbiAgICAgICAgICAgICAgICA6IG5vcm1hbGl6ZVZhbHVlKGAke3ZhbH1gLCBoYXNEZWNpbWFsUG9pbnQsIG5lZ2F0aXZlKTtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUobm9ybWFsaXplZCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FsY0NhcmV0UG9zKCh2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDAgPyB2YWwgOiAnJykudG9TdHJpbmcoKSwgaGFzRGVjaW1hbFBvaW50ID8gREVDSU1BTF9QT0lOVF9PRkZTRVQgOiAwLCBNYXRoLm1heChjYXJldFBvc1JlZi5jdXJyZW50LCAwKSk7XG4gICAgICAgIGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCBjbGVhciA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpc1VuY29udHJvbGxlZClcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUobnVsbCk7XG4gICAgICAgIChfYSA9IG9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uQ2hhbmdlUmVmLCAnJywgeyB0YXJnZXQ6IGlucHV0UmVmLmN1cnJlbnQgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFzVmFsdWUgPSBpbm5lclZhbHVlICE9IG51bGwgJiYgaW5uZXJWYWx1ZSAhPT0gJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaW5wdXRSZWYsXG4gICAgICAgIHN5bmNSZWYsXG4gICAgICAgIGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICBoYXNWYWx1ZSxcbiAgICAgICAgaGFuZGxlQ2hhbmdlLFxuICAgICAgICBoYW5kbGVTZWxlY3QsXG4gICAgICAgIGNsZWFyLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
216
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvSW5wdXQvdXNlQW1vdW50SW5wdXQudHMiLCJjb21wb25lbnRzL0lucHV0L3VzZUFtb3VudElucHV0LmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTGF0ZXN0IiwiX3VzZUxheW91dEVmZmVjdCIsIl91c2VTeW5jUmVmMyIsIl9oZWxwZXIiLCJ1c2VBbW91bnRJbnB1dCIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwibWluIiwibWF4IiwibWF4RnJhY3Rpb25EaWdpdHMiLCJuZWdhdGl2ZSIsImRpc2FibGVkIiwicmVhZE9ubHkiLCJyZWYiLCJfdXNlU3luY1JlZiIsInVzZVN5bmNSZWYiLCJfdXNlU3luY1JlZjIiLCJfc2xpY2VkVG9BcnJheTIiLCJpbnB1dFJlZiIsInN5bmNSZWYiLCJpc1VuY29udHJvbGxlZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiU3RyaW5nIiwiX3VzZVN0YXRlMiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiY2FyZXRQb3NSZWYiLCJ1c2VSZWYiLCJpZ25vcmVTZWxlY3RSZWYiLCJvbkNoYW5nZVJlZiIsInVzZUxhdGVzdCIsImZvcm1hdHRlZFZhbHVlIiwidXNlTWVtbyIsImZvcm1hdFRob3VzYW5kcyIsInN0YXRlUmVmIiwiY2FsY0NhcmV0UG9zIiwidXNlRXZlbnRDYWxsYmFjayIsInZhbCIsIm9mZnNldCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImN1cnJQb3MiLCJfYSIsIl9iIiwiaW5wdXQiLCJjdXJyZW50IiwiX3N0YXRlUmVmJGN1cnJlbnQiLCJwcmV2IiwiZm9ybWF0dGVkTmV3VmFsIiwib3JpZ2luT2Zmc2V0IiwicG9zaXRpb24iLCJzZWxlY3Rpb25FbmQiLCJzdHJpcENvbW1hcyIsInNsaWNlIiwiTWF0aCIsInBvc1ZhbCIsInNwbGl0IiwicmVkdWNlIiwiYWNjIiwiY2hhciIsImluZCIsInB1c2giLCJqb2luIiwiY29tbWl0VmFsdWUiLCJoYXNEZWNpbWFsUG9pbnQiLCJldmVudCIsIkRFQ0lNQUxfUE9JTlRfT0ZGU0VUIiwiY2FsbCIsImhhbmRsZUNoYW5nZSIsIl9zdGF0ZVJlZiRjdXJyZW50MiIsInBhcnNlZCIsInBhcnNlUmF3SW5wdXQiLCJ0YXJnZXQiLCJpc1N0YW5kYWxvbmVNaW51cyIsImlzTnVtZXJpY1R5cGUiLCJfdHJ1bmNhdGVGcmFjdGlvbkRpZ2kiLCJ0cnVuY2F0ZUZyYWN0aW9uRGlnaXRzIiwiTnVtYmVyIiwiaW50IiwidHJ1bmNhdGVkIiwib3ZlcmZsb3ciLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJDSEFSX0RPVCIsIl9mb3JtYXR0ZWRWYWx1ZSRzcGxpdDIiLCJvbGRJbnQiLCJjYWxjVmFsdWVJblJhbmdlIiwiQ0hBUl9NSU5VUyIsIm5vcm1hbGl6ZVZhbHVlIiwiaGFuZGxlU2VsZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwiZG9jdW1lbnQiLCJhY3RpdmVFbGVtZW50IiwicG9zIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJzdHJpcE1pbnVzIiwiYWJzVmFsdWUiLCJfdHJ1bmNhdGVGcmFjdGlvbkRpZ2kyIiwiY29uY2F0Iiwibm9ybWFsaXplZCIsInRvU3RyaW5nIiwiY2xlYXIiLCJoYXNWYWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFlBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQTBDQTtBQ3hDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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LFFBQVEsRUFBUkEsUUFBUTtJQUNSakMsWUFBWSxFQUFaQSxZQUFZO0lBQ1pvQixZQUFZLEVBQVpBLFlBQVk7SUFDWlksS0FBSyxFQUFMQTtFQ3JGQSxDRHNGRDtBQUNIIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXQvdXNlQW1vdW50SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF5b3V0RWZmZWN0JztcbmltcG9ydCB7IHVzZVN5bmNSZWYgfSBmcm9tICcuL3VzZVN5bmNSZWYnO1xuaW1wb3J0IHsgQ0hBUl9ET1QsIENIQVJfTUlOVVMsIERFQ0lNQUxfUE9JTlRfT0ZGU0VULCBhYnNWYWx1ZSwgY2FsY1ZhbHVlSW5SYW5nZSwgZm9ybWF0VGhvdXNhbmRzLCBpc051bWVyaWNUeXBlLCBub3JtYWxpemVWYWx1ZSwgcGFyc2VSYXdJbnB1dCwgc3RyaXBDb21tYXMsIHN0cmlwTWludXMsIHRydW5jYXRlRnJhY3Rpb25EaWdpdHMsIH0gZnJvbSAnLi9BbW91bnQvaGVscGVyJztcbi8qKlxuICogRW5jYXBzdWxhdGVzIHRoZSBudW1lcmljIGlucHV0IHBpcGVsaW5lIHNoYXJlZCBieSBJbnB1dEFtb3VudCBhbmQgSW5wdXRUcmFkZS5cbiAqXG4gKiBIYW5kbGVzOlxuICogLSBUaG91c2FuZHMtc2VwYXJhdG9yIGZvcm1hdHRpbmcgKGRpc3BsYXkgb25seTsgaW50ZXJuYWwgdmFsdWUgc3RheXMgcmF3KVxuICogLSBwYXJzZSAvIG5vcm1hbGl6ZSAvIGZyYWN0aW9uLWRpZ2l0IHRydW5jYXRpb24gLyBtaW4tbWF4IGNsYW1waW5nXG4gKiAtIENvbnRyb2xsZWQgJiB1bmNvbnRyb2xsZWQgbW9kZXMgdGhyb3VnaCB0aGUgc2FtZSBwaXBlbGluZVxuICogLSBDYXJldCBwb3NpdGlvbiBwcmVzZXJ2YXRpb24gYWNyb3NzIGZvcm1hdHRlZCByZS1yZW5kZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBbW91bnRJbnB1dChvcHRpb25zKSB7XG4gICAgY29uc3QgeyB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBvbkNoYW5nZSwgbWluLCBtYXgsIG1heEZyYWN0aW9uRGlnaXRzLCBuZWdhdGl2ZSwgZGlzYWJsZWQsIHJlYWRPbmx5LCByZWYsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IFtpbnB1dFJlZiwgc3luY1JlZl0gPSB1c2VTeW5jUmVmKHJlZik7XG4gICAgY29uc3QgaXNVbmNvbnRyb2xsZWQgPSB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZVN0YXRlKGRlZmF1bHRWYWx1ZSAhPSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gJycgPyBTdHJpbmcoZGVmYXVsdFZhbHVlKSA6IG51bGwpO1xuICAgIGNvbnN0IGNhcmV0UG9zUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IGlnbm9yZVNlbGVjdFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3Qgb25DaGFuZ2VSZWYgPSB1c2VMYXRlc3Qob25DaGFuZ2UpO1xuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdXNlTWVtbygoKSA9PiBmb3JtYXRUaG91c2FuZHMoaW5uZXJWYWx1ZSAhPT0gbnVsbCAmJiBpbm5lclZhbHVlICE9PSB2b2lkIDAgPyBpbm5lclZhbHVlIDogJycsIG5lZ2F0aXZlKSwgW2lubmVyVmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3Qgc3RhdGVSZWYgPSB1c2VMYXRlc3Qoe1xuICAgICAgICBpbm5lclZhbHVlLFxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgbWluLFxuICAgICAgICBtYXgsXG4gICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0cyxcbiAgICB9KTtcbiAgICBjb25zdCBjYWxjQ2FyZXRQb3MgPSB1c2VFdmVudENhbGxiYWNrKCh2YWwsIG9mZnNldCA9IDAsIGN1cnJQb3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGlubmVyVmFsdWU6IHByZXYsIG5lZ2F0aXZlLCBmb3JtYXR0ZWRWYWx1ZSB9ID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsID0gZm9ybWF0VGhvdXNhbmRzKHZhbCwgbmVnYXRpdmUpO1xuICAgICAgICBjb25zdCBvcmlnaW5PZmZzZXQgPSB2YWwubGVuZ3RoIC0gKChfYSA9IHByZXYgPT09IG51bGwgfHwgcHJldiA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJldi5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgICAgICBsZXQgcG9zaXRpb24gPSAoX2IgPSBjdXJyUG9zICE9PSBudWxsICYmIGN1cnJQb3MgIT09IHZvaWQgMCA/IGN1cnJQb3MgOiBpbnB1dC5zZWxlY3Rpb25FbmQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgICAgIC8vIE1hcCBmb3JtYXR0ZWQgcG9zaXRpb24gYmFjayB0byByYXcgcG9zaXRpb25cbiAgICAgICAgcG9zaXRpb24gPSBzdHJpcENvbW1hcyhmb3JtYXR0ZWRWYWx1ZS5zbGljZSgwLCBNYXRoLm1heChwb3NpdGlvbiwgMCkpKS5sZW5ndGg7XG4gICAgICAgIC8vIE1hcCByYXcgcG9zaXRpb24gZm9yd2FyZCB0byBmb3JtYXR0ZWQgcG9zaXRpb25cbiAgICAgICAgY29uc3QgcG9zVmFsID0gdmFsLnNsaWNlKDAsIHBvc2l0aW9uICsgb3JpZ2luT2Zmc2V0KTtcbiAgICAgICAgZm9ybWF0dGVkTmV3VmFsLnNwbGl0KCcnKS5yZWR1Y2UoKGFjYywgY2hhciwgaW5kKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICBhY2MucHVzaChjaGFyKTtcbiAgICAgICAgICAgIGlmIChhY2Muam9pbignJykgPT09IHBvc1ZhbClcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGluZCArIDE7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIGNhcmV0UG9zUmVmLmN1cnJlbnQgPSBwb3NpdGlvbiArIG9mZnNldDtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbCwgaGFzRGVjaW1hbFBvaW50LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpc1VuY29udHJvbGxlZCkge1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZSh2YWwgPT09ICcnID8gbnVsbCA6IHZhbCk7XG4gICAgICAgICAgICBjYWxjQ2FyZXRQb3ModmFsLCBoYXNEZWNpbWFsUG9pbnQgPyBERUNJTUFMX1BPSU5UX09GRlNFVCA6IDAsIE1hdGgubWF4KGNhcmV0UG9zUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgICAgIGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkNoYW5nZVJlZiwgdmFsLCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgaW5uZXJWYWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgbWF4RnJhY3Rpb25EaWdpdHMgfSA9IHN0YXRlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmF3SW5wdXQoKF9hID0gZXZlbnQudGFyZ2V0LnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJywgbmVnYXRpdmUpO1xuICAgICAgICBpZiAoIXBhcnNlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbGV0IHsgdmFsIH0gPSBwYXJzZWQ7XG4gICAgICAgIGNvbnN0IHsgaGFzRGVjaW1hbFBvaW50LCBpc1N0YW5kYWxvbmVNaW51cyB9ID0gcGFyc2VkO1xuICAgICAgICBpZiAodmFsID09PSBpbm5lclZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIEVuZm9yY2UgZnJhY3Rpb24gZGlnaXQgbGltaXRcbiAgICAgICAgaWYgKGlzTnVtZXJpY1R5cGUobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGludCwgdHJ1bmNhdGVkLCBvdmVyZmxvdyB9ID0gdHJ1bmNhdGVGcmFjdGlvbkRpZ2l0cyh2YWwsIE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpO1xuICAgICAgICAgICAgaWYgKG92ZXJmbG93KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW29sZEludF0gPSBmb3JtYXR0ZWRWYWx1ZS5zcGxpdChDSEFSX0RPVCk7XG4gICAgICAgICAgICAgICAgaWYgKHN0cmlwQ29tbWFzKG9sZEludCkgPT09IGludClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IHRydW5jYXRlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBDbGFtcCB0byBtaW4vbWF4IHJhbmdlXG4gICAgICAgIGlmIChpc051bWVyaWNUeXBlKG1pbikgfHwgaXNOdW1lcmljVHlwZShtYXgpKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKHZhbCwgbWluLCBtYXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgZmluYWwgdmFsdWVcbiAgICAgICAgaWYgKHZhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIHZhbCA9IGlzU3RhbmRhbG9uZU1pbnVzID8gQ0hBUl9NSU5VUyA6IG5vcm1hbGl6ZVZhbHVlKHZhbCwgaGFzRGVjaW1hbFBvaW50LCBuZWdhdGl2ZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0VmFsdWUodmFsLCBoYXNEZWNpbWFsUG9pbnQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3QgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGlnbm9yZVNlbGVjdFJlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VyclBvcyA9IChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZWxlY3Rpb25FbmQ7XG4gICAgICAgIGlmICh0eXBlb2YgY3VyclBvcyA9PT0gJ251bWJlcicpXG4gICAgICAgICAgICBjYXJldFBvc1JlZi5jdXJyZW50ID0gY3VyclBvcztcbiAgICB9KTtcbiAgICAvLyBLZWVwIGNhcmV0IGF0IHRoZSBleHBlY3RlZCBwb3NpdGlvbiBhZnRlciBmb3JtYXR0ZWQgcmUtcmVuZGVyXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0IHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBwb3MgPSBjYXJldFBvc1JlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgfSwgW2Zvcm1hdHRlZFZhbHVlXSk7XG4gICAgLy8gU3luYyBleHRlcm5hbCBjb250cm9sbGVkIHZhbHVlIChvciBkZWZhdWx0VmFsdWUpIHRocm91Z2ggdGhlIHNhbWUgcGlwZWxpbmVcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGxldCB2YWwgPSBpc1VuY29udHJvbGxlZCA/IGlubmVyVmFsdWUgOiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogbnVsbCk7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlzU3RhbmRhbG9uZU1pbnVzID0gZmFsc2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VSYXdJbnB1dCh2YWwsIG5lZ2F0aXZlKTtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcnNlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IHBhcnNlZC52YWw7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gcGFyc2VkLmhhc0RlY2ltYWxQb2ludDtcbiAgICAgICAgICAgICAgICBpc1N0YW5kYWxvbmVNaW51cyA9IHBhcnNlZC5pc1N0YW5kYWxvbmVNaW51cztcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSBzdHJpcE1pbnVzKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmICFpc051bWVyaWNUeXBlKHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmIGlzTnVtZXJpY1R5cGUodmFsKSkge1xuICAgICAgICAgICAgdmFsID0gYWJzVmFsdWUodmFsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSAmJlxuICAgICAgICAgICAgaXNOdW1lcmljVHlwZShtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHJ1bmNhdGVkLCBvdmVyZmxvdyB9ID0gdHJ1bmNhdGVGcmFjdGlvbkRpZ2l0cyhgJHt2YWx9YCwgTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSk7XG4gICAgICAgICAgICBpZiAob3ZlcmZsb3cpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNVbmNvbnRyb2xsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZSh0cnVuY2F0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gb25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25DaGFuZ2VSZWYsIHRydW5jYXRlZCAhPT0gbnVsbCAmJiB0cnVuY2F0ZWQgIT09IHZvaWQgMCA/IHRydW5jYXRlZCA6ICcnLCB7IHRhcmdldDogaW5wdXRSZWYuY3VycmVudCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWVyaWNUeXBlKHZhbCkgfHwgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UoYCR7dmFsfWAsIG1pbiwgbWF4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBpc1N0YW5kYWxvbmVNaW51c1xuICAgICAgICAgICAgICAgID8gQ0hBUl9NSU5VU1xuICAgICAgICAgICAgICAgIDogbm9ybWFsaXplVmFsdWUoYCR7dmFsfWAsIGhhc0RlY2ltYWxQb2ludCwgbmVnYXRpdmUpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShub3JtYWxpemVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYWxjQ2FyZXRQb3MoKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMCA/IHZhbCA6ICcnKS50b1N0cmluZygpLCBoYXNEZWNpbWFsUG9pbnQgPyBERUNJTUFMX1BPSU5UX09GRlNFVCA6IDAsIE1hdGgubWF4KGNhcmV0UG9zUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIGNvbnN0IGNsZWFyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlzVW5jb250cm9sbGVkKVxuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShudWxsKTtcbiAgICAgICAgKF9hID0gb25DaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25DaGFuZ2VSZWYsICcnLCB7IHRhcmdldDogaW5wdXRSZWYuY3VycmVudCB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IGlubmVyVmFsdWUgIT0gbnVsbCAmJiBpbm5lclZhbHVlICE9PSAnJztcbiAgICByZXR1cm4ge1xuICAgICAgICBpbnB1dFJlZixcbiAgICAgICAgc3luY1JlZixcbiAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgIGhhc1ZhbHVlLFxuICAgICAgICBoYW5kbGVDaGFuZ2UsXG4gICAgICAgIGhhbmRsZVNlbGVjdCxcbiAgICAgICAgY2xlYXIsXG4gICAgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.useSyncRef = useSyncRef;
7
8
  var _react = require("react");
8
- var _hooks = require("@1money/hooks");
9
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
9
10
  function useSyncRef(externalRef) {
10
11
  var internalRef = (0, _react.useRef)(null);
11
- var callbackRef = (0, _hooks.useEventCallback)(function (node) {
12
+ var callbackRef = (0, _useEventCallback["default"])(function (node) {
12
13
  internalRef.current = node;
13
14
  if (externalRef) {
14
15
  externalRef.current = node;
@@ -16,4 +17,4 @@ function useSyncRef(externalRef) {
16
17
  });
17
18
  return [internalRef, callbackRef];
18
19
  }
19
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvSW5wdXQvdXNlU3luY1JlZi50cyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX2hvb2tzIiwidXNlU3luY1JlZiIsImV4dGVybmFsUmVmIiwiaW50ZXJuYWxSZWYiLCJ1c2VSZWYiLCJjYWxsYmFja1JlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBR00sU0FBVUUsVUFBVUEsQ0FDeEJDLFdBQWlDLEVBQUE7RUFFakMsSUFBTUMsV0FBVyxHQUFHLElBQUFDLGFBQU0sRUFBVyxJQUFJLENBQUM7RUFFMUMsSUFBTUMsV0FBVyxHQUFHLElBQUFDLHVCQUFnQixFQUFDLFVBQUNDLElBQWMsRUFBSTtJQUN0REosV0FBVyxDQUFDSyxPQUFPLEdBQUdELElBQUk7SUFDMUIsSUFBSUwsV0FBVyxFQUFFO01BQ2RBLFdBQXFDLENBQUNNLE9BQU8sR0FBR0QsSUFBSTtJQUN2RDtFQUNGLENBQUMsQ0FBQztFQUVGLE9BQU8sQ0FBQ0osV0FBVyxFQUFFRSxXQUFXLENBQVU7QUFDNUMiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dC91c2VTeW5jUmVmLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvSW5wdXQvdXNlU3luY1JlZi50cyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwidXNlU3luY1JlZiIsImV4dGVybmFsUmVmIiwiaW50ZXJuYWxSZWYiLCJ1c2VSZWYiLCJjYWxsYmFja1JlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHTSxTQUFVRyxVQUFVQSxDQUN4QkMsV0FBaUMsRUFBQTtFQUVqQyxJQUFNQyxXQUFXLEdBQUcsSUFBQUMsYUFBTSxFQUFXLElBQUksQ0FBQztFQUUxQyxJQUFNQyxXQUFXLEdBQUcsSUFBQUMsNEJBQWdCLEVBQUMsVUFBQ0MsSUFBYyxFQUFJO0lBQ3RESixXQUFXLENBQUNLLE9BQU8sR0FBR0QsSUFBSTtJQUMxQixJQUFJTCxXQUFXLEVBQUU7TUFDZEEsV0FBcUMsQ0FBQ00sT0FBTyxHQUFHRCxJQUFJO0lBQ3ZEO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsT0FBTyxDQUFDSixXQUFXLEVBQUVFLFdBQVcsQ0FBVTtBQUM1QyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0L3VzZVN5bmNSZWYuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -10,7 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _react = require("react");
12
12
  var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
13
- var _hooks = require("@1money/hooks");
13
+ var _useMemoizedFn = _interopRequireDefault(require("@1money/hooks/useMemoizedFn"));
14
14
  var _Icons = require("../Icons");
15
15
  var _Typography = require("../Typography");
16
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -134,7 +134,7 @@ var _NavChildItem = function NavChildItem(_ref2) {
134
134
  var visibleChildren = children === null || children === void 0 ? void 0 : children.filter(function (child) {
135
135
  return !child.hidden;
136
136
  });
137
- var handleClick = (0, _hooks.useMemoizedFn)(function (e) {
137
+ var handleClick = (0, _useMemoizedFn["default"])(function (e) {
138
138
  if (disabled) return;
139
139
  if (hasChildren) {
140
140
  var next = !open;
@@ -207,4 +207,4 @@ var _NavChildItem = function NavChildItem(_ref2) {
207
207
  });
208
208
  };
209
209
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(Nav);
210
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXYuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vTmF2LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2hvb2tzIiwiX0ljb25zIiwiX1R5cG9ncmFwaHkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkdST1VQX0lDT05fU0laRSIsIkNIRVZST05fU0laRSIsImlzSWNvbk5hbWUiLCJpY29uIiwiTmF2IiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRib2R5Q2xzIiwiYm9keUNscyIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJpdGVtcyIsInJlc3QiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImlzR3JvdXBJdGVtIiwiaXRlbSIsImNoaWxkcmVuIiwiX2pzeCIsImFzc2lnbiIsImZpbHRlciIsImhpZGRlbiIsIm1hcCIsImluZGV4IiwiX2EiLCJfanN4cyIsIk5hdkdyb3VwIiwiTmF2Q2hpbGRJdGVtIiwiZGVwdGgiLCJrZXkiLCJfcmVmIiwibGFiZWwiLCJyZW5kZXJJY29uIiwiZ3JvdXBJY29uIiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsIlR5cG9ncmFwaHkiLCJUaXRsZSIsInN0cm9uZyIsImFzIiwiY2hpbGQiLCJfcmVmMiIsImFjdGl2ZSIsImRpc2FibGVkIiwib25DbGljayIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwibGluayIsInN1ZmZpeCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm9wZW4iLCJzZXRPcGVuIiwiaGFzQ2hpbGRyZW4iLCJ2aXNpYmxlQ2hpbGRyZW4iLCJoYW5kbGVDbGljayIsInVzZU1lbW9pemVkRm4iLCJuZXh0Iiwid3JhcFdpdGhMaW5rIiwiY29udGVudCIsIml0ZW1MaW5rIiwiaHJlZiIsImlzVmFsaWRFbGVtZW50IiwiY2xvbmVFbGVtZW50IiwiZGVwdGhTdHlsZSIsIml0ZW1Db250ZW50Iiwiam9pbkNscyIsInN0eWxlIiwidHlwZSIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQTJDLFNBQUFPLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTCx3QkFBQUssQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBREozQyxJQUFJVyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFcEIsQ0FBQyxFQUFFO0VBQ2xELElBQUlHLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlrQixDQUFDLElBQUlELENBQUMsRUFBRSxJQUFJVCxNQUFNLENBQUNXLFNBQVMsQ0FBQ1AsY0FBYyxDQUFDQyxJQUFJLENBQUNJLENBQUMsRUFBRUMsQ0FBQyxDQUFDLElBQUlyQixDQUFDLENBQUN1QixPQUFPLENBQUNGLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VsQixDQUFDLENBQUNrQixDQUFDLENBQUMsR0FBR0QsQ0FBQyxDQUFDQyxDQUFDLENBQUM7RUFDZixJQUFJRCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9ULE1BQU0sQ0FBQ2EscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlQLENBQUMsR0FBRyxDQUFDLEVBQUVJLENBQUMsR0FBR1YsTUFBTSxDQUFDYSxxQkFBcUIsQ0FBQ0osQ0FBQyxDQUFDLEVBQUVILENBQUMsR0FBR0ksQ0FBQyxDQUFDSSxNQUFNLEVBQUVSLENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlqQixDQUFDLENBQUN1QixPQUFPLENBQUNGLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ1csU0FBUyxDQUFDSSxvQkFBb0IsQ0FBQ1YsSUFBSSxDQUFDSSxDQUFDLEVBQUVDLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsRUFDMUVkLENBQUMsQ0FBQ2tCLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBR0csQ0FBQyxDQUFDQyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT2QsQ0FBQztBQUNaLENBQUM7QUNERCxJQUFNd0IsZUFBZSxHQUFHLEVBQUU7QUFDMUIsSUFBTUMsWUFBWSxHQUFHLEVBQUU7QUFFdkIsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLElBQXlCO0VBQUEsT0FDM0MsT0FBT0EsSUFBSSxLQUFLLFFBQVE7QUFBQTtBQUVuQixJQUFNQyxHQUFHLEdBQUFDLE9BQUEsQ0FBQUQsR0FBQSxHQUFpQixTQUFwQkEsR0FBR0EsQ0FBaUJFLEtBQUssRUFBRztFQUN2QyxJQUFBQyxnQkFBQSxHQU1JRCxLQUFLLENBTFBFLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFBQUUsY0FBQSxHQUtaSCxLQUFLLENBSlBJLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxjQUFBLGNBQUcsRUFBRSxHQUFBQSxjQUFBO0lBQUFFLGdCQUFBLEdBSVZMLEtBQUssQ0FIUE0sU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsS0FBSyxHQUFBQSxnQkFBQTtJQUNqQkUsS0FBSyxHQUVIUCxLQUFLLENBRlBPLEtBQUs7SUFDRkMsSUFBSSxHQUFBdEIsTUFBQSxDQUNMYyxLQUFLLEVBTkgsQ0FBQSxXQUFBLEVBQUEsU0FBQSxFQUFBLFdBQUEsRUFBQSxPQUFBLENBTUwsQ0FBUTtFQUVULElBQU1TLE9BQU8sR0FBRyxJQUFBQyxzQkFBVSxFQUFDSixTQUFTLENBQUM7RUFFckMsSUFBTUssV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLElBQWlCO0lBQUEsT0FDcEMsQ0FBQyxFQUFFQSxJQUFJLENBQUNDLFFBQVEsSUFBSUQsSUFBSSxDQUFDQyxRQUFRLENBQUNyQixNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBQUE7RUFFL0MsT0FDRSxJQUFBc0IsZUFBQSxFQUFBLEtBQUEsRUFBQXBDLE1BQUEsQ0FBQXFDLE1BQUEsQ0FBQTtJQUFLYixTQUFTLEVBQUVPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRVAsU0FBUztFQUFDLENBQUEsRUFBTU0sSUFBSSxFQUFBO0lBQUFLLFFBQUEsRUFDbEQsSUFBQUMsZUFBQSxFQUFBLEtBQUEsRUFBQTtNQUFLWixTQUFTLEVBQUVPLE9BQU8sQ0FBQyxTQUFTLEVBQUVMLE9BQU8sQ0FBQztNQUFBUyxRQUFBLEVBQ3hDTixLQUFLLENBQ0hTLE1BQU0sQ0FBQyxVQUFBSixJQUFJO1FBQUEsT0FBSSxDQUFDQSxJQUFJLENBQUNLLE1BQU07TUFBQSxFQUFDLENBQzVCQyxHQUFHLENBQUMsVUFBQ04sSUFBSSxFQUFFTyxLQUFLLEVBQUk7UURQZixJQUFJQyxFQUFFO1FDT1UsT0FDcEIsSUFBQUMsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7VUFBQVIsUUFBQSxFQUFBLENBQ0dNLEtBQUssR0FBRyxDQUFDLElBQUlSLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLElBQzdCLElBQUFFLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS1osU0FBUyxFQUFFTyxPQUFPLENBQUMsU0FBUztVQUFDLENBQUEsQ0FDbkMsRUFDQUUsV0FBVyxDQUFDQyxJQUFJLENBQUMsR0FDaEIsSUFBQUUsZUFBQSxFQUFDUSxRQUFRLEVBQUE7WUFBQ1YsSUFBSSxFQUFFQSxJQUFJO1lBQUVOLFNBQVMsRUFBRUE7VUFBUyxDQUFBLENBQUksR0FFOUMsSUFBQVEsZUFBQSxFQUFDUyxhQUFZLEVBQUE7WUFBQ1gsSUFBSSxFQUFFQSxJQUFJO1lBQUVOLFNBQVMsRUFBRUEsU0FBUztZQUFFa0IsS0FBSyxFQUFFO1VBQUMsQ0FBQSxDQUN6RDtRQUFBLENBQUEsRUFSTyxDQUFBSixFQUFBLEdBQUFSLElBQUksQ0FBQ2EsR0FBRyxNQUFBLElBQUEsSUFBQUwsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlELEtBQUssQ0FTckI7TURmTixDQ2dCRDtJQUFDLENBQUE7RUFDQSxDQUFBLENBQUEsQ0FDRjtBQUVWLENBQUM7QUFTRCxJQUFNRyxRQUFRLEdBQXNCLFNBQTlCQSxRQUFRQSxDQUFBSSxJQUFBLEVBQThDO0VBQUEsSUFBckJkLElBQUksR0FBQWMsSUFBQSxDQUFKZCxJQUFJO0lBQUVOLFNBQVMsR0FBQW9CLElBQUEsQ0FBVHBCLFNBQVM7RUFDcEQsSUFBUXFCLEtBQUssR0FBcUJmLElBQUksQ0FBOUJlLEtBQUs7SUFBRTlCLElBQUksR0FBZWUsSUFBSSxDQUF2QmYsSUFBSTtJQUFFZ0IsUUFBUSxHQUFLRCxJQUFJLENBQWpCQyxRQUFRO0VBQzdCLElBQU1KLE9BQU8sR0FBRyxJQUFBQyxzQkFBVSxFQUFDSixTQUFTLENBQUM7RUFFckMsSUFBTXNCLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFJQyxTQUE4QixFQUFJO0lBQ3BELElBQUksQ0FBQ0EsU0FBUyxFQUFFLE9BQU8sSUFBSTtJQUMzQixJQUFJakMsVUFBVSxDQUFDaUMsU0FBUyxDQUFDLEVBQUU7TUFDekIsT0FBTyxJQUFBZixlQUFBLEVBQUNnQixZQUFLLEVBQUE7UUFBQ0MsSUFBSSxFQUFFRixTQUFTO1FBQUVHLElBQUksRUFBRXRDO01BQWUsQ0FBQSxDQUFJO0lBQzFEO0lBQ0EsT0FBT21DLFNBQVM7RUFDbEIsQ0FBQztFQUVELE9BQ0UsSUFBQVIsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7SUFBS25CLFNBQVMsRUFBRU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUFBSSxRQUFBLEVBQUEsQ0FDOUIsSUFBQUMsZUFBQSxFQUFBLEtBQUEsRUFBQTtNQUFLWixTQUFTLEVBQUVPLE9BQU8sQ0FBQyxjQUFjLENBQUM7TUFBQUksUUFBQSxFQUNyQyxJQUFBUSxnQkFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLbkIsU0FBUyxFQUFFTyxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFBQUksUUFBQSxFQUFBLENBQzVDaEIsSUFBSSxJQUNILElBQUFpQixlQUFBLEVBQUEsTUFBQSxFQUFBO1VBQU1aLFNBQVMsRUFBRU8sT0FBTyxDQUFDLG1CQUFtQixDQUFDO1VBQUFJLFFBQUEsRUFDMUNlLFVBQVUsQ0FBQy9CLElBQUk7UUFBQyxDQUFBLENBRXBCLEVBQ0QsSUFBQWlCLGVBQUEsRUFBQ21CLHNCQUFVLENBQUNDLEtBQUssRUFBQTtVQUFDRixJQUFJLEVBQUMsSUFBSTtVQUFDRyxNQUFNLEVBQUEsSUFBQTtVQUFDQyxFQUFFLEVBQUMsS0FBSztVQUFDbEMsU0FBUyxFQUFFTyxPQUFPLENBQUMsb0JBQW9CLENBQUM7VUFBQUksUUFBQSxFQUNqRmM7UUFBSyxDQUFBLENBQ1c7TUFBQSxDQUFBO0lBQ2YsQ0FBQSxDQUNGLEVBQ0xkLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUNMRyxNQUFNLENBQUMsVUFBQXFCLEtBQUs7TUFBQSxPQUFJLENBQUNBLEtBQUssQ0FBQ3BCLE1BQU07SUFBQSxFQUFBLENBQzlCQyxHQUFHLENBQUMsVUFBQ21CLEtBQUssRUFBRWxCLEtBQUssRUFBSTtNRDNDZCxJQUFJQyxFQUFFO01DMkNTLE9BQ3JCLElBQUFOLGVBQUEsRUFBQ1MsYUFBWSxFQUFBO1FBQTBCWCxJQUFJLEVBQUV5QixLQUFLO1FBQUUvQixTQUFTLEVBQUVBLFNBQVM7UUFBRWtCLEtBQUssRUFBRTtNQUFDLENBQUEsRUFBL0QsQ0FBQUosRUFBQSxHQUFBaUIsS0FBSyxDQUFDWixHQUFHLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSUQsS0FBSyxDQUFpRDtJRDFDcEYsQ0MyQ0gsQ0FBQztFQUFBLENBQUEsQ0FDQTtBQUVWLENBQUM7QUFVRCxJQUFNSSxhQUFZLEdBQTBCLFNBQXRDQSxZQUFZQSxDQUFBZSxLQUFBLEVBQXlEO0VBQUEsSUFBNUIxQixJQUFJLEdBQUEwQixLQUFBLENBQUoxQixJQUFJO0lBQUVOLFNBQVMsR0FBQWdDLEtBQUEsQ0FBVGhDLFNBQVM7SUFBRWtCLEtBQUssR0FBQWMsS0FBQSxDQUFMZCxLQUFLO0VBQ25FLElBQVFHLEtBQUssR0FBbUZmLElBQUksQ0FBNUZlLEtBQUs7SUFBRVksTUFBTSxHQUEyRTNCLElBQUksQ0FBckYyQixNQUFNO0lBQUVDLFFBQVEsR0FBaUU1QixJQUFJLENBQTdFNEIsUUFBUTtJQUFFQyxPQUFPLEdBQXdEN0IsSUFBSSxDQUFuRTZCLE9BQU87SUFBRTVCLFFBQVEsR0FBOENELElBQUksQ0FBMURDLFFBQVE7SUFBRTZCLFdBQVcsR0FBaUM5QixJQUFJLENBQWhEOEIsV0FBVztJQUFFQyxZQUFZLEdBQW1CL0IsSUFBSSxDQUFuQytCLFlBQVk7SUFBRUMsSUFBSSxHQUFhaEMsSUFBSSxDQUFyQmdDLElBQUk7SUFBRUMsTUFBTSxHQUFLakMsSUFBSSxDQUFmaUMsTUFBTTtFQUMzRixJQUFNcEMsT0FBTyxHQUFHLElBQUFDLHNCQUFVLEVBQUNKLFNBQVMsQ0FBQztFQUNyQyxJQUFBd0MsU0FBQSxHQUF3QixJQUFBQyxlQUFRLEVBQUNMLFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxHQUFJLEtBQUssQ0FBQztJQUFBTSxVQUFBLE9BQUFDLGVBQUEsYUFBQUgsU0FBQTtJQUEvQ0ksSUFBSSxHQUFBRixVQUFBO0lBQUVHLE9BQU8sR0FBQUgsVUFBQTtFQUVwQixJQUFNSSxXQUFXLEdBQUd2QyxRQUFRLElBQUlBLFFBQVEsQ0FBQ3JCLE1BQU0sR0FBRyxDQUFDO0VBQ25ELElBQU02RCxlQUFlLEdBQUd4QyxRQUFRLEtBQUEsSUFBQSxJQUFSQSxRQUFRLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVJBLFFBQVEsQ0FBRUcsTUFBTSxDQUFDLFVBQUFxQixLQUFLO0lBQUEsT0FBSSxDQUFDQSxLQUFLLENBQUNwQixNQUFNO0VBQUEsRUFBQztFQUVoRSxJQUFNcUMsV0FBVyxHQUFHLElBQUFDLG9CQUFhLEVBQUMsVUFBQ3hGLENBQTBCLEVBQUk7SUFDL0QsSUFBSXlFLFFBQVEsRUFBRTtJQUNkLElBQUlZLFdBQVcsRUFBRTtNQUNmLElBQU1JLElBQUksR0FBRyxDQUFDTixJQUFJO01BQ2xCQyxPQUFPLENBQUNLLElBQUksQ0FBQztNQUNiYixZQUFZLEtBQUEsSUFBQSxJQUFaQSxZQUFZLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVpBLFlBQVksQ0FBR2EsSUFBSSxDQUFDO0lBQ3RCO0lBQ0FmLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxDQUFHMUUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQyxDQUFDO0VBRUYsSUFBTTBGLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxPQUFxQixFQUFFQyxRQUE2QixFQUFJO0lBQzVFLElBQUksQ0FBQ0EsUUFBUSxFQUFFLE9BQU9ELE9BQU87SUFDN0IsSUFBSSxPQUFPQyxRQUFRLEtBQUssUUFBUSxFQUFFO01BQ2hDLE9BQU8sSUFBQTdDLGVBQUEsRUFBQSxHQUFBLEVBQUE7UUFBRzhDLElBQUksRUFBRUQsUUFBUTtRQUFFekQsU0FBUyxFQUFFTyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQUFJLFFBQUEsRUFBRzZDO01BQU8sQ0FBQSxDQUFLO0lBQzFFO0lBQ0EsaUJBQUksSUFBQUcscUJBQWMsRUFBQ0YsUUFBUSxDQUFDLEVBQUU7TUFDNUIsb0JBQU8sSUFBQUcsbUJBQVksRUFBQ0gsUUFBa0QsRUFBRTtRQUN0RTlDLFFBQVEsRUFBRTZDO01EdEROLENDdURMLENBQUM7SUFDSjtJQUNBLE9BQU9BLE9BQU87RUFDaEIsQ0FBQztFQUVELElBQU1LLFVBQVUsR0FBRztJQUFFLGlCQUFpQixFQUFFdkM7RUFBSyxDQUFtQjtFQUVoRSxJQUFNd0MsV0FBVyxHQUNmLElBQUEzQyxnQkFBQSxFQUFBLFFBQUEsRUFBQTtJQUNFbkIsU0FBUyxFQUFFTyxPQUFPLENBQ2hCLE1BQU0sRUFDTixJQUFBd0QsbUJBQU8sRUFDTGIsV0FBVyxJQUFJM0MsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQ3pDOEIsTUFBTSxJQUFJOUIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUNoQytCLFFBQVEsSUFBSS9CLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FDckMsQ0FDRjtJQUNEeUQsS0FBSyxFQUFFSCxVQUFVO0lBQUEsWUFBQSxFQUNMdkMsS0FBSztJQUNqQmlCLE9BQU8sRUFBRWEsV0FBVztJQUNwQmQsUUFBUSxFQUFFQSxRQUFRO0lBQ2xCMkIsSUFBSSxFQUFDLFFBQVE7SUFBQXRELFFBQUEsRUFBQSxDQUViLElBQUFRLGdCQUFBLEVBQUEsS0FBQSxFQUFBO01BQUtuQixTQUFTLEVBQUVPLE9BQU8sQ0FBQyxjQUFjLENBQUM7TUFBQUksUUFBQSxFQUFBLENBQ3JDLElBQUFDLGVBQUEsRUFBQ21CLHNCQUFVLENBQUNDLEtBQUssRUFBQTtRQUFDRixJQUFJLEVBQUMsSUFBSTtRQUFDSSxFQUFFLEVBQUMsS0FBSztRQUFDbEMsU0FBUyxFQUFFTyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQUFJLFFBQUEsRUFDbEVjO01BQUssQ0FBQSxDQUNXLEVBQ2xCa0IsTUFBTSxJQUFJLElBQUEvQixlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1aLFNBQVMsRUFBRU8sT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUFBSSxRQUFBLEVBQUdnQztNQUFNLENBQUEsQ0FBUTtJQUFBLENBQUEsQ0FDL0QsRUFDTE8sV0FBVyxJQUNWLElBQUF0QyxlQUFBLEVBQUEsTUFBQSxFQUFBO01BQU1aLFNBQVMsRUFBRU8sT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFBd0QsbUJBQU8sRUFBQ2YsSUFBSSxJQUFJekMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztNQUFBSSxRQUFBLEVBQ2pGLElBQUFDLGVBQUEsRUFBQ2dCLFlBQUssRUFBQTtRQUFDQyxJQUFJLEVBQUMsYUFBYTtRQUFDQyxJQUFJLEVBQUVyQztNQUFZLENBQUE7SUFBSSxDQUFBLENBRW5EO0VBQUEsQ0FBQSxDQUVKO0VBRUQsT0FDRSxJQUFBMEIsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7SUFBS25CLFNBQVMsRUFBRU8sT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUFBSSxRQUFBLEVBQUEsQ0FDcEMrQixJQUFJLElBQUksQ0FBQ1EsV0FBVyxHQUFHSyxZQUFZLENBQUNPLFdBQVcsRUFBRXBCLElBQUksQ0FBQyxHQUFHb0IsV0FBVyxFQUVwRVosV0FBVyxJQUNWLElBQUF0QyxlQUFBLEVBQUEsS0FBQSxFQUFBO01BQUtaLFNBQVMsRUFBRU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFBd0QsbUJBQU8sRUFBQ2YsSUFBSSxJQUFJekMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7TUFBQUksUUFBQSxFQUMxRSxJQUFBQyxlQUFBLEVBQUEsS0FBQSxFQUFBO1FBQUtaLFNBQVMsRUFBRU8sT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUFBSSxRQUFBLEVBQ3JDd0MsZUFBZSxLQUFBLElBQUEsSUFBZkEsZUFBZSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFmQSxlQUFlLENBQUVuQyxHQUFHLENBQUMsVUFBQ21CLEtBQUssRUFBRWxCLEtBQUssRUFBSTtVRDVGM0IsSUFBSUMsRUFBRTtVQzRGc0IsT0FDdEMsSUFBQU4sZUFBQSxFQUFDUyxhQUFZLEVBQUE7WUFFWFgsSUFBSSxFQUFFeUIsS0FBSztZQUNYL0IsU0FBUyxFQUFFQSxTQUFTO1lBQ3BCa0IsS0FBSyxFQUFFQSxLQUFLLEdBQUc7VUFBQyxDQUFBLEVBSFgsQ0FBQUosRUFBQSxHQUFBaUIsS0FBSyxDQUFDWixHQUFHLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSUQsS0FBSyxDQUl2QjtRRGhHSSxDQ2lHUDtNQUFDLENBQUE7SUFDRSxDQUFBLENBRVQ7RUFBQSxDQUFBLENBQ0c7QUFFVixDQUFDO0FBQUMsSUFBQWlELFFBQUEsR0FBQXJFLE9BQUEsMkJBRWEsSUFBQXNFLFdBQUksRUFBQ3ZFLEdBQUcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZVN0YXRlLCBjbG9uZUVsZW1lbnQsIGlzVmFsaWRFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyB1c2VNZW1vaXplZEZuIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmNvbnN0IEdST1VQX0lDT05fU0laRSA9IDIwO1xuY29uc3QgQ0hFVlJPTl9TSVpFID0gMjA7XG5jb25zdCBpc0ljb25OYW1lID0gKGljb24pID0+IHR5cGVvZiBpY29uID09PSAnc3RyaW5nJztcbmV4cG9ydCBjb25zdCBOYXYgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgYm9keUNscyA9ICcnLCBwcmVmaXhDbHMgPSAnbmF2JywgaXRlbXMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJib2R5Q2xzXCIsIFwicHJlZml4Q2xzXCIsIFwiaXRlbXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaXNHcm91cEl0ZW0gPSAoaXRlbSkgPT4gISEoaXRlbS5jaGlsZHJlbiAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICAgIHJldHVybiAoX2pzeChcIm5hdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgY2xhc3NOYW1lKSB9LCByZXN0LCB7IGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JywgYm9keUNscyksIGNoaWxkcmVuOiBpdGVtc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXRlbSA9PiAhaXRlbS5oaWRkZW4pXG4gICAgICAgICAgICAgICAgLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNoaWxkcmVuOiBbaW5kZXggPiAwICYmIGlzR3JvdXBJdGVtKGl0ZW0pICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdkaXZpZGVyJykgfSkpLCBpc0dyb3VwSXRlbShpdGVtKSA/IChfanN4KE5hdkdyb3VwLCB7IGl0ZW06IGl0ZW0sIHByZWZpeENsczogcHJlZml4Q2xzIH0pKSA6IChfanN4KE5hdkNoaWxkSXRlbSwgeyBpdGVtOiBpdGVtLCBwcmVmaXhDbHM6IHByZWZpeENscywgZGVwdGg6IDAgfSkpXSB9LCAoX2EgPSBpdGVtLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXgpKTtcbiAgICAgICAgICAgIH0pIH0pIH0pKSk7XG59O1xuY29uc3QgTmF2R3JvdXAgPSAoeyBpdGVtLCBwcmVmaXhDbHMgfSkgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIGljb24sIGNoaWxkcmVuIH0gPSBpdGVtO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgcmVuZGVySWNvbiA9IChncm91cEljb24pID0+IHtcbiAgICAgICAgaWYgKCFncm91cEljb24pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKGlzSWNvbk5hbWUoZ3JvdXBJY29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogZ3JvdXBJY29uLCBzaXplOiBHUk9VUF9JQ09OX1NJWkUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdyb3VwSWNvbjtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtaGVhZGVyJyksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtaGVhZGVyLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtpY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtaGVhZGVyLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuVGl0bGUsIHsgc2l6ZTogXCJzbVwiLCBzdHJvbmc6IHRydWUsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWhlYWRlci1sYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSldIH0pIH0pLCBjaGlsZHJlbiA9PT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICFjaGlsZC5oaWRkZW4pLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChOYXZDaGlsZEl0ZW0sIHsgaXRlbTogY2hpbGQsIHByZWZpeENsczogcHJlZml4Q2xzLCBkZXB0aDogMSB9LCAoX2EgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgICAgICB9KV0gfSkpO1xufTtcbmNvbnN0IE5hdkNoaWxkSXRlbSA9ICh7IGl0ZW0sIHByZWZpeENscywgZGVwdGggfSkgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIGFjdGl2ZSwgZGlzYWJsZWQsIG9uQ2xpY2ssIGNoaWxkcmVuLCBkZWZhdWx0T3Blbiwgb25PcGVuQ2hhbmdlLCBsaW5rLCBzdWZmaXggfSA9IGl0ZW07XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShkZWZhdWx0T3BlbiAhPT0gbnVsbCAmJiBkZWZhdWx0T3BlbiAhPT0gdm9pZCAwID8gZGVmYXVsdE9wZW4gOiBmYWxzZSk7XG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHZpc2libGVDaGlsZHJlbiA9IGNoaWxkcmVuID09PSBudWxsIHx8IGNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gIWNoaWxkLmhpZGRlbik7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VNZW1vaXplZEZuKChlKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gIW9wZW47XG4gICAgICAgICAgICBzZXRPcGVuKG5leHQpO1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHQpO1xuICAgICAgICB9XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljayhlKTtcbiAgICB9KTtcbiAgICBjb25zdCB3cmFwV2l0aExpbmsgPSAoY29udGVudCwgaXRlbUxpbmspID0+IHtcbiAgICAgICAgaWYgKCFpdGVtTGluaylcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1MaW5rID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIF9qc3goXCJhXCIsIHsgaHJlZjogaXRlbUxpbmssIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1saW5rJyksIGNoaWxkcmVuOiBjb250ZW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChpdGVtTGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBjbG9uZUVsZW1lbnQoaXRlbUxpbmssIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29udGVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVwdGhTdHlsZSA9IHsgJy0tb20tbmF2LWluZGVudCc6IGRlcHRoIH07XG4gICAgY29uc3QgaXRlbUNvbnRlbnQgPSAoX2pzeHMoXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0nLCBqb2luQ2xzKGhhc0NoaWxkcmVuICYmIGNsYXNzZXMoJ2l0ZW0tZXhwYW5kYWJsZScpLCBhY3RpdmUgJiYgY2xhc3NlcygnaXRlbS1hY3RpdmUnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnaXRlbS1kaXNhYmxlZCcpKSksIHN0eWxlOiBkZXB0aFN0eWxlLCBcImRhdGEtZGVwdGhcIjogZGVwdGgsIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLCBkaXNhYmxlZDogZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBbX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tY29udGVudCcpLCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeS5UaXRsZSwgeyBzaXplOiBcInNtXCIsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBzdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pLCBoYXNDaGlsZHJlbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tYXJyb3cnLCBqb2luQ2xzKG9wZW4gJiYgY2xhc3NlcygnaXRlbS1hcnJvdy1vcGVuJykpKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjaGV2cm9uRG93blwiLCBzaXplOiBDSEVWUk9OX1NJWkUgfSkgfSkpXSB9KSk7XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS13cmFwcGVyJyksIGNoaWxkcmVuOiBbbGluayAmJiAhaGFzQ2hpbGRyZW4gPyB3cmFwV2l0aExpbmsoaXRlbUNvbnRlbnQsIGxpbmspIDogaXRlbUNvbnRlbnQsIGhhc0NoaWxkcmVuICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWJtZW51Jywgam9pbkNscyhvcGVuICYmIGNsYXNzZXMoJ3N1Ym1lbnUtb3BlbicpKSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWJtZW51LWlubmVyJyksIGNoaWxkcmVuOiB2aXNpYmxlQ2hpbGRyZW4gPT09IG51bGwgfHwgdmlzaWJsZUNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2aXNpYmxlQ2hpbGRyZW4ubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChOYXZDaGlsZEl0ZW0sIHsgaXRlbTogY2hpbGQsIHByZWZpeENsczogcHJlZml4Q2xzLCBkZXB0aDogZGVwdGggKyAxIH0sIChfYSA9IGNoaWxkLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkgfSkpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhOYXYpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
210
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXYuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24vTmF2LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZU1lbW9pemVkRm4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0ljb25zIiwiX1R5cG9ncmFwaHkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkdST1VQX0lDT05fU0laRSIsIkNIRVZST05fU0laRSIsImlzSWNvbk5hbWUiLCJpY29uIiwiTmF2IiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRib2R5Q2xzIiwiYm9keUNscyIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJpdGVtcyIsInJlc3QiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsImlzR3JvdXBJdGVtIiwiaXRlbSIsImNoaWxkcmVuIiwiX2pzeCIsImFzc2lnbiIsImZpbHRlciIsImhpZGRlbiIsIm1hcCIsImluZGV4IiwiX2EiLCJfanN4cyIsIk5hdkdyb3VwIiwiTmF2Q2hpbGRJdGVtIiwiZGVwdGgiLCJrZXkiLCJfcmVmIiwibGFiZWwiLCJyZW5kZXJJY29uIiwiZ3JvdXBJY29uIiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsIlR5cG9ncmFwaHkiLCJUaXRsZSIsInN0cm9uZyIsImFzIiwiY2hpbGQiLCJfcmVmMiIsImFjdGl2ZSIsImRpc2FibGVkIiwib25DbGljayIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwibGluayIsInN1ZmZpeCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIm9wZW4iLCJzZXRPcGVuIiwiaGFzQ2hpbGRyZW4iLCJ2aXNpYmxlQ2hpbGRyZW4iLCJoYW5kbGVDbGljayIsInVzZU1lbW9pemVkRm4iLCJuZXh0Iiwid3JhcFdpdGhMaW5rIiwiY29udGVudCIsIml0ZW1MaW5rIiwiaHJlZiIsImlzVmFsaWRFbGVtZW50IiwiY2xvbmVFbGVtZW50IiwiZGVwdGhTdHlsZSIsIml0ZW1Db250ZW50Iiwiam9pbkNscyIsInN0eWxlIiwidHlwZSIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQTJDLFNBQUFRLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBTix3QkFBQU0sQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FB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STtVRDVGM0IsSUFBSUMsRUFBRTtVQzRGc0IsT0FDdEMsSUFBQU4sZUFBQSxFQUFDUyxhQUFZLEVBQUE7WUFFWFgsSUFBSSxFQUFFeUIsS0FBSztZQUNYL0IsU0FBUyxFQUFFQSxTQUFTO1lBQ3BCa0IsS0FBSyxFQUFFQSxLQUFLLEdBQUc7VUFBQyxDQUFBLEVBSFgsQ0FBQUosRUFBQSxHQUFBaUIsS0FBSyxDQUFDWixHQUFHLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSUQsS0FBSyxDQUl2QjtRRGhHSSxDQ2lHUDtNQUFDLENBQUE7SUFDRSxDQUFBLENBRVQ7RUFBQSxDQUFBLENBQ0c7QUFFVixDQUFDO0FBQUMsSUFBQWlELFFBQUEsR0FBQXJFLE9BQUEsMkJBRWEsSUFBQXNFLFdBQUksRUFBQ3ZFLEdBQUcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZVN0YXRlLCBjbG9uZUVsZW1lbnQsIGlzVmFsaWRFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5jb25zdCBHUk9VUF9JQ09OX1NJWkUgPSAyMDtcbmNvbnN0IENIRVZST05fU0laRSA9IDIwO1xuY29uc3QgaXNJY29uTmFtZSA9IChpY29uKSA9PiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZyc7XG5leHBvcnQgY29uc3QgTmF2ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIGJvZHlDbHMgPSAnJywgcHJlZml4Q2xzID0gJ25hdicsIGl0ZW1zIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwiYm9keUNsc1wiLCBcInByZWZpeENsc1wiLCBcIml0ZW1zXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGlzR3JvdXBJdGVtID0gKGl0ZW0pID0+ICEhKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKTtcbiAgICByZXR1cm4gKF9qc3goXCJuYXZcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGNsYXNzTmFtZSkgfSwgcmVzdCwgeyBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcsIGJvZHlDbHMpLCBjaGlsZHJlbjogaXRlbXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaGlkZGVuKVxuICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjaGlsZHJlbjogW2luZGV4ID4gMCAmJiBpc0dyb3VwSXRlbShpdGVtKSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZGl2aWRlcicpIH0pKSwgaXNHcm91cEl0ZW0oaXRlbSkgPyAoX2pzeChOYXZHcm91cCwgeyBpdGVtOiBpdGVtLCBwcmVmaXhDbHM6IHByZWZpeENscyB9KSkgOiAoX2pzeChOYXZDaGlsZEl0ZW0sIHsgaXRlbTogaXRlbSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGRlcHRoOiAwIH0pKV0gfSwgKF9hID0gaXRlbS5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgICAgICB9KSB9KSB9KSkpO1xufTtcbmNvbnN0IE5hdkdyb3VwID0gKHsgaXRlbSwgcHJlZml4Q2xzIH0pID0+IHtcbiAgICBjb25zdCB7IGxhYmVsLCBpY29uLCBjaGlsZHJlbiB9ID0gaXRlbTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHJlbmRlckljb24gPSAoZ3JvdXBJY29uKSA9PiB7XG4gICAgICAgIGlmICghZ3JvdXBJY29uKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpc0ljb25OYW1lKGdyb3VwSWNvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6IGdyb3VwSWNvbiwgc2l6ZTogR1JPVVBfSUNPTl9TSVpFIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBncm91cEljb247XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWhlYWRlcicpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWhlYWRlci1jb250ZW50JyksIGNoaWxkcmVuOiBbaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWhlYWRlci1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgc3Ryb25nOiB0cnVlLCBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1oZWFkZXItbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSB9KSwgY2hpbGRyZW4gPT09IG51bGwgfHwgY2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhY2hpbGQuaGlkZGVuKS5tYXAoKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goTmF2Q2hpbGRJdGVtLCB7IGl0ZW06IGNoaWxkLCBwcmVmaXhDbHM6IHByZWZpeENscywgZGVwdGg6IDEgfSwgKF9hID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgfSldIH0pKTtcbn07XG5jb25zdCBOYXZDaGlsZEl0ZW0gPSAoeyBpdGVtLCBwcmVmaXhDbHMsIGRlcHRoIH0pID0+IHtcbiAgICBjb25zdCB7IGxhYmVsLCBhY3RpdmUsIGRpc2FibGVkLCBvbkNsaWNrLCBjaGlsZHJlbiwgZGVmYXVsdE9wZW4sIG9uT3BlbkNoYW5nZSwgbGluaywgc3VmZml4IH0gPSBpdGVtO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4gIT09IG51bGwgJiYgZGVmYXVsdE9wZW4gIT09IHZvaWQgMCA/IGRlZmF1bHRPcGVuIDogZmFsc2UpO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjaGlsZHJlbiA9PT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICFjaGlsZC5oaWRkZW4pO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChoYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9ICFvcGVuO1xuICAgICAgICAgICAgc2V0T3BlbihuZXh0KTtcbiAgICAgICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBvbkNsaWNrID09PSBudWxsIHx8IG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xpY2soZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgd3JhcFdpdGhMaW5rID0gKGNvbnRlbnQsIGl0ZW1MaW5rKSA9PiB7XG4gICAgICAgIGlmICghaXRlbUxpbmspXG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtTGluayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBfanN4KFwiYVwiLCB7IGhyZWY6IGl0ZW1MaW5rLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGluaycpLCBjaGlsZHJlbjogY29udGVudCB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoaXRlbUxpbmspKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50KGl0ZW1MaW5rLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlcHRoU3R5bGUgPSB7ICctLW9tLW5hdi1pbmRlbnQnOiBkZXB0aCB9O1xuICAgIGNvbnN0IGl0ZW1Db250ZW50ID0gKF9qc3hzKFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtJywgam9pbkNscyhoYXNDaGlsZHJlbiAmJiBjbGFzc2VzKCdpdGVtLWV4cGFuZGFibGUnKSwgYWN0aXZlICYmIGNsYXNzZXMoJ2l0ZW0tYWN0aXZlJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2l0ZW0tZGlzYWJsZWQnKSkpLCBzdHlsZTogZGVwdGhTdHlsZSwgXCJkYXRhLWRlcHRoXCI6IGRlcHRoLCBvbkNsaWNrOiBoYW5kbGVDbGljaywgZGlzYWJsZWQ6IGRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogW19qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtfanN4KFR5cG9ncmFwaHkuVGl0bGUsIHsgc2l6ZTogXCJzbVwiLCBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBsYWJlbCB9KSwgc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLXN1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pXSB9KSwgaGFzQ2hpbGRyZW4gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWFycm93Jywgam9pbkNscyhvcGVuICYmIGNsYXNzZXMoJ2l0ZW0tYXJyb3ctb3BlbicpKSksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IFwiY2hldnJvbkRvd25cIiwgc2l6ZTogQ0hFVlJPTl9TSVpFIH0pIH0pKV0gfSkpO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0td3JhcHBlcicpLCBjaGlsZHJlbjogW2xpbmsgJiYgIWhhc0NoaWxkcmVuID8gd3JhcFdpdGhMaW5rKGl0ZW1Db250ZW50LCBsaW5rKSA6IGl0ZW1Db250ZW50LCBoYXNDaGlsZHJlbiAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VibWVudScsIGpvaW5DbHMob3BlbiAmJiBjbGFzc2VzKCdzdWJtZW51LW9wZW4nKSkpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VibWVudS1pbm5lcicpLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuID09PSBudWxsIHx8IHZpc2libGVDaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goTmF2Q2hpbGRJdGVtLCB7IGl0ZW06IGNoaWxkLCBwcmVmaXhDbHM6IHByZWZpeENscywgZGVwdGg6IGRlcHRoICsgMSB9LCAoX2EgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oTmF2KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -10,7 +10,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _react = require("react");
12
12
  var _classnames = _interopRequireWildcard(require("../../utils/classnames"));
13
- var _hooks = require("@1money/hooks");
13
+ var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
14
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
15
+ var _useMemoizedFn = _interopRequireDefault(require("@1money/hooks/useMemoizedFn"));
16
+ var _useLatest = _interopRequireDefault(require("@1money/hooks/useLatest"));
14
17
  var _Icons = require("../Icons");
15
18
  var _Typography = require("../Typography");
16
19
  var _Trigger = require("../Trigger");
@@ -50,12 +53,12 @@ var Navigation = exports.Navigation = /*#__PURE__*/(0, _react.forwardRef)(functi
50
53
  children = props.children,
51
54
  rest = __rest(props, ["className", "prefixCls", "items", "collapsed", "defaultCollapsed", "collapsible", "onCollapse", "onLogoClick", "header", "selector", "children"]);
52
55
  var classes = (0, _classnames["default"])(prefixCls);
53
- var _useControlledState = (0, _hooks.useControlledState)(defaultCollapsed, controlledCollapsed),
56
+ var _useControlledState = (0, _useControlledState3["default"])(defaultCollapsed, controlledCollapsed),
54
57
  _useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
55
58
  collapsed = _useControlledState2[0],
56
59
  setCollapsed = _useControlledState2[1];
57
- var collapsedRef = (0, _hooks.useLatest)(collapsed);
58
- var handleCollapse = (0, _hooks.useEventCallback)(function (value) {
60
+ var collapsedRef = (0, _useLatest["default"])(collapsed);
61
+ var handleCollapse = (0, _useEventCallback["default"])(function (value) {
59
62
  setCollapsed(value);
60
63
  onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value);
61
64
  });
@@ -67,7 +70,7 @@ var Navigation = exports.Navigation = /*#__PURE__*/(0, _react.forwardRef)(functi
67
70
  collapse: handleCollapse
68
71
  };
69
72
  }, [handleCollapse]);
70
- var handleToggleCollapse = (0, _hooks.useEventCallback)(function () {
73
+ var handleToggleCollapse = (0, _useEventCallback["default"])(function () {
71
74
  handleCollapse(!collapsed);
72
75
  });
73
76
  return (0, _jsxRuntime.jsxs)("nav", Object.assign({
@@ -131,7 +134,7 @@ var NavigationMenuItem = function NavigationMenuItem(_ref) {
131
134
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
132
135
  open = _useState2[0],
133
136
  setOpen = _useState2[1];
134
- var handleClick = (0, _hooks.useMemoizedFn)(function (e) {
137
+ var handleClick = (0, _useMemoizedFn["default"])(function (e) {
135
138
  if (disabled) return;
136
139
  if (children === null || children === void 0 ? void 0 : children.length) {
137
140
  var next = !open;
@@ -306,4 +309,4 @@ var NavigationMenuItem = function NavigationMenuItem(_ref) {
306
309
  });
307
310
  };
308
311
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(Navigation);
309
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfaG9va3MiLCJfSWNvbnMiLCJfVHlwb2dyYXBoeSIsIl9UcmlnZ2VyIiwiX05hdmlnYXRpb25Mb2dvIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiSUNPTl9TSVpFIiwiQ0hFVlJPTl9TSVpFIiwiQ09MTEFQU0VfSUNPTl9TSVpFIiwiaXNJY29uTmFtZSIsImljb24iLCJOYXZpZ2F0aW9uIiwiZXhwb3J0cyIsImZvcndhcmRSZWYiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiaXRlbXMiLCJjb250cm9sbGVkQ29sbGFwc2VkIiwiY29sbGFwc2VkIiwiX3Byb3BzJGRlZmF1bHRDb2xsYXBzIiwiZGVmYXVsdENvbGxhcHNlZCIsIl9wcm9wcyRjb2xsYXBzaWJsZSIsImNvbGxhcHNpYmxlIiwib25Db2xsYXBzZSIsIm9uTG9nb0NsaWNrIiwiaGVhZGVyIiwic2VsZWN0b3IiLCJjaGlsZHJlbiIsInJlc3QiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNldENvbGxhcHNlZCIsImNvbGxhcHNlZFJlZiIsInVzZUxhdGVzdCIsImhhbmRsZUNvbGxhcHNlIiwidXNlRXZlbnRDYWxsYmFjayIsInZhbHVlIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsInRvZ2dsZSIsImN1cnJlbnQiLCJjb2xsYXBzZSIsImhhbmRsZVRvZ2dsZUNvbGxhcHNlIiwiX2pzeHMiLCJhc3NpZ24iLCJqb2luQ2xzIiwiX2pzeCIsInVuZGVmaW5lZCIsIk5hdmlnYXRpb25Mb2dvIiwib25DbGljayIsImZpbHRlciIsIml0ZW0iLCJoaWRkZW4iLCJtYXAiLCJpbmRleCIsIl9hIiwiTmF2aWdhdGlvbk1lbnVJdGVtIiwia2V5IiwidHlwZSIsIkljb25zIiwibmFtZSIsInNpemUiLCJkaXNwbGF5TmFtZSIsIl9yZWYiLCJsYWJlbCIsInN1ZmZpeCIsImxpbmsiLCJhY3RpdmUiLCJkaXNhYmxlZCIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwib3BlbiIsInNldE9wZW4iLCJoYW5kbGVDbGljayIsInVzZU1lbW9pemVkRm4iLCJuZXh0IiwiaGFzQ2hpbGRyZW4iLCJ2aXNpYmxlQ2hpbGRyZW4iLCJjaGlsZCIsImNoaWxkQWN0aXZlIiwic29tZSIsInJlbmRlckljb24iLCJpdGVtSWNvbiIsIndyYXBXaXRoTGluayIsImNvbnRlbnQiLCJpdGVtTGluayIsImhyZWYiLCJpc1ZhbGlkRWxlbWVudCIsImNsb25lRWxlbWVudCIsImNvbGxhcHNlZENvbnRlbnQiLCJUeXBvZ3JhcGh5IiwiTGFiZWwiLCJhcyIsIlRyaWdnZXIiLCJ0cmlnZ2VyIiwicGxhY2VtZW50Iiwib2Zmc2V0Iiwib3ZlcmxheUNsYXNzTmFtZSIsIl9yZWYyIiwiY2xvc2UiLCJfYiIsImNoaWxkQ29udGVudCIsIlRpdGxlIiwiaXRlbUNvbnRlbnQiLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQVQsT0FBQTtBQUlBQSxPQUFBO0FBQWlCLFNBQUFVLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxD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RXZCLEtBQUssQ0FBQ2YsSUFBSSxDQUFDLEdBQUdzQyxZQUFZO1FBQzNFLENBQUM7TUFBQyxDQUFBO0lBQ0ksQ0FBQSxDQUVUO0VBQUEsQ0FBQSxDQUNHO0FBRVYsQ0FBQztBQUFDLElBQUFHLFFBQUEsR0FBQXRHLE9BQUEsMkJBRWEsSUFBQXVHLFdBQUksRUFBQ3hHLFVBQVUsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2aWdhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSwgZm9yd2FyZFJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrLCB1c2VNZW1vaXplZEZuLCB1c2VMYXRlc3QgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgVHJpZ2dlciB9IGZyb20gJy4uL1RyaWdnZXInO1xuaW1wb3J0IE5hdmlnYXRpb25Mb2dvIGZyb20gJy4vTmF2aWdhdGlvbkxvZ28nO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IElDT05fU0laRSA9IDE2O1xuY29uc3QgQ0hFVlJPTl9TSVpFID0gMTY7XG5jb25zdCBDT0xMQVBTRV9JQ09OX1NJWkUgPSAxNjtcbmNvbnN0IGlzSWNvbk5hbWUgPSAoaWNvbikgPT4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnO1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb24gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ25hdmlnYXRpb24nLCBpdGVtcywgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBkZWZhdWx0Q29sbGFwc2VkID0gZmFsc2UsIGNvbGxhcHNpYmxlID0gZmFsc2UsIG9uQ29sbGFwc2UsIG9uTG9nb0NsaWNrLCBoZWFkZXIsIHNlbGVjdG9yLCBjaGlsZHJlbiB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcIml0ZW1zXCIsIFwiY29sbGFwc2VkXCIsIFwiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNpYmxlXCIsIFwib25Db2xsYXBzZVwiLCBcIm9uTG9nb0NsaWNrXCIsIFwiaGVhZGVyXCIsIFwic2VsZWN0b3JcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGNvbGxhcHNlZFJlZiA9IHVzZUxhdGVzdChjb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHZhbHVlKTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKHZhbHVlKTtcbiAgICB9KTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgdG9nZ2xlOiAoKSA9PiBoYW5kbGVDb2xsYXBzZSghY29sbGFwc2VkUmVmLmN1cnJlbnQpLFxuICAgICAgICBjb2xsYXBzZTogaGFuZGxlQ29sbGFwc2UsXG4gICAgfSksIFtoYW5kbGVDb2xsYXBzZV0pO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUNvbGxhcHNlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGhhbmRsZUNvbGxhcHNlKCFjb2xsYXBzZWQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeHMoXCJuYXZcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY29sbGFwc2VkICYmIGNsYXNzZXMoJ2NvbGxhcHNlZCcpLCBjbGFzc05hbWUpKSB9LCByZXN0LCB7IGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaGVhZGVyJyksIGNoaWxkcmVuOiBoZWFkZXIgIT09IHVuZGVmaW5lZCA/IGhlYWRlciA6IChfanN4KE5hdmlnYXRpb25Mb2dvLCB7IGNvbGxhcHNlZDogY29sbGFwc2VkLCBvbkNsaWNrOiBvbkxvZ29DbGljayB9KSkgfSksIHNlbGVjdG9yICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlbGVjdG9yJyksIGNoaWxkcmVuOiBzZWxlY3RvciB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ25hdicpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lbnUnKSwgY2hpbGRyZW46IGl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmhpZGRlbikubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goTmF2aWdhdGlvbk1lbnVJdGVtLCB7IGl0ZW06IGl0ZW0sIHByZWZpeENsczogcHJlZml4Q2xzLCBjb2xsYXBzZWQ6IGNvbGxhcHNlZCB9LCAoX2EgPSBpdGVtLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pLCBjb2xsYXBzaWJsZSAmJiAoX2pzeChcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2UtdG9nZ2xlJyksIG9uQ2xpY2s6IGhhbmRsZVRvZ2dsZUNvbGxhcHNlLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBjb2xsYXBzZWQgPyAnZXh0ZW5kJyA6ICdjb2xsYXBzZScsIHNpemU6IENPTExBUFNFX0lDT05fU0laRSB9KSB9KSldIH0pLCBjaGlsZHJlbiAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzZXR0aW5ncycpLCBjaGlsZHJlbjogY2hpbGRyZW4gfSldIH0pKSk7XG59KTtcbk5hdmlnYXRpb24uZGlzcGxheU5hbWUgPSAnTmF2aWdhdGlvbic7XG5jb25zdCBOYXZpZ2F0aW9uTWVudUl0ZW0gPSAoeyBpdGVtLCBwcmVmaXhDbHMsIGNvbGxhcHNlZCB9KSA9PiB7XG4gICAgY29uc3QgeyBsYWJlbCwgaWNvbiwgc3VmZml4LCBsaW5rLCBhY3RpdmUsIGRpc2FibGVkLCBvbkNsaWNrLCBjaGlsZHJlbiwgZGVmYXVsdE9wZW4sIG9uT3BlbkNoYW5nZSB9ID0gaXRlbTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGRlZmF1bHRPcGVuICE9PSBudWxsICYmIGRlZmF1bHRPcGVuICE9PSB2b2lkIDAgPyBkZWZhdWx0T3BlbiA6IGZhbHNlKTtcbiAgICBjb25zdCBoYW5kbGVDbGljayA9IHVzZU1lbW9pemVkRm4oKGUpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoY2hpbGRyZW4gPT09IG51bGwgfHwgY2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9ICFvcGVuO1xuICAgICAgICAgICAgc2V0T3BlbihuZXh0KTtcbiAgICAgICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBvbkNsaWNrID09PSBudWxsIHx8IG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2xpY2soZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHZpc2libGVDaGlsZHJlbiA9IGNoaWxkcmVuID09PSBudWxsIHx8IGNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZHJlbi5maWx0ZXIoY2hpbGQgPT4gIWNoaWxkLmhpZGRlbik7XG4gICAgY29uc3QgY2hpbGRBY3RpdmUgPSBoYXNDaGlsZHJlbiAmJiBjaGlsZHJlbi5zb21lKGNoaWxkID0+IGNoaWxkLmFjdGl2ZSk7XG4gICAgY29uc3QgcmVuZGVySWNvbiA9IChpdGVtSWNvbikgPT4ge1xuICAgICAgICBpZiAoIWl0ZW1JY29uKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChpc0ljb25OYW1lKGl0ZW1JY29uKSkge1xuICAgICAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaXRlbUljb24sIHNpemU6IElDT05fU0laRSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbUljb247XG4gICAgfTtcbiAgICBjb25zdCB3cmFwV2l0aExpbmsgPSAoY29udGVudCwgaXRlbUxpbmspID0+IHtcbiAgICAgICAgaWYgKCFpdGVtTGluaylcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1MaW5rID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIF9qc3goXCJhXCIsIHsgaHJlZjogaXRlbUxpbmssIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1saW5rJyksIGNoaWxkcmVuOiBjb250ZW50IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChpdGVtTGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBjbG9uZUVsZW1lbnQoaXRlbUxpbmssIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogY29udGVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH07XG4gICAgaWYgKGNvbGxhcHNlZCkge1xuICAgICAgICBjb25zdCBjb2xsYXBzZWRDb250ZW50ID0gKF9qc3hzKFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbScsIGpvaW5DbHMoKGFjdGl2ZSB8fCBjaGlsZEFjdGl2ZSkgJiYgY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0tYWN0aXZlJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogaGFzQ2hpbGRyZW4gPyB1bmRlZmluZWQgOiBoYW5kbGVDbGljaywgZGlzYWJsZWQ6IGRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogW2ljb24gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LkxhYmVsLCB7IHNpemU6IFwieHNcIiwgYXM6IFwic3BhblwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBsYWJlbCB9KV0gfSkpO1xuICAgICAgICBpZiAoaGFzQ2hpbGRyZW4gJiYgKHZpc2libGVDaGlsZHJlbiA9PT0gbnVsbCB8fCB2aXNpYmxlQ2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZpc2libGVDaGlsZHJlbi5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3goVHJpZ2dlciwgeyB0cmlnZ2VyOiBcImNsaWNrXCIsIHBsYWNlbWVudDogXCJyaWdodC1zdGFydFwiLCBvZmZzZXQ6IDEwLCBvdmVybGF5Q2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1wYW5lbCcpLCBjb250ZW50OiAoeyBjbG9zZSB9KSA9PiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUnKSwgY2hpbGRyZW46IHZpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkQ29udGVudCA9IChfanN4cyhcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtaXRlbScsIGpvaW5DbHMoY2hpbGQuYWN0aXZlICYmIGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LWl0ZW0tYWN0aXZlJyksIGNoaWxkLmRpc2FibGVkICYmIGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LWl0ZW0tZGlzYWJsZWQnKSkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IGNoaWxkLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNoaWxkLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBkaXNhYmxlZDogY2hpbGQuZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBbY2hpbGQuaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taWNvbicpLCBjaGlsZHJlbjogcmVuZGVySWNvbihjaGlsZC5pY29uKSB9KSksIF9qc3goVHlwb2dyYXBoeS5UaXRsZSwgeyBzaXplOiBcInNtXCIsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGNoaWxkLmxhYmVsIH0pLCBjaGlsZC5zdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tc3VmZml4JyksIGNoaWxkcmVuOiBjaGlsZC5zdWZmaXggfSldIH0sIChfYSA9IGNoaWxkLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjaGlsZHJlbjogW2luZGV4ID4gMCAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1kaXZpZGVyJykgfSksIGNoaWxkLmxpbmsgPyB3cmFwV2l0aExpbmsoY2hpbGRDb250ZW50LCBjaGlsZC5saW5rKSA6IGNoaWxkQ29udGVudF0gfSwgKF9iID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICB9KSB9KSksIGNoaWxkcmVuOiBjb2xsYXBzZWRDb250ZW50IH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGluayA/IHdyYXBXaXRoTGluayhjb2xsYXBzZWRDb250ZW50LCBsaW5rKSA6IGNvbGxhcHNlZENvbnRlbnQ7XG4gICAgfVxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0td3JhcHBlcicpLCBjaGlsZHJlbjogWygoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUNvbnRlbnQgPSAoX2pzeHMoXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0nLCBqb2luQ2xzKGhhc0NoaWxkcmVuICYmIGNsYXNzZXMoJ2l0ZW0tZXhwYW5kYWJsZScpLCBhY3RpdmUgJiYgY2xhc3NlcygnaXRlbS1hY3RpdmUnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnaXRlbS1kaXNhYmxlZCcpKSksIG9uQ2xpY2s6IGhhbmRsZUNsaWNrLCBkaXNhYmxlZDogZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBbX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tY29udGVudCcpLCBjaGlsZHJlbjogW2ljb24gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuVGl0bGUsIHsgc2l6ZTogXCJzbVwiLCBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBsYWJlbCB9KSwgc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLXN1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pXSB9KSwgaGFzQ2hpbGRyZW4gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWFycm93Jywgam9pbkNscyhvcGVuICYmIGNsYXNzZXMoJ2l0ZW0tYXJyb3ctb3BlbicpKSksIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IFwiY2hldnJvbkRvd25cIiwgc2l6ZTogQ0hFVlJPTl9TSVpFIH0pIH0pKV0gfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBsaW5rICYmICFoYXNDaGlsZHJlbiA/IHdyYXBXaXRoTGluayhpdGVtQ29udGVudCwgbGluaykgOiBpdGVtQ29udGVudDtcbiAgICAgICAgICAgIH0pKCksIGhhc0NoaWxkcmVuICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWJtZW51Jywgam9pbkNscyhvcGVuICYmIGNsYXNzZXMoJ3N1Ym1lbnUtb3BlbicpKSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWJtZW51LWlubmVyJyksIGNoaWxkcmVuOiB2aXNpYmxlQ2hpbGRyZW4gPT09IG51bGwgfHwgdmlzaWJsZUNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2aXNpYmxlQ2hpbGRyZW4ubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkQ29udGVudCA9IChfanN4KFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWJtZW51LWl0ZW0nLCBqb2luQ2xzKGNoaWxkLmFjdGl2ZSAmJiBjbGFzc2VzKCdzdWJtZW51LWl0ZW0tYWN0aXZlJyksIGNoaWxkLmRpc2FibGVkICYmIGNsYXNzZXMoJ3N1Ym1lbnUtaXRlbS1kaXNhYmxlZCcpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZC5kaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IGNoaWxkLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGNoaWxkLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBkaXNhYmxlZDogY2hpbGQuZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1jb250ZW50JyksIGNoaWxkcmVuOiBbY2hpbGQuaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taWNvbicpLCBjaGlsZHJlbjogcmVuZGVySWNvbihjaGlsZC5pY29uKSB9KSksIF9qc3goVHlwb2dyYXBoeS5UaXRsZSwgeyBzaXplOiBcInNtXCIsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGNoaWxkLmxhYmVsIH0pLCBjaGlsZC5zdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tc3VmZml4JyksIGNoaWxkcmVuOiBjaGlsZC5zdWZmaXggfSldIH0pIH0sIChfYSA9IGNoaWxkLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZC5saW5rID8gd3JhcFdpdGhMaW5rKGNoaWxkQ29udGVudCwgY2hpbGQubGluaykgOiBjaGlsZENvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oTmF2aWdhdGlvbik7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
312
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24udHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl91c2VNZW1vaXplZEZuIiwiX3VzZUxhdGVzdCIsIl9JY29ucyIsIl9UeXBvZ3JhcGh5IiwiX1RyaWdnZXIiLCJfTmF2aWdhdGlvbkxvZ28iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIklDT05fU0laRSIsIkNIRVZST05fU0laRSIsIkNPTExBUFNFX0lDT05fU0laRSIsImlzSWNvbk5hbWUiLCJpY29uIiwiTmF2aWdhdGlvbiIsImV4cG9ydHMiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIml0ZW1zIiwiY29udHJvbGxlZENvbGxhcHNlZCIsImNvbGxhcHNlZCIsIl9wcm9wcyRkZWZhdWx0Q29sbGFwcyIsImRlZmF1bHRDb2xsYXBzZWQiLCJfcHJvcHMkY29sbGFwc2libGUiLCJjb2xsYXBzaWJsZSIsIm9uQ29sbGFwc2UiLCJvbkxvZ29DbGljayIsImhlYWRlciIsInNlbGVjdG9yIiwiY2hpbGRyZW4iLCJyZXN0IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJzZXRDb2xsYXBzZWQiLCJjb2xsYXBzZWRSZWYiLCJ1c2VMYXRlc3QiLCJoYW5kbGVDb2xsYXBzZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJ2YWx1ZSIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ0b2dnbGUiLCJjdXJyZW50IiwiY29sbGFwc2UiLCJoYW5kbGVUb2dnbGVDb2xsYXBzZSIsIl9qc3hzIiwiYXNzaWduIiwiam9pbkNscyIsIl9qc3giLCJ1bmRlZmluZWQiLCJOYXZpZ2F0aW9uTG9nbyIsIm9uQ2xpY2siLCJmaWx0ZXIiLCJpdGVtIiwiaGlkZGVuIiwibWFwIiwiaW5kZXgiLCJfYSIsIk5hdmlnYXRpb25NZW51SXRlbSIsImtleSIsInR5cGUiLCJJY29ucyIsIm5hbWUiLCJzaXplIiwiZGlzcGxheU5hbWUiLCJfcmVmIiwibGFiZWwiLCJzdWZmaXgiLCJsaW5rIiwiYWN0aXZlIiwiZGlzYWJsZWQiLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9wZW4iLCJzZXRPcGVuIiwiaGFuZGxlQ2xpY2siLCJ1c2VNZW1vaXplZEZuIiwibmV4dCIsImhhc0NoaWxkcmVuIiwidmlzaWJsZUNoaWxkcmVuIiwiY2hpbGQiLCJjaGlsZEFjdGl2ZSIsInNvbWUiLCJyZW5kZXJJY29uIiwiaXRlbUljb24iLCJ3cmFwV2l0aExpbmsiLCJjb250ZW50IiwiaXRlbUxpbmsiLCJocmVmIiwiaXNWYWxpZEVsZW1lbnQiLCJjbG9uZUVsZW1lbnQiLCJjb2xsYXBzZWRDb250ZW50IiwiVHlwb2dyYXBoeSIsIkxhYmVsIiwiYXMiLCJUcmlnZ2VyIiwidHJpZ2dlciIsInBsYWNlbWVudCIsIm9mZnNldCIsIm92ZXJsYXlDbGFzc05hbWUiLCJfcmVmMiIsImNsb3NlIiwiX2IiLCJjaGlsZENvbnRlbnQiLCJUaXRsZSIsIml0ZW1Db250ZW50IiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFPLGNBQUEsR0FBQUYsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLFFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGVBQUEsR0FBQVAsc0JBQUEsQ0FBQUwsT0FBQTtBQUlBQSxPQUFBO0FBQWlCLFNBQUFhLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBWCx3QkFBQVcsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxD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QU0sQ0FBQSxDQUFRO1lBQUEsQ0FBQTtVQUMzRSxDQUFBLEVBeEJELENBQUFWLEVBQUEsR0FBQTBCLEtBQUssQ0FBQ3hCLEdBQUcsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJRCxLQUFLLENBMEIxQjtVQUVELE9BQU8yQixLQUFLLENBQUNmLElBQUksR0FBR29CLFlBQVksQ0FBQ2tCLFlBQVksRUFBRXZCLEtBQUssQ0FBQ2YsSUFBSSxDQUFDLEdBQUdzQyxZQUFZO1FBQzNFLENBQUM7TUFBQyxDQUFBO0lBQ0ksQ0FBQSxDQUVUO0VBQUEsQ0FBQSxDQUNHO0FBRVYsQ0FBQztBQUFDLElBQUFHLFFBQUEsR0FBQXRHLE9BQUEsMkJBRWEsSUFBQXVHLFdBQUksRUFBQ3hHLFVBQVUsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2aWdhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSwgZm9yd2FyZFJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBUcmlnZ2VyIH0gZnJvbSAnLi4vVHJpZ2dlcic7XG5pbXBvcnQgTmF2aWdhdGlvbkxvZ28gZnJvbSAnLi9OYXZpZ2F0aW9uTG9nbyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgSUNPTl9TSVpFID0gMTY7XG5jb25zdCBDSEVWUk9OX1NJWkUgPSAxNjtcbmNvbnN0IENPTExBUFNFX0lDT05fU0laRSA9IDE2O1xuY29uc3QgaXNJY29uTmFtZSA9IChpY29uKSA9PiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZyc7XG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbiA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnbmF2aWdhdGlvbicsIGl0ZW1zLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIGRlZmF1bHRDb2xsYXBzZWQgPSBmYWxzZSwgY29sbGFwc2libGUgPSBmYWxzZSwgb25Db2xsYXBzZSwgb25Mb2dvQ2xpY2ssIGhlYWRlciwgc2VsZWN0b3IsIGNoaWxkcmVuIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwiaXRlbXNcIiwgXCJjb2xsYXBzZWRcIiwgXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2libGVcIiwgXCJvbkNvbGxhcHNlXCIsIFwib25Mb2dvQ2xpY2tcIiwgXCJoZWFkZXJcIiwgXCJzZWxlY3RvclwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgY29uc3QgY29sbGFwc2VkUmVmID0gdXNlTGF0ZXN0KGNvbGxhcHNlZCk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRDb2xsYXBzZWQodmFsdWUpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UodmFsdWUpO1xuICAgIH0pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICB0b2dnbGU6ICgpID0+IGhhbmRsZUNvbGxhcHNlKCFjb2xsYXBzZWRSZWYuY3VycmVudCksXG4gICAgICAgIGNvbGxhcHNlOiBoYW5kbGVDb2xsYXBzZSxcbiAgICB9KSwgW2hhbmRsZUNvbGxhcHNlXSk7XG4gICAgY29uc3QgaGFuZGxlVG9nZ2xlQ29sbGFwc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaGFuZGxlQ29sbGFwc2UoIWNvbGxhcHNlZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4cyhcIm5hdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjb2xsYXBzZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkJyksIGNsYXNzTmFtZSkpIH0sIHJlc3QsIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdoZWFkZXInKSwgY2hpbGRyZW46IGhlYWRlciAhPT0gdW5kZWZpbmVkID8gaGVhZGVyIDogKF9qc3goTmF2aWdhdGlvbkxvZ28sIHsgY29sbGFwc2VkOiBjb2xsYXBzZWQsIG9uQ2xpY2s6IG9uTG9nb0NsaWNrIH0pKSB9KSwgc2VsZWN0b3IgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc2VsZWN0b3InKSwgY2hpbGRyZW46IHNlbGVjdG9yIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbmF2JyksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVudScpLCBjaGlsZHJlbjogaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaGlkZGVuKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChOYXZpZ2F0aW9uTWVudUl0ZW0sIHsgaXRlbTogaXRlbSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGNvbGxhcHNlZDogY29sbGFwc2VkIH0sIChfYSA9IGl0ZW0ua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSksIGNvbGxhcHNpYmxlICYmIChfanN4KFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZS10b2dnbGUnKSwgb25DbGljazogaGFuZGxlVG9nZ2xlQ29sbGFwc2UsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IGNvbGxhcHNlZCA/ICdleHRlbmQnIDogJ2NvbGxhcHNlJywgc2l6ZTogQ09MTEFQU0VfSUNPTl9TSVpFIH0pIH0pKV0gfSksIGNoaWxkcmVuICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NldHRpbmdzJyksIGNoaWxkcmVuOiBjaGlsZHJlbiB9KV0gfSkpKTtcbn0pO1xuTmF2aWdhdGlvbi5kaXNwbGF5TmFtZSA9ICdOYXZpZ2F0aW9uJztcbmNvbnN0IE5hdmlnYXRpb25NZW51SXRlbSA9ICh7IGl0ZW0sIHByZWZpeENscywgY29sbGFwc2VkIH0pID0+IHtcbiAgICBjb25zdCB7IGxhYmVsLCBpY29uLCBzdWZmaXgsIGxpbmssIGFjdGl2ZSwgZGlzYWJsZWQsIG9uQ2xpY2ssIGNoaWxkcmVuLCBkZWZhdWx0T3Blbiwgb25PcGVuQ2hhbmdlIH0gPSBpdGVtO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4gIT09IG51bGwgJiYgZGVmYXVsdE9wZW4gIT09IHZvaWQgMCA/IGRlZmF1bHRPcGVuIDogZmFsc2UpO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChjaGlsZHJlbiA9PT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gIW9wZW47XG4gICAgICAgICAgICBzZXRPcGVuKG5leHQpO1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHQpO1xuICAgICAgICB9XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljayhlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY2hpbGRyZW4gPT09IG51bGwgfHwgY2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhY2hpbGQuaGlkZGVuKTtcbiAgICBjb25zdCBjaGlsZEFjdGl2ZSA9IGhhc0NoaWxkcmVuICYmIGNoaWxkcmVuLnNvbWUoY2hpbGQgPT4gY2hpbGQuYWN0aXZlKTtcbiAgICBjb25zdCByZW5kZXJJY29uID0gKGl0ZW1JY29uKSA9PiB7XG4gICAgICAgIGlmICghaXRlbUljb24pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKGlzSWNvbk5hbWUoaXRlbUljb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpdGVtSWNvbiwgc2l6ZTogSUNPTl9TSVpFIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtSWNvbjtcbiAgICB9O1xuICAgIGNvbnN0IHdyYXBXaXRoTGluayA9IChjb250ZW50LCBpdGVtTGluaykgPT4ge1xuICAgICAgICBpZiAoIWl0ZW1MaW5rKVxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbUxpbmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gX2pzeChcImFcIiwgeyBocmVmOiBpdGVtTGluaywgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxpbmsnKSwgY2hpbGRyZW46IGNvbnRlbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGl0ZW1MaW5rKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudChpdGVtTGluaywge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBjb250ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfTtcbiAgICBpZiAoY29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IGNvbGxhcHNlZENvbnRlbnQgPSAoX2pzeHMoXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtJywgam9pbkNscygoYWN0aXZlIHx8IGNoaWxkQWN0aXZlKSAmJiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbS1hY3RpdmUnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0tZGlzYWJsZWQnKSkpLCBvbkNsaWNrOiBoYXNDaGlsZHJlbiA/IHVuZGVmaW5lZCA6IGhhbmRsZUNsaWNrLCBkaXNhYmxlZDogZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBbaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuTGFiZWwsIHsgc2l6ZTogXCJ4c1wiLCBhczogXCJzcGFuXCIsIGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSk7XG4gICAgICAgIGlmIChoYXNDaGlsZHJlbiAmJiAodmlzaWJsZUNoaWxkcmVuID09PSBudWxsIHx8IHZpc2libGVDaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChUcmlnZ2VyLCB7IHRyaWdnZXI6IFwiY2xpY2tcIiwgcGxhY2VtZW50OiBcInJpZ2h0LXN0YXJ0XCIsIG9mZnNldDogMTAsIG92ZXJsYXlDbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LXBhbmVsJyksIGNvbnRlbnQ6ICh7IGNsb3NlIH0pID0+IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudScpLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDb250ZW50ID0gKF9qc3hzKFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1pdGVtJywgam9pbkNscyhjaGlsZC5hY3RpdmUgJiYgY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtaXRlbS1hY3RpdmUnKSwgY2hpbGQuZGlzYWJsZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtaXRlbS1kaXNhYmxlZCcpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gY2hpbGQub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY2hpbGQsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGRpc2FibGVkOiBjaGlsZC5kaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IFtjaGlsZC5pY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGNoaWxkLmljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogY2hpbGQubGFiZWwgfSksIGNoaWxkLnN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1zdWZmaXgnKSwgY2hpbGRyZW46IGNoaWxkLnN1ZmZpeCB9KV0gfSwgKF9hID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNoaWxkcmVuOiBbaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LWRpdmlkZXInKSB9KSwgY2hpbGQubGluayA/IHdyYXBXaXRoTGluayhjaGlsZENvbnRlbnQsIGNoaWxkLmxpbmspIDogY2hpbGRDb250ZW50XSB9LCAoX2IgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pKSwgY2hpbGRyZW46IGNvbGxhcHNlZENvbnRlbnQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rID8gd3JhcFdpdGhMaW5rKGNvbGxhcHNlZENvbnRlbnQsIGxpbmspIDogY29sbGFwc2VkQ29udGVudDtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS13cmFwcGVyJyksIGNoaWxkcmVuOiBbKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQ29udGVudCA9IChfanN4cyhcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbScsIGpvaW5DbHMoaGFzQ2hpbGRyZW4gJiYgY2xhc3NlcygnaXRlbS1leHBhbmRhYmxlJyksIGFjdGl2ZSAmJiBjbGFzc2VzKCdpdGVtLWFjdGl2ZScpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdpdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogaGFuZGxlQ2xpY2ssIGRpc2FibGVkOiBkaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1jb250ZW50JyksIGNoaWxkcmVuOiBbaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taWNvbicpLCBjaGlsZHJlbjogcmVuZGVySWNvbihpY29uKSB9KSksIF9qc3goVHlwb2dyYXBoeS5UaXRsZSwgeyBzaXplOiBcInNtXCIsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBzdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pLCBoYXNDaGlsZHJlbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tYXJyb3cnLCBqb2luQ2xzKG9wZW4gJiYgY2xhc3NlcygnaXRlbS1hcnJvdy1vcGVuJykpKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjaGV2cm9uRG93blwiLCBzaXplOiBDSEVWUk9OX1NJWkUgfSkgfSkpXSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmsgJiYgIWhhc0NoaWxkcmVuID8gd3JhcFdpdGhMaW5rKGl0ZW1Db250ZW50LCBsaW5rKSA6IGl0ZW1Db250ZW50O1xuICAgICAgICAgICAgfSkoKSwgaGFzQ2hpbGRyZW4gJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUnLCBqb2luQ2xzKG9wZW4gJiYgY2xhc3Nlcygnc3VibWVudS1vcGVuJykpKSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUtaW5uZXInKSwgY2hpbGRyZW46IHZpc2libGVDaGlsZHJlbiA9PT0gbnVsbCB8fCB2aXNpYmxlQ2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDb250ZW50ID0gKF9qc3goXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUtaXRlbScsIGpvaW5DbHMoY2hpbGQuYWN0aXZlICYmIGNsYXNzZXMoJ3N1Ym1lbnUtaXRlbS1hY3RpdmUnKSwgY2hpbGQuZGlzYWJsZWQgJiYgY2xhc3Nlcygnc3VibWVudS1pdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gY2hpbGQub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY2hpbGQsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGRpc2FibGVkOiBjaGlsZC5kaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtjaGlsZC5pY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGNoaWxkLmljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogY2hpbGQubGFiZWwgfSksIGNoaWxkLnN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1zdWZmaXgnKSwgY2hpbGRyZW46IGNoaWxkLnN1ZmZpeCB9KV0gfSkgfSwgKF9hID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLmxpbmsgPyB3cmFwV2l0aExpbmsoY2hpbGRDb250ZW50LCBjaGlsZC5saW5rKSA6IGNoaWxkQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkgfSkpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhOYXZpZ2F0aW9uKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=