@onepercentio/one-ui 0.21.3 → 0.21.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.d.ts +15 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js +37 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js.map +1 -0
- package/ai/hooks/ui/useAlternating.ai.d.ts +9 -0
- package/ai/hooks/ui/useAlternating.ai.js +17 -0
- package/ai/hooks/ui/useAlternating.ai.js.map +1 -0
- package/ai/hooks/useHero.ai.d.ts +9 -0
- package/ai/hooks/useHero.ai.js +21 -0
- package/ai/hooks/useHero.ai.js.map +1 -0
- package/ai/types.d.ts +9 -0
- package/ai/types.js +3 -0
- package/ai/types.js.map +1 -0
- package/dist/assets/styles/variables.scss +0 -5
- package/dist/components/AdaptiveButton/AdaptiveButton.d.ts +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
- package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +4 -3
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +6 -3
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.d.ts +3 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +7 -6
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.d.ts +2 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +3 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +5 -5
- package/dist/components/AnimatedEntrance/AnimatedEntrance.d.ts +3 -3
- package/dist/components/AsyncWrapper/AsyncWrapper.d.ts +2 -2
- package/dist/components/Avatar/Avatar.d.ts +2 -1
- package/dist/components/BucketFill/BucketFill.d.ts +3 -3
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Button/Button.js +5 -4
- package/dist/components/Button/Button.module.scss +5 -2
- package/dist/components/Card/Card.d.ts +2 -2
- package/dist/components/Chart/Chart.logic.d.ts +3 -1
- package/dist/components/Chart/Chart.logic.js +2 -1
- package/dist/components/Chart/Chart.view.d.ts +2 -1
- package/dist/components/CheckBox/CheckBox.d.ts +1 -1
- package/dist/components/CodeInput/CodeInput.d.ts +9 -0
- package/dist/components/CodeInput/CodeInput.js +85 -0
- package/dist/components/CodeInput/CodeInput.module.scss +5 -0
- package/dist/components/CodeInput/index.d.ts +1 -0
- package/dist/components/CodeInput/index.js +14 -0
- package/dist/components/Collapsable/Collapsable.d.ts +5 -2
- package/dist/components/Collapsable/Collapsable.js +22 -7
- package/dist/components/Countdown/Countdown.d.ts +2 -1
- package/dist/components/Divider/Divider.d.ts +2 -1
- package/dist/components/EmailInput/EmailInput.d.ts +3 -0
- package/dist/components/EmailInput/EmailInput.js +5 -5
- package/dist/components/FadeIn/FadeIn.d.ts +3 -0
- package/dist/components/FadeIn/FadeIn.js +5 -4
- package/dist/components/FileInput/FileInput.d.ts +1 -1
- package/dist/components/FileInput/View/BigFactory/BigFactory.d.ts +2 -2
- package/dist/components/FileInput/View/Compact/Compact.d.ts +2 -1
- package/dist/components/FlowController/FlowController.d.ts +2 -2
- package/dist/components/Form/v2/Form.d.ts +18 -0
- package/dist/components/Form/v2/Form.hook.d.ts +21 -0
- package/dist/components/Form/v2/Form.hook.js +214 -0
- package/dist/components/Form/v2/Form.js +69 -0
- package/dist/components/Form/v2/Form.module.scss +0 -0
- package/dist/components/Form/v2/Form.types.d.ts +97 -0
- package/dist/components/Form/v2/Form.types.js +45 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.d.ts +12 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +74 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +14 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.d.ts +10 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +92 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +14 -0
- package/dist/components/Form/v2/FormField/FormField.d.ts +6 -0
- package/dist/components/Form/v2/FormField/FormField.js +309 -0
- package/dist/components/Form/v2/FormField/FormField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/FormField.types.d.ts +83 -0
- package/dist/components/Form/v2/FormField/FormField.types.js +13 -0
- package/dist/components/Form/v2/FormField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/index.js +14 -0
- package/dist/components/Form/v2/index.d.ts +1 -0
- package/dist/components/Form/v2/index.js +14 -0
- package/dist/components/HSForms/HSForms.d.ts +2 -1
- package/dist/components/Header/Header.d.ts +2 -2
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.d.ts +2 -1
- package/dist/components/InfinityScroll/InfinityScroll.d.ts +3 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +5 -5
- package/dist/components/Input/Input.d.ts +3 -0
- package/dist/components/Input/Input.js +4 -4
- package/dist/components/InstantCounter/InstantCounter.d.ts +3 -0
- package/dist/components/InstantCounter/InstantCounter.js +5 -4
- package/dist/components/LavaLamp/LavaLamp.d.ts +2 -2
- package/dist/components/LavaLamp/LavaLamp.js +1 -1
- package/dist/components/LavaLamp/v2/LavaLamp.d.ts +2 -2
- package/dist/components/LinkToId/LinkToId.d.ts +2 -2
- package/dist/components/Loader/Loader.d.ts +1 -1
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.d.ts +5 -2
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +9 -3
- package/dist/components/LoopableVideo/LoopableVideo.d.ts +2 -2
- package/dist/components/MainGrid/MainGrid.d.ts +3 -0
- package/dist/components/MainGrid/MainGrid.js +5 -4
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.d.ts +1 -1
- package/dist/components/NodesNavigator/NodesNavigator.d.ts +17 -0
- package/dist/components/NodesNavigator/NodesNavigator.js +108 -0
- package/dist/components/NodesNavigator/NodesNavigator.module.scss +19 -0
- package/dist/components/NodesNavigator/index.d.ts +1 -0
- package/dist/components/NodesNavigator/index.js +14 -0
- package/dist/components/Notification/Notification.d.ts +2 -2
- package/dist/components/OrderableList/OrderableList.d.ts +1 -1
- package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +9 -6
- package/dist/components/PaginationIndicator/PaginationIndicator.js +49 -11
- package/dist/components/Parallax/Parallax.d.ts +3 -0
- package/dist/components/Parallax/Parallax.js +5 -4
- package/dist/components/PasswordInput/PasswordInput.d.ts +3 -0
- package/dist/components/PasswordInput/PasswordInput.js +5 -5
- package/dist/components/PingPongText/PingPongText.d.ts +2 -2
- package/dist/components/PixelatedScan/PixelatedScan.d.ts +2 -1
- package/dist/components/Portal/Portal.d.ts +1 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +3 -3
- package/dist/components/ProgressTexts/ProgressTexts.d.ts +1 -1
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/SectionContainer/SectionContainer.d.ts +3 -0
- package/dist/components/SectionContainer/SectionContainer.js +5 -4
- package/dist/components/Select/Select.d.ts +3 -3
- package/dist/components/Select/Select.js +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +2 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -1
- package/dist/components/StaticScroller/StaticScroller.d.ts +3 -0
- package/dist/components/StaticScroller/StaticScroller.js +5 -4
- package/dist/components/Switch/Switch.d.ts +2 -2
- package/dist/components/Table/Table.d.ts +2 -1
- package/dist/components/Tabs/Tabs.d.ts +2 -2
- package/dist/components/Text/Text.d.ts +7 -5
- package/dist/components/Text/Text.js +5 -4
- package/dist/components/Text/Text.module.scss +4 -0
- package/dist/components/Transition/Transition.d.ts +8 -5
- package/dist/components/Transition/Transition.js +18 -16
- package/dist/components/Transition/Transition.module.scss +1 -1
- package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +3 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +25 -13
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.d.ts +2 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +44 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.d.ts +6 -3
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +14 -7
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.d.ts +2 -2
- package/dist/context/AsyncProcess.d.ts +2 -1
- package/dist/context/ContextAsyncControl.d.ts +24 -0
- package/dist/context/ContextAsyncControl.js +101 -0
- package/dist/context/CustomBrowserRouter.d.ts +2 -2
- package/dist/context/OneUIProvider.d.ts +29 -1
- package/dist/context/OneUIProvider.js +1 -1
- package/dist/hooks/persistence/useLocalStorage.d.ts +1 -1
- package/dist/hooks/persistence/useLocalStorage.js +5 -1
- package/dist/hooks/ui/useAlternating.d.ts +4 -0
- package/dist/hooks/ui/useAlternating.js +34 -0
- package/dist/hooks/ui/usePaginationControls.d.ts +2 -2
- package/dist/hooks/useAsyncControl.d.ts +15 -3
- package/dist/hooks/useAsyncControl.js +24 -20
- package/dist/hooks/useHero.d.ts +4 -2
- package/dist/hooks/useHero.js +39 -15
- package/dist/hooks/useHero.module.scss +1 -1
- package/dist/hooks/useShortIntl.d.ts +1 -1
- package/dist/hooks/useShortIntl.js +1 -1
- package/dist/models/GenericContract.d.ts +3 -3
- package/dist/models/GenericContract.js +5 -3
- package/dist/storybookUtils/index.d.ts +2 -2
- package/dist/type-utils.d.ts +5 -0
- package/dist/type-utils.js +1 -1
- package/dist/utility.d.js +1 -1
- package/package.json +19 -4
- package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +35 -0
- package/src_ai/hooks/ui/useAlternating.ai.ts +15 -0
- package/src_ai/hooks/useHero.ai.ts +18 -0
- package/src_ai/types.ts +10 -0
- package/tsconfig-ai.json +9 -0
- package/tsconfig.vite.json +109 -0
package/dist/hooks/useHero.js
CHANGED
|
@@ -30,8 +30,8 @@ const ID = function ID(id) {
|
|
|
30
30
|
};
|
|
31
31
|
const viewport = window.visualViewport;
|
|
32
32
|
const DATA_TAG_HERO_COMPONENT = "data-hero-component";
|
|
33
|
-
function triggerDynamicComponents(clone,
|
|
34
|
-
const idsThatWillAppear =
|
|
33
|
+
function triggerDynamicComponents(clone, componentsFromOriginThatWillAppear, origin) {
|
|
34
|
+
const idsThatWillAppear = componentsFromOriginThatWillAppear.map(function (a) {
|
|
35
35
|
return a.getAttribute(DATA_TAG_HERO_COMPONENT);
|
|
36
36
|
});
|
|
37
37
|
const preexistingComponents = Array.from(clone.querySelectorAll("[".concat(DATA_TAG_HERO_COMPONENT, "]")));
|
|
@@ -47,27 +47,41 @@ function triggerDynamicComponents(clone, componentsThatWillAppear) {
|
|
|
47
47
|
elementThatIsBeingRemoved.style.opacity = "0";
|
|
48
48
|
}
|
|
49
49
|
}, 0);
|
|
50
|
-
for (let componentThatWillAppear of
|
|
50
|
+
for (let componentThatWillAppear of componentsFromOriginThatWillAppear) {
|
|
51
51
|
const alreadyInjectedElement = !!clone.querySelector("[".concat(DATA_TAG_HERO_COMPONENT, "=\"").concat(componentThatWillAppear.getAttribute(DATA_TAG_HERO_COMPONENT), "\"]"));
|
|
52
52
|
if (!alreadyInjectedElement) {
|
|
53
|
+
let _recursiveBuildPath = function recursiveBuildPath(fromElement) {
|
|
54
|
+
let pathSuffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
55
|
+
if (fromElement === origin) return pathSuffix;
|
|
56
|
+
const parent = fromElement.parentElement;
|
|
57
|
+
const parentChilds = Array.from(parent.children);
|
|
58
|
+
const elChildSelector = ":nth-child(".concat(parentChilds.indexOf(fromElement) + 1, ")");
|
|
59
|
+
if (componentThatWillAppear.getAttribute(DATA_TAG_HERO_COMPONENT) === "7-insideDiv") {
|
|
60
|
+
console.log(pathSuffix, fromElement, fromElement !== origin);
|
|
61
|
+
}
|
|
62
|
+
if (fromElement !== origin) return _recursiveBuildPath(parent, "".concat(elChildSelector).concat(pathSuffix ? ">".concat(pathSuffix) : ""));else return pathSuffix;
|
|
63
|
+
};
|
|
64
|
+
const whatIsTheElementPathFromCloneElement = _recursiveBuildPath(componentThatWillAppear.parentElement);
|
|
65
|
+
const insertAtIndex = Array.from(componentThatWillAppear.parentElement.children).indexOf(componentThatWillAppear);
|
|
53
66
|
const targetElementClone = componentThatWillAppear.cloneNode(true);
|
|
54
67
|
targetElementClone.style.height = "0px";
|
|
55
|
-
const
|
|
56
|
-
const remainingIndexes = Array.from(
|
|
68
|
+
const shouldBeInsertedAtElement = whatIsTheElementPathFromCloneElement ? clone.querySelector(whatIsTheElementPathFromCloneElement) : clone;
|
|
69
|
+
const remainingIndexes = Array.from(shouldBeInsertedAtElement.children).map(function (el, i) {
|
|
57
70
|
return removedElements.includes(el) ? undefined : i;
|
|
58
71
|
}).filter(function (e) {
|
|
59
72
|
return e !== undefined;
|
|
60
73
|
});
|
|
61
|
-
if (
|
|
74
|
+
if (insertAtIndex === remainingIndexes.length) shouldBeInsertedAtElement.append(targetElementClone);else shouldBeInsertedAtElement.insertBefore(targetElementClone, shouldBeInsertedAtElement.childNodes.item(remainingIndexes[insertAtIndex]));
|
|
62
75
|
setTimeout(function () {
|
|
63
76
|
targetElementClone.style.height = "".concat(componentThatWillAppear.clientHeight, "px");
|
|
64
77
|
}, 0);
|
|
65
78
|
}
|
|
66
79
|
}
|
|
67
80
|
}
|
|
81
|
+
const ALWAYS_TRANSITION = ["top", "left"];
|
|
68
82
|
|
|
69
83
|
/**
|
|
70
|
-
* This hook implements the logic for a hero animation between 2 elements
|
|
84
|
+
* This hook implements the logic for a hero animation between 2 elements sharing the same id
|
|
71
85
|
*/
|
|
72
86
|
function useHero(id) {
|
|
73
87
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
@@ -75,9 +89,16 @@ function useHero(id) {
|
|
|
75
89
|
};
|
|
76
90
|
let events = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
77
91
|
const _options$propsToTrans = options.propsToTransition,
|
|
78
|
-
|
|
92
|
+
_p = _options$propsToTrans === void 0 ? [] : _options$propsToTrans,
|
|
79
93
|
dataPreffix = options["data-preffix"],
|
|
80
94
|
repeatable = options.repeatable;
|
|
95
|
+
const propsToTransition = (0, _react.useMemo)(function () {
|
|
96
|
+
return _p.map(function (p) {
|
|
97
|
+
return p.replace(/([A-Z])/g, function (_, val) {
|
|
98
|
+
return "-".concat(val.toLowerCase());
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
}, [_p]);
|
|
81
102
|
const _dataPreffix = dataPreffix ? "-".concat(dataPreffix) : "";
|
|
82
103
|
const dataProperty = "data".concat(_dataPreffix, "-hero");
|
|
83
104
|
const heroRef = (0, _react.useRef)(null);
|
|
@@ -91,14 +112,15 @@ function useHero(id) {
|
|
|
91
112
|
return otherElements;
|
|
92
113
|
}, [id]);
|
|
93
114
|
function triggerHeroAnimation() {
|
|
94
|
-
const allPropsToTransition = [
|
|
115
|
+
const allPropsToTransition = options.overridePropsToTransition ? [].concat(ALWAYS_TRANSITION, _toConsumableArray(propsToTransition)) : ["width", "height"].concat(ALWAYS_TRANSITION, _toConsumableArray(propsToTransition));
|
|
95
116
|
const shouldHeroFn = events.onHeroDetect || function () {
|
|
96
117
|
return true;
|
|
97
118
|
};
|
|
98
119
|
const otherElements = getHerosOnScreen().filter(function (el) {
|
|
99
120
|
return shouldHeroFn(el, heroRef.current);
|
|
100
121
|
});
|
|
101
|
-
const
|
|
122
|
+
const currentElement = heroRef.current;
|
|
123
|
+
const currentElCoordinates = currentElement.getBoundingClientRect();
|
|
102
124
|
if (process.env.NODE_ENV === "development" && otherElements.length > 2) console.warn("There are too many elements to transition to, I will transition to the first I find", otherElements);
|
|
103
125
|
const otherElement = otherElements.find(function (el) {
|
|
104
126
|
return el !== heroRef.current;
|
|
@@ -119,8 +141,8 @@ function useHero(id) {
|
|
|
119
141
|
clone.style.position = "fixed";
|
|
120
142
|
clone.style.top = "".concat(coordinates.top, "px");
|
|
121
143
|
clone.style.left = "".concat(coordinates.left, "px");
|
|
122
|
-
clone.style.width = "".concat(coordinates.width, "px");
|
|
123
|
-
clone.style.height = "".concat(coordinates.height, "px");
|
|
144
|
+
if (allPropsToTransition.includes("width")) clone.style.width = "".concat(coordinates.width, "px");
|
|
145
|
+
if (allPropsToTransition.includes("height")) clone.style.height = "".concat(coordinates.height, "px");
|
|
124
146
|
return willMove;
|
|
125
147
|
};
|
|
126
148
|
const _ref = events.onBeforeTransition ? events.onBeforeTransition(otherElement, heroRef.current) : [viewport, viewport],
|
|
@@ -162,7 +184,9 @@ function useHero(id) {
|
|
|
162
184
|
heroRef.current.style.visibility = "hidden";
|
|
163
185
|
otherElement.style.visibility = "hidden";
|
|
164
186
|
clone.style.transition = "".concat(allPropsToTransition.map(function (prop) {
|
|
165
|
-
return "".concat(prop,
|
|
187
|
+
return "".concat(prop.replace(/[A-Z]/g, function (sub) {
|
|
188
|
+
return "-".concat(sub.toLowerCase());
|
|
189
|
+
}), " var(--animation--speed-fast, 250ms) ease-out");
|
|
166
190
|
}).join(", "));
|
|
167
191
|
setTimeout(function () {
|
|
168
192
|
const el = heroRef.current;
|
|
@@ -179,7 +203,7 @@ function useHero(id) {
|
|
|
179
203
|
if (events.onHeroStart) {
|
|
180
204
|
events.onHeroStart(clone, otherElement, heroRef.current);
|
|
181
205
|
}
|
|
182
|
-
triggerDynamicComponents(clone, Array.from(heroRef.current.querySelectorAll("[".concat(DATA_TAG_HERO_COMPONENT, "]"))));
|
|
206
|
+
triggerDynamicComponents(clone, Array.from(heroRef.current.querySelectorAll("[".concat(DATA_TAG_HERO_COMPONENT, "]"))), currentElement);
|
|
183
207
|
if (!el) {
|
|
184
208
|
cleanup();
|
|
185
209
|
return;
|
|
@@ -284,4 +308,4 @@ const TRANSITION_FACTORY = {
|
|
|
284
308
|
}
|
|
285
309
|
};
|
|
286
310
|
exports.TRANSITION_FACTORY = TRANSITION_FACTORY;
|
|
287
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX293bkV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VIZXJvTW9kdWxlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfaSIsIml0ZXJhdG9yIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsIm5leHQiLCJkb25lIiwiZXJyIiwicmV0dXJuIiwiQXJyYXkiLCJpc0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJpdGVyIiwibGVuIiwiYXJyMiIsIklEIiwiaWQiLCJjb25jYXQiLCJ2aWV3cG9ydCIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0IiwiREFUQV9UQUdfSEVST19DT01QT05FTlQiLCJ0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMiLCJjbG9uZSIsImNvbXBvbmVudHNUaGF0V2lsbEFwcGVhciIsImlkc1RoYXRXaWxsQXBwZWFyIiwibWFwIiwiYSIsImdldEF0dHJpYnV0ZSIsInByZWV4aXN0aW5nQ29tcG9uZW50cyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJyZW1vdmVkRWxlbWVudHMiLCJlbCIsImluY2x1ZGVzIiwiZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZCIsInN0eWxlIiwiaGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwic2V0VGltZW91dCIsIm9wYWNpdHkiLCJjb21wb25lbnRUaGF0V2lsbEFwcGVhciIsImFscmVhZHlJbmplY3RlZEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwidGFyZ2V0RWxlbWVudENsb25lIiwiY2xvbmVOb2RlIiwic2hvdWxkQmVJbnNydGVkQXRJbmRleCIsInBhcmVudEVsZW1lbnQiLCJjaGlsZHJlbiIsImluZGV4T2YiLCJyZW1haW5pbmdJbmRleGVzIiwiZSIsImFwcGVuZCIsImluc2VydEJlZm9yZSIsImNoaWxkTm9kZXMiLCJpdGVtIiwidXNlSGVybyIsIm9wdGlvbnMiLCJwcm9wc1RvVHJhbnNpdGlvbiIsImV2ZW50cyIsIl9vcHRpb25zJHByb3BzVG9UcmFucyIsImRhdGFQcmVmZml4IiwicmVwZWF0YWJsZSIsIl9kYXRhUHJlZmZpeCIsImRhdGFQcm9wZXJ0eSIsImhlcm9SZWYiLCJ1c2VSZWYiLCJ1c2VMYXlvdXRFZmZlY3QiLCJjdXJyZW50Iiwic2V0QXR0cmlidXRlIiwiZ2V0SGVyb3NPblNjcmVlbiIsInVzZUNhbGxiYWNrIiwib3RoZXJFbGVtZW50cyIsImRvY3VtZW50IiwidHJpZ2dlckhlcm9BbmltYXRpb24iLCJhbGxQcm9wc1RvVHJhbnNpdGlvbiIsInNob3VsZEhlcm9GbiIsIm9uSGVyb0RldGVjdCIsImN1cnJlbnRFbENvb3JkaW5hdGVzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uc29sZSIsIndhcm4iLCJvdGhlckVsZW1lbnQiLCJmaW5kIiwid2lsbFRoZUhlcm9Nb3ZlIiwib3JpZ2luIiwidG9wIiwibGVmdCIsIndpZHRoIiwic2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YiLCJjb29yZGluYXRlcyIsImN1cnJlbnRDb29yZGluYXRlcyIsIndpbGxNb3ZlIiwicG9zaXRpb24iLCJfcmVmIiwib25CZWZvcmVUcmFuc2l0aW9uIiwiX3JlZjIiLCJvcmlnaW5Db250YWluZXIiLCJ0YXJnZXRDb250YWluZXIiLCJzaG91bGRTa2lwIiwiaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lciIsIm9uSGVyb1NraXAiLCJfZXZlbnRzJG9uSGVyb1NraXBwZWQiLCJvbkhlcm9Ta2lwcGVkIiwib2xkQ2xvbmUiLCJvbkhlcm9DbG9uZWQiLCJ2aXNpYmlsaXR5IiwicmVtb3ZlQXR0cmlidXRlIiwiaXRXb250TW92ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInRyYW5zaXRpb24iLCJwcm9wIiwiam9pbiIsImNsZWFudXAiLCJvbkhlcm9FbmQiLCJyZW1vdmUiLCJvbkhlcm9TdGFydCIsInByb3BUb1RyYW5zaXRpb24iLCJnZXRDb21wdXRlZFN0eWxlIiwiaW5pdGlhbE9mZnNldCIsInMiLCJfcmVmMyIsImQiLCJjb250YWlucyIsInNjcm9sbFRvcCIsIm1hcmdpblRvcCIsInRyYW5zaXRpb25FbmRDYiIsIm93bkV2ZW50IiwiX3JlZjQiLCJjdXJyZW50VGFyZ2V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbkNhbmNlbENiIiwidXNlRWZmZWN0IiwidHJpZ2dlciIsImhlcm9Db21wb25lbnRSZWYiLCJjb21wb25lbnRJZCIsImVsUmVmIiwiY2xhc3NMaXN0IiwiYWRkIiwiU3R5bGVzIiwiY29tcG9uZW50IiwiaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0IiwiZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0IiwiZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCIsImNvbnRhaW5lciIsIlZpc3VhbFZpZXdwb3J0IiwiY29udGFpbmVyQm91bmRzIiwiaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQiLCJjZW50ZXJQb2ludCIsInJlY3QiLCJhbmdsZSIsInBvaW50QSIsInBvaW50QiIsIk1hdGgiLCJhdGFuMiIsIlBJIiwidG9GaXhlZCIsIlRSQU5TSVRJT05fRkFDVE9SWSIsIkFDQ0VMRVJBVElPTiIsImFjY2VsZXJhdGlvbiIsImNlbnRlclBvaW50T3JpZ2luIiwiY2VudGVyUG9pbnREZXN0aW5hdGlvbiIsImFuZ2xlQmV0d2VlbkVsZW1lbnRzIiwidmVjdG9yWCIsInNpbiIsInZlY3RvclkiLCJjb3MiLCJyb3RhdGVZIiwib3JpZ2luWCIsInJvdGF0ZVgiLCJvcmlnaW5ZIiwic2V0UHJvcGVydHkiLCJwZXJzcGVjdGl2ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSGVyby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IG93bkV2ZW50IGZyb20gXCIuLi91dGlscy9vd25FdmVudFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi91c2VIZXJvLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IElEID0gKGlkOiBzdHJpbmcpID0+IGAke2lkfS1oZXJvYDtcbnR5cGUgU2hvdWxkU2tpcCA9IGJvb2xlYW47XG50eXBlIFJlc3VsdCA9IFtcbiAgb3JpZ2luQ29udGFpbmVyOiBFbGVtZW50IHwgVmlzdWFsVmlld3BvcnQsXG4gIHRhcmdldENvbnRhaW5lcjogRWxlbWVudCB8IFZpc3VhbFZpZXdwb3J0XG5dO1xuY29uc3Qgdmlld3BvcnQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQhO1xuY29uc3QgREFUQV9UQUdfSEVST19DT01QT05FTlQgPSBcImRhdGEtaGVyby1jb21wb25lbnRcIjtcblxuZnVuY3Rpb24gdHJpZ2dlckR5bmFtaWNDb21wb25lbnRzKFxuICBjbG9uZTogSFRNTERpdkVsZW1lbnQsXG4gIGNvbXBvbmVudHNUaGF0V2lsbEFwcGVhcjogSFRNTERpdkVsZW1lbnRbXVxuKSB7XG4gIGNvbnN0IGlkc1RoYXRXaWxsQXBwZWFyID0gY29tcG9uZW50c1RoYXRXaWxsQXBwZWFyLm1hcCgoYSkgPT5cbiAgICBhLmdldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVClcbiAgKTtcbiAgY29uc3QgcHJlZXhpc3RpbmdDb21wb25lbnRzID0gQXJyYXkuZnJvbShcbiAgICBjbG9uZS5xdWVyeVNlbGVjdG9yQWxsKGBbJHtEQVRBX1RBR19IRVJPX0NPTVBPTkVOVH1dYClcbiAgKSBhcyBIVE1MRGl2RWxlbWVudFtdO1xuICBjb25zdCByZW1vdmVkRWxlbWVudHM6IEhUTUxEaXZFbGVtZW50W10gPSBwcmVleGlzdGluZ0NvbXBvbmVudHMuZmlsdGVyKFxuICAgIChlbCkgPT5cbiAgICAgICFpZHNUaGF0V2lsbEFwcGVhci5pbmNsdWRlcyhlbC5nZXRBdHRyaWJ1dGUoREFUQV9UQUdfSEVST19DT01QT05FTlQpKVxuICApO1xuXG4gIGZvciAobGV0IGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQgb2YgcmVtb3ZlZEVsZW1lbnRzKSB7XG4gICAgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5zdHlsZS5oZWlnaHQgPSBgJHtlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkLmNsaWVudEhlaWdodH1weGA7XG4gIH1cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZm9yIChsZXQgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZCBvZiByZW1vdmVkRWxlbWVudHMpIHtcbiAgICAgIGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQuc3R5bGUuaGVpZ2h0ID0gYDBweGA7XG4gICAgICBlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkLnN0eWxlLm9wYWNpdHkgPSBgMGA7XG4gICAgfVxuICB9LCAwKTtcblxuICBmb3IgKGxldCBjb21wb25lbnRUaGF0V2lsbEFwcGVhciBvZiBjb21wb25lbnRzVGhhdFdpbGxBcHBlYXIpIHtcbiAgICBjb25zdCBhbHJlYWR5SW5qZWN0ZWRFbGVtZW50ID0gISFjbG9uZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfT1cIiR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuZ2V0QXR0cmlidXRlKFxuICAgICAgICBEQVRBX1RBR19IRVJPX0NPTVBPTkVOVFxuICAgICAgKX1cIl1gXG4gICAgKTtcbiAgICBpZiAoIWFscmVhZHlJbmplY3RlZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRDbG9uZSA9IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLmNsb25lTm9kZShcbiAgICAgICAgdHJ1ZVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIHRhcmdldEVsZW1lbnRDbG9uZS5zdHlsZS5oZWlnaHQgPSBcIjBweFwiO1xuICAgICAgY29uc3Qgc2hvdWxkQmVJbnNydGVkQXRJbmRleCA9IEFycmF5LmZyb20oXG4gICAgICAgIGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLnBhcmVudEVsZW1lbnQhLmNoaWxkcmVuXG4gICAgICApLmluZGV4T2YoY29tcG9uZW50VGhhdFdpbGxBcHBlYXIpO1xuICAgICAgY29uc3QgcmVtYWluaW5nSW5kZXhlcyA9IEFycmF5LmZyb20oY2xvbmUuY2hpbGRyZW4pXG4gICAgICAgIC5tYXAoKGVsLCBpKSA9PlxuICAgICAgICAgIHJlbW92ZWRFbGVtZW50cy5pbmNsdWRlcyhlbCBhcyBIVE1MRGl2RWxlbWVudCkgPyB1bmRlZmluZWQgOiBpXG4gICAgICAgIClcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gZSAhPT0gdW5kZWZpbmVkKSBhcyBudW1iZXJbXTtcblxuICAgICAgaWYgKHNob3VsZEJlSW5zcnRlZEF0SW5kZXggPT09IHJlbWFpbmluZ0luZGV4ZXMubGVuZ3RoKVxuICAgICAgICBjbG9uZS5hcHBlbmQodGFyZ2V0RWxlbWVudENsb25lKTtcbiAgICAgIGVsc2VcbiAgICAgICAgY2xvbmUuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgIHRhcmdldEVsZW1lbnRDbG9uZSxcbiAgICAgICAgICBjbG9uZS5jaGlsZE5vZGVzLml0ZW0ocmVtYWluaW5nSW5kZXhlc1tzaG91bGRCZUluc3J0ZWRBdEluZGV4XSlcbiAgICAgICAgKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0YXJnZXRFbGVtZW50Q2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaG9vayBpbXBsZW1lbnRzIHRoZSBsb2dpYyBmb3IgYSBoZXJvIGFuaW1hdGlvbiBiZXR3ZWVuIDIgZWxlbWVudHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlSGVybyhcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9uczogUGFydGlhbDx7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IE9taXQ8XG4gICAgICBrZXlvZiBDU1NQcm9wZXJ0aWVzLFxuICAgICAgXCJ3aWR0aFwiIHwgXCJoZWlnaHRcIiB8IFwidG9wXCIgfCBcImxlZnRcIlxuICAgID5bXTtcbiAgICBcImRhdGEtcHJlZmZpeFwiOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHRoaXMgaGVybyBhbmltYXRpb24gd2lsbCBwcm9iYWJseSBiZSByZXBlYXRlZCBtdWx0aXBsZSB0aW1lICovXG4gICAgcmVwZWF0YWJsZTogYm9vbGVhbjtcbiAgfT4gPSB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb246IFtdLFxuICB9LFxuICBldmVudHM6IHtcbiAgICAvKipcbiAgICAgKiBTaG91bGQgcmV0dXJuIGlmIHRoZSBkZXRlY3RlZCBlbGVtZW50IHNob3VsZCBiZSBcImhlcm9lZFwiXG4gICAgICpcbiAgICAgKiBVc2VmdWxsIGZvciB3aGVuIHRoZSBoZXJvIGhhcyAyIHBvc3NpYmxlIG9yaWdpbnMuXG4gICAgICogRm9yIGV4YW1wbGUsIG9uZSBjb3VsZCBoZXJvIG9ubHkgdGhlIGN1cnJlbnQgaG92ZXJlZCBlbGVtZW50IHdpdGggZWwubWF0Y2hlcyhcIjpob3ZlclwiKVxuICAgICAqL1xuICAgIG9uSGVyb0RldGVjdD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRG8gc29tZXRoaW5nIHdoZW4gdGhlIGhlcm8gZW5kc1xuICAgICAqXG4gICAgICogVXNlZnVsbCBmb3IgdHJpZ2dlcmluZyBzZWNvbmRhcnkgYW5pbWF0aW9uc1xuICAgICAqL1xuICAgIG9uSGVyb0VuZD86ICgpID0+IHZvaWQ7XG5cbiAgICAvKiogRG8gc29tZXRoaWduIHdpdGggdGhlIGNsb25lIGJlZm9yZSBpdCBnb2VzIHRvIHRoZSBodG1sICovXG4gICAgb25IZXJvQ2xvbmVkPzogKGNsb25lOiBIVE1MRGl2RWxlbWVudCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIERvIHNvbWV0aGluZyB3aGVuIHRoZSBoZXJvIHN0YXJ0cyB0aGUgdHJhbnNpdGlvblxuICAgICAqIEhlcmUgaXQncyB1c2VmdWxsIHRvIHN3aXRjaCBjbGFzc05hbWVzIHdpdGggdGhlIHRhcmdldC5cbiAgICAgKlxuICAgICAqIElmIGRvbmUgY29ycmVjdGx5LCBpdCB3aWxsIHRyYW5zaXRpb24gZnJvbSBzdGF0ZSBhIHRvIGIgc21vb3RobHlcbiAgICAgKi9cbiAgICBvbkhlcm9TdGFydD86IChcbiAgICAgIGNsb25lOiBIVE1MRGl2RWxlbWVudCxcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGhlcm8gaXMgY29taW5nL2dvaW5nIG91dHNpZGUgdGhlIHZpZXdwb3J0XG4gICAgICpcbiAgICAgKiBCeSBkZWZhdWx0IGl0J3Mgc2V0IHRvIHNraXAgYWxsIGhlcm9lcyB0aGF0IGhhdmUgdGhlc2UgY29uZGl0aW9uc1xuICAgICAqXG4gICAgICogQHJldHVybnMgSWYgdGhlIGhlcm8gc2hvdWxkIGJlIHNraXBwZWQgb3Igbm90XG4gICAgICovXG4gICAgb25IZXJvU2tpcD86IChvcmlnaW46IEhUTUxEaXZFbGVtZW50LCB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50KSA9PiBTaG91bGRTa2lwO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gYSBoZXJvIGlzIHNraXBwZWRcbiAgICAgKi9cbiAgICBvbkhlcm9Ta2lwcGVkPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEJlZm9yZSB0cmFuc2l0aW9uIHN0YXJ0LCBzZXR1cCB0aGUgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgaGVybyBhbmltYXRpb25cbiAgICAgKiBAcmV0dXJucyBUaGUgY29udGFpbmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNoZWNrIGlmIHRoZSBoZXJvIGlzIG91dCBvciBpbiB0aGUgdmlld1xuICAgICAqL1xuICAgIG9uQmVmb3JlVHJhbnNpdGlvbj86IChcbiAgICAgIG9yaWdpbjogSFRNTERpdkVsZW1lbnQsXG4gICAgICB0YXJnZXQ6IEhUTUxEaXZFbGVtZW50XG4gICAgKSA9PiBSZXN1bHQgfCBSZWFkb25seTxSZXN1bHQ+O1xuICB9ID0ge31cbikge1xuICBjb25zdCB7XG4gICAgcHJvcHNUb1RyYW5zaXRpb24gPSBbXSxcbiAgICBcImRhdGEtcHJlZmZpeFwiOiBkYXRhUHJlZmZpeCxcbiAgICByZXBlYXRhYmxlLFxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgX2RhdGFQcmVmZml4ID0gZGF0YVByZWZmaXggPyBgLSR7ZGF0YVByZWZmaXh9YCA6IFwiXCI7XG4gIGNvbnN0IGRhdGFQcm9wZXJ0eSA9IGBkYXRhJHtfZGF0YVByZWZmaXh9LWhlcm9gO1xuICBjb25zdCBoZXJvUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGhlcm9SZWYuY3VycmVudCEuc2V0QXR0cmlidXRlKGRhdGFQcm9wZXJ0eSwgaWQpO1xuICB9LCBbaWRdKTtcblxuICBjb25zdCBnZXRIZXJvc09uU2NyZWVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IG90aGVyRWxlbWVudHMgPSAoXG4gICAgICBBcnJheS5mcm9tKFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbJHtkYXRhUHJvcGVydHl9PVwiJHtpZH1cIl1gKVxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudFtdXG4gICAgKS5maWx0ZXIoKGVsKSA9PiBlbCAhPT0gaGVyb1JlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gb3RoZXJFbGVtZW50cztcbiAgfSwgW2lkXSk7XG5cbiAgZnVuY3Rpb24gdHJpZ2dlckhlcm9BbmltYXRpb24oKSB7XG4gICAgY29uc3QgYWxsUHJvcHNUb1RyYW5zaXRpb24gPSBbXG4gICAgICBcIndpZHRoXCIsXG4gICAgICBcImhlaWdodFwiLFxuICAgICAgXCJ0b3BcIixcbiAgICAgIFwibGVmdFwiLFxuICAgICAgLi4ucHJvcHNUb1RyYW5zaXRpb24sXG4gICAgXTtcbiAgICBjb25zdCBzaG91bGRIZXJvRm4gPSBldmVudHMub25IZXJvRGV0ZWN0IHx8ICgoLi4uYTogYW55W10pID0+IHRydWUpO1xuICAgIGNvbnN0IG90aGVyRWxlbWVudHMgPSBnZXRIZXJvc09uU2NyZWVuKCkuZmlsdGVyKChlbCkgPT5cbiAgICAgIHNob3VsZEhlcm9GbihlbCwgaGVyb1JlZi5jdXJyZW50ISlcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRFbENvb3JkaW5hdGVzID0gaGVyb1JlZi5jdXJyZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiICYmIG90aGVyRWxlbWVudHMubGVuZ3RoID4gMilcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgXCJUaGVyZSBhcmUgdG9vIG1hbnkgZWxlbWVudHMgdG8gdHJhbnNpdGlvbiB0bywgSSB3aWxsIHRyYW5zaXRpb24gdG8gdGhlIGZpcnN0IEkgZmluZFwiLFxuICAgICAgICBvdGhlckVsZW1lbnRzXG4gICAgICApO1xuICAgIGNvbnN0IG90aGVyRWxlbWVudCA9IG90aGVyRWxlbWVudHMuZmluZChcbiAgICAgIChlbCkgPT4gZWwgIT09IGhlcm9SZWYuY3VycmVudCFcbiAgICApIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaWYgKG90aGVyRWxlbWVudCkge1xuICAgICAgY29uc3QgW29yaWdpbkNvbnRhaW5lciwgdGFyZ2V0Q29udGFpbmVyXSA9IGV2ZW50cy5vbkJlZm9yZVRyYW5zaXRpb25cbiAgICAgICAgPyBldmVudHMub25CZWZvcmVUcmFuc2l0aW9uKG90aGVyRWxlbWVudCwgaGVyb1JlZi5jdXJyZW50ISlcbiAgICAgICAgOiBbdmlld3BvcnQsIHZpZXdwb3J0XTtcbiAgICAgIGNvbnN0IHNob3VsZFNraXAgPVxuICAgICAgICBpc0VsZW1lbnRPdXRzaWRlQ29udGFpbmVyKHRhcmdldENvbnRhaW5lciwgY3VycmVudEVsQ29vcmRpbmF0ZXMpIHx8XG4gICAgICAgIGlzRWxlbWVudE91dHNpZGVDb250YWluZXIoXG4gICAgICAgICAgb3JpZ2luQ29udGFpbmVyLFxuICAgICAgICAgIG90aGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICApXG4gICAgICAgICAgPyAoZXZlbnRzLm9uSGVyb1NraXAgfHwgKCgpID0+IHRydWUpKShvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIGlmIChzaG91bGRTa2lwKSB7XG4gICAgICAgIGV2ZW50cy5vbkhlcm9Ta2lwcGVkPy4oKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2xkQ2xvbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgWyR7ZGF0YVByb3BlcnR5fS1jbG9uZT1cIiR7SUQoaWQpfVwiXWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjbG9uZSA9IChvbGRDbG9uZSB8fFxuICAgICAgICBvdGhlckVsZW1lbnQuY2xvbmVOb2RlKHRydWUpKSBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgaWYgKGV2ZW50cy5vbkhlcm9DbG9uZWQgJiYgIW9sZENsb25lKSBldmVudHMub25IZXJvQ2xvbmVkKGNsb25lKTtcblxuICAgICAgLy8gQ2xlYW4gdXAgdGhvcyBwcm9wZXJ0aWVzIHRoYXQgY2FuIGNhdXNlIGNvbmZ1c2lvbiBzaW5jZSBpdCdzIGEgY2xvbmVcbiAgICAgIGNsb25lLnN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgY2xvbmUucmVtb3ZlQXR0cmlidXRlKGRhdGFQcm9wZXJ0eSk7XG5cbiAgICAgIGNsb25lLnNldEF0dHJpYnV0ZShgJHtkYXRhUHJvcGVydHl9LWNsb25lYCwgSUQoaWQpKTtcblxuICAgICAgLyoqXG4gICAgICAgKiBJZiBpdCdzIHJlcGVhdGFibGUsIHdlIHNob3VsZCBrZWVwIHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBoZXJvIGV4aXN0YW5jZVxuICAgICAgICovXG4gICAgICBpZiAoIXJlcGVhdGFibGUpXG4gICAgICAgIC8vIFNpbmNlIGEgdHJhbnNpdGlvbiBpcyBub3cgdHJpZ2dlcmluZyBmcm9tIHRoZSBvbGQgZWxlbWVudCwgaGUgY2Fubm90IGJlIGNvbnNpZGVyZWQgZm9yIG90aGVyIHRyYW5zaXRpb25zXG4gICAgICAgIG90aGVyRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoZGF0YVByb3BlcnR5KTtcblxuICAgICAgZnVuY3Rpb24gd2lsbFRoZUhlcm9Nb3ZlKG9yaWdpbjogRE9NUmVjdCwgdGFyZ2V0OiBET01SZWN0KSB7XG4gICAgICAgIHJldHVybiAhKFxuICAgICAgICAgIG9yaWdpbi50b3AgPT09IHRhcmdldC50b3AgJiZcbiAgICAgICAgICBvcmlnaW4ubGVmdCA9PT0gdGFyZ2V0LmxlZnQgJiZcbiAgICAgICAgICBvcmlnaW4ud2lkdGggPT09IHRhcmdldC53aWR0aCAmJlxuICAgICAgICAgIG9yaWdpbi5oZWlnaHQgPT09IHRhcmdldC5oZWlnaHRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIGVsXG4gICAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGlmIGl0IHdpbGwgbW92ZVxuICAgICAgICovXG4gICAgICBmdW5jdGlvbiBzZXRDbG9uZVRvQ29vcmRpbmF0ZXNPZihlbDogSFRNTERpdkVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgY3VycmVudENvb3JkaW5hdGVzID0gY2xvbmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbGxNb3ZlID0gd2lsbFRoZUhlcm9Nb3ZlKGNvb3JkaW5hdGVzLCBjdXJyZW50Q29vcmRpbmF0ZXMpO1xuXG4gICAgICAgIGNsb25lLnN0eWxlLnBvc2l0aW9uID0gXCJmaXhlZFwiO1xuICAgICAgICBjbG9uZS5zdHlsZS50b3AgPSBgJHtjb29yZGluYXRlcy50b3B9cHhgO1xuICAgICAgICBjbG9uZS5zdHlsZS5sZWZ0ID0gYCR7Y29vcmRpbmF0ZXMubGVmdH1weGA7XG4gICAgICAgIGNsb25lLnN0eWxlLndpZHRoID0gYCR7Y29vcmRpbmF0ZXMud2lkdGh9cHhgO1xuICAgICAgICBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtjb29yZGluYXRlcy5oZWlnaHR9cHhgO1xuXG4gICAgICAgIHJldHVybiB3aWxsTW92ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBvdGhlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBjdXJyZW50Q29vcmRpbmF0ZXMgPSBoZXJvUmVmLmN1cnJlbnQhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaXRXb250TW92ZSA9ICF3aWxsVGhlSGVyb01vdmUoY29vcmRpbmF0ZXMsIGN1cnJlbnRDb29yZGluYXRlcyk7XG4gICAgICBpZiAoaXRXb250TW92ZSkgcmV0dXJuO1xuXG4gICAgICBpZiAoIW9sZENsb25lKSB7XG4gICAgICAgIC8qKiBTZXQgdGhlIGNsb25lIG92ZXIgdGhlIHN0YXJ0aW5nIGVsZW1lbnQgKi9cbiAgICAgICAgc2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2Yob3RoZXJFbGVtZW50KTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICB9XG4gICAgICBoZXJvUmVmLmN1cnJlbnQhLnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgb3RoZXJFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuXG4gICAgICBjbG9uZS5zdHlsZS50cmFuc2l0aW9uID0gYCR7YWxsUHJvcHNUb1RyYW5zaXRpb25cbiAgICAgICAgLm1hcCgocHJvcCkgPT4gYCR7cHJvcH0gdmFyKC0tYW5pbWF0aW9uLS1zcGVlZC1mYXN0LCAyNTBtcykgZWFzZS1vdXRgKVxuICAgICAgICAuam9pbihcIiwgXCIpfWA7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IGhlcm9SZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnRzLm9uSGVyb0VuZCkgZXZlbnRzLm9uSGVyb0VuZCgpO1xuICAgICAgICAgIGlmIChlbCkge1xuICAgICAgICAgICAgaWYgKHJlcGVhdGFibGUpIGVsIS5zZXRBdHRyaWJ1dGUoZGF0YVByb3BlcnR5LCBpZCk7XG4gICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjbG9uZS5yZW1vdmUoKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGV2ZW50cy5vbkhlcm9TdGFydCkge1xuICAgICAgICAgIGV2ZW50cy5vbkhlcm9TdGFydChjbG9uZSwgb3RoZXJFbGVtZW50LCBoZXJvUmVmLmN1cnJlbnQhKTtcbiAgICAgICAgfVxuICAgICAgICB0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMoXG4gICAgICAgICAgY2xvbmUsXG4gICAgICAgICAgQXJyYXkuZnJvbShcbiAgICAgICAgICAgIGhlcm9SZWYuY3VycmVudCEucXVlcnlTZWxlY3RvckFsbChgWyR7REFUQV9UQUdfSEVST19DT01QT05FTlR9XWApXG4gICAgICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudFtdXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qKiBTZXQgdGhlIGNsb25lIG92ZXIgdGhlIG5ldyBwb3NpdGlvbiAqL1xuICAgICAgICBjb25zdCB3aWxsTW92ZSA9IHNldENsb25lVG9Db29yZGluYXRlc09mKGVsKTtcbiAgICAgICAgaWYgKCF3aWxsTW92ZSkgY2xlYW51cCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBmb3IgKGxldCBwcm9wVG9UcmFuc2l0aW9uIG9mIHByb3BzVG9UcmFuc2l0aW9uKVxuICAgICAgICAgICAgY2xvbmUuc3R5bGVbcHJvcFRvVHJhbnNpdGlvbiBhcyBhbnldID1cbiAgICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpW3Byb3BUb1RyYW5zaXRpb24gYXMgYW55XTtcbiAgICAgICAgICBsZXQgaW5pdGlhbE9mZnNldDogbnVtYmVyO1xuICAgICAgICAgIGNvbnN0IHMgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZCA9IHRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgICAgIGlmIChkLmNvbnRhaW5zKGVsKSkge1xuICAgICAgICAgICAgICBpZiAoaW5pdGlhbE9mZnNldCA9PT0gdW5kZWZpbmVkKSBpbml0aWFsT2Zmc2V0ID0gZC5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBjbG9uZS5zdHlsZS5tYXJnaW5Ub3AgPSBgJHstKGQuc2Nyb2xsVG9wIC0gaW5pdGlhbE9mZnNldCl9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgdHJhbnNpdGlvbkVuZENiID0gb3duRXZlbnQoXG4gICAgICAgICAgICAoeyB0YXJnZXQsIGN1cnJlbnRUYXJnZXQgfTogVHJhbnNpdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0YXJnZXQgPT09IGN1cnJlbnRUYXJnZXQpIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzIGFzIGFueSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHMgYXMgYW55LCB0cnVlKTtcbiAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmVuZFwiLCB0cmFuc2l0aW9uRW5kQ2IpO1xuICAgICAgICAgIGNsb25lLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uc3RhcnRcIiwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb25DYW5jZWxDYiA9IG93bkV2ZW50KChlKSA9PiB7XG4gICAgICAgICAgICAgIGNsb25lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHRyYW5zaXRpb25FbmRDYik7XG4gICAgICAgICAgICAgIGNsb25lLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uY2FuY2VsXCIsIG9uQ2FuY2VsQ2IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjbG9uZS5hZGRFdmVudExpc3RlbmVyKFwidHJhbnNpdGlvbmNhbmNlbFwiLCBvbkNhbmNlbENiKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICB0cmlnZ2VySGVyb0FuaW1hdGlvbigpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBoZXJvUmVmLFxuICAgIGdldEhlcm9zT25TY3JlZW4sXG4gICAgdHJpZ2dlcjogdHJpZ2dlckhlcm9BbmltYXRpb24sXG4gICAgaGVyb0NvbXBvbmVudFJlZjpcbiAgICAgIChjb21wb25lbnRJZDogc3RyaW5nKSA9PiAoZWxSZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoZWxSZWYpIHtcbiAgICAgICAgICBlbFJlZi5zZXRBdHRyaWJ1dGUoREFUQV9UQUdfSEVST19DT01QT05FTlQsIGNvbXBvbmVudElkKTtcbiAgICAgICAgICBlbFJlZi5jbGFzc0xpc3QuYWRkKFN0eWxlcy5jb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc0VsZW1lbnRPdXRzaWRlVmlld3BvcnQoY29vcmRpbmF0ZXM6IERPTVJlY3QpIHtcbiAgY29uc3QgZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0ID1cbiAgICBjb29yZGluYXRlcy5sZWZ0ID49IHZpZXdwb3J0LndpZHRoIHx8IGNvb3JkaW5hdGVzLnRvcCA+PSB2aWV3cG9ydC5oZWlnaHQ7XG4gIGNvbnN0IGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQgPVxuICAgIGNvb3JkaW5hdGVzLmxlZnQgPD0gLWNvb3JkaW5hdGVzLndpZHRoIHx8XG4gICAgY29vcmRpbmF0ZXMudG9wIDw9IC1jb29yZGluYXRlcy5oZWlnaHQ7XG4gIHJldHVybiBlbGVtZW50T3ZlcmZsb3dzVmlld3BvcnQgfHwgZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydDtcbn1cblxuZnVuY3Rpb24gaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lcihcbiAgY29udGFpbmVyOiBWaXN1YWxWaWV3cG9ydCB8IEVsZW1lbnQsXG4gIGNvb3JkaW5hdGVzOiBET01SZWN0XG4pIHtcbiAgaWYgKGNvbnRhaW5lciBpbnN0YW5jZW9mIFZpc3VhbFZpZXdwb3J0KSB7XG4gICAgcmV0dXJuIGlzRWxlbWVudE91dHNpZGVWaWV3cG9ydChjb29yZGluYXRlcyk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGFpbmVyQm91bmRzID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQgPVxuICAgICAgaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0KGNvbnRhaW5lckJvdW5kcyk7XG5cbiAgICBpZiAoaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0ID1cbiAgICAgIGNvb3JkaW5hdGVzLmxlZnQgPj0gY29udGFpbmVyQm91bmRzLmxlZnQgKyBjb250YWluZXJCb3VuZHMud2lkdGggfHxcbiAgICAgIGNvb3JkaW5hdGVzLnRvcCA+PSBjb250YWluZXJCb3VuZHMudG9wICsgY29udGFpbmVyQm91bmRzLmhlaWdodDtcblxuICAgIGNvbnN0IGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQgPVxuICAgICAgY29udGFpbmVyQm91bmRzLmxlZnQgLSBjb29yZGluYXRlcy5sZWZ0ID49IGNvb3JkaW5hdGVzLndpZHRoIHx8XG4gICAgICBjb250YWluZXJCb3VuZHMudG9wIC0gY29vcmRpbmF0ZXMudG9wID49IGNvb3JkaW5hdGVzLmhlaWdodDtcblxuICAgIHJldHVybiBlbGVtZW50VW5kZXJmbG93c1ZpZXdwb3J0IHx8IGVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydDtcbiAgfVxufVxuXG50eXBlIEVWRU5UU19JTlRFUkZBQ0UgPSBQYXJhbWV0ZXJzPHR5cGVvZiB1c2VIZXJvPlsyXTtcbnR5cGUgVFJBTlNJVElPTl9UWVBFUyA9IFwiQUNDRUxFUkFUSU9OXCI7XG5mdW5jdGlvbiBjZW50ZXJQb2ludChyZWN0OiBET01SZWN0KSB7XG4gIHJldHVybiBbcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsIHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyXSBhcyBjb25zdDtcbn1cbmNvbnN0IGFuZ2xlID0gKFxuICBwb2ludEE6IHJlYWRvbmx5IFt4OiBudW1iZXIsIHk6IG51bWJlcl0sXG4gIHBvaW50QjogcmVhZG9ubHkgW3g6IG51bWJlciwgeTogbnVtYmVyXVxuKSA9PlxuICBOdW1iZXIoXG4gICAgKFxuICAgICAgTWF0aC5hdGFuMihwb2ludEFbMV0gLSBwb2ludEJbMV0sIHBvaW50QVswXSAtIHBvaW50QlswXSkgKlxuICAgICAgKDE3OS4wOCAvIE1hdGguUEkpXG4gICAgKS50b0ZpeGVkKDUpXG4gICk7XG5leHBvcnQgY29uc3QgVFJBTlNJVElPTl9GQUNUT1JZOiB7XG4gIFtuIGluIFRSQU5TSVRJT05fVFlQRVNdOiAoZXZlbnRzPzogRVZFTlRTX0lOVEVSRkFDRSkgPT4gRVZFTlRTX0lOVEVSRkFDRTtcbn0gPSB7XG4gIEFDQ0VMRVJBVElPTjogKGV2ZW50cykgPT4gKHtcbiAgICAuLi5ldmVudHMsXG4gICAgb25IZXJvU3RhcnQoY2xvbmUsIG9yaWdpbiwgdGFyZ2V0KSB7XG4gICAgICBpZiAoZXZlbnRzPy5vbkhlcm9TdGFydCkgZXZlbnRzLm9uSGVyb1N0YXJ0KGNsb25lLCBvcmlnaW4sIHRhcmdldCk7XG4gICAgICBjbG9uZS5jbGFzc0xpc3QuYWRkKFN0eWxlcy5hY2NlbGVyYXRpb24pO1xuICAgICAgY29uc3QgY2VudGVyUG9pbnRPcmlnaW4gPSBjZW50ZXJQb2ludChvcmlnaW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgY29uc3QgY2VudGVyUG9pbnREZXN0aW5hdGlvbiA9IGNlbnRlclBvaW50KFxuICAgICAgICB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICk7XG4gICAgICBjb25zdCBhbmdsZUJldHdlZW5FbGVtZW50cyA9IGFuZ2xlKFxuICAgICAgICBjZW50ZXJQb2ludE9yaWdpbixcbiAgICAgICAgY2VudGVyUG9pbnREZXN0aW5hdGlvblxuICAgICAgKTtcbiAgICAgIGNvbnN0IHZlY3RvclggPSBNYXRoLnNpbihhbmdsZUJldHdlZW5FbGVtZW50cyk7XG4gICAgICBjb25zdCB2ZWN0b3JZID0gTWF0aC5jb3MoYW5nbGVCZXR3ZWVuRWxlbWVudHMpO1xuXG4gICAgICBjb25zdCByb3RhdGVZID0gKDEwICogdmVjdG9yWSkudG9GaXhlZCgwKTtcbiAgICAgIGNvbnN0IG9yaWdpblggPSAodmVjdG9yWSArIDEpICogNTA7XG5cbiAgICAgIGNvbnN0IHJvdGF0ZVggPSAtKDEwICogdmVjdG9yWCkudG9GaXhlZCgwKTtcbiAgICAgIGNvbnN0IG9yaWdpblkgPSAodmVjdG9yWCArIDEpICogNTA7XG5cbiAgICAgIGNsb25lLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICBcIi0tc3RhZ2UtMVwiLFxuICAgICAgICBgcm90YXRlWSgke3JvdGF0ZVl9ZGVnKSByb3RhdGVYKCR7LXJvdGF0ZVh9ZGVnKWBcbiAgICAgICk7XG4gICAgICBjbG9uZS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgXCItLXN0YWdlLTJcIixcbiAgICAgICAgYHJvdGF0ZVkoJHstcm90YXRlWSAqIDAuM31kZWcpIHJvdGF0ZVgoJHtyb3RhdGVYICogMC4zfWRlZylgXG4gICAgICApO1xuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXCItLW9yaWdpbi0xXCIsIGAke29yaWdpblh9JSAke29yaWdpbll9JWApO1xuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgIFwiLS1vcmlnaW4tMlwiLFxuICAgICAgICBgJHsxMDAgLSBvcmlnaW5YfSUgJHsxMDAgLSBvcmlnaW5ZfSVgXG4gICAgICApO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wZXJzcGVjdGl2ZSA9IFwiMTAwdndcIjtcbiAgICB9LFxuICAgIG9uSGVyb0VuZCgpIHtcbiAgICAgIGlmIChldmVudHM/Lm9uSGVyb0VuZCkgZXZlbnRzLm9uSGVyb0VuZCgpO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wZXJzcGVjdGl2ZSA9IFwiXCI7XG4gICAgfSxcbiAgfSksXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQU9BLElBQUFDLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUEyQyxTQUFBRSx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMs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
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX293bkV2ZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VIZXJvTW9kdWxlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfaSIsIml0ZXJhdG9yIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsIm5leHQiLCJkb25lIiwiZXJyIiwicmV0dXJuIiwiQXJyYXkiLCJpc0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJpdGVyIiwibGVuIiwiYXJyMiIsIklEIiwiaWQiLCJjb25jYXQiLCJ2aWV3cG9ydCIsIndpbmRvdyIsInZpc3VhbFZpZXdwb3J0IiwiREFUQV9UQUdfSEVST19DT01QT05FTlQiLCJ0cmlnZ2VyRHluYW1pY0NvbXBvbmVudHMiLCJjbG9uZSIsImNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIiLCJvcmlnaW4iLCJpZHNUaGF0V2lsbEFwcGVhciIsIm1hcCIsImEiLCJnZXRBdHRyaWJ1dGUiLCJwcmVleGlzdGluZ0NvbXBvbmVudHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmVtb3ZlZEVsZW1lbnRzIiwiZWwiLCJpbmNsdWRlcyIsImVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQiLCJzdHlsZSIsImhlaWdodCIsImNsaWVudEhlaWdodCIsInNldFRpbWVvdXQiLCJvcGFjaXR5IiwiY29tcG9uZW50VGhhdFdpbGxBcHBlYXIiLCJhbHJlYWR5SW5qZWN0ZWRFbGVtZW50IiwicXVlcnlTZWxlY3RvciIsInJlY3Vyc2l2ZUJ1aWxkUGF0aCIsImZyb21FbGVtZW50IiwicGF0aFN1ZmZpeCIsInBhcmVudCIsInBhcmVudEVsZW1lbnQiLCJwYXJlbnRDaGlsZHMiLCJjaGlsZHJlbiIsImVsQ2hpbGRTZWxlY3RvciIsImluZGV4T2YiLCJjb25zb2xlIiwibG9nIiwid2hhdElzVGhlRWxlbWVudFBhdGhGcm9tQ2xvbmVFbGVtZW50IiwiaW5zZXJ0QXRJbmRleCIsInRhcmdldEVsZW1lbnRDbG9uZSIsImNsb25lTm9kZSIsInNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQiLCJyZW1haW5pbmdJbmRleGVzIiwiZSIsImFwcGVuZCIsImluc2VydEJlZm9yZSIsImNoaWxkTm9kZXMiLCJpdGVtIiwiQUxXQVlTX1RSQU5TSVRJT04iLCJ1c2VIZXJvIiwib3B0aW9ucyIsInByb3BzVG9UcmFuc2l0aW9uIiwiZXZlbnRzIiwiX29wdGlvbnMkcHJvcHNUb1RyYW5zIiwiX3AiLCJkYXRhUHJlZmZpeCIsInJlcGVhdGFibGUiLCJ1c2VNZW1vIiwicCIsInJlcGxhY2UiLCJfIiwidmFsIiwidG9Mb3dlckNhc2UiLCJfZGF0YVByZWZmaXgiLCJkYXRhUHJvcGVydHkiLCJoZXJvUmVmIiwidXNlUmVmIiwidXNlTGF5b3V0RWZmZWN0IiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsImdldEhlcm9zT25TY3JlZW4iLCJ1c2VDYWxsYmFjayIsIm90aGVyRWxlbWVudHMiLCJkb2N1bWVudCIsInRyaWdnZXJIZXJvQW5pbWF0aW9uIiwiYWxsUHJvcHNUb1RyYW5zaXRpb24iLCJvdmVycmlkZVByb3BzVG9UcmFuc2l0aW9uIiwic2hvdWxkSGVyb0ZuIiwib25IZXJvRGV0ZWN0IiwiY3VycmVudEVsZW1lbnQiLCJjdXJyZW50RWxDb29yZGluYXRlcyIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIndhcm4iLCJvdGhlckVsZW1lbnQiLCJmaW5kIiwid2lsbFRoZUhlcm9Nb3ZlIiwidG9wIiwibGVmdCIsIndpZHRoIiwic2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YiLCJjb29yZGluYXRlcyIsImN1cnJlbnRDb29yZGluYXRlcyIsIndpbGxNb3ZlIiwicG9zaXRpb24iLCJfcmVmIiwib25CZWZvcmVUcmFuc2l0aW9uIiwiX3JlZjIiLCJvcmlnaW5Db250YWluZXIiLCJ0YXJnZXRDb250YWluZXIiLCJzaG91bGRTa2lwIiwiaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lciIsIm9uSGVyb1NraXAiLCJfZXZlbnRzJG9uSGVyb1NraXBwZWQiLCJvbkhlcm9Ta2lwcGVkIiwib2xkQ2xvbmUiLCJvbkhlcm9DbG9uZWQiLCJ2aXNpYmlsaXR5IiwicmVtb3ZlQXR0cmlidXRlIiwiaXRXb250TW92ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInRyYW5zaXRpb24iLCJwcm9wIiwic3ViIiwiam9pbiIsImNsZWFudXAiLCJvbkhlcm9FbmQiLCJyZW1vdmUiLCJvbkhlcm9TdGFydCIsInByb3BUb1RyYW5zaXRpb24iLCJnZXRDb21wdXRlZFN0eWxlIiwiaW5pdGlhbE9mZnNldCIsInMiLCJfcmVmMyIsImQiLCJjb250YWlucyIsInNjcm9sbFRvcCIsIm1hcmdpblRvcCIsInRyYW5zaXRpb25FbmRDYiIsIm93bkV2ZW50IiwiX3JlZjQiLCJjdXJyZW50VGFyZ2V0IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbkNhbmNlbENiIiwidXNlRWZmZWN0IiwidHJpZ2dlciIsImhlcm9Db21wb25lbnRSZWYiLCJjb21wb25lbnRJZCIsImVsUmVmIiwiY2xhc3NMaXN0IiwiYWRkIiwiU3R5bGVzIiwiY29tcG9uZW50IiwiaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0IiwiZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0IiwiZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCIsImNvbnRhaW5lciIsIlZpc3VhbFZpZXdwb3J0IiwiY29udGFpbmVyQm91bmRzIiwiaXNDb250YWluZXJPdXRzaWRlVmlld3BvcnQiLCJjZW50ZXJQb2ludCIsInJlY3QiLCJhbmdsZSIsInBvaW50QSIsInBvaW50QiIsIk1hdGgiLCJhdGFuMiIsIlBJIiwidG9GaXhlZCIsIlRSQU5TSVRJT05fRkFDVE9SWSIsIkFDQ0VMRVJBVElPTiIsImFjY2VsZXJhdGlvbiIsImNlbnRlclBvaW50T3JpZ2luIiwiY2VudGVyUG9pbnREZXN0aW5hdGlvbiIsImFuZ2xlQmV0d2VlbkVsZW1lbnRzIiwidmVjdG9yWCIsInNpbiIsInZlY3RvclkiLCJjb3MiLCJyb3RhdGVZIiwib3JpZ2luWCIsInJvdGF0ZVgiLCJvcmlnaW5ZIiwic2V0UHJvcGVydHkiLCJwZXJzcGVjdGl2ZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSGVyby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IG93bkV2ZW50IGZyb20gXCIuLi91dGlscy9vd25FdmVudFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi91c2VIZXJvLm1vZHVsZS5zY3NzXCI7XG5cbmNvbnN0IElEID0gKGlkOiBzdHJpbmcpID0+IGAke2lkfS1oZXJvYDtcbnR5cGUgU2hvdWxkU2tpcCA9IGJvb2xlYW47XG50eXBlIFJlc3VsdCA9IFtcbiAgb3JpZ2luQ29udGFpbmVyOiBFbGVtZW50IHwgVmlzdWFsVmlld3BvcnQsXG4gIHRhcmdldENvbnRhaW5lcjogRWxlbWVudCB8IFZpc3VhbFZpZXdwb3J0XG5dO1xuY29uc3Qgdmlld3BvcnQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQhO1xuY29uc3QgREFUQV9UQUdfSEVST19DT01QT05FTlQgPSBcImRhdGEtaGVyby1jb21wb25lbnRcIjtcblxuZnVuY3Rpb24gdHJpZ2dlckR5bmFtaWNDb21wb25lbnRzKFxuICBjbG9uZTogSFRNTERpdkVsZW1lbnQsXG4gIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXI6IEhUTUxEaXZFbGVtZW50W10sXG4gIG9yaWdpbjogSFRNTERpdkVsZW1lbnRcbikge1xuICBjb25zdCBpZHNUaGF0V2lsbEFwcGVhciA9IGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIubWFwKChhKSA9PlxuICAgIGEuZ2V0QXR0cmlidXRlKERBVEFfVEFHX0hFUk9fQ09NUE9ORU5UKVxuICApO1xuICBjb25zdCBwcmVleGlzdGluZ0NvbXBvbmVudHMgPSBBcnJheS5mcm9tKFxuICAgIGNsb25lLnF1ZXJ5U2VsZWN0b3JBbGwoYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfV1gKVxuICApIGFzIEhUTUxEaXZFbGVtZW50W107XG4gIGNvbnN0IHJlbW92ZWRFbGVtZW50czogSFRNTERpdkVsZW1lbnRbXSA9IHByZWV4aXN0aW5nQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgKGVsKSA9PlxuICAgICAgIWlkc1RoYXRXaWxsQXBwZWFyLmluY2x1ZGVzKGVsLmdldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVCkpXG4gICk7XG5cbiAgZm9yIChsZXQgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZCBvZiByZW1vdmVkRWxlbWVudHMpIHtcbiAgICBlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkLnN0eWxlLmhlaWdodCA9IGAke2VsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQuY2xpZW50SGVpZ2h0fXB4YDtcbiAgfVxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBmb3IgKGxldCBlbGVtZW50VGhhdElzQmVpbmdSZW1vdmVkIG9mIHJlbW92ZWRFbGVtZW50cykge1xuICAgICAgZWxlbWVudFRoYXRJc0JlaW5nUmVtb3ZlZC5zdHlsZS5oZWlnaHQgPSBgMHB4YDtcbiAgICAgIGVsZW1lbnRUaGF0SXNCZWluZ1JlbW92ZWQuc3R5bGUub3BhY2l0eSA9IGAwYDtcbiAgICB9XG4gIH0sIDApO1xuXG4gIGZvciAobGV0IGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyIG9mIGNvbXBvbmVudHNGcm9tT3JpZ2luVGhhdFdpbGxBcHBlYXIpIHtcbiAgICBjb25zdCBhbHJlYWR5SW5qZWN0ZWRFbGVtZW50ID0gISFjbG9uZS5xdWVyeVNlbGVjdG9yKFxuICAgICAgYFske0RBVEFfVEFHX0hFUk9fQ09NUE9ORU5UfT1cIiR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuZ2V0QXR0cmlidXRlKFxuICAgICAgICBEQVRBX1RBR19IRVJPX0NPTVBPTkVOVFxuICAgICAgKX1cIl1gXG4gICAgKTtcbiAgICBpZiAoIWFscmVhZHlJbmplY3RlZEVsZW1lbnQpIHtcbiAgICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZUJ1aWxkUGF0aChcbiAgICAgICAgZnJvbUVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBwYXRoU3VmZml4OiBzdHJpbmcgPSBcIlwiXG4gICAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoZnJvbUVsZW1lbnQgPT09IG9yaWdpbikgcmV0dXJuIHBhdGhTdWZmaXg7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGZyb21FbGVtZW50LnBhcmVudEVsZW1lbnQhO1xuICAgICAgICBjb25zdCBwYXJlbnRDaGlsZHMgPSBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbik7XG4gICAgICAgIGNvbnN0IGVsQ2hpbGRTZWxlY3RvciA9IGA6bnRoLWNoaWxkKCR7XG4gICAgICAgICAgcGFyZW50Q2hpbGRzLmluZGV4T2YoZnJvbUVsZW1lbnQpICsgMVxuICAgICAgICB9KWA7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLmdldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVCkgPT09XG4gICAgICAgICAgXCI3LWluc2lkZURpdlwiXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHBhdGhTdWZmaXgsIGZyb21FbGVtZW50LCBmcm9tRWxlbWVudCAhPT0gb3JpZ2luKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmcm9tRWxlbWVudCAhPT0gb3JpZ2luKVxuICAgICAgICAgIHJldHVybiByZWN1cnNpdmVCdWlsZFBhdGgoXG4gICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICBgJHtlbENoaWxkU2VsZWN0b3J9JHtwYXRoU3VmZml4ID8gYD4ke3BhdGhTdWZmaXh9YCA6IFwiXCJ9YFxuICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHBhdGhTdWZmaXg7XG4gICAgICB9XG4gICAgICBjb25zdCB3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnQgPSByZWN1cnNpdmVCdWlsZFBhdGgoXG4gICAgICAgIGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLnBhcmVudEVsZW1lbnQhXG4gICAgICApO1xuICAgICAgY29uc3QgaW5zZXJ0QXRJbmRleCA9IEFycmF5LmZyb20oXG4gICAgICAgIGNvbXBvbmVudFRoYXRXaWxsQXBwZWFyLnBhcmVudEVsZW1lbnQhLmNoaWxkcmVuXG4gICAgICApLmluZGV4T2YoY29tcG9uZW50VGhhdFdpbGxBcHBlYXIpO1xuXG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50Q2xvbmUgPSBjb21wb25lbnRUaGF0V2lsbEFwcGVhci5jbG9uZU5vZGUoXG4gICAgICAgIHRydWVcbiAgICAgICkgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICB0YXJnZXRFbGVtZW50Q2xvbmUuc3R5bGUuaGVpZ2h0ID0gXCIwcHhcIjtcbiAgICAgIGNvbnN0IHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQgPSB3aGF0SXNUaGVFbGVtZW50UGF0aEZyb21DbG9uZUVsZW1lbnRcbiAgICAgICAgPyBjbG9uZS5xdWVyeVNlbGVjdG9yKHdoYXRJc1RoZUVsZW1lbnRQYXRoRnJvbUNsb25lRWxlbWVudCkhXG4gICAgICAgIDogY2xvbmU7XG4gICAgICBjb25zdCByZW1haW5pbmdJbmRleGVzID0gQXJyYXkuZnJvbShzaG91bGRCZUluc2VydGVkQXRFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAubWFwKChlbCwgaSkgPT5cbiAgICAgICAgICByZW1vdmVkRWxlbWVudHMuaW5jbHVkZXMoZWwgYXMgSFRNTERpdkVsZW1lbnQpID8gdW5kZWZpbmVkIDogaVxuICAgICAgICApXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgIT09IHVuZGVmaW5lZCkgYXMgbnVtYmVyW107XG5cbiAgICAgIGlmIChpbnNlcnRBdEluZGV4ID09PSByZW1haW5pbmdJbmRleGVzLmxlbmd0aClcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5hcHBlbmQodGFyZ2V0RWxlbWVudENsb25lKTtcbiAgICAgIGVsc2VcbiAgICAgICAgc2hvdWxkQmVJbnNlcnRlZEF0RWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudENsb25lLFxuICAgICAgICAgIHNob3VsZEJlSW5zZXJ0ZWRBdEVsZW1lbnQuY2hpbGROb2Rlcy5pdGVtKFxuICAgICAgICAgICAgcmVtYWluaW5nSW5kZXhlc1tpbnNlcnRBdEluZGV4XVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0YXJnZXRFbGVtZW50Q2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7Y29tcG9uZW50VGhhdFdpbGxBcHBlYXIuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBBTFdBWVNfVFJBTlNJVElPTiA9IFtcInRvcFwiLCBcImxlZnRcIl07XG5cbi8qKlxuICogVGhpcyBob29rIGltcGxlbWVudHMgdGhlIGxvZ2ljIGZvciBhIGhlcm8gYW5pbWF0aW9uIGJldHdlZW4gMiBlbGVtZW50cyBzaGFyaW5nIHRoZSBzYW1lIGlkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUhlcm8oXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFBhcnRpYWw8e1xuICAgIHByb3BzVG9UcmFuc2l0aW9uOiBFeGNsdWRlPFxuICAgICAga2V5b2YgQ1NTUHJvcGVydGllcyxcbiAgICAgIFwid2lkdGhcIiB8IFwiaGVpZ2h0XCIgfCBcInRvcFwiIHwgXCJsZWZ0XCJcbiAgICA+W107XG4gICAgLyoqIElmIHNldCwgdGhlIGRlZmF1bHQgcHJvcGVydGllcyAod2lkdGgsIGhlaWdodCwgZXRjLi4uKSB3aWxsIG5vdCB0cmFuc2l0aW9uLCBhbmQgcHJvcHNUb1RyYW5zaXRpb24gd2lsbCBiZSB0aGUgb25seSBvbmVzIHRoYXQgd2lsbCBiZSB0cmFuc2l0aW9uZWQgKi9cbiAgICBvdmVycmlkZVByb3BzVG9UcmFuc2l0aW9uOiBib29sZWFuO1xuXG4gICAgXCJkYXRhLXByZWZmaXhcIjogc3RyaW5nO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0aGlzIGhlcm8gYW5pbWF0aW9uIHdpbGwgcHJvYmFibHkgYmUgcmVwZWF0ZWQgbXVsdGlwbGUgdGltZSAqL1xuICAgIHJlcGVhdGFibGU6IGJvb2xlYW47XG4gIH0+ID0ge1xuICAgIHByb3BzVG9UcmFuc2l0aW9uOiBbXSxcbiAgfSxcbiAgZXZlbnRzOiB7XG4gICAgLyoqXG4gICAgICogU2hvdWxkIHJldHVybiBpZiB0aGUgZGV0ZWN0ZWQgZWxlbWVudCBzaG91bGQgYmUgXCJoZXJvZWRcIlxuICAgICAqXG4gICAgICogVXNlZnVsbCBmb3Igd2hlbiB0aGUgaGVybyBoYXMgMiBwb3NzaWJsZSBvcmlnaW5zLlxuICAgICAqIEZvciBleGFtcGxlLCBvbmUgY291bGQgaGVybyBvbmx5IHRoZSBjdXJyZW50IGhvdmVyZWQgZWxlbWVudCB3aXRoIGVsLm1hdGNoZXMoXCI6aG92ZXJcIilcbiAgICAgKi9cbiAgICBvbkhlcm9EZXRlY3Q/OiAob3JpZ2luOiBIVE1MRGl2RWxlbWVudCwgdGFyZ2V0OiBIVE1MRGl2RWxlbWVudCkgPT4gYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERvIHNvbWV0aGluZyB3aGVuIHRoZSBoZXJvIGVuZHNcbiAgICAgKlxuICAgICAqIFVzZWZ1bGwgZm9yIHRyaWdnZXJpbmcgc2Vjb25kYXJ5IGFuaW1hdGlvbnNcbiAgICAgKi9cbiAgICBvbkhlcm9FbmQ/OiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqIERvIHNvbWV0aGlnbiB3aXRoIHRoZSBjbG9uZSBiZWZvcmUgaXQgZ29lcyB0byB0aGUgaHRtbCAqL1xuICAgIG9uSGVyb0Nsb25lZD86IChjbG9uZTogSFRNTERpdkVsZW1lbnQpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBEbyBzb21ldGhpbmcgd2hlbiB0aGUgaGVybyBzdGFydHMgdGhlIHRyYW5zaXRpb25cbiAgICAgKiBIZXJlIGl0J3MgdXNlZnVsbCB0byBzd2l0Y2ggY2xhc3NOYW1lcyB3aXRoIHRoZSB0YXJnZXQuXG4gICAgICpcbiAgICAgKiBJZiBkb25lIGNvcnJlY3RseSwgaXQgd2lsbCB0cmFuc2l0aW9uIGZyb20gc3RhdGUgYSB0byBiIHNtb290aGx5XG4gICAgICovXG4gICAgb25IZXJvU3RhcnQ/OiAoXG4gICAgICBjbG9uZTogSFRNTERpdkVsZW1lbnQsXG4gICAgICBvcmlnaW46IEhUTUxEaXZFbGVtZW50LFxuICAgICAgdGFyZ2V0OiBIVE1MRGl2RWxlbWVudFxuICAgICkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIElzIGNhbGxlZCB3aGVuIHRoZSBoZXJvIGlzIGNvbWluZy9nb2luZyBvdXRzaWRlIHRoZSB2aWV3cG9ydFxuICAgICAqXG4gICAgICogQnkgZGVmYXVsdCBpdCdzIHNldCB0byBza2lwIGFsbCBoZXJvZXMgdGhhdCBoYXZlIHRoZXNlIGNvbmRpdGlvbnNcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIElmIHRoZSBoZXJvIHNob3VsZCBiZSBza2lwcGVkIG9yIG5vdFxuICAgICAqL1xuICAgIG9uSGVyb1NraXA/OiAob3JpZ2luOiBIVE1MRGl2RWxlbWVudCwgdGFyZ2V0OiBIVE1MRGl2RWxlbWVudCkgPT4gU2hvdWxkU2tpcDtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIGEgaGVybyBpcyBza2lwcGVkXG4gICAgICovXG4gICAgb25IZXJvU2tpcHBlZD86ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBCZWZvcmUgdHJhbnNpdGlvbiBzdGFydCwgc2V0dXAgdGhlIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGhlcm8gYW5pbWF0aW9uXG4gICAgICogQHJldHVybnMgVGhlIGNvbnRhaW5lciB0aGF0IHdpbGwgYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgaGVybyBpcyBvdXQgb3IgaW4gdGhlIHZpZXdcbiAgICAgKi9cbiAgICBvbkJlZm9yZVRyYW5zaXRpb24/OiAoXG4gICAgICBvcmlnaW46IEhUTUxEaXZFbGVtZW50LFxuICAgICAgdGFyZ2V0OiBIVE1MRGl2RWxlbWVudFxuICAgICkgPT4gUmVzdWx0IHwgUmVhZG9ubHk8UmVzdWx0PjtcbiAgfSA9IHt9XG4pIHtcbiAgY29uc3Qge1xuICAgIHByb3BzVG9UcmFuc2l0aW9uOiBfcCA9IFtdLFxuICAgIFwiZGF0YS1wcmVmZml4XCI6IGRhdGFQcmVmZml4LFxuICAgIHJlcGVhdGFibGUsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBwcm9wc1RvVHJhbnNpdGlvbiA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIF9wLm1hcCgocCkgPT4gcC5yZXBsYWNlKC8oW0EtWl0pL2csIChfLCB2YWwpID0+IGAtJHt2YWwudG9Mb3dlckNhc2UoKX1gKSksXG4gICAgW19wXVxuICApO1xuICBjb25zdCBfZGF0YVByZWZmaXggPSBkYXRhUHJlZmZpeCA/IGAtJHtkYXRhUHJlZmZpeH1gIDogXCJcIjtcbiAgY29uc3QgZGF0YVByb3BlcnR5ID0gYGRhdGEke19kYXRhUHJlZmZpeH0taGVyb2A7XG4gIGNvbnN0IGhlcm9SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVyb1JlZi5jdXJyZW50IS5zZXRBdHRyaWJ1dGUoZGF0YVByb3BlcnR5LCBpZCk7XG4gIH0sIFtpZF0pO1xuXG4gIGNvbnN0IGdldEhlcm9zT25TY3JlZW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qgb3RoZXJFbGVtZW50cyA9IChcbiAgICAgIEFycmF5LmZyb20oXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYFske2RhdGFQcm9wZXJ0eX09XCIke2lkfVwiXWApXG4gICAgICApIGFzIEhUTUxEaXZFbGVtZW50W11cbiAgICApLmZpbHRlcigoZWwpID0+IGVsICE9PSBoZXJvUmVmLmN1cnJlbnQpO1xuICAgIHJldHVybiBvdGhlckVsZW1lbnRzO1xuICB9LCBbaWRdKTtcblxuICBmdW5jdGlvbiB0cmlnZ2VySGVyb0FuaW1hdGlvbigpIHtcbiAgICBjb25zdCBhbGxQcm9wc1RvVHJhbnNpdGlvbiA9IG9wdGlvbnMub3ZlcnJpZGVQcm9wc1RvVHJhbnNpdGlvblxuICAgICAgPyBbLi4uQUxXQVlTX1RSQU5TSVRJT04sIC4uLnByb3BzVG9UcmFuc2l0aW9uXVxuICAgICAgOiBbXCJ3aWR0aFwiLCBcImhlaWdodFwiLCAuLi5BTFdBWVNfVFJBTlNJVElPTiwgLi4ucHJvcHNUb1RyYW5zaXRpb25dO1xuICAgIGNvbnN0IHNob3VsZEhlcm9GbiA9IGV2ZW50cy5vbkhlcm9EZXRlY3QgfHwgKCguLi5hOiBhbnlbXSkgPT4gdHJ1ZSk7XG4gICAgY29uc3Qgb3RoZXJFbGVtZW50cyA9IGdldEhlcm9zT25TY3JlZW4oKS5maWx0ZXIoKGVsKSA9PlxuICAgICAgc2hvdWxkSGVyb0ZuKGVsLCBoZXJvUmVmLmN1cnJlbnQhKVxuICAgICk7XG4gICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSBoZXJvUmVmLmN1cnJlbnQhO1xuICAgIGNvbnN0IGN1cnJlbnRFbENvb3JkaW5hdGVzID0gY3VycmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIiAmJiBvdGhlckVsZW1lbnRzLmxlbmd0aCA+IDIpXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIFwiVGhlcmUgYXJlIHRvbyBtYW55IGVsZW1lbnRzIHRvIHRyYW5zaXRpb24gdG8sIEkgd2lsbCB0cmFuc2l0aW9uIHRvIHRoZSBmaXJzdCBJIGZpbmRcIixcbiAgICAgICAgb3RoZXJFbGVtZW50c1xuICAgICAgKTtcbiAgICBjb25zdCBvdGhlckVsZW1lbnQgPSBvdGhlckVsZW1lbnRzLmZpbmQoXG4gICAgICAoZWwpID0+IGVsICE9PSBoZXJvUmVmLmN1cnJlbnQhXG4gICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmIChvdGhlckVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IFtvcmlnaW5Db250YWluZXIsIHRhcmdldENvbnRhaW5lcl0gPSBldmVudHMub25CZWZvcmVUcmFuc2l0aW9uXG4gICAgICAgID8gZXZlbnRzLm9uQmVmb3JlVHJhbnNpdGlvbihvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpXG4gICAgICAgIDogW3ZpZXdwb3J0LCB2aWV3cG9ydF07XG4gICAgICBjb25zdCBzaG91bGRTa2lwID1cbiAgICAgICAgaXNFbGVtZW50T3V0c2lkZUNvbnRhaW5lcih0YXJnZXRDb250YWluZXIsIGN1cnJlbnRFbENvb3JkaW5hdGVzKSB8fFxuICAgICAgICBpc0VsZW1lbnRPdXRzaWRlQ29udGFpbmVyKFxuICAgICAgICAgIG9yaWdpbkNvbnRhaW5lcixcbiAgICAgICAgICBvdGhlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgKVxuICAgICAgICAgID8gKGV2ZW50cy5vbkhlcm9Ta2lwIHx8ICgoKSA9PiB0cnVlKSkob3RoZXJFbGVtZW50LCBoZXJvUmVmLmN1cnJlbnQhKVxuICAgICAgICAgIDogZmFsc2U7XG4gICAgICBpZiAoc2hvdWxkU2tpcCkge1xuICAgICAgICBldmVudHMub25IZXJvU2tpcHBlZD8uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9sZENsb25lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgYFske2RhdGFQcm9wZXJ0eX0tY2xvbmU9XCIke0lEKGlkKX1cIl1gXG4gICAgICApO1xuICAgICAgY29uc3QgY2xvbmUgPSAob2xkQ2xvbmUgfHxcbiAgICAgICAgb3RoZXJFbGVtZW50LmNsb25lTm9kZSh0cnVlKSkgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIGlmIChldmVudHMub25IZXJvQ2xvbmVkICYmICFvbGRDbG9uZSkgZXZlbnRzLm9uSGVyb0Nsb25lZChjbG9uZSk7XG5cbiAgICAgIC8vIENsZWFuIHVwIHRob3MgcHJvcGVydGllcyB0aGF0IGNhbiBjYXVzZSBjb25mdXNpb24gc2luY2UgaXQncyBhIGNsb25lXG4gICAgICBjbG9uZS5zdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgIGNsb25lLnJlbW92ZUF0dHJpYnV0ZShkYXRhUHJvcGVydHkpO1xuXG4gICAgICBjbG9uZS5zZXRBdHRyaWJ1dGUoYCR7ZGF0YVByb3BlcnR5fS1jbG9uZWAsIElEKGlkKSk7XG5cbiAgICAgIC8qKlxuICAgICAgICogSWYgaXQncyByZXBlYXRhYmxlLCB3ZSBzaG91bGQga2VlcCB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB0aGUgaGVybyBleGlzdGFuY2VcbiAgICAgICAqL1xuICAgICAgaWYgKCFyZXBlYXRhYmxlKVxuICAgICAgICAvLyBTaW5jZSBhIHRyYW5zaXRpb24gaXMgbm93IHRyaWdnZXJpbmcgZnJvbSB0aGUgb2xkIGVsZW1lbnQsIGhlIGNhbm5vdCBiZSBjb25zaWRlcmVkIGZvciBvdGhlciB0cmFuc2l0aW9uc1xuICAgICAgICBvdGhlckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGRhdGFQcm9wZXJ0eSk7XG5cbiAgICAgIGZ1bmN0aW9uIHdpbGxUaGVIZXJvTW92ZShvcmlnaW46IERPTVJlY3QsIHRhcmdldDogRE9NUmVjdCkge1xuICAgICAgICByZXR1cm4gIShcbiAgICAgICAgICBvcmlnaW4udG9wID09PSB0YXJnZXQudG9wICYmXG4gICAgICAgICAgb3JpZ2luLmxlZnQgPT09IHRhcmdldC5sZWZ0ICYmXG4gICAgICAgICAgb3JpZ2luLndpZHRoID09PSB0YXJnZXQud2lkdGggJiZcbiAgICAgICAgICBvcmlnaW4uaGVpZ2h0ID09PSB0YXJnZXQuaGVpZ2h0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSBlbFxuICAgICAgICogQHJldHVybnMgUmV0dXJucyBpZiBpdCB3aWxsIG1vdmVcbiAgICAgICAqL1xuICAgICAgZnVuY3Rpb24gc2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YoZWw6IEhUTUxEaXZFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb29yZGluYXRlcyA9IGNsb25lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB3aWxsTW92ZSA9IHdpbGxUaGVIZXJvTW92ZShjb29yZGluYXRlcywgY3VycmVudENvb3JkaW5hdGVzKTtcblxuICAgICAgICBjbG9uZS5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgICAgICAgY2xvbmUuc3R5bGUudG9wID0gYCR7Y29vcmRpbmF0ZXMudG9wfXB4YDtcbiAgICAgICAgY2xvbmUuc3R5bGUubGVmdCA9IGAke2Nvb3JkaW5hdGVzLmxlZnR9cHhgO1xuICAgICAgICBpZiAoYWxsUHJvcHNUb1RyYW5zaXRpb24uaW5jbHVkZXMoXCJ3aWR0aFwiKSlcbiAgICAgICAgICBjbG9uZS5zdHlsZS53aWR0aCA9IGAke2Nvb3JkaW5hdGVzLndpZHRofXB4YDtcbiAgICAgICAgaWYgKGFsbFByb3BzVG9UcmFuc2l0aW9uLmluY2x1ZGVzKFwiaGVpZ2h0XCIpKVxuICAgICAgICAgIGNsb25lLnN0eWxlLmhlaWdodCA9IGAke2Nvb3JkaW5hdGVzLmhlaWdodH1weGA7XG5cbiAgICAgICAgcmV0dXJuIHdpbGxNb3ZlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb29yZGluYXRlcyA9IG90aGVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRDb29yZGluYXRlcyA9IGhlcm9SZWYuY3VycmVudCEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpdFdvbnRNb3ZlID0gIXdpbGxUaGVIZXJvTW92ZShjb29yZGluYXRlcywgY3VycmVudENvb3JkaW5hdGVzKTtcbiAgICAgIGlmIChpdFdvbnRNb3ZlKSByZXR1cm47XG5cbiAgICAgIGlmICghb2xkQ2xvbmUpIHtcbiAgICAgICAgLyoqIFNldCB0aGUgY2xvbmUgb3ZlciB0aGUgc3RhcnRpbmcgZWxlbWVudCAqL1xuICAgICAgICBzZXRDbG9uZVRvQ29vcmRpbmF0ZXNPZihvdGhlckVsZW1lbnQpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNsb25lKTtcbiAgICAgIH1cbiAgICAgIGhlcm9SZWYuY3VycmVudCEuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG4gICAgICBvdGhlckVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9IFwiaGlkZGVuXCI7XG5cbiAgICAgIGNsb25lLnN0eWxlLnRyYW5zaXRpb24gPSBgJHthbGxQcm9wc1RvVHJhbnNpdGlvblxuICAgICAgICAubWFwKFxuICAgICAgICAgIChwcm9wKSA9PlxuICAgICAgICAgICAgYCR7cHJvcC5yZXBsYWNlKFxuICAgICAgICAgICAgICAvW0EtWl0vZyxcbiAgICAgICAgICAgICAgKHN1YikgPT4gYC0ke3N1Yi50b0xvd2VyQ2FzZSgpfWBcbiAgICAgICAgICAgICl9IHZhcigtLWFuaW1hdGlvbi0tc3BlZWQtZmFzdCwgMjUwbXMpIGVhc2Utb3V0YFxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiLCBcIil9YDtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsID0gaGVyb1JlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudHMub25IZXJvRW5kKSBldmVudHMub25IZXJvRW5kKCk7XG4gICAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgICBpZiAocmVwZWF0YWJsZSkgZWwhLnNldEF0dHJpYnV0ZShkYXRhUHJvcGVydHksIGlkKTtcbiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNsb25lLnJlbW92ZSgpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZXZlbnRzLm9uSGVyb1N0YXJ0KSB7XG4gICAgICAgICAgZXZlbnRzLm9uSGVyb1N0YXJ0KGNsb25lLCBvdGhlckVsZW1lbnQsIGhlcm9SZWYuY3VycmVudCEpO1xuICAgICAgICB9XG4gICAgICAgIHRyaWdnZXJEeW5hbWljQ29tcG9uZW50cyhcbiAgICAgICAgICBjbG9uZSxcbiAgICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgICAgaGVyb1JlZi5jdXJyZW50IS5xdWVyeVNlbGVjdG9yQWxsKGBbJHtEQVRBX1RBR19IRVJPX0NPTVBPTkVOVH1dYClcbiAgICAgICAgICApIGFzIEhUTUxEaXZFbGVtZW50W10sXG4gICAgICAgICAgY3VycmVudEVsZW1lbnRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFlbCkge1xuICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqIFNldCB0aGUgY2xvbmUgb3ZlciB0aGUgbmV3IHBvc2l0aW9uICovXG4gICAgICAgIGNvbnN0IHdpbGxNb3ZlID0gc2V0Q2xvbmVUb0Nvb3JkaW5hdGVzT2YoZWwpO1xuICAgICAgICBpZiAoIXdpbGxNb3ZlKSBjbGVhbnVwKCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGZvciAobGV0IHByb3BUb1RyYW5zaXRpb24gb2YgcHJvcHNUb1RyYW5zaXRpb24pXG4gICAgICAgICAgICBjbG9uZS5zdHlsZVtwcm9wVG9UcmFuc2l0aW9uIGFzIGFueV0gPVxuICAgICAgICAgICAgICB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbClbcHJvcFRvVHJhbnNpdGlvbiBhcyBhbnldO1xuICAgICAgICAgIGxldCBpbml0aWFsT2Zmc2V0OiBudW1iZXI7XG4gICAgICAgICAgY29uc3QgcyA9ICh7IHRhcmdldCB9OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkID0gdGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGQuY29udGFpbnMoZWwpKSB7XG4gICAgICAgICAgICAgIGlmIChpbml0aWFsT2Zmc2V0ID09PSB1bmRlZmluZWQpIGluaXRpYWxPZmZzZXQgPSBkLnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGNsb25lLnN0eWxlLm1hcmdpblRvcCA9IGAkey0oZC5zY3JvbGxUb3AgLSBpbml0aWFsT2Zmc2V0KX1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCB0cmFuc2l0aW9uRW5kQ2IgPSBvd25FdmVudChcbiAgICAgICAgICAgICh7IHRhcmdldCwgY3VycmVudFRhcmdldCB9OiBUcmFuc2l0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRhcmdldCA9PT0gY3VycmVudFRhcmdldCkgY2xlYW51cCgpO1xuICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHMgYXMgYW55LCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgcyBhcyBhbnksIHRydWUpO1xuICAgICAgICAgIGNsb25lLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsIHRyYW5zaXRpb25FbmRDYik7XG4gICAgICAgICAgY2xvbmUuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25zdGFydFwiLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvbkNhbmNlbENiID0gb3duRXZlbnQoKGUpID0+IHtcbiAgICAgICAgICAgICAgY2xvbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIiwgdHJhbnNpdGlvbkVuZENiKTtcbiAgICAgICAgICAgICAgY2xvbmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25jYW5jZWxcIiwgb25DYW5jZWxDYik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNsb25lLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uY2FuY2VsXCIsIG9uQ2FuY2VsQ2IpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHRyaWdnZXJIZXJvQW5pbWF0aW9uKCk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4ge1xuICAgIGhlcm9SZWYsXG4gICAgZ2V0SGVyb3NPblNjcmVlbixcbiAgICB0cmlnZ2VyOiB0cmlnZ2VySGVyb0FuaW1hdGlvbixcbiAgICBoZXJvQ29tcG9uZW50UmVmOlxuICAgICAgKGNvbXBvbmVudElkOiBzdHJpbmcpID0+IChlbFJlZjogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmIChlbFJlZikge1xuICAgICAgICAgIGVsUmVmLnNldEF0dHJpYnV0ZShEQVRBX1RBR19IRVJPX0NPTVBPTkVOVCwgY29tcG9uZW50SWQpO1xuICAgICAgICAgIGVsUmVmLmNsYXNzTGlzdC5hZGQoU3R5bGVzLmNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzRWxlbWVudE91dHNpZGVWaWV3cG9ydChjb29yZGluYXRlczogRE9NUmVjdCkge1xuICBjb25zdCBlbGVtZW50T3ZlcmZsb3dzVmlld3BvcnQgPVxuICAgIGNvb3JkaW5hdGVzLmxlZnQgPj0gdmlld3BvcnQud2lkdGggfHwgY29vcmRpbmF0ZXMudG9wID49IHZpZXdwb3J0LmhlaWdodDtcbiAgY29uc3QgZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCA9XG4gICAgY29vcmRpbmF0ZXMubGVmdCA8PSAtY29vcmRpbmF0ZXMud2lkdGggfHxcbiAgICBjb29yZGluYXRlcy50b3AgPD0gLWNvb3JkaW5hdGVzLmhlaWdodDtcbiAgcmV0dXJuIGVsZW1lbnRPdmVyZmxvd3NWaWV3cG9ydCB8fCBlbGVtZW50VW5kZXJmbG93c1ZpZXdwb3J0O1xufVxuXG5mdW5jdGlvbiBpc0VsZW1lbnRPdXRzaWRlQ29udGFpbmVyKFxuICBjb250YWluZXI6IFZpc3VhbFZpZXdwb3J0IHwgRWxlbWVudCxcbiAgY29vcmRpbmF0ZXM6IERPTVJlY3Rcbikge1xuICBpZiAoY29udGFpbmVyIGluc3RhbmNlb2YgVmlzdWFsVmlld3BvcnQpIHtcbiAgICByZXR1cm4gaXNFbGVtZW50T3V0c2lkZVZpZXdwb3J0KGNvb3JkaW5hdGVzKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjb250YWluZXJCb3VuZHMgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBpc0NvbnRhaW5lck91dHNpZGVWaWV3cG9ydCA9XG4gICAgICBpc0VsZW1lbnRPdXRzaWRlVmlld3BvcnQoY29udGFpbmVyQm91bmRzKTtcblxuICAgIGlmIChpc0NvbnRhaW5lck91dHNpZGVWaWV3cG9ydCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBlbGVtZW50T3ZlcmZsb3dzVmlld3BvcnQgPVxuICAgICAgY29vcmRpbmF0ZXMubGVmdCA+PSBjb250YWluZXJCb3VuZHMubGVmdCArIGNvbnRhaW5lckJvdW5kcy53aWR0aCB8fFxuICAgICAgY29vcmRpbmF0ZXMudG9wID49IGNvbnRhaW5lckJvdW5kcy50b3AgKyBjb250YWluZXJCb3VuZHMuaGVpZ2h0O1xuXG4gICAgY29uc3QgZWxlbWVudFVuZGVyZmxvd3NWaWV3cG9ydCA9XG4gICAgICBjb250YWluZXJCb3VuZHMubGVmdCAtIGNvb3JkaW5hdGVzLmxlZnQgPj0gY29vcmRpbmF0ZXMud2lkdGggfHxcbiAgICAgIGNvbnRhaW5lckJvdW5kcy50b3AgLSBjb29yZGluYXRlcy50b3AgPj0gY29vcmRpbmF0ZXMuaGVpZ2h0O1xuXG4gICAgcmV0dXJuIGVsZW1lbnRVbmRlcmZsb3dzVmlld3BvcnQgfHwgZWxlbWVudE92ZXJmbG93c1ZpZXdwb3J0O1xuICB9XG59XG5cbnR5cGUgRVZFTlRTX0lOVEVSRkFDRSA9IFBhcmFtZXRlcnM8dHlwZW9mIHVzZUhlcm8+WzJdO1xudHlwZSBUUkFOU0lUSU9OX1RZUEVTID0gXCJBQ0NFTEVSQVRJT05cIjtcbmZ1bmN0aW9uIGNlbnRlclBvaW50KHJlY3Q6IERPTVJlY3QpIHtcbiAgcmV0dXJuIFtyZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMiwgcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDJdIGFzIGNvbnN0O1xufVxuY29uc3QgYW5nbGUgPSAoXG4gIHBvaW50QTogcmVhZG9ubHkgW3g6IG51bWJlciwgeTogbnVtYmVyXSxcbiAgcG9pbnRCOiByZWFkb25seSBbeDogbnVtYmVyLCB5OiBudW1iZXJdXG4pID0+XG4gIE51bWJlcihcbiAgICAoXG4gICAgICBNYXRoLmF0YW4yKHBvaW50QVsxXSAtIHBvaW50QlsxXSwgcG9pbnRBWzBdIC0gcG9pbnRCWzBdKSAqXG4gICAgICAoMTc5LjA4IC8gTWF0aC5QSSlcbiAgICApLnRvRml4ZWQoNSlcbiAgKTtcbmV4cG9ydCBjb25zdCBUUkFOU0lUSU9OX0ZBQ1RPUlk6IHtcbiAgW24gaW4gVFJBTlNJVElPTl9UWVBFU106IChldmVudHM/OiBFVkVOVFNfSU5URVJGQUNFKSA9PiBFVkVOVFNfSU5URVJGQUNFO1xufSA9IHtcbiAgQUNDRUxFUkFUSU9OOiAoZXZlbnRzKSA9PiAoe1xuICAgIC4uLmV2ZW50cyxcbiAgICBvbkhlcm9TdGFydChjbG9uZSwgb3JpZ2luLCB0YXJnZXQpIHtcbiAgICAgIGlmIChldmVudHM/Lm9uSGVyb1N0YXJ0KSBldmVudHMub25IZXJvU3RhcnQoY2xvbmUsIG9yaWdpbiwgdGFyZ2V0KTtcbiAgICAgIGNsb25lLmNsYXNzTGlzdC5hZGQoU3R5bGVzLmFjY2VsZXJhdGlvbik7XG4gICAgICBjb25zdCBjZW50ZXJQb2ludE9yaWdpbiA9IGNlbnRlclBvaW50KG9yaWdpbi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgICBjb25zdCBjZW50ZXJQb2ludERlc3RpbmF0aW9uID0gY2VudGVyUG9pbnQoXG4gICAgICAgIHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGFuZ2xlQmV0d2VlbkVsZW1lbnRzID0gYW5nbGUoXG4gICAgICAgIGNlbnRlclBvaW50T3JpZ2luLFxuICAgICAgICBjZW50ZXJQb2ludERlc3RpbmF0aW9uXG4gICAgICApO1xuICAgICAgY29uc3QgdmVjdG9yWCA9IE1hdGguc2luKGFuZ2xlQmV0d2VlbkVsZW1lbnRzKTtcbiAgICAgIGNvbnN0IHZlY3RvclkgPSBNYXRoLmNvcyhhbmdsZUJldHdlZW5FbGVtZW50cyk7XG5cbiAgICAgIGNvbnN0IHJvdGF0ZVkgPSAoMTAgKiB2ZWN0b3JZKS50b0ZpeGVkKDApO1xuICAgICAgY29uc3Qgb3JpZ2luWCA9ICh2ZWN0b3JZICsgMSkgKiA1MDtcblxuICAgICAgY29uc3Qgcm90YXRlWCA9IC0oMTAgKiB2ZWN0b3JYKS50b0ZpeGVkKDApO1xuICAgICAgY29uc3Qgb3JpZ2luWSA9ICh2ZWN0b3JYICsgMSkgKiA1MDtcblxuICAgICAgY2xvbmUuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgIFwiLS1zdGFnZS0xXCIsXG4gICAgICAgIGByb3RhdGVZKCR7cm90YXRlWX1kZWcpIHJvdGF0ZVgoJHstcm90YXRlWH1kZWcpYFxuICAgICAgKTtcbiAgICAgIGNsb25lLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICBcIi0tc3RhZ2UtMlwiLFxuICAgICAgICBgcm90YXRlWSgkey1yb3RhdGVZICogMC4zfWRlZykgcm90YXRlWCgke3JvdGF0ZVggKiAwLjN9ZGVnKWBcbiAgICAgICk7XG4gICAgICBjbG9uZS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tb3JpZ2luLTFcIiwgYCR7b3JpZ2luWH0lICR7b3JpZ2luWX0lYCk7XG4gICAgICBjbG9uZS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgXCItLW9yaWdpbi0yXCIsXG4gICAgICAgIGAkezEwMCAtIG9yaWdpblh9JSAkezEwMCAtIG9yaWdpbll9JWBcbiAgICAgICk7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBlcnNwZWN0aXZlID0gXCIxMDB2d1wiO1xuICAgIH0sXG4gICAgb25IZXJvRW5kKCkge1xuICAgICAgaWYgKGV2ZW50cz8ub25IZXJvRW5kKSBldmVudHMub25IZXJvRW5kKCk7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBlcnNwZWN0aXZlID0gXCJcIjtcbiAgICB9LFxuICB9KSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBUUEsSUFBQUMsU0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQTJDLFNBQUFFLHVCQUFBRSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxHQUFBQyxjQUFBLEtBQUFJLE9BQUEsR0FBQUEsT0FBQSxDQUFBQyxNQUFBLFdBQUFDLEdBQUEsV0FBQUosTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixNQUFBLEVBQUFPLEdBQUEsRUFBQUUsVUFBQSxPQUFBUCxJQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxJQUFBLEVBQUFHLE9BQUEsWUFBQUgsSUFBQTtBQUFBLFNBQUFVLGNB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
|
|
@@ -2,7 +2,7 @@ import { IntlFormatters, IntlShape } from "react-intl";
|
|
|
2
2
|
import { BigNumber } from "bignumber.js";
|
|
3
3
|
import { ReactElement } from "react";
|
|
4
4
|
export default function useShortIntl(): IntlShape & {
|
|
5
|
-
txt: (id: OnepercentUtility.IntlIds, params?: Record<string, string | ReactElement>) =>
|
|
5
|
+
txt: <R extends ReturnType<IntlFormatters["formatMessage"]> = string>(id: OnepercentUtility.IntlIds, params?: Record<string, string | ReactElement>) => R;
|
|
6
6
|
formatToDoubleDecimal(number: number, options?: Parameters<IntlFormatters["formatNumber"]>[1]): string;
|
|
7
7
|
formatBigNumber(number: BigNumber, options?: Parameters<IntlFormatters["formatNumber"]>[1]): string;
|
|
8
8
|
};
|
|
@@ -82,4 +82,4 @@ function isolateMessages(preffix, strings) {
|
|
|
82
82
|
return _objectSpread(_objectSpread({}, r), {}, _defineProperty({}, "".concat(preffix, ".").concat(k), v));
|
|
83
83
|
}, {});
|
|
84
84
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RJbnRsIiwicmVxdWlyZSIsIl9yZWFjdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiY2FsbCIsIlR5cGVFcnJvciIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIml0ZXJhdG9yIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsIm5leHQiLCJkb25lIiwiZXJyIiwicmV0dXJuIiwiaXNBcnJheSIsInVzZVNob3J0SW50bCIsImludGwiLCJ1c2VJbnRsIiwiZm9ybWF0TWVzc2FnZSIsImZvcm1hdE51bWJlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImRldk1vZGUiLCJzZXREZXZNb2RlIiwidXNlRWZmZWN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwia2V5RG93bkRldGVjdCIsImV2IiwiY3RybEtleSIsImtleVVwRGV0ZWN0Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInR4dCIsImlkIiwicGFyYW1zIiwiZm9ybWF0VG9Eb3VibGVEZWNpbWFsIiwidmFsIiwib3B0aW9ucyIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsImZvcm1hdEJpZ051bWJlciIsImJpZ051bWJlciIsIl9pbnRsJGZvcm1hdE51bWJlclRvUCIsImZvcm1hdE51bWJlclRvUGFydHMiLCJyZWR1Y2UiLCJyIiwiYSIsInR5cGUiLCJkZWNpbWFsU2VwYXJhdG9yIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJpbnRlZ2VyUGFydCIsImludGVnZXJWYWx1ZSIsImludGVnZXIiLCJ0b051bWJlciIsImRlY2ltYWxzIiwibWludXMiLCJkZWNpbWFsUGxhY2VzIiwicmVwbGFjZSIsImNvbmNhdCIsImlzb2xhdGVNZXNzYWdlcyIsInByZWZmaXgiLCJzdHJpbmdzIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsImsiLCJ2Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNob3J0SW50bC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRsRm9ybWF0dGVycywgSW50bFNoYXBlLCB1c2VJbnRsIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCB7IEJpZ051bWJlciB9IGZyb20gXCJiaWdudW1iZXIuanNcIjtcbmltcG9ydCB7IFJlYWN0RWxlbWVudCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTaG9ydEludGwoKTogSW50bFNoYXBlICYge1xuICB0eHQ6IChcbiAgICBpZDogT25lcGVyY2VudFV0aWxpdHkuSW50bElkcyxcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+XG4gICkgPT4gUmV0dXJuVHlwZTxJbnRsRm9ybWF0dGVyc1tcImZvcm1hdE1lc3NhZ2VcIl0+O1xuICBmb3JtYXRUb0RvdWJsZURlY2ltYWwoXG4gICAgbnVtYmVyOiBudW1iZXIsXG4gICAgb3B0aW9ucz86IFBhcmFtZXRlcnM8SW50bEZvcm1hdHRlcnNbXCJmb3JtYXROdW1iZXJcIl0+WzFdXG4gICk6IHN0cmluZztcbiAgZm9ybWF0QmlnTnVtYmVyKFxuICAgIG51bWJlcjogQmlnTnVtYmVyLFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEludGxGb3JtYXR0ZXJzW1wiZm9ybWF0TnVtYmVyXCJdPlsxXVxuICApOiBzdHJpbmc7XG59IHtcbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgY29uc3QgeyBmb3JtYXRNZXNzYWdlLCBmb3JtYXROdW1iZXIgfSA9IGludGw7XG4gIGNvbnN0IFtkZXZNb2RlLCBzZXREZXZNb2RlXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICBjb25zdCBrZXlEb3duRGV0ZWN0ID0gKGV2OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldi5rZXkgPT09IFwiaVwiICYmIGV2LmN0cmxLZXkpIHtcbiAgICAgICAgICBjb25zdCBrZXlVcERldGVjdCA9IChldjogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2LmtleSA9PT0gXCJpXCIpIHtcbiAgICAgICAgICAgICAgc2V0RGV2TW9kZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXREZXZNb2RlKHRydWUpO1xuICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIiwga2V5VXBEZXRlY3QpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGtleURvd25EZXRlY3QpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnRsLFxuICAgIHR4dDogKGlkLCBwYXJhbXMpID0+IHtcbiAgICAgIHJldHVybiBkZXZNb2RlID8gaWQgOiBmb3JtYXRNZXNzYWdlKHsgaWQgfSwgcGFyYW1zKTtcbiAgICB9LFxuICAgIGZvcm1hdFRvRG91YmxlRGVjaW1hbCh2YWw6IG51bWJlciwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbCwge1xuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZm9ybWF0QmlnTnVtYmVyKGJpZ051bWJlciwgb3B0aW9ucykge1xuICAgICAgY29uc3QgeyBkZWNpbWFsU2VwYXJhdG9yIH0gPSBpbnRsXG4gICAgICAgIC5mb3JtYXROdW1iZXJUb1BhcnRzKDEwMDAuMSlcbiAgICAgICAgLnJlZHVjZSgociwgYSkgPT4ge1xuICAgICAgICAgIGlmIChhLnR5cGUgPT09IFwiZGVjaW1hbFwiKSByZXR1cm4geyAuLi5yLCBkZWNpbWFsU2VwYXJhdG9yOiBhLnZhbHVlIH07XG4gICAgICAgICAgaWYgKGEudHlwZSA9PT0gXCJncm91cFwiKSByZXR1cm4geyAuLi5yLCB0aG91c2FuZFNlcGFyYXRvcjogYS52YWx1ZSB9O1xuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9LCB7fSBhcyB7IGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZzsgdGhvdXNhbmRTZXBhcmF0b3I6IHN0cmluZyB9KTtcblxuICAgICAgY29uc3QgaW50ZWdlclBhcnQgPSBiaWdOdW1iZXIuaW50ZWdlclZhbHVlKDEpO1xuICAgICAgY29uc3QgaW50ZWdlciA9IGludGwuZm9ybWF0TnVtYmVyKGludGVnZXJQYXJ0LnRvTnVtYmVyKCksIG9wdGlvbnMpO1xuICAgICAgY29uc3QgZGVjaW1hbHMgPSBiaWdOdW1iZXJcbiAgICAgICAgLm1pbnVzKGludGVnZXJQYXJ0KVxuICAgICAgICAuZGVjaW1hbFBsYWNlcyhcbiAgICAgICAgICBvcHRpb25zPy5tYXhpbXVtRnJhY3Rpb25EaWdpdHMgfHwgYmlnTnVtYmVyLmRlY2ltYWxQbGFjZXMoKSEsXG4gICAgICAgICAgNVxuICAgICAgICApXG4gICAgICAgIC50b1N0cmluZygpXG4gICAgICAgIC5yZXBsYWNlKFwiMC5cIiwgXCJcIik7XG4gICAgICByZXR1cm4gYCR7aW50ZWdlcn0ke1xuICAgICAgICBkZWNpbWFscyAhPT0gXCIwXCIgPyBgJHtkZWNpbWFsU2VwYXJhdG9yfSR7ZGVjaW1hbHN9YCA6IFwiXCJcbiAgICAgIH1gO1xuICAgIH0sXG4gIH07XG59XG5cbnR5cGUgU3RyTWFwID0ge1xuICBbczogc3RyaW5nXTogc3RyaW5nO1xufTtcblxudHlwZSBJc29sYXRlZE1lc3NhZ2VzPEEgZXh0ZW5kcyBzdHJpbmcsIE0gZXh0ZW5kcyBTdHJNYXAsIFAgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbczEgaW4gYCR7UH0uJHtrZXlvZiBNIGV4dGVuZHMgc3RyaW5nID8ga2V5b2YgTSA6IFwiXCJ9YF06IE1ba2V5b2YgTV07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNvbGF0ZU1lc3NhZ2VzPEEgZXh0ZW5kcyBzdHJpbmcsIE0gZXh0ZW5kcyBTdHJNYXA+KFxuICBwcmVmZml4OiBBLFxuICBzdHJpbmdzOiBNXG4pIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHN0cmluZ3MpLnJlZHVjZShcbiAgICAociwgW2ssIHZdKSA9PiAoe1xuICAgICAgLi4ucixcbiAgICAgIFtgJHtwcmVmZml4fS4ke2t9YF06IHYsXG4gICAgfSksXG4gICAge30gYXMgSXNvbGF0ZWRNZXNzYWdlczxBLCBNLCB0eXBlb2YgcHJlZmZpeD5cbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFBMEQsU0FBQUUsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxHQUFBQyxjQUFBLEtBQUFJLE9BQUEsR0FBQUEsT0FBQSxDQUFBQyxNQUFBLFdBQUFDLEdBQUEsV0FBQUosTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixNQUFBLEVBQUFPLEdBQUEsRUFBQUUsVUFBQSxPQUFBUCxJQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxJQUFBLEVBQUFHLE9BQUEsWUFBQUgsSUFBQTtBQUFBLFNBQUFVLGNBQUFDLE1BQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBRixDQUFBLFVBQUFHLE1BQUEsV0FBQUYsU0FBQSxDQUFBRCxDQUFBLElBQUFDLFNBQUEsQ0FBQUQsQ0FBQSxRQUFBQSxDQUFBLE9BQUFmLE9BQUEsQ0FBQUksTUFBQSxDQUFBYyxNQUFBLE9BQUFDLE9BQUEsV0FBQUMsR0FBQSxJQUFBQyxlQUFBLENBQUFQLE1BQUEsRUFBQU0sR0FBQSxFQUFBRixNQUFBLENBQUFFLEdBQUEsU0FBQWhCLE1BQUEsQ0FBQWtCLHlCQUFBLEdBQUFsQixNQUFBLENBQUFtQixnQkFBQSxDQUFBVCxNQUFBLEVBQUFWLE1BQUEsQ0FBQWtCLHlCQUFBLENBQUFKLE1BQUEsS0FBQWxCLE9BQUEsQ0FBQUksTUFBQSxDQUFBYyxNQUFBLEdBQUFDLE9B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
|
|
85
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3RJbnRsIiwicmVxdWlyZSIsIl9yZWFjdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiY2FsbCIsIlR5cGVFcnJvciIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiYXJyIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIml0ZXJhdG9yIiwiX3MiLCJfZSIsIl94IiwiX3IiLCJfYXJyIiwiX24iLCJfZCIsIm5leHQiLCJkb25lIiwiZXJyIiwicmV0dXJuIiwiaXNBcnJheSIsInVzZVNob3J0SW50bCIsImludGwiLCJ1c2VJbnRsIiwiZm9ybWF0TWVzc2FnZSIsImZvcm1hdE51bWJlciIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImRldk1vZGUiLCJzZXREZXZNb2RlIiwidXNlRWZmZWN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwia2V5RG93bkRldGVjdCIsImV2IiwiY3RybEtleSIsImtleVVwRGV0ZWN0Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInR4dCIsImlkIiwicGFyYW1zIiwiZm9ybWF0VG9Eb3VibGVEZWNpbWFsIiwidmFsIiwib3B0aW9ucyIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsImZvcm1hdEJpZ051bWJlciIsImJpZ051bWJlciIsIl9pbnRsJGZvcm1hdE51bWJlclRvUCIsImZvcm1hdE51bWJlclRvUGFydHMiLCJyZWR1Y2UiLCJyIiwiYSIsInR5cGUiLCJkZWNpbWFsU2VwYXJhdG9yIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJpbnRlZ2VyUGFydCIsImludGVnZXJWYWx1ZSIsImludGVnZXIiLCJ0b051bWJlciIsImRlY2ltYWxzIiwibWludXMiLCJkZWNpbWFsUGxhY2VzIiwicmVwbGFjZSIsImNvbmNhdCIsImlzb2xhdGVNZXNzYWdlcyIsInByZWZmaXgiLCJzdHJpbmdzIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsImsiLCJ2Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNob3J0SW50bC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRsRm9ybWF0dGVycywgSW50bFNoYXBlLCB1c2VJbnRsIH0gZnJvbSBcInJlYWN0LWludGxcIjtcbmltcG9ydCB7IEJpZ051bWJlciB9IGZyb20gXCJiaWdudW1iZXIuanNcIjtcbmltcG9ydCB7IFJlYWN0RWxlbWVudCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VTaG9ydEludGwoKTogSW50bFNoYXBlICYge1xuICB0eHQ6IDxSIGV4dGVuZHMgUmV0dXJuVHlwZTxJbnRsRm9ybWF0dGVyc1tcImZvcm1hdE1lc3NhZ2VcIl0+ID0gc3RyaW5nPihcbiAgICBpZDogT25lcGVyY2VudFV0aWxpdHkuSW50bElkcyxcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBSZWFjdEVsZW1lbnQ+XG4gICkgPT4gUjtcbiAgZm9ybWF0VG9Eb3VibGVEZWNpbWFsKFxuICAgIG51bWJlcjogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiBQYXJhbWV0ZXJzPEludGxGb3JtYXR0ZXJzW1wiZm9ybWF0TnVtYmVyXCJdPlsxXVxuICApOiBzdHJpbmc7XG4gIGZvcm1hdEJpZ051bWJlcihcbiAgICBudW1iZXI6IEJpZ051bWJlcixcbiAgICBvcHRpb25zPzogUGFyYW1ldGVyczxJbnRsRm9ybWF0dGVyc1tcImZvcm1hdE51bWJlclwiXT5bMV1cbiAgKTogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gIGNvbnN0IHsgZm9ybWF0TWVzc2FnZSwgZm9ybWF0TnVtYmVyIH0gPSBpbnRsO1xuICBjb25zdCBbZGV2TW9kZSwgc2V0RGV2TW9kZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgY29uc3Qga2V5RG93bkRldGVjdCA9IChldjogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXYua2V5ID09PSBcImlcIiAmJiBldi5jdHJsS2V5KSB7XG4gICAgICAgICAgY29uc3Qga2V5VXBEZXRlY3QgPSAoZXY6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldi5rZXkgPT09IFwiaVwiKSB7XG4gICAgICAgICAgICAgIHNldERldk1vZGUoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0RGV2TW9kZSh0cnVlKTtcbiAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsIGtleVVwRGV0ZWN0KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBrZXlEb3duRGV0ZWN0KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uaW50bCxcbiAgICB0eHQ6IChpZCwgcGFyYW1zKSA9PiB7XG4gICAgICByZXR1cm4gZGV2TW9kZSA/IGlkIDogZm9ybWF0TWVzc2FnZSh7IGlkIH0sIHBhcmFtcykgYXMgYW55O1xuICAgIH0sXG4gICAgZm9ybWF0VG9Eb3VibGVEZWNpbWFsKHZhbDogbnVtYmVyLCBvcHRpb25zID0ge30pIHtcbiAgICAgIHJldHVybiBmb3JtYXROdW1iZXIodmFsLCB7XG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBmb3JtYXRCaWdOdW1iZXIoYmlnTnVtYmVyLCBvcHRpb25zKSB7XG4gICAgICBjb25zdCB7IGRlY2ltYWxTZXBhcmF0b3IgfSA9IGludGxcbiAgICAgICAgLmZvcm1hdE51bWJlclRvUGFydHMoMTAwMC4xKVxuICAgICAgICAucmVkdWNlKChyLCBhKSA9PiB7XG4gICAgICAgICAgaWYgKGEudHlwZSA9PT0gXCJkZWNpbWFsXCIpIHJldHVybiB7IC4uLnIsIGRlY2ltYWxTZXBhcmF0b3I6IGEudmFsdWUgfTtcbiAgICAgICAgICBpZiAoYS50eXBlID09PSBcImdyb3VwXCIpIHJldHVybiB7IC4uLnIsIHRob3VzYW5kU2VwYXJhdG9yOiBhLnZhbHVlIH07XG4gICAgICAgICAgcmV0dXJuIHI7XG4gICAgICAgIH0sIHt9IGFzIHsgZGVjaW1hbFNlcGFyYXRvcjogc3RyaW5nOyB0aG91c2FuZFNlcGFyYXRvcjogc3RyaW5nIH0pO1xuXG4gICAgICBjb25zdCBpbnRlZ2VyUGFydCA9IGJpZ051bWJlci5pbnRlZ2VyVmFsdWUoMSk7XG4gICAgICBjb25zdCBpbnRlZ2VyID0gaW50bC5mb3JtYXROdW1iZXIoaW50ZWdlclBhcnQudG9OdW1iZXIoKSwgb3B0aW9ucyk7XG4gICAgICBjb25zdCBkZWNpbWFscyA9IGJpZ051bWJlclxuICAgICAgICAubWludXMoaW50ZWdlclBhcnQpXG4gICAgICAgIC5kZWNpbWFsUGxhY2VzKFxuICAgICAgICAgIG9wdGlvbnM/Lm1heGltdW1GcmFjdGlvbkRpZ2l0cyB8fCBiaWdOdW1iZXIuZGVjaW1hbFBsYWNlcygpISxcbiAgICAgICAgICA1XG4gICAgICAgIClcbiAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgLnJlcGxhY2UoXCIwLlwiLCBcIlwiKTtcbiAgICAgIHJldHVybiBgJHtpbnRlZ2VyfSR7XG4gICAgICAgIGRlY2ltYWxzICE9PSBcIjBcIiA/IGAke2RlY2ltYWxTZXBhcmF0b3J9JHtkZWNpbWFsc31gIDogXCJcIlxuICAgICAgfWA7XG4gICAgfSxcbiAgfTtcbn1cblxudHlwZSBTdHJNYXAgPSB7XG4gIFtzOiBzdHJpbmddOiBzdHJpbmc7XG59O1xuXG50eXBlIElzb2xhdGVkTWVzc2FnZXM8QSBleHRlbmRzIHN0cmluZywgTSBleHRlbmRzIFN0ck1hcCwgUCBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtzMSBpbiBgJHtQfS4ke2tleW9mIE0gZXh0ZW5kcyBzdHJpbmcgPyBrZXlvZiBNIDogXCJcIn1gXTogTVtrZXlvZiBNXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc29sYXRlTWVzc2FnZXM8QSBleHRlbmRzIHN0cmluZywgTSBleHRlbmRzIFN0ck1hcD4oXG4gIHByZWZmaXg6IEEsXG4gIHN0cmluZ3M6IE1cbikge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3RyaW5ncykucmVkdWNlKFxuICAgIChyLCBbaywgdl0pID0+ICh7XG4gICAgICAuLi5yLFxuICAgICAgW2Ake3ByZWZmaXh9LiR7a31gXTogdixcbiAgICB9KSxcbiAgICB7fSBhcyBJc29sYXRlZE1lc3NhZ2VzPEEsIE0sIHR5cGVvZiBwcmVmZml4PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUEwRCxTQUFBRSxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFBQSxDQUFBSixNQUFBLEdBQUFDLGNBQUEsS0FBQUksT0FBQSxHQUFBQSxPQUFBLENBQUFDLE1BQUEsV0FBQUMsR0FBQSxXQUFBSixNQUFBLENBQUFLLHdCQUFBLENBQUFSLE1BQUEsRUFBQU8sR0FBQSxFQUFBRSxVQUFBLE9BQUFQLElBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULElBQUEsRUFBQUcsT0FBQSxZQUFBSCxJQUFBO0FBQUEsU0FBQVUsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFELENBQUEsSUFBQUMsU0FBQSxDQUFBRCxDQUFBLFFBQUFBLENBQUEsT0FBQWYsT0FBQSxDQUFBSSxNQUFBLENBQUFjLE1BQUEsT0FBQUMsT0FBQSxXQUFBQyxHQUFBLElBQUFDLGVBQUEsQ0FBQVAsTUFBQSxFQUFBTSxHQUFBLEVBQUFGLE1BQUEsQ0FBQUUsR0FBQSxTQUFBaEIsTUFBQSxDQUFBa0IseUJBQUEsR0FBQWxCLE1BQUEsQ0FBQW1CLGdCQUFBLENBQUFULE1BQUEsRUFBQVYsTUFBQSxDQUFBa0IseUJBQUEsQ0FBQUosTUFBQSxLQUFBbEIsT0FBQSxD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
|
|
@@ -7,7 +7,7 @@ declare type ExtractEvents<A extends AllABIs[number]> = A extends {
|
|
|
7
7
|
type: "event";
|
|
8
8
|
} ? A["name"] : never;
|
|
9
9
|
declare type TypeOrInternalType<T> = T['internalType'] extends unknown ? T['type'] : T['internalType'];
|
|
10
|
-
declare type MapTypeToJS<L, C> = L extends "tuple[]" ? TuplifyUnion<C[number], C[number]['name']>[] : L extends "address" | "uint256" | "uint128" | "uint8" | "string" | "bytes32" ? string : L extends "uint256[]" | "string[]" ? string[] : L extends "bool" ? boolean : L extends 'tuple' ? TuplifyUnion<C[number], C[number]['name']> : unknown;
|
|
10
|
+
export declare type MapTypeToJS<L, C> = L extends "tuple[]" ? TuplifyUnion<C[number], C[number]['name']>[] : L extends "address" | "uint256" | "uint128" | "uint8" | "string" | "bytes32" | "uint64" ? string : L extends "uint256[]" | "string[]" ? string[] : L extends "bool" ? boolean : L extends 'tuple' ? TuplifyUnion<C[number], C[number]['name']> : unknown;
|
|
11
11
|
declare type ExtractFromObj<R extends (AllABIs[number] & {
|
|
12
12
|
type: "function";
|
|
13
13
|
})> = {
|
|
@@ -51,7 +51,7 @@ export declare type TuplifyUnion<FUNCS, T, L = LastOf<T>, N = [T] extends [never
|
|
|
51
51
|
})>, (FUNCS & {
|
|
52
52
|
name: L;
|
|
53
53
|
})['components']>>;
|
|
54
|
-
export
|
|
54
|
+
export declare class GenericContract<A extends AllABIs = AllABIs, E extends string = ExtractEvents<A[number]> | "allEvents"> extends Contract {
|
|
55
55
|
events: Exclude<E, "allEvents">;
|
|
56
56
|
constructor(jsonInterface: A, address?: string, options?: ContractOptions);
|
|
57
57
|
methods: {
|
|
@@ -62,6 +62,7 @@ export default class GenericContract<A extends AllABIs = AllABIs, E extends stri
|
|
|
62
62
|
getPastEvents(event: E, options: PastEventOptions): Promise<GenericEventData<A>[]>;
|
|
63
63
|
getPastEvents(event: E, callback: (error: Error, event: EventData) => void): Promise<GenericEventData<A>[]>;
|
|
64
64
|
}
|
|
65
|
+
export default GenericContract;
|
|
65
66
|
export declare type GenericEventData<E extends AllABIs> = EventData & GenericEvent<E>;
|
|
66
67
|
declare type ABIEvent = AllABIs[number] & {
|
|
67
68
|
type: "event";
|
|
@@ -76,4 +77,3 @@ declare type ExtractReturnValues<E extends ABIEvent> = ExtractInputType<E["input
|
|
|
76
77
|
declare type ExtractInputType<I extends ABIEvent["inputs"][number]> = {
|
|
77
78
|
[k in I["name"]]: MapTypeToJS<TypeOrInternalType<I>, I['components']>;
|
|
78
79
|
};
|
|
79
|
-
export {};
|
|
@@ -4,7 +4,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = void 0;
|
|
7
|
+
exports.default = exports.GenericContract = void 0;
|
|
8
8
|
var _web3EthContract = require("web3-eth-contract");
|
|
9
9
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
10
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -38,5 +38,7 @@ let GenericContract = /*#__PURE__*/function (_Contract) {
|
|
|
38
38
|
}]);
|
|
39
39
|
return GenericContract;
|
|
40
40
|
}(_web3EthContract.Contract);
|
|
41
|
-
exports.
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2ViM0V0aENvbnRyYWN0IiwicmVxdWlyZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiaSIsImxlbmd0aCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwicHJvdG90eXBlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJOdW1iZXIiLCJfZ2V0IiwiUmVmbGVjdCIsImdldCIsImJpbmQiLCJwcm9wZXJ0eSIsInJlY2VpdmVyIiwiYmFzZSIsIl9zdXBlclByb3BCYXNlIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImFyZ3VtZW50cyIsInZhbHVlIiwiYXBwbHkiLCJvYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9nZXRQcm90b3R5cGVPZiIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwiX3NldFByb3RvdHlwZU9mIiwibyIsInAiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIl9jcmVhdGVTdXBlckludGVybmFsIiwiU3VwZXIiLCJyZXN1bHQiLCJOZXdUYXJnZXQiLCJjb25zdHJ1Y3QiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsImUiLCJnZXRQcm90b3R5cGVPZiIsIkdlbmVyaWNDb250cmFjdCIsIl9Db250cmFjdCIsIl9zdXBlciIsImpzb25JbnRlcmZhY2UiLCJhZGRyZXNzIiwib3B0aW9ucyIsImdldFBhc3RFdmVudHMiLCJldmVudCIsImNhbGxiYWNrIiwiQ29udHJhY3QiLCJleHBvcnRzIiwiZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvR2VuZXJpY0NvbnRyYWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQge1xuICBDb250cmFjdCxcbiAgQ29udHJhY3RPcHRpb25zLFxuICBFdmVudERhdGEsXG4gIFBhc3RFdmVudE9wdGlvbnMsXG59IGZyb20gXCJ3ZWIzLWV0aC1jb250cmFjdFwiO1xuaW1wb3J0IHsgQWJpSXRlbSB9IGZyb20gXCJ3ZWIzLXV0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIEFsbEFCSXMgPSByZWFkb25seSBhbnlbXTtcblxudHlwZSBFeHRyYWN0TWV0aG9kczxBIGV4dGVuZHMgQWxsQUJJc1tudW1iZXJdPiA9IEEgZXh0ZW5kcyB7XG4gIHR5cGU6IFwiZnVuY3Rpb25cIjtcbn1cbiAgPyBBW1wibmFtZVwiXVxuICA6IG5ldmVyO1xuXG50eXBlIEV4dHJhY3RFdmVudHM8QSBleHRlbmRzIEFsbEFCSXNbbnVtYmVyXT4gPSBBIGV4dGVuZHMge1xuICB0eXBlOiBcImV2ZW50XCI7XG59XG4gID8gQVtcIm5hbWVcIl1cbiAgOiBuZXZlcjtcblxudHlwZSBUeXBlT3JJbnRlcm5hbFR5cGU8VD4gPSBUWydpbnRlcm5hbFR5cGUnXSBleHRlbmRzIHVua25vd24gPyBUWyd0eXBlJ10gOiBUWydpbnRlcm5hbFR5cGUnXVxuXG50eXBlIE1hcFR5cGVUb0pTPEwsIEM+ID1cbiAgTCBleHRlbmRzIFwidHVwbGVbXVwiID8gVHVwbGlmeVVuaW9uPENbbnVtYmVyXSwgQ1tudW1iZXJdWyduYW1lJ10+W10gOlxuICBMIGV4dGVuZHMgXCJhZGRyZXNzXCIgfCBcInVpbnQyNTZcIiB8IFwidWludDEyOFwiIHwgXCJ1aW50OFwiIHwgXCJzdHJpbmdcIiB8IFwiYnl0ZXMzMlwiXG4gID8gc3RyaW5nXG4gIDogTCBleHRlbmRzIFwidWludDI1NltdXCIgfCBcInN0cmluZ1tdXCJcbiAgPyBzdHJpbmdbXVxuICA6IEwgZXh0ZW5kcyBcImJvb2xcIlxuICA/IGJvb2xlYW5cbiAgOiBMIGV4dGVuZHMgJ3R1cGxlJ1xuICA/IFR1cGxpZnlVbmlvbjxDW251bWJlcl0sIENbbnVtYmVyXVsnbmFtZSddPlxuICA6IHVua25vd247XG5cbnR5cGUgRXh0cmFjdEZyb21PYmo8UiBleHRlbmRzIChBbGxBQklzW251bWJlcl0gJiB7IHR5cGU6IFwiZnVuY3Rpb25cIiB9KT4gPSB7XG4gIFtLIGluIFJbXCJvdXRwdXRzXCJdW251bWJlcl1bXCJuYW1lXCJdXTogTWFwVHlwZVRvSlM8XG4gICAgVHlwZU9ySW50ZXJuYWxUeXBlPChSW1wib3V0cHV0c1wiXVtudW1iZXJdICYge1xuICAgICAgbmFtZTogSztcbiAgICB9KT4sXG4gICAgKFJbXCJvdXRwdXRzXCJdW251bWJlcl0gJiB7XG4gICAgICBuYW1lOiBLO1xuICAgIH0pW1wiY29tcG9uZW50c1wiXVxuICA+O1xufVxuXG5leHBvcnQgdHlwZSBFeHRyYWN0TWV0aG9kRGVmaW5pdGlvbjxcbiAgQSBleHRlbmRzIEFsbEFCSXMsXG4gIE4gZXh0ZW5kcyAoQWxsQUJJc1tudW1iZXJdICYgeyB0eXBlOiBcImZ1bmN0aW9uXCIgfSlbXCJuYW1lXCJdLFxuICBSID0gQVtudW1iZXJdICYge1xuICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICBuYW1lOiBOO1xuICB9XG4gID4gPSAoXG4gICAgLi4uYXJnczogVHVwbGlmeVVuaW9uPFxuICAgICAgKEFbbnVtYmVyXSAmIHtcbiAgICAgICAgdHlwZTogXCJmdW5jdGlvblwiO1xuICAgICAgICBuYW1lOiBOO1xuICAgICAgfSlbXCJpbnB1dHNcIl1bbnVtYmVyXSxcbiAgICAgIChBW251bWJlcl0gJiB7XG4gICAgICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgbmFtZTogTjtcbiAgICAgIH0pW1wiaW5wdXRzXCJdW251bWJlcl1bXCJuYW1lXCJdXG4gICAgPlxuICApID0+IHtcbiAgICBjYWxsOiAoKSA9PiBQcm9taXNlPFxuICAgICAgUiBleHRlbmRzIHsgb3V0cHV0czogeyBsZW5ndGg6IDEgfSB9XG4gICAgICA/IE1hcFR5cGVUb0pTPFxuICAgICAgICBUeXBlT3JJbnRlcm5hbFR5cGU8UltcIm91dHB1dHNcIl1bMF0+LFxuICAgICAgICBSW1wib3V0cHV0c1wiXVswXVsnY29tcG9uZW50cyddXG4gICAgICA+XG4gICAgICA6IFIgZXh0ZW5kcyB7IG91dHB1dHM6IGFueSB9XG4gICAgICA/IEV4dHJhY3RGcm9tT2JqPFI+XG4gICAgICA6IHZvaWRcbiAgICA+O1xuICAgIHNlbmQ6IChwcm9wOiB7IGZyb206IHN0cmluZywgbWF4UHJpb3JpdHlGZWVQZXJHYXM/OiBudW1iZXIsIGdhcz86IG51bWJlciwgZ2FzUHJpY2U/OiBzdHJpbmcgfSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgfTtcblxuLy8gb2ggYm95IGRvbid0IGRvIHRoaXNcbnR5cGUgVW5pb25Ub0ludGVyc2VjdGlvbjxVPiA9IChVIGV4dGVuZHMgYW55ID8gKGs6IFUpID0+IHZvaWQgOiBuZXZlcikgZXh0ZW5kcyAoXG4gIGs6IGluZmVyIElcbikgPT4gdm9pZFxuICA/IElcbiAgOiBuZXZlcjtcbnR5cGUgTGFzdE9mPFQ+ID0gVW5pb25Ub0ludGVyc2VjdGlvbjxcbiAgVCBleHRlbmRzIGFueSA/ICgpID0+IFQgOiBuZXZlclxuPiBleHRlbmRzICgpID0+IGluZmVyIFJcbiAgPyBSXG4gIDogbmV2ZXI7XG5cbi8vIFRTNC4wK1xudHlwZSBQdXNoPFQgZXh0ZW5kcyBhbnlbXSwgVj4gPSBbLi4uVCwgVl07XG5cbi8vIFRTNC4xK1xuZXhwb3J0IHR5cGUgVHVwbGlmeVVuaW9uPFxuICBGVU5DUyxcbiAgVCxcbiAgTCA9IExhc3RPZjxUPixcbiAgTiA9IFtUXSBleHRlbmRzIFtuZXZlcl0gPyB0cnVlIDogZmFsc2VcbiAgPiA9IHRydWUgZXh0ZW5kcyBOXG4gID8gW11cbiAgOiBQdXNoPFxuICAgIFR1cGxpZnlVbmlvbjxGVU5DUywgRXhjbHVkZTxULCBMPj4sXG4gICAgTWFwVHlwZVRvSlM8XG4gICAgICBUeXBlT3JJbnRlcm5hbFR5cGU8KEZVTkNTICYgeyBuYW1lOiBMIH0pPixcbiAgICAgIChGVU5DUyAmIHsgbmFtZTogTCB9KVsnY29tcG9uZW50cyddXG4gICAgPlxuICA+O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHZW5lcmljQ29udHJhY3Q8XG4gIEEgZXh0ZW5kcyBBbGxBQklzID0gQWxsQUJJcyxcbiAgRSBleHRlbmRzIHN0cmluZyA9IEV4dHJhY3RFdmVudHM8QVtudW1iZXJdPiB8IFwiYWxsRXZlbnRzXCJcbiAgPiBleHRlbmRzIENvbnRyYWN0IHtcbiAgZXZlbnRzITogRXhjbHVkZTxFLCBcImFsbEV2ZW50c1wiPjtcbiAgY29uc3RydWN0b3IoanNvbkludGVyZmFjZTogQSwgYWRkcmVzcz86IHN0cmluZywgb3B0aW9ucz86IENvbnRyYWN0T3B0aW9ucykge1xuICAgIHN1cGVyKGpzb25JbnRlcmZhY2UgYXMgdW5rbm93biBhcyBBYmlJdGVtW10sIGFkZHJlc3MsIG9wdGlvbnMpO1xuICB9XG4gIG92ZXJyaWRlIG1ldGhvZHMhOiB7XG4gICAgW2sgaW4gRXh0cmFjdE1ldGhvZHM8QVtudW1iZXJdPl06IEV4dHJhY3RNZXRob2REZWZpbml0aW9uPEEsIGs+O1xuICB9O1xuICBvdmVycmlkZSBnZXRQYXN0RXZlbnRzKGV2ZW50OiBFKTogUHJvbWlzZTxHZW5lcmljRXZlbnREYXRhPEE+W10+O1xuICBvdmVycmlkZSBnZXRQYXN0RXZlbnRzKFxuICAgIGV2ZW50OiBFLFxuICAgIG9wdGlvbnM6IFBhc3RFdmVudE9wdGlvbnMsXG4gICAgY2FsbGJhY2s6IChlcnJvcjogRXJyb3IsIGV2ZW50OiBFdmVudERhdGEpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxHZW5lcmljRXZlbnREYXRhPEE+W10+O1xuICBvdmVycmlkZSBnZXRQYXN0RXZlbnRzKFxuICAgIGV2ZW50OiBFLFxuICAgIG9wdGlvbnM6IFBhc3RFdmVudE9wdGlvbnNcbiAgKTogUHJvbWlzZTxHZW5lcmljRXZlbnREYXRhPEE+W10+O1xuICBvdmVycmlkZSBnZXRQYXN0RXZlbnRzKFxuICAgIGV2ZW50OiBFLFxuICAgIGNhbGxiYWNrOiAoZXJyb3I6IEVycm9yLCBldmVudDogRXZlbnREYXRhKSA9PiB2b2lkXG4gICk6IFByb21pc2U8R2VuZXJpY0V2ZW50RGF0YTxBPltdPjtcbiAgb3ZlcnJpZGUgZ2V0UGFzdEV2ZW50cyhcbiAgICBldmVudDogYW55LFxuICAgIG9wdGlvbnM/OiBhbnksXG4gICAgY2FsbGJhY2s/OiBhbnlcbiAgKTogUHJvbWlzZTxHZW5lcmljRXZlbnREYXRhPEE+W10+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0UGFzdEV2ZW50cyhldmVudCwgb3B0aW9ucywgY2FsbGJhY2spIGFzIGFueTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBHZW5lcmljRXZlbnREYXRhPEUgZXh0ZW5kcyBBbGxBQklzPiA9IEV2ZW50RGF0YSAmIEdlbmVyaWNFdmVudDxFPjtcblxudHlwZSBBQklFdmVudCA9IEFsbEFCSXNbbnVtYmVyXSAmIHsgdHlwZTogXCJldmVudFwiIH07XG5cbnR5cGUgR2VuZXJpY0V2ZW50PFxuICBBQkkgZXh0ZW5kcyBBbGxBQklzLFxuICBFIGV4dGVuZHMgc3RyaW5nID0gRXh0cmFjdEV2ZW50czxBQklbbnVtYmVyXT5cbiAgPiA9IHtcbiAgICBldmVudDogRTtcbiAgICByZXR1cm5WYWx1ZXM6IEV4dHJhY3RSZXR1cm5WYWx1ZXM8QUJJRXZlbnQgJiB7IG5hbWU6IEUgfT47XG4gIH07XG5cbnR5cGUgRXh0cmFjdFJldHVyblZhbHVlczxFIGV4dGVuZHMgQUJJRXZlbnQ+ID0gRXh0cmFjdElucHV0VHlwZTxcbiAgRVtcImlucHV0c1wiXVtudW1iZXJdXG4+O1xuXG50eXBlIEV4dHJhY3RJbnB1dFR5cGU8SSBleHRlbmRzIEFCSUV2ZW50W1wiaW5wdXRzXCJdW251bWJlcl0+ID0ge1xuICBbayBpbiBJW1wibmFtZVwiXV06IE1hcFR5cGVUb0pTPFxuICAgIFR5cGVPckludGVybmFsVHlwZTxJPixcbiAgICBJWydjb21wb25lbnRzJ11cbiAgPjtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxnQkFBQSxHQUFBQyxPQUFBO0FBSzJCLFNBQUFDLGdCQUFBQyxRQUFBLEVBQUFDLFdBQUEsVUFBQUQsUUFBQSxZQUFBQyxXQUFBLGVBQUFDLFNBQUE7QUFBQSxTQUFBQyxrQkFBQUMsTUFBQSxFQUFBQyxLQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBRCxLQUFBLENBQUFFLE1BQUEsRUFBQUQsQ0FBQSxVQUFBRSxVQUFBLEdBQUFILEtBQUEsQ0FBQUMsQ0FBQSxHQUFBRSxVQUFBLENBQUFDLFVBQUEsR0FBQUQsVUFBQSxDQUFBQyxVQUFBLFdBQUFELFVBQUEsQ0FBQUUsWUFBQSx3QkFBQUYsVUFBQSxFQUFBQSxVQUFBLENBQUFHLFFBQUEsU0FBQUMsTUFBQSxDQUFBQyxjQUFBLENBQUFULE1BQUEsRUFBQVUsY0FBQSxDQUFBTixVQUFBLENBQUFPLEdBQUEsR0FBQVAsVUFBQTtBQUFBLFNBQUFRLGFBQUFmLFdBQUEsRUFBQWdCLFVBQUEsRUFBQUMsV0FBQSxRQUFBRCxVQUFBLEVBQUFkLGlCQUFBLENBQUFGLFdBQUEsQ0FBQWtCLFNBQUEsRUFBQUYsVUFBQSxPQUFBQyxXQUFBLEVBQUFmLGlCQUFBLENBQUFGLFdBQUEsRUFBQWlCLFdBQUEsR0FBQU4sTUFBQSxDQUFBQyxjQUFBLENBQUFaLFdBQUEsaUJBQUFVLFFBQUEsbUJBQUFWLFdBQUE7QUFBQSxTQUFB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
|
|
41
|
+
exports.GenericContract = GenericContract;
|
|
42
|
+
var _default = GenericContract;
|
|
43
|
+
exports.default = _default;
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2ViM0V0aENvbnRyYWN0IiwicmVxdWlyZSIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiaSIsImxlbmd0aCIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwicHJvdG90eXBlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJOdW1iZXIiLCJfZ2V0IiwiUmVmbGVjdCIsImdldCIsImJpbmQiLCJwcm9wZXJ0eSIsInJlY2VpdmVyIiwiYmFzZSIsIl9zdXBlclByb3BCYXNlIiwiZGVzYyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImFyZ3VtZW50cyIsInZhbHVlIiwiYXBwbHkiLCJvYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsIl9nZXRQcm90b3R5cGVPZiIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwiX3NldFByb3RvdHlwZU9mIiwibyIsInAiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl9jcmVhdGVTdXBlciIsIkRlcml2ZWQiLCJoYXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIl9jcmVhdGVTdXBlckludGVybmFsIiwiU3VwZXIiLCJyZXN1bHQiLCJOZXdUYXJnZXQiLCJjb25zdHJ1Y3QiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsInNlbGYiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJzaGFtIiwiUHJveHkiLCJCb29sZWFuIiwidmFsdWVPZiIsImUiLCJnZXRQcm90b3R5cGVPZiIsIkdlbmVyaWNDb250cmFjdCIsIl9Db250cmFjdCIsIl9zdXBlciIsImpzb25JbnRlcmZhY2UiLCJhZGRyZXNzIiwib3B0aW9ucyIsImdldFBhc3RFdmVudHMiLCJldmVudCIsImNhbGxiYWNrIiwiQ29udHJhY3QiLCJleHBvcnRzIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVscy9HZW5lcmljQ29udHJhY3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLW5vY2hlY2tcbmltcG9ydCB7XG4gIENvbnRyYWN0LFxuICBDb250cmFjdE9wdGlvbnMsXG4gIEV2ZW50RGF0YSxcbiAgUGFzdEV2ZW50T3B0aW9ucyxcbn0gZnJvbSBcIndlYjMtZXRoLWNvbnRyYWN0XCI7XG5pbXBvcnQgeyBBYmlJdGVtIH0gZnJvbSBcIndlYjMtdXRpbHNcIjtcblxuZXhwb3J0IHR5cGUgQWxsQUJJcyA9IHJlYWRvbmx5IGFueVtdO1xuXG50eXBlIEV4dHJhY3RNZXRob2RzPEEgZXh0ZW5kcyBBbGxBQklzW251bWJlcl0+ID0gQSBleHRlbmRzIHtcbiAgdHlwZTogXCJmdW5jdGlvblwiO1xufVxuICA/IEFbXCJuYW1lXCJdXG4gIDogbmV2ZXI7XG5cbnR5cGUgRXh0cmFjdEV2ZW50czxBIGV4dGVuZHMgQWxsQUJJc1tudW1iZXJdPiA9IEEgZXh0ZW5kcyB7XG4gIHR5cGU6IFwiZXZlbnRcIjtcbn1cbiAgPyBBW1wibmFtZVwiXVxuICA6IG5ldmVyO1xuXG50eXBlIFR5cGVPckludGVybmFsVHlwZTxUPiA9IFRbJ2ludGVybmFsVHlwZSddIGV4dGVuZHMgdW5rbm93biA/IFRbJ3R5cGUnXSA6IFRbJ2ludGVybmFsVHlwZSddXG5cbmV4cG9ydCB0eXBlIE1hcFR5cGVUb0pTPEwsIEM+ID1cbiAgTCBleHRlbmRzIFwidHVwbGVbXVwiID8gVHVwbGlmeVVuaW9uPENbbnVtYmVyXSwgQ1tudW1iZXJdWyduYW1lJ10+W10gOlxuICBMIGV4dGVuZHMgXCJhZGRyZXNzXCIgfCBcInVpbnQyNTZcIiB8IFwidWludDEyOFwiIHwgXCJ1aW50OFwiIHwgXCJzdHJpbmdcIiB8IFwiYnl0ZXMzMlwiIHwgXCJ1aW50NjRcIlxuICA/IHN0cmluZ1xuICA6IEwgZXh0ZW5kcyBcInVpbnQyNTZbXVwiIHwgXCJzdHJpbmdbXVwiXG4gID8gc3RyaW5nW11cbiAgOiBMIGV4dGVuZHMgXCJib29sXCJcbiAgPyBib29sZWFuXG4gIDogTCBleHRlbmRzICd0dXBsZSdcbiAgPyBUdXBsaWZ5VW5pb248Q1tudW1iZXJdLCBDW251bWJlcl1bJ25hbWUnXT5cbiAgOiB1bmtub3duO1xuXG50eXBlIEV4dHJhY3RGcm9tT2JqPFIgZXh0ZW5kcyAoQWxsQUJJc1tudW1iZXJdICYgeyB0eXBlOiBcImZ1bmN0aW9uXCIgfSk+ID0ge1xuICBbSyBpbiBSW1wib3V0cHV0c1wiXVtudW1iZXJdW1wibmFtZVwiXV06IE1hcFR5cGVUb0pTPFxuICAgIFR5cGVPckludGVybmFsVHlwZTwoUltcIm91dHB1dHNcIl1bbnVtYmVyXSAmIHtcbiAgICAgIG5hbWU6IEs7XG4gICAgfSk+LFxuICAgIChSW1wib3V0cHV0c1wiXVtudW1iZXJdICYge1xuICAgICAgbmFtZTogSztcbiAgICB9KVtcImNvbXBvbmVudHNcIl1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgRXh0cmFjdE1ldGhvZERlZmluaXRpb248XG4gIEEgZXh0ZW5kcyBBbGxBQklzLFxuICBOIGV4dGVuZHMgKEFsbEFCSXNbbnVtYmVyXSAmIHsgdHlwZTogXCJmdW5jdGlvblwiIH0pW1wibmFtZVwiXSxcbiAgUiA9IEFbbnVtYmVyXSAmIHtcbiAgICB0eXBlOiBcImZ1bmN0aW9uXCI7XG4gICAgbmFtZTogTjtcbiAgfVxuICA+ID0gKFxuICAgIC4uLmFyZ3M6IFR1cGxpZnlVbmlvbjxcbiAgICAgIChBW251bWJlcl0gJiB7XG4gICAgICAgIHR5cGU6IFwiZnVuY3Rpb25cIjtcbiAgICAgICAgbmFtZTogTjtcbiAgICAgIH0pW1wiaW5wdXRzXCJdW251bWJlcl0sXG4gICAgICAoQVtudW1iZXJdICYge1xuICAgICAgICB0eXBlOiBcImZ1bmN0aW9uXCI7XG4gICAgICAgIG5hbWU6IE47XG4gICAgICB9KVtcImlucHV0c1wiXVtudW1iZXJdW1wibmFtZVwiXVxuICAgID5cbiAgKSA9PiB7XG4gICAgY2FsbDogKCkgPT4gUHJvbWlzZTxcbiAgICAgIFIgZXh0ZW5kcyB7IG91dHB1dHM6IHsgbGVuZ3RoOiAxIH0gfVxuICAgICAgPyBNYXBUeXBlVG9KUzxcbiAgICAgICAgVHlwZU9ySW50ZXJuYWxUeXBlPFJbXCJvdXRwdXRzXCJdWzBdPixcbiAgICAgICAgUltcIm91dHB1dHNcIl1bMF1bJ2NvbXBvbmVudHMnXVxuICAgICAgPlxuICAgICAgOiBSIGV4dGVuZHMgeyBvdXRwdXRzOiBhbnkgfVxuICAgICAgPyBFeHRyYWN0RnJvbU9iajxSPlxuICAgICAgOiB2b2lkXG4gICAgPjtcbiAgICBzZW5kOiAocHJvcDogeyBmcm9tOiBzdHJpbmcsIG1heFByaW9yaXR5RmVlUGVyR2FzPzogbnVtYmVyLCBnYXM/OiBudW1iZXIsIGdhc1ByaWNlPzogc3RyaW5nIH0pID0+IFByb21pc2U8dm9pZD47XG4gIH07XG5cbi8vIG9oIGJveSBkb24ndCBkbyB0aGlzXG50eXBlIFVuaW9uVG9JbnRlcnNlY3Rpb248VT4gPSAoVSBleHRlbmRzIGFueSA/IChrOiBVKSA9PiB2b2lkIDogbmV2ZXIpIGV4dGVuZHMgKFxuICBrOiBpbmZlciBJXG4pID0+IHZvaWRcbiAgPyBJXG4gIDogbmV2ZXI7XG50eXBlIExhc3RPZjxUPiA9IFVuaW9uVG9JbnRlcnNlY3Rpb248XG4gIFQgZXh0ZW5kcyBhbnkgPyAoKSA9PiBUIDogbmV2ZXJcbj4gZXh0ZW5kcyAoKSA9PiBpbmZlciBSXG4gID8gUlxuICA6IG5ldmVyO1xuXG4vLyBUUzQuMCtcbnR5cGUgUHVzaDxUIGV4dGVuZHMgYW55W10sIFY+ID0gWy4uLlQsIFZdO1xuXG4vLyBUUzQuMStcbmV4cG9ydCB0eXBlIFR1cGxpZnlVbmlvbjxcbiAgRlVOQ1MsXG4gIFQsXG4gIEwgPSBMYXN0T2Y8VD4sXG4gIE4gPSBbVF0gZXh0ZW5kcyBbbmV2ZXJdID8gdHJ1ZSA6IGZhbHNlXG4gID4gPSB0cnVlIGV4dGVuZHMgTlxuICA/IFtdXG4gIDogUHVzaDxcbiAgICBUdXBsaWZ5VW5pb248RlVOQ1MsIEV4Y2x1ZGU8VCwgTD4+LFxuICAgIE1hcFR5cGVUb0pTPFxuICAgICAgVHlwZU9ySW50ZXJuYWxUeXBlPChGVU5DUyAmIHsgbmFtZTogTCB9KT4sXG4gICAgICAoRlVOQ1MgJiB7IG5hbWU6IEwgfSlbJ2NvbXBvbmVudHMnXVxuICAgID5cbiAgPjtcblxuZXhwb3J0IGNsYXNzIEdlbmVyaWNDb250cmFjdDxcbiAgQSBleHRlbmRzIEFsbEFCSXMgPSBBbGxBQklzLFxuICBFIGV4dGVuZHMgc3RyaW5nID0gRXh0cmFjdEV2ZW50czxBW251bWJlcl0+IHwgXCJhbGxFdmVudHNcIlxuICA+IGV4dGVuZHMgQ29udHJhY3Qge1xuICBldmVudHMhOiBFeGNsdWRlPEUsIFwiYWxsRXZlbnRzXCI+O1xuICBjb25zdHJ1Y3Rvcihqc29uSW50ZXJmYWNlOiBBLCBhZGRyZXNzPzogc3RyaW5nLCBvcHRpb25zPzogQ29udHJhY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoanNvbkludGVyZmFjZSBhcyB1bmtub3duIGFzIEFiaUl0ZW1bXSwgYWRkcmVzcywgb3B0aW9ucyk7XG4gIH1cbiAgb3ZlcnJpZGUgbWV0aG9kcyE6IHtcbiAgICBbayBpbiBFeHRyYWN0TWV0aG9kczxBW251bWJlcl0+XTogRXh0cmFjdE1ldGhvZERlZmluaXRpb248QSwgaz47XG4gIH07XG4gIG92ZXJyaWRlIGdldFBhc3RFdmVudHMoZXZlbnQ6IEUpOiBQcm9taXNlPEdlbmVyaWNFdmVudERhdGE8QT5bXT47XG4gIG92ZXJyaWRlIGdldFBhc3RFdmVudHMoXG4gICAgZXZlbnQ6IEUsXG4gICAgb3B0aW9uczogUGFzdEV2ZW50T3B0aW9ucyxcbiAgICBjYWxsYmFjazogKGVycm9yOiBFcnJvciwgZXZlbnQ6IEV2ZW50RGF0YSkgPT4gdm9pZFxuICApOiBQcm9taXNlPEdlbmVyaWNFdmVudERhdGE8QT5bXT47XG4gIG92ZXJyaWRlIGdldFBhc3RFdmVudHMoXG4gICAgZXZlbnQ6IEUsXG4gICAgb3B0aW9uczogUGFzdEV2ZW50T3B0aW9uc1xuICApOiBQcm9taXNlPEdlbmVyaWNFdmVudERhdGE8QT5bXT47XG4gIG92ZXJyaWRlIGdldFBhc3RFdmVudHMoXG4gICAgZXZlbnQ6IEUsXG4gICAgY2FsbGJhY2s6IChlcnJvcjogRXJyb3IsIGV2ZW50OiBFdmVudERhdGEpID0+IHZvaWRcbiAgKTogUHJvbWlzZTxHZW5lcmljRXZlbnREYXRhPEE+W10+O1xuICBvdmVycmlkZSBnZXRQYXN0RXZlbnRzKFxuICAgIGV2ZW50OiBhbnksXG4gICAgb3B0aW9ucz86IGFueSxcbiAgICBjYWxsYmFjaz86IGFueVxuICApOiBQcm9taXNlPEdlbmVyaWNFdmVudERhdGE8QT5bXT4ge1xuICAgIHJldHVybiBzdXBlci5nZXRQYXN0RXZlbnRzKGV2ZW50LCBvcHRpb25zLCBjYWxsYmFjaykgYXMgYW55O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdlbmVyaWNDb250cmFjdDtcblxuZXhwb3J0IHR5cGUgR2VuZXJpY0V2ZW50RGF0YTxFIGV4dGVuZHMgQWxsQUJJcz4gPSBFdmVudERhdGEgJiBHZW5lcmljRXZlbnQ8RT47XG5cbnR5cGUgQUJJRXZlbnQgPSBBbGxBQklzW251bWJlcl0gJiB7IHR5cGU6IFwiZXZlbnRcIiB9O1xuXG50eXBlIEdlbmVyaWNFdmVudDxcbiAgQUJJIGV4dGVuZHMgQWxsQUJJcyxcbiAgRSBleHRlbmRzIHN0cmluZyA9IEV4dHJhY3RFdmVudHM8QUJJW251bWJlcl0+XG4gID4gPSB7XG4gICAgZXZlbnQ6IEU7XG4gICAgcmV0dXJuVmFsdWVzOiBFeHRyYWN0UmV0dXJuVmFsdWVzPEFCSUV2ZW50ICYgeyBuYW1lOiBFIH0+O1xuICB9O1xuXG50eXBlIEV4dHJhY3RSZXR1cm5WYWx1ZXM8RSBleHRlbmRzIEFCSUV2ZW50PiA9IEV4dHJhY3RJbnB1dFR5cGU8XG4gIEVbXCJpbnB1dHNcIl1bbnVtYmVyXVxuPjtcblxudHlwZSBFeHRyYWN0SW5wdXRUeXBlPEkgZXh0ZW5kcyBBQklFdmVudFtcImlucHV0c1wiXVtudW1iZXJdPiA9IHtcbiAgW2sgaW4gSVtcIm5hbWVcIl1dOiBNYXBUeXBlVG9KUzxcbiAgICBUeXBlT3JJbnRlcm5hbFR5cGU8ST4sXG4gICAgSVsnY29tcG9uZW50cyddXG4gID47XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUsyQixTQUFBQyxnQkFBQUMsUUFBQSxFQUFBQyxXQUFBLFVBQUFELFFBQUEsWUFBQUMsV0FBQSxlQUFBQyxTQUFBO0FBQUEsU0FBQUMsa0JBQUFDLE1BQUEsRUFBQUMsS0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUQsS0FBQSxDQUFBRSxNQUFBLEVBQUFELENBQUEsVUFBQUUsVUFBQSxHQUFBSCxLQUFBLENBQUFDLENBQUEsR0FBQUUsVUFBQSxDQUFBQyxVQUFBLEdBQUFELFVBQUEsQ0FBQUMsVUFBQSxXQUFBRCxVQUFBLENBQUFFLFlBQUEsd0JBQUFGLFVBQUEsRUFBQUEsVUFBQSxDQUFBRyxRQUFBLFNBQUFDLE1BQUEsQ0FBQUMsY0FBQSxDQUFBVCxNQUFBLEVBQUFVLGNBQUEsQ0FBQU4sVUFBQSxDQUFBTyxHQUFBLEdBQUFQLFVBQUE7QUFBQSxTQUFBUSxhQUFBZixXQUFBLEVBQUFnQixVQUFBLEVBQUFDLFdBQUEsUUFBQUQsVUFBQSxFQUFBZCxpQkFBQSxDQUFBRixXQUFBLENBQUFrQixTQUFBLEVBQUFGLFVBQUEsT0FBQUMsV0FBQSxFQUFBZixpQkFBQSxDQUFBRixXQUFBLEVBQUFpQixXQUFBLEdBQUFOLE1B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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComponentProps, PropsWithChildren } from "react";
|
|
1
|
+
import React, { ComponentProps, PropsWithChildren } from "react";
|
|
2
2
|
export declare function extractAllPossibilitiesFromEnumProp<C extends (...args: any[]) => any, K extends keyof P, P extends ComponentProps<C> = ComponentProps<C>>(component: C, propName: K): P[K][];
|
|
3
3
|
export declare function SideBySideContainer({ children, exampleName, }: PropsWithChildren<{
|
|
4
4
|
exampleName: string;
|
|
5
|
-
}>): JSX.Element;
|
|
5
|
+
}>): React.JSX.Element;
|
package/dist/type-utils.d.ts
CHANGED
|
@@ -41,4 +41,9 @@ export declare type FieldArrayPathValue<TFieldValues extends FieldValues, TField
|
|
|
41
41
|
export declare type FieldPathValues<TFieldValues extends FieldValues, TPath extends FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[]> = {} & {
|
|
42
42
|
[K in keyof TPath]: FieldPathValue<TFieldValues, TPath[K] & FieldPath<TFieldValues>>;
|
|
43
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Returns the type U when this type is resolved
|
|
46
|
+
* Or the fallback type F when type is no resolved
|
|
47
|
+
*/
|
|
48
|
+
export declare type UnresolvableOr<U, F> = keyof U extends U ? F : U;
|
|
44
49
|
export {};
|
package/dist/type-utils.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGUtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBGaWVsZFZhbHVlcyA9IGFueTtcclxudHlwZSBOZXN0ZWRWYWx1ZSA9IGFueTtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcmltaXRpdmUgPSBudWxsIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN5bWJvbCB8IGJpZ2ludDtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBFbXB0eU9iamVjdCA9IHtcclxuICAgIFtLIGluIHN0cmluZyB8IG51bWJlcl06IG5ldmVyO1xyXG59O1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE5vblVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTGl0ZXJhbFVuaW9uPFQgZXh0ZW5kcyBVLCBVIGV4dGVuZHMgUHJpbWl0aXZlPiA9IFQgfCAoVSAmIHtcclxuICAgIF8/OiBuZXZlcjtcclxufSk7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBBcnJheTxEZWVwUGFydGlhbDxVPj4gOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+IDogVCBleHRlbmRzIHtcclxuICAgIFtrZXkgaW4ga2V5b2YgVF06IFRba2V5XTtcclxufSA/IHtcclxuICAgIFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT47XHJcbn0gOiBUO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIElzQW55PFQ+ID0gYm9vbGVhbiBleHRlbmRzIChUIGV4dGVuZHMgbmV2ZXIgPyB0cnVlIDogZmFsc2UpID8gdHJ1ZSA6IGZhbHNlO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIERlZXBNYXA8VCwgVFZhbHVlPiA9IHtcclxuICAgIFtLIGluIGtleW9mIFRdPzogSXNBbnk8VFtLXT4gZXh0ZW5kcyB0cnVlID8gYW55IDogTm9uTnVsbGFibGU8VFtLXT4gZXh0ZW5kcyBOZXN0ZWRWYWx1ZSB8IERhdGUgfCBGaWxlTGlzdCB8IEZpbGUgPyBUVmFsdWUgOiBOb25VbmRlZmluZWQ8VFtLXT4gZXh0ZW5kcyBvYmplY3QgfCBudWxsID8gRGVlcE1hcDxUW0tdLCBUVmFsdWU+IDogTm9uVW5kZWZpbmVkPFRbS10+IGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBJc0FueTxVPiBleHRlbmRzIHRydWUgPyBBcnJheTxhbnk+IDogVSBleHRlbmRzIE5lc3RlZFZhbHVlIHwgRGF0ZSB8IEZpbGVMaXN0ID8gQXJyYXk8VFZhbHVlPiA6IFUgZXh0ZW5kcyBvYmplY3QgPyBBcnJheTxEZWVwTWFwPFUsIFRWYWx1ZT4+IDogQXJyYXk8VFZhbHVlPiA6IFRWYWx1ZTtcclxufTtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBJc0ZsYXRPYmplY3Q8VCBleHRlbmRzIG9iamVjdD4gPSBFeHRyYWN0PEV4Y2x1ZGU8VFtrZXlvZiBUXSwgTmVzdGVkVmFsdWUgfCBEYXRlIHwgRmlsZUxpc3Q+LCBhbnlbXSB8IG9iamVjdD4gZXh0ZW5kcyBuZXZlciA/IHRydWUgOiBmYWxzZTtcclxuZGVjbGFyZSB0eXBlIElzVHVwbGU8VCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8YW55Pj4gPSBudW1iZXIgZXh0ZW5kcyBUWydsZW5ndGgnXSA/IGZhbHNlIDogdHJ1ZTtcclxuZGVjbGFyZSB0eXBlIFR1cGxlS2V5PFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGFueT4+ID0gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBhbnlbXT47XHJcbmRlY2xhcmUgdHlwZSBBcnJheUtleSA9IG51bWJlcjtcclxuZGVjbGFyZSB0eXBlIFBhdGhJbXBsPEsgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIsIFY+ID0gViBleHRlbmRzIFByaW1pdGl2ZSA/IGAke0t9YCA6IGAke0t9YCB8IGAke0t9LiR7UGF0aDxWPn1gO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFBhdGg8VD4gPSBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWPiA/IElzVHVwbGU8VD4gZXh0ZW5kcyB0cnVlID8ge1xyXG4gICAgW0sgaW4gVHVwbGVLZXk8VD5dLT86IFBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W1R1cGxlS2V5PFQ+XSA6IFBhdGhJbXBsPEFycmF5S2V5LCBWPiA6IHtcclxuICAgIFtLIGluIGtleW9mIFRdLT86IFBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W2tleW9mIFRdO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpZWxkUGF0aDxURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcz4gPSBQYXRoPFRGaWVsZFZhbHVlcz47XHJcbmRlY2xhcmUgdHlwZSBBcnJheVBhdGhJbXBsPEsgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIsIFY+ID0gViBleHRlbmRzIFByaW1pdGl2ZSA/IG5ldmVyIDogViBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBVIGV4dGVuZHMgUHJpbWl0aXZlID8gbmV2ZXIgOiBgJHtLfWAgfCBgJHtLfS4ke0FycmF5UGF0aDxWPn1gIDogYCR7S30uJHtBcnJheVBhdGg8Vj59YDtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBBcnJheVBhdGg8VD4gPSBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWPiA/IElzVHVwbGU8VD4gZXh0ZW5kcyB0cnVlID8ge1xyXG4gICAgW0sgaW4gVHVwbGVLZXk8VD5dLT86IEFycmF5UGF0aEltcGw8SyAmIHN0cmluZywgVFtLXT47XHJcbn1bVHVwbGVLZXk8VD5dIDogQXJyYXlQYXRoSW1wbDxBcnJheUtleSwgVj4gOiB7XHJcbiAgICBbSyBpbiBrZXlvZiBUXS0/OiBBcnJheVBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W2tleW9mIFRdO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpZWxkQXJyYXlQYXRoPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzPiA9IEFycmF5UGF0aDxURmllbGRWYWx1ZXM+O1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFBhdGhWYWx1ZTxULCBQIGV4dGVuZHMgUGF0aDxUPiB8IEFycmF5UGF0aDxUPj4gPSBQIGV4dGVuZHMgYCR7aW5mZXIgS30uJHtpbmZlciBSfWAgPyBLIGV4dGVuZHMga2V5b2YgVCA/IFIgZXh0ZW5kcyBQYXRoPFRbS10+ID8gUGF0aFZhbHVlPFRbS10sIFI+IDogbmV2ZXIgOiBLIGV4dGVuZHMgYCR7QXJyYXlLZXl9YCA/IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFY+ID8gUGF0aFZhbHVlPFYsIFIgJiBQYXRoPFY+PiA6IG5ldmVyIDogbmV2ZXIgOiBQIGV4dGVuZHMga2V5b2YgVCA/IFRbUF0gOiBQIGV4dGVuZHMgYCR7QXJyYXlLZXl9YCA/IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFY+ID8gViA6IG5ldmVyIDogbmV2ZXI7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmllbGRQYXRoVmFsdWU8VEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMsIFRGaWVsZFBhdGggZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPj4gPSBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBURmllbGRQYXRoPjtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGaWVsZEFycmF5UGF0aFZhbHVlPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBURmllbGRBcnJheVBhdGggZXh0ZW5kcyBGaWVsZEFycmF5UGF0aDxURmllbGRWYWx1ZXM+PiA9IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFRGaWVsZEFycmF5UGF0aD47XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmllbGRQYXRoVmFsdWVzPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBUUGF0aCBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+W10gfCByZWFkb25seSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPltdPiA9IHt9ICYge1xyXG4gICAgW0sgaW4ga2V5b2YgVFBhdGhdOiBGaWVsZFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFRQYXRoW0tdICYgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4+
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGUtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBGaWVsZFZhbHVlcyA9IGFueTtcclxudHlwZSBOZXN0ZWRWYWx1ZSA9IGFueTtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBQcmltaXRpdmUgPSBudWxsIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHN5bWJvbCB8IGJpZ2ludDtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBFbXB0eU9iamVjdCA9IHtcclxuICAgIFtLIGluIHN0cmluZyB8IG51bWJlcl06IG5ldmVyO1xyXG59O1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE5vblVuZGVmaW5lZDxUPiA9IFQgZXh0ZW5kcyB1bmRlZmluZWQgPyBuZXZlciA6IFQ7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgTGl0ZXJhbFVuaW9uPFQgZXh0ZW5kcyBVLCBVIGV4dGVuZHMgUHJpbWl0aXZlPiA9IFQgfCAoVSAmIHtcclxuICAgIF8/OiBuZXZlcjtcclxufSk7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBBcnJheTxEZWVwUGFydGlhbDxVPj4gOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+IDogVCBleHRlbmRzIHtcclxuICAgIFtrZXkgaW4ga2V5b2YgVF06IFRba2V5XTtcclxufSA/IHtcclxuICAgIFtLIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtLXT47XHJcbn0gOiBUO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIElzQW55PFQ+ID0gYm9vbGVhbiBleHRlbmRzIChUIGV4dGVuZHMgbmV2ZXIgPyB0cnVlIDogZmFsc2UpID8gdHJ1ZSA6IGZhbHNlO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIERlZXBNYXA8VCwgVFZhbHVlPiA9IHtcclxuICAgIFtLIGluIGtleW9mIFRdPzogSXNBbnk8VFtLXT4gZXh0ZW5kcyB0cnVlID8gYW55IDogTm9uTnVsbGFibGU8VFtLXT4gZXh0ZW5kcyBOZXN0ZWRWYWx1ZSB8IERhdGUgfCBGaWxlTGlzdCB8IEZpbGUgPyBUVmFsdWUgOiBOb25VbmRlZmluZWQ8VFtLXT4gZXh0ZW5kcyBvYmplY3QgfCBudWxsID8gRGVlcE1hcDxUW0tdLCBUVmFsdWU+IDogTm9uVW5kZWZpbmVkPFRbS10+IGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBJc0FueTxVPiBleHRlbmRzIHRydWUgPyBBcnJheTxhbnk+IDogVSBleHRlbmRzIE5lc3RlZFZhbHVlIHwgRGF0ZSB8IEZpbGVMaXN0ID8gQXJyYXk8VFZhbHVlPiA6IFUgZXh0ZW5kcyBvYmplY3QgPyBBcnJheTxEZWVwTWFwPFUsIFRWYWx1ZT4+IDogQXJyYXk8VFZhbHVlPiA6IFRWYWx1ZTtcclxufTtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBJc0ZsYXRPYmplY3Q8VCBleHRlbmRzIG9iamVjdD4gPSBFeHRyYWN0PEV4Y2x1ZGU8VFtrZXlvZiBUXSwgTmVzdGVkVmFsdWUgfCBEYXRlIHwgRmlsZUxpc3Q+LCBhbnlbXSB8IG9iamVjdD4gZXh0ZW5kcyBuZXZlciA/IHRydWUgOiBmYWxzZTtcclxuZGVjbGFyZSB0eXBlIElzVHVwbGU8VCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8YW55Pj4gPSBudW1iZXIgZXh0ZW5kcyBUWydsZW5ndGgnXSA/IGZhbHNlIDogdHJ1ZTtcclxuZGVjbGFyZSB0eXBlIFR1cGxlS2V5PFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGFueT4+ID0gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBhbnlbXT47XHJcbmRlY2xhcmUgdHlwZSBBcnJheUtleSA9IG51bWJlcjtcclxuZGVjbGFyZSB0eXBlIFBhdGhJbXBsPEsgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIsIFY+ID0gViBleHRlbmRzIFByaW1pdGl2ZSA/IGAke0t9YCA6IGAke0t9YCB8IGAke0t9LiR7UGF0aDxWPn1gO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFBhdGg8VD4gPSBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWPiA/IElzVHVwbGU8VD4gZXh0ZW5kcyB0cnVlID8ge1xyXG4gICAgW0sgaW4gVHVwbGVLZXk8VD5dLT86IFBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W1R1cGxlS2V5PFQ+XSA6IFBhdGhJbXBsPEFycmF5S2V5LCBWPiA6IHtcclxuICAgIFtLIGluIGtleW9mIFRdLT86IFBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W2tleW9mIFRdO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpZWxkUGF0aDxURmllbGRWYWx1ZXMgZXh0ZW5kcyBGaWVsZFZhbHVlcz4gPSBQYXRoPFRGaWVsZFZhbHVlcz47XHJcbmRlY2xhcmUgdHlwZSBBcnJheVBhdGhJbXBsPEsgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIsIFY+ID0gViBleHRlbmRzIFByaW1pdGl2ZSA/IG5ldmVyIDogViBleHRlbmRzIFJlYWRvbmx5QXJyYXk8aW5mZXIgVT4gPyBVIGV4dGVuZHMgUHJpbWl0aXZlID8gbmV2ZXIgOiBgJHtLfWAgfCBgJHtLfS4ke0FycmF5UGF0aDxWPn1gIDogYCR7S30uJHtBcnJheVBhdGg8Vj59YDtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBBcnJheVBhdGg8VD4gPSBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBWPiA/IElzVHVwbGU8VD4gZXh0ZW5kcyB0cnVlID8ge1xyXG4gICAgW0sgaW4gVHVwbGVLZXk8VD5dLT86IEFycmF5UGF0aEltcGw8SyAmIHN0cmluZywgVFtLXT47XHJcbn1bVHVwbGVLZXk8VD5dIDogQXJyYXlQYXRoSW1wbDxBcnJheUtleSwgVj4gOiB7XHJcbiAgICBbSyBpbiBrZXlvZiBUXS0/OiBBcnJheVBhdGhJbXBsPEsgJiBzdHJpbmcsIFRbS10+O1xyXG59W2tleW9mIFRdO1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpZWxkQXJyYXlQYXRoPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzPiA9IEFycmF5UGF0aDxURmllbGRWYWx1ZXM+O1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFBhdGhWYWx1ZTxULCBQIGV4dGVuZHMgUGF0aDxUPiB8IEFycmF5UGF0aDxUPj4gPSBQIGV4dGVuZHMgYCR7aW5mZXIgS30uJHtpbmZlciBSfWAgPyBLIGV4dGVuZHMga2V5b2YgVCA/IFIgZXh0ZW5kcyBQYXRoPFRbS10+ID8gUGF0aFZhbHVlPFRbS10sIFI+IDogbmV2ZXIgOiBLIGV4dGVuZHMgYCR7QXJyYXlLZXl9YCA/IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFY+ID8gUGF0aFZhbHVlPFYsIFIgJiBQYXRoPFY+PiA6IG5ldmVyIDogbmV2ZXIgOiBQIGV4dGVuZHMga2V5b2YgVCA/IFRbUF0gOiBQIGV4dGVuZHMgYCR7QXJyYXlLZXl9YCA/IFQgZXh0ZW5kcyBSZWFkb25seUFycmF5PGluZmVyIFY+ID8gViA6IG5ldmVyIDogbmV2ZXI7XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmllbGRQYXRoVmFsdWU8VEZpZWxkVmFsdWVzIGV4dGVuZHMgRmllbGRWYWx1ZXMsIFRGaWVsZFBhdGggZXh0ZW5kcyBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPj4gPSBQYXRoVmFsdWU8VEZpZWxkVmFsdWVzLCBURmllbGRQYXRoPjtcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGaWVsZEFycmF5UGF0aFZhbHVlPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBURmllbGRBcnJheVBhdGggZXh0ZW5kcyBGaWVsZEFycmF5UGF0aDxURmllbGRWYWx1ZXM+PiA9IFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFRGaWVsZEFycmF5UGF0aD47XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRmllbGRQYXRoVmFsdWVzPFRGaWVsZFZhbHVlcyBleHRlbmRzIEZpZWxkVmFsdWVzLCBUUGF0aCBleHRlbmRzIEZpZWxkUGF0aDxURmllbGRWYWx1ZXM+W10gfCByZWFkb25seSBGaWVsZFBhdGg8VEZpZWxkVmFsdWVzPltdPiA9IHt9ICYge1xyXG4gICAgW0sgaW4ga2V5b2YgVFBhdGhdOiBGaWVsZFBhdGhWYWx1ZTxURmllbGRWYWx1ZXMsIFRQYXRoW0tdICYgRmllbGRQYXRoPFRGaWVsZFZhbHVlcz4+O1xyXG59O1xyXG4vKipcclxuICogUmV0dXJucyB0aGUgdHlwZSBVIHdoZW4gdGhpcyB0eXBlIGlzIHJlc29sdmVkXHJcbiAqIE9yIHRoZSBmYWxsYmFjayB0eXBlIEYgd2hlbiB0eXBlIGlzIG5vIHJlc29sdmVkXHJcbiAqL1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFVucmVzb2x2YWJsZU9yPFUsIEY+ID0ga2V5b2YgVSBleHRlbmRzIFUgPyBGIDogVVxyXG5leHBvcnQge307XHJcbiJdLCJtYXBwaW5ncyI6IiJ9
|