@sapui5/sap.fe.templates 1.139.0 → 1.140.0
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/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListComponent.js +4 -1
- package/src/sap/fe/templates/ListComponent.ts +4 -0
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +46 -3
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +45 -2
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.js +4 -1
- package/src/sap/fe/templates/ObjectPage/Component.ts +4 -0
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +5 -2
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +7 -1
- package/src/sap/fe/templates/ObjectPage/card/BaseCardContentProvider.js +1 -2
- package/src/sap/fe/templates/ObjectPage/card/BaseCardContentProvider.ts +0 -1
- package/src/sap/fe/templates/ObjectPage/card/Generator.js +1 -2
- package/src/sap/fe/templates/ObjectPage/card/Generator.ts +0 -1
- package/src/sap/fe/templates/ObjectPage/card/facets/HeaderContent.js +1 -2
- package/src/sap/fe/templates/ObjectPage/card/facets/HeaderContent.ts +0 -1
- package/src/sap/fe/templates/ObjectPage/card/facets/HeaderTitle.js +1 -2
- package/src/sap/fe/templates/ObjectPage/card/facets/HeaderTitle.ts +0 -1
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +15 -1
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +16 -0
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/messagebundle_de.properties +2 -2
- package/src/sap/fe/templates/messagebundle_es.properties +1 -1
|
@@ -57,6 +57,7 @@ import type Popover from "sap/m/Popover";
|
|
|
57
57
|
import type ToolbarSpacer from "sap/m/ToolbarSpacer";
|
|
58
58
|
import Device from "sap/ui/Device";
|
|
59
59
|
import type UI5Event from "sap/ui/base/Event";
|
|
60
|
+
import type { CommandExecution$ExecuteEvent } from "sap/ui/core/CommandExecution";
|
|
60
61
|
import type Control from "sap/ui/core/Control";
|
|
61
62
|
import UI5Element from "sap/ui/core/Element";
|
|
62
63
|
import type InvisibleText from "sap/ui/core/InvisibleText";
|
|
@@ -102,6 +103,7 @@ export type BindingParams = {
|
|
|
102
103
|
};
|
|
103
104
|
|
|
104
105
|
const ProgrammingModel = FELibrary.ProgrammingModel;
|
|
106
|
+
|
|
105
107
|
@defineUI5Class("sap.fe.templates.ObjectPage.ObjectPageController")
|
|
106
108
|
class ObjectPageController extends PageController {
|
|
107
109
|
oView!: FEView;
|
|
@@ -1211,6 +1213,9 @@ class ObjectPageController extends PageController {
|
|
|
1211
1213
|
);
|
|
1212
1214
|
}
|
|
1213
1215
|
});
|
|
1216
|
+
const isSkipBindingToView = skipBindingToView as unknown as CommandExecution$ExecuteEvent;
|
|
1217
|
+
const isStandardSave =
|
|
1218
|
+
isSkipBindingToView && typeof isSkipBindingToView == "object" && isSkipBindingToView.getSource().getCommand() === "Save";
|
|
1214
1219
|
|
|
1215
1220
|
const bindings = await Promise.all(awaitCreateDocuments);
|
|
1216
1221
|
// We need to either reject or resolve a promise here and return it since this save
|
|
@@ -1223,7 +1228,8 @@ class ObjectPageController extends PageController {
|
|
|
1223
1228
|
bExecuteSideEffectsOnError: executeSideEffectsOnError,
|
|
1224
1229
|
bindings: bindings as unknown as ODataListBinding[],
|
|
1225
1230
|
mergePatchDraft: this.mergePatchDraft,
|
|
1226
|
-
skipBindingToView
|
|
1231
|
+
skipBindingToView,
|
|
1232
|
+
isStandardSave
|
|
1227
1233
|
});
|
|
1228
1234
|
} catch (error: unknown) {
|
|
1229
1235
|
// If the saveDocument in editFlow returns errors we need
|
|
@@ -30,7 +30,6 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/helpers/AdaptiveCardEx
|
|
|
30
30
|
* Adaptive card json generator.
|
|
31
31
|
* @param convertedTypes Converted Metadata.
|
|
32
32
|
* @param config Card Configuration.
|
|
33
|
-
* @experimental
|
|
34
33
|
*/
|
|
35
34
|
let BaseCardContentProvider = /*#__PURE__*/function () {
|
|
36
35
|
function BaseCardContentProvider(convertedTypes, config) {
|
|
@@ -226,4 +225,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/core/helpers/AdaptiveCardEx
|
|
|
226
225
|
_exports = BaseCardContentProvider;
|
|
227
226
|
return _exports;
|
|
228
227
|
}, false);
|
|
229
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2FyZENvbnRlbnRQcm92aWRlciIsImNvbnZlcnRlZFR5cGVzIiwiY29uZmlnIiwicGF0aHNUb1F1ZXJ5IiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRQYXRoc1RvUXVlcnkiLCJBcnJheSIsImZyb20iLCJTZXQiLCJhZGRQYXRoc1RvUXVlcnkiLCJwYXRoc1RvQWRkIiwiZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleSIsIm5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiY29udGV4dFBhdGgiLCJyZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZSIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwiZ2V0QmluZGluZ0ZvclByb3BlcnR5IiwiZmllbGRQYXRoIiwiZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZCIsInByb3BlcnR5UGF0aCIsImluY2x1ZGVzIiwicmVwbGFjZSIsImZvcm1hdFRleHRwcm9wZXJ0eSIsInByb3BlcnR5IiwidGV4dFByb3BlcnR5IiwidGV4dEV4cHJlc3Npb24iLCJwcm9wZXJ0eUJpbmRpbmciLCJnZXRSZWxhdGl2ZVBhdGgiLCJnZXRUYXJnZXQiLCJ0ZXh0QXJyYW5nZW1lbnRUeXBlIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJ0b1N0cmluZyIsInRleHRCaW5kaW5nIiwiZ2V0VGV4dEJsb2NrVmlzaWJsaXR5Rm9yRGF0ZUZpZWxkIiwiYWRkaXRpb25hbFZhbHVlIiwiZXhwIiwiY29uc3RhbnQiLCJ0YXJnZXRJc1Byb3BlcnR5IiwiZWRtVHlwZSIsInR5cGUiLCJ2YWx1ZUV4aXN0cyIsImFuZCIsIm5vdEVxdWFsIiwicGF0aEluTW9kZWwiLCJ1bmRlZmluZWQiLCJhZGRpdGlvbmFsVmFsdWVFeGlzdHMiLCJhZGRpdGlvbmFsVmFsdWVQYXRoIiwib3IiLCJnZXRGb3JtYXR0ZWRUZXh0VmFsdWUiLCJwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uIiwiZ2V0VmFsdWVCaW5kaW5nIiwiYWRhcHRpdmVCaW5kaW5nRXhwcmVzc2lvbiIsInVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uIiwiZXhwcmVzc2lvbiIsIm5hdmlnYXRpb25QYXRocyIsImNvbXBpbGVkRXhwcmVzc2lvbiIsImdldEFkYXB0aXZlQ29tcGlsZXJSZXN1bHQiLCJtZXRhUGF0aCIsImlzUHJvcGVydHkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEsIEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBUZXh0QXJyYW5nZW1lbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgYW5kLCBjb25zdGFudCwgbm90RXF1YWwsIG9yLCBwYXRoSW5Nb2RlbCwgdHlwZSBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGdldEFkYXB0aXZlQ29tcGlsZXJSZXN1bHQsIHR5cGUgQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQWRhcHRpdmVDYXJkRXhwcmVzc2lvbkNvbXBpbGVyXCI7XG5pbXBvcnQgdHlwZSBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcblxuLyoqXG4gKiBAdHlwZWRlZiBDYXJkQ29udGV4dEluZm9cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBiaW5kaW5nQ29udGV4dFBhdGggLSBSdW50aW1lIGJpbmRpbmcgY29udGV4dCBwYXRoIGZvciBjYXJkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbnRleHRQYXRoIC0gUGF0aCB0byB0aGUgdGFyZ2V0IGVudGl0eVR5cGUgb2YgcGFnZSBmb3IgdGhlIGNhcmQuXG4gKi9cbmV4cG9ydCB0eXBlIENhcmRDb250ZXh0SW5mbyA9IHtcblx0YmluZGluZ0NvbnRleHRQYXRoOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIENhcmRDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvYmplY3RUaXRsZSAtIFRpdGxlIGZvciB0aGUgY2FyZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhcHBVcmwgLSBCcm93c2VyIHVybCBvZiB0aGUgYXBwbGljYXRpb24uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd2ViVXJsIC0gVXJsIHRvIGZldGNoIHRoZSBjYXJkIGRhdGEuIEl0IHNoYWxsIGNvbnRhaW4gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgbGlrZSAkc2VsZWN0IGFuZCAkZXhwYW5kLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcnZpY2VVUkkgLSBTZXJ2aWNlIHVybC5cbiAqIEBwcm9wZXJ0eSB7Q2FyZENvbnRleHRJbmZvfSBjb250ZXh0SW5mbyAtIENhcmQncyBjb250ZXh0IGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDYXJkQ29uZmlnID0ge1xuXHRvYmplY3RUaXRsZTogc3RyaW5nO1xuXHRhcHBVcmw6IHN0cmluZztcblx0d2ViVXJsOiBzdHJpbmc7XG5cdHNlcnZpY2VVUkk6IHN0cmluZztcblx0Y29udGV4dEluZm86IENhcmRDb250ZXh0SW5mbztcbn07XG5cbi8qKlxuICogQWRhcHRpdmUgY2FyZCBqc29uIGdlbmVyYXRvci5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUNhcmRDb250ZW50UHJvdmlkZXI8R2VuZXJpY0NvbmZpZyBleHRlbmRzIENhcmRDb25maWc+IHtcblx0cHJpdmF0ZSBwYXRoc1RvUXVlcnk6IHN0cmluZ1tdID0gW107XG5cblx0LyoqXG5cdCAqIEdldCBwcm9wZXJ0eSBwYXRocyB0byBxdWVyeS5cblx0ICogQHJldHVybnMgUHJvcGVydHkgcGF0aHMgdGhhdCBuZWVkIHRvIGJlIHF1ZXJpZWQuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UGF0aHNUb1F1ZXJ5KCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KHRoaXMucGF0aHNUb1F1ZXJ5KSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29sbGVjdGluZyBwcm9wZXJ0eSBwYXRocyB0aGF0IG5lZWQgdG8gYmUgcXVlcmllZCBmb3IgY2FyZCBjcmVhdGlvbi5cblx0ICogQHBhcmFtIHBhdGhzVG9BZGQgUHJvcGVydHkgcGF0aHMgdGhhdCBuZWVkIHRvIGJlIGN1bW11bGF0ZWQuXG5cdCAqL1xuXHRwdWJsaWMgYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9BZGQ6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5wYXRoc1RvUXVlcnkgPSBbLi4udGhpcy5wYXRoc1RvUXVlcnksIC4uLnBhdGhzVG9BZGRdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBjYXJkIGNvbmZpZ3VyYXRpb24gYnkga2V5LlxuXHQgKiBAcGFyYW0gbmFtZSBDb25maWd1cmF0aW9uIGtleSBuYW1lLlxuXHQgKiBAcmV0dXJucyBTcGVjaWZpYyBjYXJkIGNvbmZpZ3VyYXRpb24uXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleTxLIGV4dGVuZHMga2V5b2YgR2VuZXJpY0NvbmZpZz4obmFtZTogSyk6IEdlbmVyaWNDb25maWdbS10ge1xuXHRcdHJldHVybiB0aGlzLmNvbmZpZ1tuYW1lXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgY29udmVydGVkIG1ldGFkYXRhIGVudGl0eVR5cGUgb2YgdGhlIGNhcmQuXG5cdCAqIEByZXR1cm5zIEVudGl0eVR5cGUuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RW50aXR5VHlwZSgpOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IGNvbnRleHRQYXRoIH0gPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJjb250ZXh0SW5mb1wiKTtcblx0XHRjb25zdCByZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZSA9IHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGg8RW50aXR5VHlwZT4oY29udGV4dFBhdGgpO1xuXHRcdHJldHVybiByZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZS50YXJnZXQ7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGQuXG5cdCAqIEBwYXJhbSBmaWVsZFBhdGggUGF0aCBvZiB0aGUgZmllbGQgYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBCaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QmluZGluZ0ZvclByb3BlcnR5KGZpZWxkUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gXCIke1wiICsgdGhpcy5nZXRQcm9wZXJ0eVBhdGhGb3JDYXJkKGZpZWxkUGF0aCkgKyBcIn1cIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9ucHJvcGVydHkgcGF0aC5cblx0ICogQHBhcmFtIHByb3BlcnR5UGF0aCBQYXRoIG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIFByb3BlcnR5IHBhdGggYWxvbmcgd2l0aCBuYXZpZ2F0aW9uIHBhdGhzXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Ly8gQ2hlY2sgZm9yIG5hdmlnYXRpb24gcHJvcGVydHkgcGF0aCBhbmQgcmVwbGFjZSB0byBhZGFwdGl2ZSBjYXJkIGZvcm1hdFxuXHRcdGlmIChwcm9wZXJ0eVBhdGggJiYgcHJvcGVydHlQYXRoPy5pbmNsdWRlcyhcIi9cIikpIHtcblx0XHRcdHByb3BlcnR5UGF0aCA9IHByb3BlcnR5UGF0aC5yZXBsYWNlKFwiL1wiLCBcIi5cIik7XG5cdFx0fVxuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KFtwcm9wZXJ0eVBhdGhdKTtcblx0XHRyZXR1cm4gcHJvcGVydHlQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBiaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkIHdoaWNoIGlzIGNvbmZpZ3VyZWQgd2l0aCBUZXh0IEFycmFuZ2VtZW50LlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgb2YgdGhlIGZpZWxkIGFubm90YXRpb25cblx0ICogQHBhcmFtIHRleHRQcm9wZXJ0eSBUZXh0IHByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIEJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGQgd2l0aCBUZXh0IEFycmFuZ2VtZW50XG5cdCAqL1xuXHRwcml2YXRlIGZvcm1hdFRleHRwcm9wZXJ0eShwcm9wZXJ0eTogTWV0YVBhdGg8UHJvcGVydHk+LCB0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxQcm9wZXJ0eT4pOiBzdHJpbmcge1xuXHRcdGxldCB0ZXh0RXhwcmVzc2lvbjtcblx0XHRjb25zdCBwcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpO1xuXHRcdGlmICh0ZXh0UHJvcGVydHkgJiYgdGV4dFByb3BlcnR5LmdldFRhcmdldCgpKSB7XG5cdFx0XHRjb25zdCB0ZXh0QXJyYW5nZW1lbnRUeXBlID0gcHJvcGVydHk/LmdldFRhcmdldCgpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKTtcblx0XHRcdGNvbnN0IHRleHRCaW5kaW5nID0gdGhpcy5nZXRQcm9wZXJ0eVBhdGhGb3JDYXJkKHRleHRQcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSk7XG5cdFx0XHRzd2l0Y2ggKHRleHRBcnJhbmdlbWVudFR5cGUpIHtcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRMYXN0OlxuXHRcdFx0XHRcdHRleHRFeHByZXNzaW9uID0gYFxcJHtzdHJpbmcoJHtwcm9wZXJ0eUJpbmRpbmd9KX0gKFxcJHtzdHJpbmcoJHt0ZXh0QmluZGluZ30pfSlgO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFRleHRBcnJhbmdlbWVudFR5cGUuVGV4dE9ubHk6XG5cdFx0XHRcdFx0dGV4dEV4cHJlc3Npb24gPSBgXFwke3N0cmluZygke3RleHRCaW5kaW5nfSl9YDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRTZXBhcmF0ZTpcblx0XHRcdFx0XHR0ZXh0RXhwcmVzc2lvbiA9IGBcXCR7c3RyaW5nKCR7cHJvcGVydHlCaW5kaW5nfSl9YDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRGaXJzdDpcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHR0ZXh0RXhwcmVzc2lvbiA9IGBcXCR7c3RyaW5nKCR7dGV4dEJpbmRpbmd9KX0gKFxcJHtzdHJpbmcoJHtwcm9wZXJ0eUJpbmRpbmd9KX0pYDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGV4dEV4cHJlc3Npb24gPSBgXFwke3N0cmluZygke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSl9KX1gO1xuXHRcdH1cblx0XHRyZXR1cm4gdGV4dEV4cHJlc3Npb247XG5cdH1cblxuXHRwdWJsaWMgZ2V0VGV4dEJsb2NrVmlzaWJsaXR5Rm9yRGF0ZUZpZWxkKFxuXHRcdHByb3BlcnR5OiBNZXRhUGF0aDxzdHJpbmc+LFxuXHRcdGFkZGl0aW9uYWxWYWx1ZT86IE1ldGFQYXRoPHN0cmluZz5cblx0KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0XHRsZXQgZXhwOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBjb25zdGFudCh0cnVlKTtcblx0XHRpZiAodGhpcy50YXJnZXRJc1Byb3BlcnR5KHByb3BlcnR5KSkge1xuXHRcdFx0Y29uc3QgZWRtVHlwZSA9IChwcm9wZXJ0eSBhcyBNZXRhUGF0aDxQcm9wZXJ0eT4pLmdldFRhcmdldCgpLnR5cGU7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eVBhdGggPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpO1xuXHRcdFx0Y29uc3QgdmFsdWVFeGlzdHMgPSBhbmQobm90RXF1YWwocGF0aEluTW9kZWwocHJvcGVydHlQYXRoKSwgdW5kZWZpbmVkKSwgbm90RXF1YWwocGF0aEluTW9kZWwocHJvcGVydHlQYXRoKSwgbnVsbCkpO1xuXHRcdFx0c3dpdGNoIChlZG1UeXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVwiOlxuXHRcdFx0XHRjYXNlIFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCI6XG5cdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVRpbWVcIjpcblx0XHRcdFx0Y2FzZSBcIkVkbS5EZWNpbWFsXCI6IHtcblx0XHRcdFx0XHRleHAgPSB2YWx1ZUV4aXN0cztcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdFx0bGV0IGFkZGl0aW9uYWxWYWx1ZUV4aXN0czogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gY29uc3RhbnQoZmFsc2UpO1xuXHRcdFx0XHRcdGlmIChhZGRpdGlvbmFsVmFsdWUgJiYgdGhpcy50YXJnZXRJc1Byb3BlcnR5KGFkZGl0aW9uYWxWYWx1ZSkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGFkZGl0aW9uYWxWYWx1ZVBhdGggPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQoYWRkaXRpb25hbFZhbHVlLmdldFJlbGF0aXZlUGF0aCgpKTtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxWYWx1ZUV4aXN0cyA9IGFuZChcblx0XHRcdFx0XHRcdFx0bm90RXF1YWwocGF0aEluTW9kZWwoYWRkaXRpb25hbFZhbHVlUGF0aCksIHVuZGVmaW5lZCksXG5cdFx0XHRcdFx0XHRcdG5vdEVxdWFsKHBhdGhJbk1vZGVsKGFkZGl0aW9uYWxWYWx1ZVBhdGgpLCBudWxsKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZXhwID0gb3IodmFsdWVFeGlzdHMsIGFkZGl0aW9uYWxWYWx1ZUV4aXN0cyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGV4cDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWRhcHRpdmUgY2FyZCBiaW5kaW5nIGV4cHJlc3Npb25zIG9mIHRoZSBmaWVsZCB3aGljaCBpcyBjb25maWd1cmVkIHdpdGggVGV4dCBBcnJhbmdlbWVudC5cblx0ICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEBwYXJhbSB0ZXh0UHJvcGVydHkgVGV4dCBwcm9wZXJ0eSBvZiB0aGUgZmllbGQgYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBCaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkIGNvbmZpZ3VyZWQgd2l0aCBEYXRlLCBEYXRlVGltZSBhbmQgRGVjaW1hbFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGb3JtYXR0ZWRUZXh0VmFsdWUocHJvcGVydHk6IE1ldGFQYXRoPFByb3BlcnR5PiwgdGV4dFByb3BlcnR5PzogTWV0YVBhdGg8UHJvcGVydHk+KTogc3RyaW5nIHtcblx0XHRsZXQgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbjtcblx0XHRzd2l0Y2ggKHByb3BlcnR5Py5nZXRUYXJnZXQoKT8udHlwZSkge1xuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlXCI6XG5cdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gPSBge3tEQVRFKFxcJHtmb3JtYXREYXRlVGltZSgke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChcblx0XHRcdFx0XHRwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKVxuXHRcdFx0XHQpfSwgJ3l5eXktTU0tZGRUSEg6bW06c3NaJyl9LCBTSE9SVCl9fWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlVGltZU9mZnNldFwiOlxuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlVGltZVwiOlxuXHRcdFx0XHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gYFxcJHtmb3JtYXREYXRlVGltZSgke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSl9KX1gO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJFZG0uRGVjaW1hbFwiOlxuXHRcdFx0XHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gYFxcJHtmb3JtYXROdW1iZXIoJHt0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpfSwyKX1gO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gPSB0aGlzLmZvcm1hdFRleHRwcm9wZXJ0eShwcm9wZXJ0eSwgdGV4dFByb3BlcnR5KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBiaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkLlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgb2YgdGhlIGZpZWxkIGFubm90YXRpb25cblx0ICogQHBhcmFtIHRleHRQcm9wZXJ0eSBUZXh0IHByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIEJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGRcblx0ICovXG5cdHB1YmxpYyBnZXRWYWx1ZUJpbmRpbmc8VD4ocHJvcGVydHk6IE1ldGFQYXRoPFQ+IHwgc3RyaW5nLCB0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxUPik6IHN0cmluZyB7XG5cdFx0bGV0IGFkYXB0aXZlQmluZGluZ0V4cHJlc3Npb24gPSBcIlwiO1xuXHRcdGlmICh0eXBlb2YgcHJvcGVydHkgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGFkYXB0aXZlQmluZGluZ0V4cHJlc3Npb24gPSBwcm9wZXJ0eTtcblx0XHR9IGVsc2UgaWYgKHRoaXMudGFyZ2V0SXNQcm9wZXJ0eShwcm9wZXJ0eSkgJiYgKCF0ZXh0UHJvcGVydHkgfHwgdGhpcy50YXJnZXRJc1Byb3BlcnR5KHRleHRQcm9wZXJ0eSkpKSB7XG5cdFx0XHRhZGFwdGl2ZUJpbmRpbmdFeHByZXNzaW9uID0gdGhpcy5nZXRGb3JtYXR0ZWRUZXh0VmFsdWUocHJvcGVydHksIHRleHRQcm9wZXJ0eSk7XG5cdFx0fVxuXHRcdHJldHVybiBhZGFwdGl2ZUJpbmRpbmdFeHByZXNzaW9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZSBwYXRocyB0byBxdWVyeSBhbmQgZ2V0IGNvbXBpbGVkIGV4cHJlc3Npb24uXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uIEJpbmRpbmcgdG9vbGtpdCBleHByZXNzaW9uXG5cdCAqIEBwYXJhbSBuYXZpZ2F0aW9uUGF0aHNcblx0ICogQHJldHVybnMgQ29tcGlsZWQgYWRhcHRpdmUgZXhwcmVzc2lvblxuXHQgKi9cblx0cHVibGljIHVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uPFQ+KFxuXHRcdGV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxUPixcblx0XHRuYXZpZ2F0aW9uUGF0aHM/OiBzdHJpbmdcblx0KTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB7IHBhdGhzVG9RdWVyeSwgY29tcGlsZWRFeHByZXNzaW9uIH0gPSBnZXRBZGFwdGl2ZUNvbXBpbGVyUmVzdWx0KGV4cHJlc3Npb24sIG5hdmlnYXRpb25QYXRocyk7XG5cdFx0dGhpcy5hZGRQYXRoc1RvUXVlcnkocGF0aHNUb1F1ZXJ5KTtcblx0XHRyZXR1cm4gY29tcGlsZWRFeHByZXNzaW9uO1xuXHR9XG5cblx0cHVibGljIHRhcmdldElzUHJvcGVydHkobWV0YVBhdGg6IE1ldGFQYXRoPHVua25vd24+IHwgdW5kZWZpbmVkKTogbWV0YVBhdGggaXMgTWV0YVBhdGg8UHJvcGVydHk+IHtcblx0XHRjb25zdCB0YXJnZXQgPSBtZXRhUGF0aD8uZ2V0VGFyZ2V0KCk7XG5cdFx0cmV0dXJuIGlzUHJvcGVydHkodGFyZ2V0KTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0cHJpdmF0ZSBjb25maWc6IEdlbmVyaWNDb25maWdcblx0KSB7fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBTXFCQSx1QkFBdUI7SUErTDNDLFNBQUFBLHdCQUNRQyxjQUFpQyxFQUNoQ0MsTUFBcUIsRUFDNUI7TUFBQSxLQWpNTUMsWUFBWSxHQUFhLEVBQUU7TUFBQSxLQStMM0JGLGNBQWlDLEdBQWpDQSxjQUFpQztNQUFBLEtBQ2hDQyxNQUFxQixHQUFyQkEsTUFBcUI7SUFDM0I7SUFBQ0UsUUFBQSxHQUFBSix1QkFBQTtJQUFBLElBQUFL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
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ2FyZENvbnRlbnRQcm92aWRlciIsImNvbnZlcnRlZFR5cGVzIiwiY29uZmlnIiwicGF0aHNUb1F1ZXJ5IiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRQYXRoc1RvUXVlcnkiLCJBcnJheSIsImZyb20iLCJTZXQiLCJhZGRQYXRoc1RvUXVlcnkiLCJwYXRoc1RvQWRkIiwiZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleSIsIm5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiY29udGV4dFBhdGgiLCJyZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZSIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwiZ2V0QmluZGluZ0ZvclByb3BlcnR5IiwiZmllbGRQYXRoIiwiZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZCIsInByb3BlcnR5UGF0aCIsImluY2x1ZGVzIiwicmVwbGFjZSIsImZvcm1hdFRleHRwcm9wZXJ0eSIsInByb3BlcnR5IiwidGV4dFByb3BlcnR5IiwidGV4dEV4cHJlc3Npb24iLCJwcm9wZXJ0eUJpbmRpbmciLCJnZXRSZWxhdGl2ZVBhdGgiLCJnZXRUYXJnZXQiLCJ0ZXh0QXJyYW5nZW1lbnRUeXBlIiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJ0b1N0cmluZyIsInRleHRCaW5kaW5nIiwiZ2V0VGV4dEJsb2NrVmlzaWJsaXR5Rm9yRGF0ZUZpZWxkIiwiYWRkaXRpb25hbFZhbHVlIiwiZXhwIiwiY29uc3RhbnQiLCJ0YXJnZXRJc1Byb3BlcnR5IiwiZWRtVHlwZSIsInR5cGUiLCJ2YWx1ZUV4aXN0cyIsImFuZCIsIm5vdEVxdWFsIiwicGF0aEluTW9kZWwiLCJ1bmRlZmluZWQiLCJhZGRpdGlvbmFsVmFsdWVFeGlzdHMiLCJhZGRpdGlvbmFsVmFsdWVQYXRoIiwib3IiLCJnZXRGb3JtYXR0ZWRUZXh0VmFsdWUiLCJwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uIiwiZ2V0VmFsdWVCaW5kaW5nIiwiYWRhcHRpdmVCaW5kaW5nRXhwcmVzc2lvbiIsInVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uIiwiZXhwcmVzc2lvbiIsIm5hdmlnYXRpb25QYXRocyIsImNvbXBpbGVkRXhwcmVzc2lvbiIsImdldEFkYXB0aXZlQ29tcGlsZXJSZXN1bHQiLCJtZXRhUGF0aCIsImlzUHJvcGVydHkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEsIEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBUZXh0QXJyYW5nZW1lbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgYW5kLCBjb25zdGFudCwgbm90RXF1YWwsIG9yLCBwYXRoSW5Nb2RlbCwgdHlwZSBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGdldEFkYXB0aXZlQ29tcGlsZXJSZXN1bHQsIHR5cGUgQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQWRhcHRpdmVDYXJkRXhwcmVzc2lvbkNvbXBpbGVyXCI7XG5pbXBvcnQgdHlwZSBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcblxuLyoqXG4gKiBAdHlwZWRlZiBDYXJkQ29udGV4dEluZm9cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBiaW5kaW5nQ29udGV4dFBhdGggLSBSdW50aW1lIGJpbmRpbmcgY29udGV4dCBwYXRoIGZvciBjYXJkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbnRleHRQYXRoIC0gUGF0aCB0byB0aGUgdGFyZ2V0IGVudGl0eVR5cGUgb2YgcGFnZSBmb3IgdGhlIGNhcmQuXG4gKi9cbmV4cG9ydCB0eXBlIENhcmRDb250ZXh0SW5mbyA9IHtcblx0YmluZGluZ0NvbnRleHRQYXRoOiBzdHJpbmc7XG5cdGNvbnRleHRQYXRoOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIENhcmRDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvYmplY3RUaXRsZSAtIFRpdGxlIGZvciB0aGUgY2FyZC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhcHBVcmwgLSBCcm93c2VyIHVybCBvZiB0aGUgYXBwbGljYXRpb24uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gd2ViVXJsIC0gVXJsIHRvIGZldGNoIHRoZSBjYXJkIGRhdGEuIEl0IHNoYWxsIGNvbnRhaW4gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgbGlrZSAkc2VsZWN0IGFuZCAkZXhwYW5kLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcnZpY2VVUkkgLSBTZXJ2aWNlIHVybC5cbiAqIEBwcm9wZXJ0eSB7Q2FyZENvbnRleHRJbmZvfSBjb250ZXh0SW5mbyAtIENhcmQncyBjb250ZXh0IGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDYXJkQ29uZmlnID0ge1xuXHRvYmplY3RUaXRsZTogc3RyaW5nO1xuXHRhcHBVcmw6IHN0cmluZztcblx0d2ViVXJsOiBzdHJpbmc7XG5cdHNlcnZpY2VVUkk6IHN0cmluZztcblx0Y29udGV4dEluZm86IENhcmRDb250ZXh0SW5mbztcbn07XG5cbi8qKlxuICogQWRhcHRpdmUgY2FyZCBqc29uIGdlbmVyYXRvci5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZUNhcmRDb250ZW50UHJvdmlkZXI8R2VuZXJpY0NvbmZpZyBleHRlbmRzIENhcmRDb25maWc+IHtcblx0cHJpdmF0ZSBwYXRoc1RvUXVlcnk6IHN0cmluZ1tdID0gW107XG5cblx0LyoqXG5cdCAqIEdldCBwcm9wZXJ0eSBwYXRocyB0byBxdWVyeS5cblx0ICogQHJldHVybnMgUHJvcGVydHkgcGF0aHMgdGhhdCBuZWVkIHRvIGJlIHF1ZXJpZWQuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UGF0aHNUb1F1ZXJ5KCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KHRoaXMucGF0aHNUb1F1ZXJ5KSk7XG5cdH1cblxuXHQvKipcblx0ICogQ29sbGVjdGluZyBwcm9wZXJ0eSBwYXRocyB0aGF0IG5lZWQgdG8gYmUgcXVlcmllZCBmb3IgY2FyZCBjcmVhdGlvbi5cblx0ICogQHBhcmFtIHBhdGhzVG9BZGQgUHJvcGVydHkgcGF0aHMgdGhhdCBuZWVkIHRvIGJlIGN1bW11bGF0ZWQuXG5cdCAqL1xuXHRwdWJsaWMgYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9BZGQ6IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5wYXRoc1RvUXVlcnkgPSBbLi4udGhpcy5wYXRoc1RvUXVlcnksIC4uLnBhdGhzVG9BZGRdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBjYXJkIGNvbmZpZ3VyYXRpb24gYnkga2V5LlxuXHQgKiBAcGFyYW0gbmFtZSBDb25maWd1cmF0aW9uIGtleSBuYW1lLlxuXHQgKiBAcmV0dXJucyBTcGVjaWZpYyBjYXJkIGNvbmZpZ3VyYXRpb24uXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleTxLIGV4dGVuZHMga2V5b2YgR2VuZXJpY0NvbmZpZz4obmFtZTogSyk6IEdlbmVyaWNDb25maWdbS10ge1xuXHRcdHJldHVybiB0aGlzLmNvbmZpZ1tuYW1lXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgY29udmVydGVkIG1ldGFkYXRhIGVudGl0eVR5cGUgb2YgdGhlIGNhcmQuXG5cdCAqIEByZXR1cm5zIEVudGl0eVR5cGUuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0RW50aXR5VHlwZSgpOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IGNvbnRleHRQYXRoIH0gPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJjb250ZXh0SW5mb1wiKTtcblx0XHRjb25zdCByZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZSA9IHRoaXMuY29udmVydGVkVHlwZXMucmVzb2x2ZVBhdGg8RW50aXR5VHlwZT4oY29udGV4dFBhdGgpO1xuXHRcdHJldHVybiByZXNvbHV0aW9uVGFyZ2V0RW50aXR5VHlwZS50YXJnZXQ7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGQuXG5cdCAqIEBwYXJhbSBmaWVsZFBhdGggUGF0aCBvZiB0aGUgZmllbGQgYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBCaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkXG5cdCAqL1xuXHRwdWJsaWMgZ2V0QmluZGluZ0ZvclByb3BlcnR5KGZpZWxkUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gXCIke1wiICsgdGhpcy5nZXRQcm9wZXJ0eVBhdGhGb3JDYXJkKGZpZWxkUGF0aCkgKyBcIn1cIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9ucHJvcGVydHkgcGF0aC5cblx0ICogQHBhcmFtIHByb3BlcnR5UGF0aCBQYXRoIG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIFByb3BlcnR5IHBhdGggYWxvbmcgd2l0aCBuYXZpZ2F0aW9uIHBhdGhzXG5cdCAqL1xuXHRwdWJsaWMgZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Ly8gQ2hlY2sgZm9yIG5hdmlnYXRpb24gcHJvcGVydHkgcGF0aCBhbmQgcmVwbGFjZSB0byBhZGFwdGl2ZSBjYXJkIGZvcm1hdFxuXHRcdGlmIChwcm9wZXJ0eVBhdGggJiYgcHJvcGVydHlQYXRoPy5pbmNsdWRlcyhcIi9cIikpIHtcblx0XHRcdHByb3BlcnR5UGF0aCA9IHByb3BlcnR5UGF0aC5yZXBsYWNlKFwiL1wiLCBcIi5cIik7XG5cdFx0fVxuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KFtwcm9wZXJ0eVBhdGhdKTtcblx0XHRyZXR1cm4gcHJvcGVydHlQYXRoO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBiaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkIHdoaWNoIGlzIGNvbmZpZ3VyZWQgd2l0aCBUZXh0IEFycmFuZ2VtZW50LlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgb2YgdGhlIGZpZWxkIGFubm90YXRpb25cblx0ICogQHBhcmFtIHRleHRQcm9wZXJ0eSBUZXh0IHByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIEJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGQgd2l0aCBUZXh0IEFycmFuZ2VtZW50XG5cdCAqL1xuXHRwcml2YXRlIGZvcm1hdFRleHRwcm9wZXJ0eShwcm9wZXJ0eTogTWV0YVBhdGg8UHJvcGVydHk+LCB0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxQcm9wZXJ0eT4pOiBzdHJpbmcge1xuXHRcdGxldCB0ZXh0RXhwcmVzc2lvbjtcblx0XHRjb25zdCBwcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpO1xuXHRcdGlmICh0ZXh0UHJvcGVydHkgJiYgdGV4dFByb3BlcnR5LmdldFRhcmdldCgpKSB7XG5cdFx0XHRjb25zdCB0ZXh0QXJyYW5nZW1lbnRUeXBlID0gcHJvcGVydHk/LmdldFRhcmdldCgpPy5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudD8udG9TdHJpbmcoKTtcblx0XHRcdGNvbnN0IHRleHRCaW5kaW5nID0gdGhpcy5nZXRQcm9wZXJ0eVBhdGhGb3JDYXJkKHRleHRQcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSk7XG5cdFx0XHRzd2l0Y2ggKHRleHRBcnJhbmdlbWVudFR5cGUpIHtcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRMYXN0OlxuXHRcdFx0XHRcdHRleHRFeHByZXNzaW9uID0gYFxcJHtzdHJpbmcoJHtwcm9wZXJ0eUJpbmRpbmd9KX0gKFxcJHtzdHJpbmcoJHt0ZXh0QmluZGluZ30pfSlgO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFRleHRBcnJhbmdlbWVudFR5cGUuVGV4dE9ubHk6XG5cdFx0XHRcdFx0dGV4dEV4cHJlc3Npb24gPSBgXFwke3N0cmluZygke3RleHRCaW5kaW5nfSl9YDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRTZXBhcmF0ZTpcblx0XHRcdFx0XHR0ZXh0RXhwcmVzc2lvbiA9IGBcXCR7c3RyaW5nKCR7cHJvcGVydHlCaW5kaW5nfSl9YDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBUZXh0QXJyYW5nZW1lbnRUeXBlLlRleHRGaXJzdDpcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHR0ZXh0RXhwcmVzc2lvbiA9IGBcXCR7c3RyaW5nKCR7dGV4dEJpbmRpbmd9KX0gKFxcJHtzdHJpbmcoJHtwcm9wZXJ0eUJpbmRpbmd9KX0pYDtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGV4dEV4cHJlc3Npb24gPSBgXFwke3N0cmluZygke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSl9KX1gO1xuXHRcdH1cblx0XHRyZXR1cm4gdGV4dEV4cHJlc3Npb247XG5cdH1cblxuXHRwdWJsaWMgZ2V0VGV4dEJsb2NrVmlzaWJsaXR5Rm9yRGF0ZUZpZWxkKFxuXHRcdHByb3BlcnR5OiBNZXRhUGF0aDxzdHJpbmc+LFxuXHRcdGFkZGl0aW9uYWxWYWx1ZT86IE1ldGFQYXRoPHN0cmluZz5cblx0KTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0XHRsZXQgZXhwOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gPSBjb25zdGFudCh0cnVlKTtcblx0XHRpZiAodGhpcy50YXJnZXRJc1Byb3BlcnR5KHByb3BlcnR5KSkge1xuXHRcdFx0Y29uc3QgZWRtVHlwZSA9IChwcm9wZXJ0eSBhcyBNZXRhUGF0aDxQcm9wZXJ0eT4pLmdldFRhcmdldCgpLnR5cGU7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eVBhdGggPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpO1xuXHRcdFx0Y29uc3QgdmFsdWVFeGlzdHMgPSBhbmQobm90RXF1YWwocGF0aEluTW9kZWwocHJvcGVydHlQYXRoKSwgdW5kZWZpbmVkKSwgbm90RXF1YWwocGF0aEluTW9kZWwocHJvcGVydHlQYXRoKSwgbnVsbCkpO1xuXHRcdFx0c3dpdGNoIChlZG1UeXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVwiOlxuXHRcdFx0XHRjYXNlIFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCI6XG5cdFx0XHRcdGNhc2UgXCJFZG0uRGF0ZVRpbWVcIjpcblx0XHRcdFx0Y2FzZSBcIkVkbS5EZWNpbWFsXCI6IHtcblx0XHRcdFx0XHRleHAgPSB2YWx1ZUV4aXN0cztcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdFx0bGV0IGFkZGl0aW9uYWxWYWx1ZUV4aXN0czogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+ID0gY29uc3RhbnQoZmFsc2UpO1xuXHRcdFx0XHRcdGlmIChhZGRpdGlvbmFsVmFsdWUgJiYgdGhpcy50YXJnZXRJc1Byb3BlcnR5KGFkZGl0aW9uYWxWYWx1ZSkpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGFkZGl0aW9uYWxWYWx1ZVBhdGggPSB0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQoYWRkaXRpb25hbFZhbHVlLmdldFJlbGF0aXZlUGF0aCgpKTtcblx0XHRcdFx0XHRcdGFkZGl0aW9uYWxWYWx1ZUV4aXN0cyA9IGFuZChcblx0XHRcdFx0XHRcdFx0bm90RXF1YWwocGF0aEluTW9kZWwoYWRkaXRpb25hbFZhbHVlUGF0aCksIHVuZGVmaW5lZCksXG5cdFx0XHRcdFx0XHRcdG5vdEVxdWFsKHBhdGhJbk1vZGVsKGFkZGl0aW9uYWxWYWx1ZVBhdGgpLCBudWxsKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZXhwID0gb3IodmFsdWVFeGlzdHMsIGFkZGl0aW9uYWxWYWx1ZUV4aXN0cyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGV4cDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWRhcHRpdmUgY2FyZCBiaW5kaW5nIGV4cHJlc3Npb25zIG9mIHRoZSBmaWVsZCB3aGljaCBpcyBjb25maWd1cmVkIHdpdGggVGV4dCBBcnJhbmdlbWVudC5cblx0ICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEBwYXJhbSB0ZXh0UHJvcGVydHkgVGV4dCBwcm9wZXJ0eSBvZiB0aGUgZmllbGQgYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBCaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkIGNvbmZpZ3VyZWQgd2l0aCBEYXRlLCBEYXRlVGltZSBhbmQgRGVjaW1hbFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGb3JtYXR0ZWRUZXh0VmFsdWUocHJvcGVydHk6IE1ldGFQYXRoPFByb3BlcnR5PiwgdGV4dFByb3BlcnR5PzogTWV0YVBhdGg8UHJvcGVydHk+KTogc3RyaW5nIHtcblx0XHRsZXQgcHJvcGVydHlCaW5kaW5nRXhwcmVzc2lvbjtcblx0XHRzd2l0Y2ggKHByb3BlcnR5Py5nZXRUYXJnZXQoKT8udHlwZSkge1xuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlXCI6XG5cdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gPSBge3tEQVRFKFxcJHtmb3JtYXREYXRlVGltZSgke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChcblx0XHRcdFx0XHRwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKVxuXHRcdFx0XHQpfSwgJ3l5eXktTU0tZGRUSEg6bW06c3NaJyl9LCBTSE9SVCl9fWA7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlVGltZU9mZnNldFwiOlxuXHRcdFx0Y2FzZSBcIkVkbS5EYXRlVGltZVwiOlxuXHRcdFx0XHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gYFxcJHtmb3JtYXREYXRlVGltZSgke3RoaXMuZ2V0UHJvcGVydHlQYXRoRm9yQ2FyZChwcm9wZXJ0eS5nZXRSZWxhdGl2ZVBhdGgoKSl9KX1gO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCJFZG0uRGVjaW1hbFwiOlxuXHRcdFx0XHRwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uID0gYFxcJHtmb3JtYXROdW1iZXIoJHt0aGlzLmdldFByb3BlcnR5UGF0aEZvckNhcmQocHJvcGVydHkuZ2V0UmVsYXRpdmVQYXRoKCkpfSwyKX1gO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHByb3BlcnR5QmluZGluZ0V4cHJlc3Npb24gPSB0aGlzLmZvcm1hdFRleHRwcm9wZXJ0eShwcm9wZXJ0eSwgdGV4dFByb3BlcnR5KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiBwcm9wZXJ0eUJpbmRpbmdFeHByZXNzaW9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBiaW5kaW5nIHBhdGggb2YgdGhlIGZpZWxkLlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgUHJvcGVydHkgb2YgdGhlIGZpZWxkIGFubm90YXRpb25cblx0ICogQHBhcmFtIHRleHRQcm9wZXJ0eSBUZXh0IHByb3BlcnR5IG9mIHRoZSBmaWVsZCBhbm5vdGF0aW9uXG5cdCAqIEByZXR1cm5zIEJpbmRpbmcgcGF0aCBvZiB0aGUgZmllbGRcblx0ICovXG5cdHB1YmxpYyBnZXRWYWx1ZUJpbmRpbmc8VD4ocHJvcGVydHk6IE1ldGFQYXRoPFQ+IHwgc3RyaW5nLCB0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxUPik6IHN0cmluZyB7XG5cdFx0bGV0IGFkYXB0aXZlQmluZGluZ0V4cHJlc3Npb24gPSBcIlwiO1xuXHRcdGlmICh0eXBlb2YgcHJvcGVydHkgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGFkYXB0aXZlQmluZGluZ0V4cHJlc3Npb24gPSBwcm9wZXJ0eTtcblx0XHR9IGVsc2UgaWYgKHRoaXMudGFyZ2V0SXNQcm9wZXJ0eShwcm9wZXJ0eSkgJiYgKCF0ZXh0UHJvcGVydHkgfHwgdGhpcy50YXJnZXRJc1Byb3BlcnR5KHRleHRQcm9wZXJ0eSkpKSB7XG5cdFx0XHRhZGFwdGl2ZUJpbmRpbmdFeHByZXNzaW9uID0gdGhpcy5nZXRGb3JtYXR0ZWRUZXh0VmFsdWUocHJvcGVydHksIHRleHRQcm9wZXJ0eSk7XG5cdFx0fVxuXHRcdHJldHVybiBhZGFwdGl2ZUJpbmRpbmdFeHByZXNzaW9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZSBwYXRocyB0byBxdWVyeSBhbmQgZ2V0IGNvbXBpbGVkIGV4cHJlc3Npb24uXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uIEJpbmRpbmcgdG9vbGtpdCBleHByZXNzaW9uXG5cdCAqIEBwYXJhbSBuYXZpZ2F0aW9uUGF0aHNcblx0ICogQHJldHVybnMgQ29tcGlsZWQgYWRhcHRpdmUgZXhwcmVzc2lvblxuXHQgKi9cblx0cHVibGljIHVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uPFQ+KFxuXHRcdGV4cHJlc3Npb246IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxUPixcblx0XHRuYXZpZ2F0aW9uUGF0aHM/OiBzdHJpbmdcblx0KTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB7IHBhdGhzVG9RdWVyeSwgY29tcGlsZWRFeHByZXNzaW9uIH0gPSBnZXRBZGFwdGl2ZUNvbXBpbGVyUmVzdWx0KGV4cHJlc3Npb24sIG5hdmlnYXRpb25QYXRocyk7XG5cdFx0dGhpcy5hZGRQYXRoc1RvUXVlcnkocGF0aHNUb1F1ZXJ5KTtcblx0XHRyZXR1cm4gY29tcGlsZWRFeHByZXNzaW9uO1xuXHR9XG5cblx0cHVibGljIHRhcmdldElzUHJvcGVydHkobWV0YVBhdGg6IE1ldGFQYXRoPHVua25vd24+IHwgdW5kZWZpbmVkKTogbWV0YVBhdGggaXMgTWV0YVBhdGg8UHJvcGVydHk+IHtcblx0XHRjb25zdCB0YXJnZXQgPSBtZXRhUGF0aD8uZ2V0VGFyZ2V0KCk7XG5cdFx0cmV0dXJuIGlzUHJvcGVydHkodGFyZ2V0KTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0cHJpdmF0ZSBjb25maWc6IEdlbmVyaWNDb25maWdcblx0KSB7fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQUtxQkEsdUJBQXVCO0lBK0wzQyxTQUFBQSx3QkFDUUMsY0FBaUMsRUFDaENDLE1BQXFCLEVBQzVCO01BQUEsS0FqTU1DLFlBQVksR0FBYSxFQUFFO01BQUEsS0ErTDNCRixjQUFpQyxHQUFqQ0EsY0FBaUM7TUFBQSxLQUNoQ0MsTUFBcUIsR0FBckJBLE1BQXFCO0lBQzNCO0lBQUNFLFFBQUEsR0FBQUosdUJBQUE7SUFBQSxJQUFBSyxNQUFBLEdBQUFMLHVCQUFBLENBQUFN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
|
|
@@ -35,7 +35,6 @@ export type CardConfig = {
|
|
|
35
35
|
* Adaptive card json generator.
|
|
36
36
|
* @param convertedTypes Converted Metadata.
|
|
37
37
|
* @param config Card Configuration.
|
|
38
|
-
* @experimental
|
|
39
38
|
*/
|
|
40
39
|
export default class BaseCardContentProvider<GenericConfig extends CardConfig> {
|
|
41
40
|
private pathsToQuery: string[] = [];
|
|
@@ -15,7 +15,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/templates/ObjectPage/card/BaseCardContent
|
|
|
15
15
|
* Adaptive card json generator.
|
|
16
16
|
* @param convertedTypes Converted Metadata.
|
|
17
17
|
* @param config Card Configuration.
|
|
18
|
-
* @experimental
|
|
19
18
|
*/
|
|
20
19
|
let AdaptiveCardGenerator = /*#__PURE__*/function (_BaseCardContentProvi) {
|
|
21
20
|
function AdaptiveCardGenerator(convertedTypes, config) {
|
|
@@ -114,4 +113,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/templates/ObjectPage/card/BaseCardContent
|
|
|
114
113
|
_exports = AdaptiveCardGenerator;
|
|
115
114
|
return _exports;
|
|
116
115
|
}, false);
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNU1RFQU1TX0FEQVBUSVZFX0NBUkRfU0NIRU1BIiwiTVNURUFNU19BREFQVElWRV9DQVJEX1ZFUlNJT04iLCJBZGFwdGl2ZUNhcmRHZW5lcmF0b3IiLCJfQmFzZUNhcmRDb250ZW50UHJvdmkiLCJjb252ZXJ0ZWRUeXBlcyIsImNvbmZpZyIsIl90aGlzIiwiY2FsbCIsIndlYlVybCIsImhlYWRlclRpdGxlYW5kSW1hZ2UiLCJnZXRIZWFkZXJUaXRsZSIsImhlYWRlckZvcm1zIiwiZ2V0SGVhZGVyRmFjZXRzRm9yQWRhcHRpdmVDYXJkIiwiY2FyZEFjdGlvbnMiLCJnZXRDYXJkQWN0aW9ucyIsImxlbmd0aCIsImNhcmREZWZpbml0aW9uIiwidW5kZWZpbmVkIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImNvbnRlbnQiLCJib2R5IiwidHlwZSIsIm1zVGVhbXMiLCJ3aWR0aCIsIm1ldGFkYXRhIiwiJHNjaGVtYSIsInZlcnNpb24iLCJlcnIiLCJtZXNzYWdlIiwiRXJyb3IiLCJTdHJpbmciLCJMb2ciLCJlcnJvciIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDYXJkRGVmaW5pdGlvbiIsInF1ZXJ5VXJsIiwiZXh0ZW5kRGVmaW5pdGlvbiIsImhlYWRlckFjdGlvbnNQcm92aWRlciIsIkhlYWRlckFjdGlvbnMiLCJwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyIsImdldFBhdGhzVG9RdWVyeSIsImFkZFBhdGhzVG9RdWVyeSIsImNhcmRBY3Rpb25TZXQiLCJwdXNoIiwiYWN0aW9ucyIsImhlYWRlckNvbnRlbnRQcm92aWRlciIsIkhlYWRlckNvbnRlbnQiLCJnZXRIZWFkZXJDb250ZW50IiwicGF0aHNUb1F1ZXJ5RnJvbUhlYWRlckZvcm1zIiwiaGVhZGVyVGl0bGVQcm92aWRlciIsIkhlYWRlclRpdGxlIiwiaGVhZGVyVGl0bGUiLCJnZXRUaXRsZSIsInBhdGhzVG9RdWVyeUZyb21UaXRsZSIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJHZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb252ZXJ0ZWRNZXRhZGF0YSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQmFzZUNhcmRDb250ZW50UHJvdmlkZXIsIHsgdHlwZSBDYXJkQ29uZmlnIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0Jhc2VDYXJkQ29udGVudFByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IEhlYWRlckFjdGlvbnNDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvYWN0aW9ucy9IZWFkZXJBY3Rpb25zXCI7XG5pbXBvcnQgSGVhZGVyQWN0aW9ucyBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvYWN0aW9ucy9IZWFkZXJBY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IENhcmRIZWFkZXJGYWNldHNDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvZmFjZXRzL0hlYWRlckNvbnRlbnRcIjtcbmltcG9ydCBIZWFkZXJDb250ZW50IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9mYWNldHMvSGVhZGVyQ29udGVudFwiO1xuaW1wb3J0IEhlYWRlclRpdGxlIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9mYWNldHMvSGVhZGVyVGl0bGVcIjtcbmltcG9ydCB0eXBlIHsgQ2FyZENvbHVtblNldCwgQ2FyZEVsZW1lbnQsIElBQ0FjdGlvblNldCwgSUFkYXB0aXZlQ2FyZCB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxuY29uc3QgTVNURUFNU19BREFQVElWRV9DQVJEX1NDSEVNQSA9IFwiaHR0cHM6Ly9hZGFwdGl2ZWNhcmRzLmlvL3NjaGVtYXMvYWRhcHRpdmUtY2FyZC5qc29uXCI7XG5jb25zdCBNU1RFQU1TX0FEQVBUSVZFX0NBUkRfVkVSU0lPTiA9IFwiMS40XCI7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRvckNvbmZpZyA9IENhcmRDb25maWcgJiBDYXJkSGVhZGVyRmFjZXRzQ29uZmlnICYgSGVhZGVyQWN0aW9uc0NvbmZpZztcblxuLyoqXG4gKiBBZGFwdGl2ZSBjYXJkIGpzb24gZ2VuZXJhdG9yLlxuICogQHBhcmFtIGNvbnZlcnRlZFR5cGVzIENvbnZlcnRlZCBNZXRhZGF0YS5cbiAqIEBwYXJhbSBjb25maWcgQ2FyZCBDb25maWd1cmF0aW9uLlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGFwdGl2ZUNhcmRHZW5lcmF0b3IgZXh0ZW5kcyBCYXNlQ2FyZENvbnRlbnRQcm92aWRlcjxHZW5lcmF0b3JDb25maWc+IHtcblx0cHJpdmF0ZSBjYXJkRGVmaW5pdGlvbj86IElBZGFwdGl2ZUNhcmQ7XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgZ2VuZXJhdGVkIGNhcmQgZGVmaW5pdGlvbi5cblx0ICogQHBhcmFtIHF1ZXJ5VXJsIFF1ZXJ5IHVybCB0byB1c2UgZm9yIGNhcmQgZGVmaW5pdGlvbi5cblx0ICogQHJldHVybnMgQ2FyZCBkZWZpbml0aW9uIHRvIHNoYXJlIHZpYSBNUyB0ZWFtcyAnc2hhcmUgYXMgY2FyZCcuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZERlZmluaXRpb24ocXVlcnlVcmw/OiBzdHJpbmcpOiBJQWRhcHRpdmVDYXJkIHwgdW5kZWZpbmVkIHtcblx0XHRsZXQgY2FyZERlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uO1xuXHRcdGlmIChxdWVyeVVybCAmJiBjYXJkRGVmaW5pdGlvbikge1xuXHRcdFx0Y29uc3QgZXh0ZW5kRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0bWV0YWRhdGE6IHtcblx0XHRcdFx0XHR3ZWJVcmw6IGAke3F1ZXJ5VXJsfWBcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNhcmREZWZpbml0aW9uID0geyAuLi5jYXJkRGVmaW5pdGlvbiwgLi4uZXh0ZW5kRGVmaW5pdGlvbiB9O1xuXHRcdH1cblx0XHRyZXR1cm4gY2FyZERlZmluaXRpb247XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsIGNvbmZpZzogR2VuZXJhdG9yQ29uZmlnKSB7XG5cdFx0c3VwZXIoY29udmVydGVkVHlwZXMsIGNvbmZpZyk7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHsgd2ViVXJsIH0gPSBjb25maWc7XG5cblx0XHRcdC8vIGhlYWRlciBjb250ZW50XG5cdFx0XHRjb25zdCBoZWFkZXJUaXRsZWFuZEltYWdlID0gdGhpcy5nZXRIZWFkZXJUaXRsZShjb25maWcpO1xuXHRcdFx0Y29uc3QgaGVhZGVyRm9ybXMgPSB0aGlzLmdldEhlYWRlckZhY2V0c0ZvckFkYXB0aXZlQ2FyZChjb25maWcpO1xuXG5cdFx0XHQvLyBhY3Rpb25zXG5cdFx0XHRjb25zdCBjYXJkQWN0aW9ucyA9IHRoaXMuZ2V0Q2FyZEFjdGlvbnMoY29uZmlnKTtcblxuXHRcdFx0Ly8gYm9keVxuXHRcdFx0aWYgKGhlYWRlckZvcm1zLmxlbmd0aCA9PT0gMCAmJiBjYXJkQWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0dGhpcy5jYXJkRGVmaW5pdGlvbiA9IHVuZGVmaW5lZDtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBjb250ZW50ID0gWy4uLmhlYWRlckZvcm1zLCAuLi5jYXJkQWN0aW9uc107XG5cdFx0XHRjb25zdCBib2R5ID0gaGVhZGVyVGl0bGVhbmRJbWFnZSA/IFtoZWFkZXJUaXRsZWFuZEltYWdlLCAuLi5jb250ZW50XSA6IGNvbnRlbnQ7XG5cblx0XHRcdHRoaXMuY2FyZERlZmluaXRpb24gPSB7XG5cdFx0XHRcdHR5cGU6IFwiQWRhcHRpdmVDYXJkXCIsXG5cdFx0XHRcdG1zVGVhbXM6IHtcblx0XHRcdFx0XHR3aWR0aDogXCJmdWxsXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0bWV0YWRhdGE6IHtcblx0XHRcdFx0XHR3ZWJVcmxcblx0XHRcdFx0fSxcblx0XHRcdFx0Ym9keTogYm9keSxcblx0XHRcdFx0JHNjaGVtYTogTVNURUFNU19BREFQVElWRV9DQVJEX1NDSEVNQSxcblx0XHRcdFx0dmVyc2lvbjogTVNURUFNU19BREFQVElWRV9DQVJEX1ZFUlNJT05cblx0XHRcdH07XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGNhcmQgZGVmaW50aW9uXCIsIG1lc3NhZ2UpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZ2V0Q2FyZEFjdGlvbnMoY29uZmlnOiBDYXJkQ29uZmlnKTogSUFDQWN0aW9uU2V0W10ge1xuXHRcdGNvbnN0IGhlYWRlckFjdGlvbnNQcm92aWRlciA9IG5ldyBIZWFkZXJBY3Rpb25zKHRoaXMuY29udmVydGVkVHlwZXMsIGNvbmZpZyk7XG5cdFx0Y29uc3QgY2FyZEFjdGlvbnMgPSBoZWFkZXJBY3Rpb25zUHJvdmlkZXIuZ2V0Q2FyZEFjdGlvbnMoKTtcblx0XHRjb25zdCBwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyA9IGhlYWRlckFjdGlvbnNQcm92aWRlci5nZXRQYXRoc1RvUXVlcnkoKTtcblx0XHR0aGlzLmFkZFBhdGhzVG9RdWVyeShwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyk7XG5cdFx0Y29uc3QgY2FyZEFjdGlvblNldDogSUFDQWN0aW9uU2V0W10gPSBbXTtcblx0XHRpZiAoY2FyZEFjdGlvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y2FyZEFjdGlvblNldC5wdXNoKHtcblx0XHRcdFx0dHlwZTogXCJBY3Rpb25TZXRcIixcblx0XHRcdFx0YWN0aW9uczogWy4uLmNhcmRBY3Rpb25zXVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBjYXJkQWN0aW9uU2V0O1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRIZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQoY29uZmlnOiBDYXJkQ29uZmlnKTogQ2FyZEVsZW1lbnRbXSB7XG5cdFx0Y29uc3QgaGVhZGVyQ29udGVudFByb3ZpZGVyID0gbmV3IEhlYWRlckNvbnRlbnQodGhpcy5jb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCBoZWFkZXJGb3JtcyA9IGhlYWRlckNvbnRlbnRQcm92aWRlci5nZXRIZWFkZXJDb250ZW50KCk7XG5cdFx0Y29uc3QgcGF0aHNUb1F1ZXJ5RnJvbUhlYWRlckZvcm1zID0gaGVhZGVyQ29udGVudFByb3ZpZGVyLmdldFBhdGhzVG9RdWVyeSgpO1xuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9RdWVyeUZyb21IZWFkZXJGb3Jtcyk7XG5cblx0XHRyZXR1cm4gaGVhZGVyRm9ybXM7XG5cdH1cblxuXHRwcml2YXRlIGdldEhlYWRlclRpdGxlKGNvbmZpZzogQ2FyZENvbmZpZyk6IENhcmRDb2x1bW5TZXQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGhlYWRlclRpdGxlUHJvdmlkZXIgPSBuZXcgSGVhZGVyVGl0bGUodGhpcy5jb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCBoZWFkZXJUaXRsZSA9IGhlYWRlclRpdGxlUHJvdmlkZXIuZ2V0VGl0bGUoKTtcblx0XHRjb25zdCBwYXRoc1RvUXVlcnlGcm9tVGl0bGUgPSBoZWFkZXJUaXRsZVByb3ZpZGVyLmdldFBhdGhzVG9RdWVyeSgpO1xuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9RdWVyeUZyb21UaXRsZSk7XG5cblx0XHRyZXR1cm4gaGVhZGVyVGl0bGU7XG5cdH1cbn1cbiJd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
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNU1RFQU1TX0FEQVBUSVZFX0NBUkRfU0NIRU1BIiwiTVNURUFNU19BREFQVElWRV9DQVJEX1ZFUlNJT04iLCJBZGFwdGl2ZUNhcmRHZW5lcmF0b3IiLCJfQmFzZUNhcmRDb250ZW50UHJvdmkiLCJjb252ZXJ0ZWRUeXBlcyIsImNvbmZpZyIsIl90aGlzIiwiY2FsbCIsIndlYlVybCIsImhlYWRlclRpdGxlYW5kSW1hZ2UiLCJnZXRIZWFkZXJUaXRsZSIsImhlYWRlckZvcm1zIiwiZ2V0SGVhZGVyRmFjZXRzRm9yQWRhcHRpdmVDYXJkIiwiY2FyZEFjdGlvbnMiLCJnZXRDYXJkQWN0aW9ucyIsImxlbmd0aCIsImNhcmREZWZpbml0aW9uIiwidW5kZWZpbmVkIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImNvbnRlbnQiLCJib2R5IiwidHlwZSIsIm1zVGVhbXMiLCJ3aWR0aCIsIm1ldGFkYXRhIiwiJHNjaGVtYSIsInZlcnNpb24iLCJlcnIiLCJtZXNzYWdlIiwiRXJyb3IiLCJTdHJpbmciLCJMb2ciLCJlcnJvciIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDYXJkRGVmaW5pdGlvbiIsInF1ZXJ5VXJsIiwiZXh0ZW5kRGVmaW5pdGlvbiIsImhlYWRlckFjdGlvbnNQcm92aWRlciIsIkhlYWRlckFjdGlvbnMiLCJwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyIsImdldFBhdGhzVG9RdWVyeSIsImFkZFBhdGhzVG9RdWVyeSIsImNhcmRBY3Rpb25TZXQiLCJwdXNoIiwiYWN0aW9ucyIsImhlYWRlckNvbnRlbnRQcm92aWRlciIsIkhlYWRlckNvbnRlbnQiLCJnZXRIZWFkZXJDb250ZW50IiwicGF0aHNUb1F1ZXJ5RnJvbUhlYWRlckZvcm1zIiwiaGVhZGVyVGl0bGVQcm92aWRlciIsIkhlYWRlclRpdGxlIiwiaGVhZGVyVGl0bGUiLCJnZXRUaXRsZSIsInBhdGhzVG9RdWVyeUZyb21UaXRsZSIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJHZW5lcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb252ZXJ0ZWRNZXRhZGF0YSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQmFzZUNhcmRDb250ZW50UHJvdmlkZXIsIHsgdHlwZSBDYXJkQ29uZmlnIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0Jhc2VDYXJkQ29udGVudFByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IEhlYWRlckFjdGlvbnNDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvYWN0aW9ucy9IZWFkZXJBY3Rpb25zXCI7XG5pbXBvcnQgSGVhZGVyQWN0aW9ucyBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvYWN0aW9ucy9IZWFkZXJBY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IENhcmRIZWFkZXJGYWNldHNDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvZmFjZXRzL0hlYWRlckNvbnRlbnRcIjtcbmltcG9ydCBIZWFkZXJDb250ZW50IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9mYWNldHMvSGVhZGVyQ29udGVudFwiO1xuaW1wb3J0IEhlYWRlclRpdGxlIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9mYWNldHMvSGVhZGVyVGl0bGVcIjtcbmltcG9ydCB0eXBlIHsgQ2FyZENvbHVtblNldCwgQ2FyZEVsZW1lbnQsIElBQ0FjdGlvblNldCwgSUFkYXB0aXZlQ2FyZCB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxuY29uc3QgTVNURUFNU19BREFQVElWRV9DQVJEX1NDSEVNQSA9IFwiaHR0cHM6Ly9hZGFwdGl2ZWNhcmRzLmlvL3NjaGVtYXMvYWRhcHRpdmUtY2FyZC5qc29uXCI7XG5jb25zdCBNU1RFQU1TX0FEQVBUSVZFX0NBUkRfVkVSU0lPTiA9IFwiMS40XCI7XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRvckNvbmZpZyA9IENhcmRDb25maWcgJiBDYXJkSGVhZGVyRmFjZXRzQ29uZmlnICYgSGVhZGVyQWN0aW9uc0NvbmZpZztcblxuLyoqXG4gKiBBZGFwdGl2ZSBjYXJkIGpzb24gZ2VuZXJhdG9yLlxuICogQHBhcmFtIGNvbnZlcnRlZFR5cGVzIENvbnZlcnRlZCBNZXRhZGF0YS5cbiAqIEBwYXJhbSBjb25maWcgQ2FyZCBDb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBZGFwdGl2ZUNhcmRHZW5lcmF0b3IgZXh0ZW5kcyBCYXNlQ2FyZENvbnRlbnRQcm92aWRlcjxHZW5lcmF0b3JDb25maWc+IHtcblx0cHJpdmF0ZSBjYXJkRGVmaW5pdGlvbj86IElBZGFwdGl2ZUNhcmQ7XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgZ2VuZXJhdGVkIGNhcmQgZGVmaW5pdGlvbi5cblx0ICogQHBhcmFtIHF1ZXJ5VXJsIFF1ZXJ5IHVybCB0byB1c2UgZm9yIGNhcmQgZGVmaW5pdGlvbi5cblx0ICogQHJldHVybnMgQ2FyZCBkZWZpbml0aW9uIHRvIHNoYXJlIHZpYSBNUyB0ZWFtcyAnc2hhcmUgYXMgY2FyZCcuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZERlZmluaXRpb24ocXVlcnlVcmw/OiBzdHJpbmcpOiBJQWRhcHRpdmVDYXJkIHwgdW5kZWZpbmVkIHtcblx0XHRsZXQgY2FyZERlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uO1xuXHRcdGlmIChxdWVyeVVybCAmJiBjYXJkRGVmaW5pdGlvbikge1xuXHRcdFx0Y29uc3QgZXh0ZW5kRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0bWV0YWRhdGE6IHtcblx0XHRcdFx0XHR3ZWJVcmw6IGAke3F1ZXJ5VXJsfWBcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNhcmREZWZpbml0aW9uID0geyAuLi5jYXJkRGVmaW5pdGlvbiwgLi4uZXh0ZW5kRGVmaW5pdGlvbiB9O1xuXHRcdH1cblx0XHRyZXR1cm4gY2FyZERlZmluaXRpb247XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsIGNvbmZpZzogR2VuZXJhdG9yQ29uZmlnKSB7XG5cdFx0c3VwZXIoY29udmVydGVkVHlwZXMsIGNvbmZpZyk7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHsgd2ViVXJsIH0gPSBjb25maWc7XG5cblx0XHRcdC8vIGhlYWRlciBjb250ZW50XG5cdFx0XHRjb25zdCBoZWFkZXJUaXRsZWFuZEltYWdlID0gdGhpcy5nZXRIZWFkZXJUaXRsZShjb25maWcpO1xuXHRcdFx0Y29uc3QgaGVhZGVyRm9ybXMgPSB0aGlzLmdldEhlYWRlckZhY2V0c0ZvckFkYXB0aXZlQ2FyZChjb25maWcpO1xuXG5cdFx0XHQvLyBhY3Rpb25zXG5cdFx0XHRjb25zdCBjYXJkQWN0aW9ucyA9IHRoaXMuZ2V0Q2FyZEFjdGlvbnMoY29uZmlnKTtcblxuXHRcdFx0Ly8gYm9keVxuXHRcdFx0aWYgKGhlYWRlckZvcm1zLmxlbmd0aCA9PT0gMCAmJiBjYXJkQWN0aW9ucy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0dGhpcy5jYXJkRGVmaW5pdGlvbiA9IHVuZGVmaW5lZDtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBjb250ZW50ID0gWy4uLmhlYWRlckZvcm1zLCAuLi5jYXJkQWN0aW9uc107XG5cdFx0XHRjb25zdCBib2R5ID0gaGVhZGVyVGl0bGVhbmRJbWFnZSA/IFtoZWFkZXJUaXRsZWFuZEltYWdlLCAuLi5jb250ZW50XSA6IGNvbnRlbnQ7XG5cblx0XHRcdHRoaXMuY2FyZERlZmluaXRpb24gPSB7XG5cdFx0XHRcdHR5cGU6IFwiQWRhcHRpdmVDYXJkXCIsXG5cdFx0XHRcdG1zVGVhbXM6IHtcblx0XHRcdFx0XHR3aWR0aDogXCJmdWxsXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0bWV0YWRhdGE6IHtcblx0XHRcdFx0XHR3ZWJVcmxcblx0XHRcdFx0fSxcblx0XHRcdFx0Ym9keTogYm9keSxcblx0XHRcdFx0JHNjaGVtYTogTVNURUFNU19BREFQVElWRV9DQVJEX1NDSEVNQSxcblx0XHRcdFx0dmVyc2lvbjogTVNURUFNU19BREFQVElWRV9DQVJEX1ZFUlNJT05cblx0XHRcdH07XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGNhcmQgZGVmaW50aW9uXCIsIG1lc3NhZ2UpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZ2V0Q2FyZEFjdGlvbnMoY29uZmlnOiBDYXJkQ29uZmlnKTogSUFDQWN0aW9uU2V0W10ge1xuXHRcdGNvbnN0IGhlYWRlckFjdGlvbnNQcm92aWRlciA9IG5ldyBIZWFkZXJBY3Rpb25zKHRoaXMuY29udmVydGVkVHlwZXMsIGNvbmZpZyk7XG5cdFx0Y29uc3QgY2FyZEFjdGlvbnMgPSBoZWFkZXJBY3Rpb25zUHJvdmlkZXIuZ2V0Q2FyZEFjdGlvbnMoKTtcblx0XHRjb25zdCBwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyA9IGhlYWRlckFjdGlvbnNQcm92aWRlci5nZXRQYXRoc1RvUXVlcnkoKTtcblx0XHR0aGlzLmFkZFBhdGhzVG9RdWVyeShwYXRoc1RvUXVlcnlGcm9tQWN0aW9ucyk7XG5cdFx0Y29uc3QgY2FyZEFjdGlvblNldDogSUFDQWN0aW9uU2V0W10gPSBbXTtcblx0XHRpZiAoY2FyZEFjdGlvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y2FyZEFjdGlvblNldC5wdXNoKHtcblx0XHRcdFx0dHlwZTogXCJBY3Rpb25TZXRcIixcblx0XHRcdFx0YWN0aW9uczogWy4uLmNhcmRBY3Rpb25zXVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBjYXJkQWN0aW9uU2V0O1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRIZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQoY29uZmlnOiBDYXJkQ29uZmlnKTogQ2FyZEVsZW1lbnRbXSB7XG5cdFx0Y29uc3QgaGVhZGVyQ29udGVudFByb3ZpZGVyID0gbmV3IEhlYWRlckNvbnRlbnQodGhpcy5jb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCBoZWFkZXJGb3JtcyA9IGhlYWRlckNvbnRlbnRQcm92aWRlci5nZXRIZWFkZXJDb250ZW50KCk7XG5cdFx0Y29uc3QgcGF0aHNUb1F1ZXJ5RnJvbUhlYWRlckZvcm1zID0gaGVhZGVyQ29udGVudFByb3ZpZGVyLmdldFBhdGhzVG9RdWVyeSgpO1xuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9RdWVyeUZyb21IZWFkZXJGb3Jtcyk7XG5cblx0XHRyZXR1cm4gaGVhZGVyRm9ybXM7XG5cdH1cblxuXHRwcml2YXRlIGdldEhlYWRlclRpdGxlKGNvbmZpZzogQ2FyZENvbmZpZyk6IENhcmRDb2x1bW5TZXQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGhlYWRlclRpdGxlUHJvdmlkZXIgPSBuZXcgSGVhZGVyVGl0bGUodGhpcy5jb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCBoZWFkZXJUaXRsZSA9IGhlYWRlclRpdGxlUHJvdmlkZXIuZ2V0VGl0bGUoKTtcblx0XHRjb25zdCBwYXRoc1RvUXVlcnlGcm9tVGl0bGUgPSBoZWFkZXJUaXRsZVByb3ZpZGVyLmdldFBhdGhzVG9RdWVyeSgpO1xuXHRcdHRoaXMuYWRkUGF0aHNUb1F1ZXJ5KHBhdGhzVG9RdWVyeUZyb21UaXRsZSk7XG5cblx0XHRyZXR1cm4gaGVhZGVyVGl0bGU7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7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
|
|
@@ -17,7 +17,6 @@ export type GeneratorConfig = CardConfig & CardHeaderFacetsConfig & HeaderAction
|
|
|
17
17
|
* Adaptive card json generator.
|
|
18
18
|
* @param convertedTypes Converted Metadata.
|
|
19
19
|
* @param config Card Configuration.
|
|
20
|
-
* @experimental
|
|
21
20
|
*/
|
|
22
21
|
export default class AdaptiveCardGenerator extends BaseCardContentProvider<GeneratorConfig> {
|
|
23
22
|
private cardDefinition?: IAdaptiveCard;
|
|
@@ -38,7 +38,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/conver
|
|
|
38
38
|
* Get image and title for card.
|
|
39
39
|
* @param convertedTypes Converted Metadata.
|
|
40
40
|
* @param config Card Configuration.
|
|
41
|
-
* @experimental
|
|
42
41
|
*/
|
|
43
42
|
let HeaderContent = /*#__PURE__*/function (_BaseCardContentProvi) {
|
|
44
43
|
function HeaderContent(convertedTypes, config) {
|
|
@@ -567,4 +566,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/core/conver
|
|
|
567
566
|
_exports = HeaderContent;
|
|
568
567
|
return _exports;
|
|
569
568
|
}, false);
|
|
570
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfQ09MVU1OUyIsIkhlYWRlckNvbnRlbnQiLCJfQmFzZUNhcmRDb250ZW50UHJvdmkiLCJjb252ZXJ0ZWRUeXBlcyIsImNvbmZpZyIsIl90aGlzIiwiY2FsbCIsImNhcmRFbGVtZW50cyIsImhlYWRlckZhY2V0c0ZvckFkYXB0aXZlQ2FyZCIsImNvbnRleHRQYXRoIiwiZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleSIsImhlYWRlckZhY2V0IiwiTWV0YVBhdGgiLCJjdXN0b21Db25maWdIZWFkZXJGYWNldHMiLCJnZXRDdXN0b21Db25maWdIZWFkZXJGYWNldHMiLCJjcmVhdGVIZWFkZXJGb3JtcyIsImVycm9yIiwiTG9nIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRIZWFkZXJDb250ZW50IiwiZ2V0RmllbGRHcm91cFByb3BlcnRpZXMiLCJyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIiwiZGF0YUZpZWxkIiwiZm9ybUVsZW1lbnRDb25maWciLCJwcm9wZXJ0eSIsInRleHRQcm9wZXJ0eSIsInRleHRwcm9wZXJ0eUFubm90YXRpb24iLCJsYWJlbCIsImxhYmVsVGV4dCIsIm5hdmlnYXRpb25QYXRoIiwiY29sb3IiLCIkVHlwZSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiVmFsdWUiLCJnZXRNZXRhUGF0aEZvck9iamVjdCIsImdldE5hdmlnYXRpb25QYXRoRm9yRXhwcmVzc2lvbiIsImdldFRhcmdldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIkxhYmVsIiwiJHRhcmdldCIsInZhbHVlT2YiLCJnZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMiLCJkYXRhRmllbGRUYXJnZXRQYXRoIiwiVGFyZ2V0IiwiZGF0YUZpZWxkVGFyZ2V0IiwiaXNBbm5vdGF0aW9uT2ZUeXBlIiwiY29udGFjdE9iamVjdCIsImZuIiwiZ2V0VmlzaWJsZURhdGFGaWVsZHMiLCJkYXRhRmllbGRzIiwicmVkdWNlIiwidmlzaWJsZWRhdGFGaWVsZHMiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsImlzUG90ZW50aWFsbHlTZW5zaXRpdmUiLCJwdXNoIiwiZ2V0Q29sdW1uRm9yRGF0YUZpZWxkIiwicHJvcGVydGllcyIsImRhdGFQb2ludFRpdGxlIiwiaXRlbXMiLCJjb2x1bW5zIiwiZ2V0Q29sdW1uIiwidmlzaWJsZSIsImdldFZpc2libGVGb3JEYXRhRmllbGQiLCJ1b20iLCJnZXRUZXh0QmxvY2siLCJzaXplIiwid2VpZ2h0IiwidGV4dCIsIm1heExpbmVzIiwid3JhcCIsInNwYWNpbmciLCJpc1N1YnRsZSIsInRleHRCaW5kaW5nIiwiZ2V0VmFsdWVCaW5kaW5nIiwiYWRkaXRpb25hbFZhbHVlIiwiZGF0ZUZpZWxkVmlzaWJsZUV4cCIsImdldFRleHRCbG9ja1Zpc2libGl0eUZvckRhdGVGaWVsZCIsInVuZGVmaW5lZCIsIiR3aGVuIiwiY29tcGlsZVRvQWRhcHRpdmVFeHByZXNzaW9uIiwiZXF1YWwiLCJjb25zdGFudCIsImdldEZpZWxkR3JvdXBDb250ZW50IiwiZm9ybUhlYWRlciIsImZvcm1FbGVtZW50c0NvbmZpZyIsImZpZWxkR3JvdXAiLCJtYXhDb2x1bW5zIiwiZm9ybXMiLCJmb3JtVGl0bGUiLCJmaWVsZEl0ZW1zIiwiRGF0YSIsImlUb3RhbENvbHVtcyIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiaSIsImlMb29wRW5kIiwiaUxvb3BTdGFydCIsImRhdGFGaWVsZGNvbHVtbnNldCIsImdldENvbHVtblNldCIsImoiLCJrZXkiLCJnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkIiwiZGF0YVByb3BlcnRpZXMiLCJkYXRhRmllbGROZXh0IiwiZGF0YUZpZWxkQ29sdW1ucyIsImRhdGFQb2ludCIsImV4cCIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5RXhwcmVzc2lvbiIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldENyaXRpY2FsaXR5RXhwcmVzc2lvbkZvckNhcmRzIiwidXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24iLCJnZXRVb21QYXRoQmluZGluZyIsInByb3BlcnR5VGFyZ2V0T2JqZWN0IiwiTWVhc3VyZXMiLCJJU09DdXJyZW5jeSIsIlVuaXQiLCJ1b21NZXRhUGF0aCIsInRhcmdldFBhdGgiLCJ0YXJnZXRJc1Byb3BlcnR5IiwiZ2V0RGF0YVBvaW50UHJvcGVydGllcyIsImdldERhdGFQb2ludENvbnRlbnQiLCJWaXN1YWxpemF0aW9uIiwiZGF0YVBvaW50Rm9ybXMiLCJnZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzIiwiaGVhZGVyRmFjZXRDb25maWdzIiwiYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzIiwiY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXROYW1lcyIsIk9iamVjdCIsImtleXMiLCJjdXN0b21IZWFkZXJGYWNldEVsZW1lbnRzIiwiY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXkiLCJyZWxldmFudEZhY2V0RWxlbWVudCIsImZpbmQiLCJoZWFkZXJGYWNldEVsZW1lbnQiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiaGVhZGVyRmFjZXRNZXRhUGF0aCIsInJlZmVyZW5jZUZhY2V0cyIsImdldFJlZmVyZW5jZUZhY2V0RnJvbUFubm90YXRpb25zIiwibWFwIiwiZ2VuZXJhdGUiLCJ2YWx1ZSIsImN1c3RvbUhlYWRlckZhY2V0Q29uZmlnRWxlbWVudHMiLCJoZWFkZXJGYWNldE92ZXJ3cml0ZUNvbmZpZyIsImlzVmlzaWJsZSIsIk92ZXJyaWRlVHlwZSIsIm92ZXJ3cml0ZSIsInRpdGxlIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJjb25maWdIZWFkZXJGYWNldHMiLCJwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQiLCJoZWFkZXJGb3JtcyIsImNvbmZpZ0hlYWRlckZhY2V0IiwiY3VycmVudElkeCIsImFsbENvbmZpZ0hlYWRlckZhY2V0cyIsIkZhY2V0SXRlbSIsIlVJIiwiSGlkZGVuIiwiZmFjZXREZWZpbml0aW9uIiwiZ2V0VmlzaWJsZUZvclJlZmVyZW5jZUZhY2V0IiwidG9TdHJpbmciLCJ0ZXJtIiwiYWRkRW1wdHlDb2x1bW5zIiwiZGF0YVBvaW50Q29sdW1ucyIsImRhdGFQb2ludENvbHVtblNldCIsImdldEFkZHJlc3NDb250ZW50IiwiYmluZCIsImNhcmRDb2x1bW5TZXQiLCJudW1Db2x1bW5zIiwibnVtQ29sdW1uc1RvQWRkIiwiYWRkcmVzc0NvbnRlbnQiLCJhZGRyZXNzIiwiYWRkcmVzc0NvbHVtblNldCIsImhlYWRlckZhY2V0cyIsImZpbHRlciIsImZhY2V0IiwiZWxlbWVudCIsInZpc2liaWxpdHlFeHAiLCJnZW5lcmF0ZVZpc2libGVFeHByZXNzaW9uIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsIm1ldGFQYXRoT2JqZWN0IiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJnZXROYXZpZ2F0aW9uUHJvcGVydGllcyIsIm5hdmlnYXRlZFBhdGhzIiwiZm9yRWFjaCIsImlzTmF2aWdhdGlvblByb3BlcnR5IiwibmFtZSIsInJlcGxhY2VBbGwiLCJCYXNlQ2FyZENvbnRlbnRQcm92aWRlciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQ29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnZlcnRlZE1ldGFkYXRhLCBOYXZpZ2F0aW9uUHJvcGVydHksIFByaW1pdGl2ZVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNCYXNlX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHtcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcyxcblx0dHlwZSBBZGRyZXNzLFxuXHR0eXBlIENvbnRhY3Rcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdERhdGFQb2ludCxcblx0RGF0YVBvaW50VHlwZSxcblx0RmllbGRHcm91cCxcblx0SGVhZGVyRmFjZXRzLFxuXHRSZWZlcmVuY2VGYWNldFxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UZXJtcywgVUlBbm5vdGF0aW9uVHlwZXMsIFZpc3VhbGl6YXRpb25UeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uc3RhbnQsIGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0S2V5LCBDdXN0b21FbGVtZW50LCBQb3NpdGlvbmFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgT3ZlcnJpZGVUeXBlLCBQbGFjZW1lbnQsIGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUG90ZW50aWFsbHlTZW5zaXRpdmUsIGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9EYXRhRmllbGRIZWxwZXJcIjtcbmltcG9ydCB7IGNvbXBpbGVUb0FkYXB0aXZlRXhwcmVzc2lvbiwgdHlwZSBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9BZGFwdGl2ZUNhcmRFeHByZXNzaW9uQ29tcGlsZXJcIjtcbmltcG9ydCBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUsIGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUeXBlLCBpc05hdmlnYXRpb25Qcm9wZXJ0eSwgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb25Gb3JDYXJkcyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0NyaXRpY2FsaXR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVWaXNpYmxlRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFGaWVsZEZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGlzVmlzaWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2V0Q29sdW1uLCBnZXRDb2x1bW5TZXQsIGdldFRleHRCbG9jayB9IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9BZGFwdGl2ZUNhcmRDb250ZW50XCI7XG5pbXBvcnQgQmFzZUNhcmRDb250ZW50UHJvdmlkZXIsIHsgdHlwZSBDYXJkQ29uZmlnIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0Jhc2VDYXJkQ29udGVudFByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IENhcmRDb2x1bW4sIENhcmRDb2x1bW5TZXQsIENhcmRFbGVtZW50LCBDYXJkVGV4dEJsb2NrIH0gZnJvbSBcInR5cGVzL2FkYXB0aXZlQ2FyZF90eXBlc1wiO1xuXG50eXBlIERhdGFQcm9wZXJ0aWVzID0ge1xuXHRjb2xvcj86IENvbXBpbGVkQWRhcHRpdmVDYXJkRXhwcmVzc2lvbjtcblx0dW9tPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0cHJvcGVydHk/OiBNZXRhUGF0aDxzdHJpbmc+O1xuXHR0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxzdHJpbmc+O1xuXHRuYXZpZ2F0aW9uUGF0aD86IHN0cmluZztcbn07XG5cbi8vIEV4dGVybmFsIHR5cGVzIGZvciBoZWFkZXIgZmFjZXQgY29uZmlndXJhdGlvblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnRDb25maWcgPSB7XG5cdGxhYmVsVGV4dDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEN1c3RvbUZvcm1FbGVtZW50c0NvbmZpZyA9IFJlY29yZDxDb25maWd1cmFibGVPYmplY3RLZXksIEZvcm1FbGVtZW50Q29uZmlnPjtcblxuZXhwb3J0IHR5cGUgSGVhZGVyRmFjZXRDb25maWcgPSBQb3NpdGlvbmFibGUgJiB7XG5cdGlzVmlzaWJsZT86IHN0cmluZyB8IGJvb2xlYW47XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRmb3JtRWxlbWVudHNDb25maWc/OiBDdXN0b21Gb3JtRWxlbWVudHNDb25maWc7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21IZWFkZXJGYWNldENvbmZpZ3MgPSBSZWNvcmQ8Q29uZmlndXJhYmxlT2JqZWN0S2V5LCBIZWFkZXJGYWNldENvbmZpZz47XG5cbmV4cG9ydCB0eXBlIEhlYWRlckZhY2V0Q29uZmlndXJhYmxlID0ge1xuXHRoZWFkZXJGYWNldHM/OiBDdXN0b21IZWFkZXJGYWNldENvbmZpZ3M7XG59O1xuXG5leHBvcnQgdHlwZSBDYXJkSGVhZGVyRmFjZXRzQ29uZmlnID0gSGVhZGVyRmFjZXRDb25maWd1cmFibGUgJiBDYXJkQ29uZmlnO1xuXG4vLyBJbnRlcm5hbCB0eXBlcyBmb3IgaGVhZGVyIGZhY2V0IGNvbmZpZ3VyYXRpb25cbnR5cGUgSGVhZGVyRmFjZXRDb25maWdFbGVtZW50ID0gSGVhZGVyRmFjZXRDb25maWcgJiB7XG5cdGtleTogQ29uZmlndXJhYmxlT2JqZWN0S2V5O1xuXHRoZWFkZXJGYWNldDogUmVmZXJlbmNlRmFjZXQ7XG59O1xuXG50eXBlIEludGVybmFsQ3VzdG9tSGVhZGVyRmFjZXRFbGVtZW50cyA9IFJlY29yZDxDb25maWd1cmFibGVPYmplY3RLZXksIEN1c3RvbUVsZW1lbnQ8SGVhZGVyRmFjZXRDb25maWdFbGVtZW50Pj47XG5cbmNvbnN0IE1BWF9DT0xVTU5TID0gMztcbi8qKlxuICogR2V0IGltYWdlIGFuZCB0aXRsZSBmb3IgY2FyZC5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVhZGVyQ29udGVudCBleHRlbmRzIEJhc2VDYXJkQ29udGVudFByb3ZpZGVyPENhcmRIZWFkZXJGYWNldHNDb25maWc+IHtcblx0cHJpdmF0ZSBjYXJkRWxlbWVudHM6IENhcmRFbGVtZW50W10gPSBbXTtcblxuXHQvKipcblx0ICogR2V0IGltYWdlIGFuZCB0aXRsZSBpbiBjb2x1bW4gc2V0LlxuXHQgKiBAcmV0dXJucyBDb2x1bW4gc2V0LlxuXHQgKi9cblx0cHVibGljIGdldEhlYWRlckNvbnRlbnQoKTogQ2FyZEVsZW1lbnRbXSB7XG5cdFx0cmV0dXJuIHRoaXMuY2FyZEVsZW1lbnRzO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLCBjb25maWc6IENhcmRDb25maWcpIHtcblx0XHRzdXBlcihjb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRsZXQgaGVhZGVyRmFjZXRzRm9yQWRhcHRpdmVDYXJkOiBDYXJkRWxlbWVudFtdID0gW107XG5cdFx0Y29uc3QgeyBjb250ZXh0UGF0aCB9ID0gdGhpcy5nZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5KFwiY29udGV4dEluZm9cIik7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGhlYWRlckZhY2V0ID0gbmV3IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4oY29udmVydGVkVHlwZXMsIGAke2NvbnRleHRQYXRofUAke1VJQW5ub3RhdGlvblRlcm1zLkhlYWRlckZhY2V0c31gLCBjb250ZXh0UGF0aCk7XG5cdFx0XHRjb25zdCBjdXN0b21Db25maWdIZWFkZXJGYWNldHMgPSB0aGlzLmdldEN1c3RvbUNvbmZpZ0hlYWRlckZhY2V0cyhoZWFkZXJGYWNldCk7XG5cdFx0XHRoZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQgPSB0aGlzLmNyZWF0ZUhlYWRlckZvcm1zKGhlYWRlckZhY2V0LCBjdXN0b21Db25maWdIZWFkZXJGYWNldHMpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRMb2cuZXJyb3IoYEZFIDogVjQgOiBBZGFwdGl2ZSBDYXJkIGhlYWRlciBmYWNldHMgOiBubyBFbnRpdHlUeXBlIGZvdW5kIGF0IGNvbnRleHQgcGF0aDogJHtjb250ZXh0UGF0aH1gKTtcblx0XHR9XG5cdFx0dGhpcy5jYXJkRWxlbWVudHMgPSBoZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBEYXRhUG9pbnQgSW5mb3JtYXRpb24gZnJvbSBSZWZlcmVuY2VGYWNldC5cblx0ICogQHBhcmFtIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggTWV0YVBhdGggcG9pbnRpbmcgdG8gRmllbGRHcm91cFxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZEFic3RyYWN0IHR5cGVzXG5cdCAqIEBwYXJhbSBmb3JtRWxlbWVudENvbmZpZyBGaWVsZCBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBQcm9wZXJ0aWVzIGFwcGxpY2FibGUgZm9yIHRoZSBkYXRhUG9pbnQgYW5ub3RhdGlvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZEdyb3VwUHJvcGVydGllcyhcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxGaWVsZEdyb3VwPixcblx0XHRkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdFx0Zm9ybUVsZW1lbnRDb25maWc/OiBGb3JtRWxlbWVudENvbmZpZ1xuXHQpOiBEYXRhUHJvcGVydGllcyB7XG5cdFx0bGV0IHByb3BlcnR5LFxuXHRcdFx0dGV4dFByb3BlcnR5LFxuXHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbixcblx0XHRcdGxhYmVsID0gZm9ybUVsZW1lbnRDb25maWc/LmxhYmVsVGV4dCxcblx0XHRcdG5hdmlnYXRpb25QYXRoLFxuXHRcdFx0Y29sb3I7XG5cdFx0c3dpdGNoIChkYXRhRmllbGQ/LiRUeXBlKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0XHRpZiAoaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24oZGF0YUZpZWxkLlZhbHVlKSkge1xuXHRcdFx0XHRcdHByb3BlcnR5ID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChkYXRhRmllbGQuVmFsdWUpO1xuXHRcdFx0XHRcdG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24ocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCk7XG5cdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9ICgocHJvcGVydHk/LmdldFRhcmdldCgpIGFzIFByb3BlcnR5KT8uYW5ub3RhdGlvbnM/LkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zQmFzZV9Db21tb24pXG5cdFx0XHRcdFx0XHQ/LlRleHQ7XG5cdFx0XHRcdFx0dGV4dFByb3BlcnR5ID0gdGV4dHByb3BlcnR5QW5ub3RhdGlvbiAmJiByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KHRleHRwcm9wZXJ0eUFubm90YXRpb24pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHByb3BlcnR5ID0gZGF0YUZpZWxkLlZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxhYmVsID0gbGFiZWwgPz8gZGF0YUZpZWxkLkxhYmVsID8/IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWwudmFsdWVPZigpID8/IFwiXCI7XG5cdFx0XHRcdGNvbG9yID0gdGhpcy5nZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YUZpZWxkKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFubm90YXRpb246XG5cdFx0XHRcdGxhYmVsID1cblx0XHRcdFx0XHRsYWJlbCA/PyBkYXRhRmllbGQuTGFiZWwgPz8gKGRhdGFGaWVsZCBhcyBQcmltaXRpdmVUeXBlKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsLnZhbHVlT2YoKSA/PyBcIlwiO1xuXHRcdFx0XHRjb25zdCBkYXRhRmllbGRUYXJnZXRQYXRoID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChkYXRhRmllbGQuVGFyZ2V0KTtcblx0XHRcdFx0Y29uc3QgZGF0YUZpZWxkVGFyZ2V0ID0gZGF0YUZpZWxkVGFyZ2V0UGF0aD8uZ2V0VGFyZ2V0KCk7XG5cdFx0XHRcdG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24oZGF0YUZpZWxkVGFyZ2V0UGF0aCBhcyBNZXRhUGF0aDxEYXRhUG9pbnRUeXBlPik7XG5cdFx0XHRcdGlmIChpc0Fubm90YXRpb25PZlR5cGU8RGF0YVBvaW50PihkYXRhRmllbGRUYXJnZXQsIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGUpKSB7XG5cdFx0XHRcdFx0aWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKGRhdGFGaWVsZFRhcmdldC5WYWx1ZSkpIHtcblx0XHRcdFx0XHRcdHByb3BlcnR5ID0gZGF0YUZpZWxkVGFyZ2V0UGF0aD8uZ2V0TWV0YVBhdGhGb3JPYmplY3QoKGRhdGFGaWVsZFRhcmdldCBhcyBEYXRhUG9pbnRUeXBlKT8uVmFsdWUpO1xuXHRcdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IHByb3BlcnR5Py5nZXRUYXJnZXQoKT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0XHRcdFx0XHRcdHRleHRQcm9wZXJ0eSA9IHRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdCh0ZXh0cHJvcGVydHlBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cHJvcGVydHkgPSBkYXRhRmllbGRUYXJnZXQuVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbG9yID0gdGhpcy5nZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YUZpZWxkVGFyZ2V0KTtcblx0XHRcdFx0fSBlbHNlIGlmIChpc0Fubm90YXRpb25PZlR5cGU8Q29udGFjdD4oZGF0YUZpZWxkVGFyZ2V0LCBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblR5cGVzLkNvbnRhY3RUeXBlKSkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbnRhY3RPYmplY3QgPSBkYXRhRmllbGRUYXJnZXQuZm47XG5cdFx0XHRcdFx0aWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKGNvbnRhY3RPYmplY3QpKSB7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0eSA9IGRhdGFGaWVsZFRhcmdldFBhdGg/LmdldE1ldGFQYXRoRm9yT2JqZWN0KGNvbnRhY3RPYmplY3QpO1xuXHRcdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IChwcm9wZXJ0eSBhcyBQcmltaXRpdmVUeXBlKT8uZ2V0VGFyZ2V0KCk/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdFx0XHRcdFx0XHR0ZXh0UHJvcGVydHkgPSB0ZXh0cHJvcGVydHlBbm5vdGF0aW9uICYmIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QodGV4dHByb3BlcnR5QW5ub3RhdGlvbik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiB7IHByb3BlcnR5LCBsYWJlbCwgbmF2aWdhdGlvblBhdGgsIHRleHRQcm9wZXJ0eSwgY29sb3IgfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB2aXNpYmxlIGRhdGFGaWVsZHMgZnJvbSBmaWVsZEdyb3VwLlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkcyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLlxuXHQgKiBAcmV0dXJucyBWaXNpYmxlIERhdGFGaWVsZHMuXG5cdCAqL1xuXHRwcml2YXRlIGdldFZpc2libGVEYXRhRmllbGRzKGRhdGFGaWVsZHM6IERhdGFGaWVsZEFic3RyYWN0VHlwZXNbXSk6IERhdGFGaWVsZEFic3RyYWN0VHlwZXNbXSB7XG5cdFx0cmV0dXJuIGRhdGFGaWVsZHMucmVkdWNlKCh2aXNpYmxlZGF0YUZpZWxkcywgZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoIWlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuKGRhdGFGaWVsZCkgJiYgIWlzUG90ZW50aWFsbHlTZW5zaXRpdmUoZGF0YUZpZWxkKSkge1xuXHRcdFx0XHR2aXNpYmxlZGF0YUZpZWxkcy5wdXNoKGRhdGFGaWVsZCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmlzaWJsZWRhdGFGaWVsZHM7XG5cdFx0fSwgW10gYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlc1tdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgdGhlIGNvbHVtblNldHMgZm9yIGVhY2ggZGF0YUZpZWxkcy5cblx0ICogQHBhcmFtIGRhdGFGaWVsZCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIFByb3BlcnRpZXMgb2YgdGhlIERhdGFGaWVsZCByZXF1aXJlZCBmb3IgYWRhcHRpdmUgY2FyZFxuXHQgKiBAcGFyYW0gZGF0YVBvaW50VGl0bGVcblx0ICogQHJldHVybnMgQ29sdW1uU2V0cyBjb250YWluaW5nIGhlYWRlciBmYWNldCBpbmZvcm1hdGlvbiB3aGljaCBpcyByZXF1aXJlZCBmb3IgYWRhcHRpdmUgY2FyZFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDb2x1bW5Gb3JEYXRhRmllbGQoXG5cdFx0ZGF0YUZpZWxkPzogTWV0YVBhdGg8RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB8IERhdGFQb2ludFR5cGU+LFxuXHRcdHByb3BlcnRpZXM/OiBEYXRhUHJvcGVydGllcyxcblx0XHRkYXRhUG9pbnRUaXRsZT86IGJvb2xlYW5cblx0KTogQ2FyZENvbHVtbltdIHtcblx0XHRjb25zdCBpdGVtcyA9IFtdO1xuXHRcdGNvbnN0IGNvbHVtbnMgPSBbXTtcblx0XHRpZiAoIWRhdGFGaWVsZCkge1xuXHRcdFx0Y29sdW1ucy5wdXNoKGdldENvbHVtbigpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdmlzaWJsZSA9IHRoaXMuZ2V0VmlzaWJsZUZvckRhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0Y29uc3QgeyBwcm9wZXJ0eSwgbGFiZWwsIGNvbG9yLCB1b20sIHRleHRQcm9wZXJ0eSB9ID0gcHJvcGVydGllcyB8fCB7fTtcblx0XHRcdGlmIChwcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAobGFiZWwpIHtcblx0XHRcdFx0XHRpZiAoZGF0YVBvaW50VGl0bGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGl0ZW1zLnB1c2goXG5cdFx0XHRcdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdFx0XHRcdHdlaWdodDogXCJCb2xkZXJcIixcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBsYWJlbCxcblx0XHRcdFx0XHRcdFx0XHRtYXhMaW5lczogMixcblx0XHRcdFx0XHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdHNwYWNpbmc6IFwiTWVkaXVtXCIsXG5cdFx0XHRcdFx0XHRcdFx0dmlzaWJsZTogdmlzaWJsZVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0aXRlbXMucHVzaChnZXRUZXh0QmxvY2soeyBzaXplOiBcIlNtYWxsXCIsIHRleHQ6IGAke2xhYmVsfTpgLCBtYXhMaW5lczogMSwgaXNTdWJ0bGU6IHRydWUgfSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB0ZXh0QmluZGluZyA9IHRoaXMuZ2V0VmFsdWVCaW5kaW5nKHByb3BlcnR5LCB0ZXh0UHJvcGVydHkpO1xuXHRcdFx0XHRjb25zdCBhZGRpdGlvbmFsVmFsdWUgPSB1b20gPz8gdGV4dFByb3BlcnR5O1xuXHRcdFx0XHRjb25zdCBkYXRlRmllbGRWaXNpYmxlRXhwID0gdGhpcy5nZXRUZXh0QmxvY2tWaXNpYmxpdHlGb3JEYXRlRmllbGQoXG5cdFx0XHRcdFx0cHJvcGVydHksXG5cdFx0XHRcdFx0dHlwZW9mIGFkZGl0aW9uYWxWYWx1ZSAhPT0gXCJzdHJpbmdcIiA/IGFkZGl0aW9uYWxWYWx1ZSA6IHVuZGVmaW5lZFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpdGVtcy5wdXNoKFxuXHRcdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0XHRzaXplOiBcIlNtYWxsXCIsXG5cdFx0XHRcdFx0XHQkd2hlbjogY29tcGlsZVRvQWRhcHRpdmVFeHByZXNzaW9uKGRhdGVGaWVsZFZpc2libGVFeHApLFxuXHRcdFx0XHRcdFx0dGV4dDogdW9tID8gYCR7dGV4dEJpbmRpbmd9ICR7dW9tfWAgOiB0ZXh0QmluZGluZyxcblx0XHRcdFx0XHRcdG1heExpbmVzOiAyLFxuXHRcdFx0XHRcdFx0Y29sb3I6IGNvbG9yXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0KTtcblx0XHRcdFx0aXRlbXMucHVzaChcblx0XHRcdFx0XHRnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdFx0JHdoZW46IGNvbXBpbGVUb0FkYXB0aXZlRXhwcmVzc2lvbihlcXVhbChkYXRlRmllbGRWaXNpYmxlRXhwLCBjb25zdGFudChmYWxzZSkpKSxcblx0XHRcdFx0XHRcdHRleHQ6IFwiXFxcXC1cIlxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbHVtbnMucHVzaChnZXRDb2x1bW4oeyBpdGVtczogaXRlbXMsIHZpc2libGU6IHZpc2libGUgPz8gdW5kZWZpbmVkIH0pKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbHVtbnM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgY29sdW1uIHNldHMgYW5kIGdldHMgdGhlIGZpZWxkZ3JvdXAgY29udGVudC5cblx0ICogQHBhcmFtIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggTWV0YXBhdGggb2YgdGhlIHJlZmVyZW5jZSBmYWNldCBmaWVsZGdyb3VwXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIEZvcm0gSGVhZGVyXG5cdCAqIEBwYXJhbSB2aXNpYmxlIFZpc2libGUgZXhwcmVzc2lvbiBmb3IgdGhlIEZhY2V0SGVhZGVyXG5cdCAqIEBwYXJhbSBmb3JtRWxlbWVudHNDb25maWcgRmllbGRzJyBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBDb2x1bW5TZXRzIGNvbnRhaW5pbmcgaGVhZGVyIGZhY2V0IGluZm9ybWF0aW9uIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBhZGFwdGl2ZSBjYXJkXG5cdCAqL1xuXHRwcml2YXRlIGdldEZpZWxkR3JvdXBDb250ZW50KFxuXHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGg6IE1ldGFQYXRoPEZpZWxkR3JvdXA+LFxuXHRcdGZvcm1IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0XHR2aXNpYmxlOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24gfCBib29sZWFuLFxuXHRcdGZvcm1FbGVtZW50c0NvbmZpZz86IEN1c3RvbUZvcm1FbGVtZW50c0NvbmZpZ1xuXHQpOiBDYXJkRWxlbWVudFtdIHtcblx0XHRjb25zdCBmaWVsZEdyb3VwID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRUYXJnZXQoKTtcblx0XHRjb25zdCBtYXhDb2x1bW5zID0gTUFYX0NPTFVNTlM7XG5cdFx0Y29uc3QgZm9ybXM6IENhcmRFbGVtZW50W10gPSBbXTtcblx0XHRpZiAoZm9ybUhlYWRlcikge1xuXHRcdFx0Y29uc3QgZm9ybVRpdGxlOiBDYXJkVGV4dEJsb2NrID0gZ2V0VGV4dEJsb2NrKHtcblx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGZvcm1IZWFkZXIsXG5cdFx0XHRcdG1heExpbmVzOiAyLFxuXHRcdFx0XHRzcGFjaW5nOiBcIk1lZGl1bVwiLFxuXHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHR2aXNpYmxlOiB2aXNpYmxlID8/IHVuZGVmaW5lZFxuXHRcdFx0fSk7XG5cdFx0XHRmb3Jtcy5wdXNoKGZvcm1UaXRsZSk7XG5cdFx0fVxuXHRcdGNvbnN0IGZpZWxkSXRlbXMgPSB0aGlzLmdldFZpc2libGVEYXRhRmllbGRzKGZpZWxkR3JvdXA/LkRhdGEpO1xuXHRcdC8qIENvbHVtbiBzZXQgc2hvdWxkIGNvbnRhaW4gbWF4aW11bSBvZiB0aHJlZSBjb2x1bW5zXG5cdFx0aGVuY2UgY2hlY2sgdGhlIG51bWJlciBvZiBkYXRhZmllbGRzIGFuZCBkZWNpZGUgdGhlIGNvbHVtbnMgZm9yIGVhY2ggY29sdW1uIHNldCAqL1xuXHRcdGNvbnN0IGlUb3RhbENvbHVtcyA9IE1hdGguY2VpbChmaWVsZEl0ZW1zLmxlbmd0aCAvIG1heENvbHVtbnMpO1xuXHRcdGZvciAobGV0IGkgPSAxOyBpIDw9IGlUb3RhbENvbHVtczsgaSsrKSB7XG5cdFx0XHRjb25zdCBpTG9vcEVuZCA9IGkgKiBtYXhDb2x1bW5zO1xuXHRcdFx0Y29uc3QgaUxvb3BTdGFydCA9IGlMb29wRW5kIC0gbWF4Q29sdW1ucztcblx0XHRcdGNvbnN0IGRhdGFGaWVsZGNvbHVtbnNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRcdGZvciAobGV0IGogPSBpTG9vcFN0YXJ0OyBqIDwgaUxvb3BFbmQ7IGorKykge1xuXHRcdFx0XHRjb25zdCBkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgPSBmaWVsZEl0ZW1zW2pdO1xuXHRcdFx0XHRjb25zdCBrZXkgPSBkYXRhRmllbGQgJiYgZ2V0U3RhYmxlSWRQYXJ0RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRjb25zdCBmb3JtRWxlbWVudENvbmZpZyA9IGtleSA/IGZvcm1FbGVtZW50c0NvbmZpZz8uW2tleV0gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdGNvbnN0IGRhdGFQcm9wZXJ0aWVzID0gdGhpcy5nZXRGaWVsZEdyb3VwUHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLCBkYXRhRmllbGQsIGZvcm1FbGVtZW50Q29uZmlnKTtcblx0XHRcdFx0Y29uc3QgZGF0YUZpZWxkTmV4dCA9IGRhdGFGaWVsZCAmJiByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KGRhdGFGaWVsZCk7XG5cdFx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbHVtbnMgPSB0aGlzLmdldENvbHVtbkZvckRhdGFGaWVsZChkYXRhRmllbGROZXh0LCBkYXRhUHJvcGVydGllcyk7XG5cdFx0XHRcdGlmIChkYXRhRmllbGRDb2x1bW5zKSB7XG5cdFx0XHRcdFx0ZGF0YUZpZWxkY29sdW1uc2V0LmNvbHVtbnMucHVzaCguLi5kYXRhRmllbGRDb2x1bW5zKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGRhdGFGaWVsZGNvbHVtbnNldCkge1xuXHRcdFx0XHRmb3Jtcy5wdXNoKGRhdGFGaWVsZGNvbHVtbnNldCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBmb3Jtcztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHRleHQgY29sb3IgZm9yIHRoZSBkYXRhUG9pbnQuXG5cdCAqIEBwYXJhbSBkYXRhUG9pbnQgRGF0YVBvaW50IGFubm90YXRpb25cblx0ICogQHJldHVybnMgQ29sb3Igb2YgdGhlIFRleHRcblx0ICovXG5cdHB1YmxpYyBnZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YVBvaW50OiBEYXRhUG9pbnQgfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRsZXQgZXhwO1xuXHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSBkYXRhUG9pbnQuQ3JpdGljYWxpdHk7XG5cdFx0aWYgKGNyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZyB8IG51bWJlcj4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oY3JpdGljYWxpdHlQcm9wZXJ0eSk7XG5cdFx0XHRleHAgPSBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb25Gb3JDYXJkcyhjcml0aWNhbGl0eUV4cHJlc3Npb24sIGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwID0gY29uc3RhbnQoXCJkZWZhdWx0XCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbihleHApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgdW9tIHBhdGggZm9yIHRoZSBkYXRhUG9pbnQuXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIE1ldGFQYXRoIHBvaW50aW5nIHRvIGRhdGFwb2ludHNcblx0ICogQHBhcmFtIHByb3BlcnR5VGFyZ2V0T2JqZWN0IERhdGFQb2ludCBwcm9wZXJ0eVxuXHQgKiBAcmV0dXJucyBQYXRoIGJpbmRpbmcgZm9yIFVPTVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRVb21QYXRoQmluZGluZyhcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxEYXRhUG9pbnRUeXBlIHwgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcz4sXG5cdFx0cHJvcGVydHlUYXJnZXRPYmplY3Q6IFByb3BlcnR5IHwgdW5kZWZpbmVkXG5cdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdW9tID0gcHJvcGVydHlUYXJnZXRPYmplY3Q/LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSB8fCBwcm9wZXJ0eVRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQ7XG5cdFx0aWYgKCF1b20pIHtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKHVvbSkpIHtcblx0XHRcdGNvbnN0IHVvbU1ldGFQYXRoID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdCh1b20pO1xuXHRcdFx0Y29uc3QgdGFyZ2V0UGF0aCA9IHVvbU1ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRcdHJldHVybiB0YXJnZXRQYXRoICYmIHRoaXMudGFyZ2V0SXNQcm9wZXJ0eSh1b21NZXRhUGF0aCkgPyB0aGlzLmdldFZhbHVlQmluZGluZyh1b21NZXRhUGF0aCkgOiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRGF0YVBvaW50IEluZm9ybWF0aW9uIGZyb20gUmVmZXJlbmNlRmFjZXQuXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIE1ldGFQYXRoIHBvaW50aW5nIHRvIGRhdGFwb2ludHNcblx0ICogQHBhcmFtIGRhdGFQb2ludCBEYXRhUG9pbnRcblx0ICogQHJldHVybnMgUHJvcGVydGllcyBhcHBsaWNhYmxlIGZvciB0aGUgZGF0YVBvaW50IGFubm90YXRpb25cblx0ICovXG5cdHByaXZhdGUgZ2V0RGF0YVBvaW50UHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxEYXRhUG9pbnQ+LCBkYXRhUG9pbnQ6IERhdGFQb2ludCk6IERhdGFQcm9wZXJ0aWVzIHtcblx0XHRjb25zdCBwcm9wZXJ0eSA9IHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QoZGF0YVBvaW50Py5WYWx1ZSk7XG5cdFx0Y29uc3QgdW9tID0gdGhpcy5nZXRVb21QYXRoQmluZGluZyhcblx0XHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGgsXG5cdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KGRhdGFQb2ludD8uVmFsdWUpPy5nZXRUYXJnZXQoKVxuXHRcdCk7XG5cdFx0Y29uc3QgdGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IHByb3BlcnR5Py5nZXRUYXJnZXQoKT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0XHRjb25zdCB0ZXh0UHJvcGVydHkgPSB0ZXh0cHJvcGVydHlBbm5vdGF0aW9uICYmIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QodGV4dHByb3BlcnR5QW5ub3RhdGlvbik7XG5cdFx0Y29uc3QgY29sb3IgPSB0aGlzLmdldENyaXRpY2FsaXR5Rm9yRGF0YVBvaW50cyhkYXRhUG9pbnQpO1xuXHRcdGNvbnN0IG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24ocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCk7XG5cdFx0cmV0dXJuIHsgcHJvcGVydHksIGNvbG9yLCB1b20sIG5hdmlnYXRpb25QYXRoLCB0ZXh0UHJvcGVydHkgfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIERhdGFwb2ludCBjb250ZW50IGZyb20gdGhlIGZhY2V0LlxuXHQgKiBAcGFyYW0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBNZXRhUGF0aCBwb2ludGluZyB0byBEYXRhcG9pbnRzXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIFRpdGxlIG9mIHRoZSBmb3JtIGhlYWRlclxuXHQgKiBAcmV0dXJucyBUaXRsZSBhbmQgY29udGVudCBvZiB0aGUgZGF0YXBvaW50XG5cdCAqL1xuXHRwcml2YXRlIGdldERhdGFQb2ludENvbnRlbnQocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aDogTWV0YVBhdGg8RGF0YVBvaW50PiwgZm9ybUhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogQ2FyZENvbHVtbltdIHtcblx0XHRjb25zdCBjb2x1bW5zID0gW107XG5cdFx0Y29uc3QgZGF0YVBvaW50ID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRUYXJnZXQoKTtcblx0XHRpZiAoZGF0YVBvaW50Py5WaXN1YWxpemF0aW9uICE9PSBWaXN1YWxpemF0aW9uVHlwZS5SYXRpbmcgJiYgZGF0YVBvaW50Py5WaXN1YWxpemF0aW9uICE9PSBWaXN1YWxpemF0aW9uVHlwZS5Qcm9ncmVzcykge1xuXHRcdFx0Y29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0RGF0YVBvaW50UHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLCBkYXRhUG9pbnQpO1xuXHRcdFx0cHJvcGVydGllcy5sYWJlbCA9IGZvcm1IZWFkZXI7XG5cdFx0XHRjb25zdCBkYXRhUG9pbnRGb3JtcyA9IHRoaXMuZ2V0Q29sdW1uRm9yRGF0YUZpZWxkKHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGgsIHByb3BlcnRpZXMsIHRydWUpO1xuXHRcdFx0aWYgKGRhdGFQb2ludEZvcm1zKSB7XG5cdFx0XHRcdGNvbHVtbnMucHVzaCguLi5kYXRhUG9pbnRGb3Jtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjb2x1bW5zO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY3VzdG9tIGNvbmZpZ3VyZWQgaGVhZGVyIGZhY2V0IGVsZW1lbnRzLlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRDb25maWdzXG5cdCAqIEBwYXJhbSBhbm5vdGF0ZWRSZWZlcmVuY2VGYWNldHNcblx0ICogQHJldHVybnMgVGhlIGN1c3RvbSBjb25maWd1cmVkIGhlYWRlciBmYWNldCBlbGVtZW50c1xuXHQgKi9cblx0cHJpdmF0ZSBnZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzKFxuXHRcdGhlYWRlckZhY2V0Q29uZmlnczogQ3VzdG9tSGVhZGVyRmFjZXRDb25maWdzLFxuXHRcdGFubm90YXRlZFJlZmVyZW5jZUZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W11cblx0KTogSW50ZXJuYWxDdXN0b21IZWFkZXJGYWNldEVsZW1lbnRzIHtcblx0XHRjb25zdCBjdXN0b21Db25maWdIZWFkZXJGYWNldE5hbWVzID0gT2JqZWN0LmtleXMoaGVhZGVyRmFjZXRDb25maWdzKTtcblx0XHRyZXR1cm4gY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXROYW1lcy5yZWR1Y2UoKGN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHMsIGN1c3RvbUNvbmZpZ0hlYWRlckZhY2V0S2V5KSA9PiB7XG5cdFx0XHRjb25zdCByZWxldmFudEZhY2V0RWxlbWVudCA9IGFubm90YXRlZFJlZmVyZW5jZUZhY2V0cy5maW5kKFxuXHRcdFx0XHQoaGVhZGVyRmFjZXRFbGVtZW50KSA9PiBoZWFkZXJGYWNldEVsZW1lbnQua2V5ID09PSBjdXN0b21Db25maWdIZWFkZXJGYWNldEtleVxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKHJlbGV2YW50RmFjZXRFbGVtZW50KSB7XG5cdFx0XHRcdGN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHNbY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXldID0ge1xuXHRcdFx0XHRcdGtleTogY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXksXG5cdFx0XHRcdFx0aGVhZGVyRmFjZXQ6IHJlbGV2YW50RmFjZXRFbGVtZW50LmhlYWRlckZhY2V0LFxuXHRcdFx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdFx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudC5BZnRlclxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Li4uaGVhZGVyRmFjZXRDb25maWdzW2N1c3RvbUNvbmZpZ0hlYWRlckZhY2V0S2V5XVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gY3VzdG9tSGVhZGVyRmFjZXRFbGVtZW50cztcblx0XHR9LCB7fSBhcyBJbnRlcm5hbEN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY3VzdG9tIGNvbmZpZ3VyZWQgaGVhZGVyIGZhY2V0cy5cblx0ICogQHBhcmFtIGhlYWRlckZhY2V0TWV0YVBhdGggTWV0YVBhdGggb2JqZWN0IG9mIHRoZSBhbm5vdGF0ZWQgaGVhZGVyIGZhY2V0c1xuXHQgKiBAcmV0dXJucyBSZWZlcmVuY2UgZmFjZXRzIHdpdGggb3ZlcnJpZGRlbiBjdXN0b20gY29uZmlndXJhdGlvbnNcblx0ICovXG5cdHByaXZhdGUgZ2V0Q3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRzKGhlYWRlckZhY2V0TWV0YVBhdGg6IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4pOiBIZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRbXSB7XG5cdFx0Y29uc3QgcmVmZXJlbmNlRmFjZXRzOiBSZWZlcmVuY2VGYWNldFtdID0gdGhpcy5nZXRSZWZlcmVuY2VGYWNldEZyb21Bbm5vdGF0aW9ucyhoZWFkZXJGYWNldE1ldGFQYXRoLmdldFRhcmdldCgpKTtcblx0XHRsZXQgYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzOiBIZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRbXSA9IHJlZmVyZW5jZUZhY2V0cy5tYXAoZnVuY3Rpb24gKGhlYWRlckZhY2V0KSB7XG5cdFx0XHRyZXR1cm4geyBrZXk6IGdlbmVyYXRlKFtoZWFkZXJGYWNldC5UYXJnZXQudmFsdWVdKSwgaGVhZGVyRmFjZXQgfTtcblx0XHR9KTtcblx0XHQvLyBHZXQgdGhlIFVJIG92ZXJyaWRlcyBmb3IgaGVhZGVyIGZhY2V0cywgaWYgYW55XG5cdFx0Y29uc3QgaGVhZGVyRmFjZXRDb25maWdzID0gdGhpcy5nZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5KFwiaGVhZGVyRmFjZXRzXCIpO1xuXHRcdGlmIChoZWFkZXJGYWNldENvbmZpZ3MgJiYgT2JqZWN0LmtleXMoaGVhZGVyRmFjZXRDb25maWdzKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBjdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzID0gdGhpcy5nZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzKGhlYWRlckZhY2V0Q29uZmlncywgYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzKTtcblxuXHRcdFx0Y29uc3QgaGVhZGVyRmFjZXRPdmVyd3JpdGVDb25maWcgPSB7XG5cdFx0XHRcdGlzVmlzaWJsZTogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZSxcblx0XHRcdFx0dGl0bGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGUsXG5cdFx0XHRcdHBvc2l0aW9uOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlLFxuXHRcdFx0XHRmb3JtRWxlbWVudHNDb25maWc6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGVcblx0XHRcdH07XG5cblx0XHRcdC8vIG92ZXJyaWRlIHRoZSBhbm5vdGF0ZWQgaGVhZGVyIGZhY2V0cyB0byByZWZsZWN0IHRoZSBVSSBjaGFuZ2VzIG9uIE9QXG5cdFx0XHRhbm5vdGF0ZWRSZWZlcmVuY2VGYWNldHMgPSBpbnNlcnRDdXN0b21FbGVtZW50cyhcblx0XHRcdFx0YW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzLFxuXHRcdFx0XHRjdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzLFxuXHRcdFx0XHRoZWFkZXJGYWNldE92ZXJ3cml0ZUNvbmZpZ1xuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBIZWFkZXIgRGF0YSBDb2x1bW5TZXRzLlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRNZXRhUGF0aCBBcnJheSBvZiBoZWFkZXIgRmFjZXRzXG5cdCAqIEBwYXJhbSBjb25maWdIZWFkZXJGYWNldHMgSGVhZGVyIGZhY2V0cyBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBDb2x1bW5TZXRzIGNvbnRhaW5pbmcgaGVhZGVyIGZhY2V0IGluZm9ybWF0aW9uIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBhZGFwdGl2ZSBjYXJkXG5cdCAqL1xuXHRwcml2YXRlIGNyZWF0ZUhlYWRlckZvcm1zKGhlYWRlckZhY2V0TWV0YVBhdGg6IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4sIGNvbmZpZ0hlYWRlckZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W10pOiBDYXJkRWxlbWVudFtdIHtcblx0XHRsZXQgcHJldmlvdXNDYXJkRWxlbWVudElzRGF0YVBvaW50ID0gZmFsc2U7XG5cdFx0cmV0dXJuIGNvbmZpZ0hlYWRlckZhY2V0cy5yZWR1Y2UoXG5cdFx0XHRmdW5jdGlvbiAoXG5cdFx0XHRcdHRoaXM6IEhlYWRlckNvbnRlbnQsXG5cdFx0XHRcdGhlYWRlckZvcm1zOiBDYXJkRWxlbWVudFtdLFxuXHRcdFx0XHRjb25maWdIZWFkZXJGYWNldDogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50LFxuXHRcdFx0XHRjdXJyZW50SWR4OiBudW1iZXIsXG5cdFx0XHRcdGFsbENvbmZpZ0hlYWRlckZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W11cblx0XHRcdCk6IENhcmRFbGVtZW50W10ge1xuXHRcdFx0XHRjb25zdCBGYWNldEl0ZW0gPSBjb25maWdIZWFkZXJGYWNldC5oZWFkZXJGYWNldDtcblx0XHRcdFx0aWYgKEZhY2V0SXRlbS4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQgJiYgRmFjZXRJdGVtLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUpIHtcblx0XHRcdFx0XHRjb25zdCByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoID0gaGVhZGVyRmFjZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChGYWNldEl0ZW0uVGFyZ2V0KTtcblx0XHRcdFx0XHRjb25zdCBmYWNldERlZmluaXRpb24gPSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uUGF0aCA9IHRoaXMuZ2V0TmF2aWdhdGlvblBhdGhGb3JFeHByZXNzaW9uKFxuXHRcdFx0XHRcdFx0cmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBhcyBNZXRhUGF0aDxGaWVsZEdyb3VwIHwgRGF0YVBvaW50VHlwZT5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGNvbnN0IHZpc2libGUgPSBjb25maWdIZWFkZXJGYWNldC5pc1Zpc2libGUgPz8gdGhpcy5nZXRWaXNpYmxlRm9yUmVmZXJlbmNlRmFjZXQoRmFjZXRJdGVtLCBuYXZpZ2F0aW9uUGF0aCk7XG5cdFx0XHRcdFx0Y29uc3QgZm9ybUhlYWRlciA9IGNvbmZpZ0hlYWRlckZhY2V0LnRpdGxlID8/IEZhY2V0SXRlbS5MYWJlbD8udG9TdHJpbmcoKTtcblx0XHRcdFx0XHRjb25zdCBmb3JtRWxlbWVudHNDb25maWcgPSBjb25maWdIZWFkZXJGYWNldC5mb3JtRWxlbWVudHNDb25maWc7XG5cdFx0XHRcdFx0c3dpdGNoIChmYWNldERlZmluaXRpb24/LnRlcm0pIHtcblx0XHRcdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIElmIHByZXZpb3VzIGhlYWRlciBmb3JtIGNvbnRlbnQgd2FzIGEgRGF0YVBvaW50LCB3ZSBhZGQgZHVtbXkgY29sdW1ucy5cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmFkZEVtcHR5Q29sdW1ucyhoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KTtcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdC4uLnRoaXMuZ2V0RmllbGRHcm91cENvbnRlbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIGFzIE1ldGFQYXRoPEZpZWxkR3JvdXA+LFxuXHRcdFx0XHRcdFx0XHRcdFx0Zm9ybUhlYWRlcixcblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRmb3JtRWxlbWVudHNDb25maWdcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRcdFx0XHRcdGlmICghaXNQb3RlbnRpYWxseVNlbnNpdGl2ZShmYWNldERlZmluaXRpb24pKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGF0YVBvaW50Q29sdW1ucyA9IHRoaXMuZ2V0RGF0YVBvaW50Q29udGVudChcblx0XHRcdFx0XHRcdFx0XHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggYXMgTWV0YVBhdGg8RGF0YVBvaW50Pixcblx0XHRcdFx0XHRcdFx0XHRcdGNvbmZpZ0hlYWRlckZhY2V0LnRpdGxlID8/IGZvcm1IZWFkZXJcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRhdGFQb2ludENvbHVtblNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgJiZcblx0XHRcdFx0XHRcdFx0XHRcdChoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KS5jb2x1bW5zLmxlbmd0aCAhPT0gTUFYX0NPTFVNTlNcblx0XHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdChoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KS5jb2x1bW5zLnB1c2goLi4uZGF0YVBvaW50Q29sdW1ucyk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFQb2ludENvbHVtblNldC5jb2x1bW5zLnB1c2goLi4uZGF0YVBvaW50Q29sdW1ucyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKGRhdGFQb2ludENvbHVtblNldCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRjYXNlIENvbW11bmljYXRpb25Bbm5vdGF0aW9uVGVybXMuQWRkcmVzczpcblx0XHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIElmIHByZXZpb3VzIGhlYWRlciBmb3JtIGNvbnRlbnQgd2FzIGEgRGF0YVBvaW50LCB3ZSBhZGQgZHVtbXkgY29sdW1ucy5cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmFkZEVtcHR5Q29sdW1ucyhoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KTtcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdC4uLnRoaXMuZ2V0QWRkcmVzc0NvbnRlbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIGFzIE1ldGFQYXRoPEFkZHJlc3M+LFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uZmlnSGVhZGVyRmFjZXQudGl0bGUgPz8gZm9ybUhlYWRlcixcblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGVcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjdXJyZW50SWR4ID09PSBhbGxDb25maWdIZWFkZXJGYWNldHMubGVuZ3RoIC0gMSAmJiBwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQpIHtcblx0XHRcdFx0XHQvLyBUaGlzIGlzIHRoZSBsYXN0IHJlY3Vyc2lvbiBvZiB0aGUgcmVkdWNlIGxvb3AuXG5cdFx0XHRcdFx0Ly8gSWYgcHJldmlvdXMgaGVhZGVyIGZvcm0gY29udGVudCB3YXMgYSBEYXRhUG9pbnQsIHdlIGFkZCBkdW1teSBjb2x1bW5zLlxuXHRcdFx0XHRcdHRoaXMuYWRkRW1wdHlDb2x1bW5zKGhlYWRlckZvcm1zW2hlYWRlckZvcm1zLmxlbmd0aCAtIDFdIGFzIENhcmRDb2x1bW5TZXQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGhlYWRlckZvcm1zO1xuXHRcdFx0fS5iaW5kKHRoaXMpLFxuXHRcdFx0W10gYXMgQ2FyZEVsZW1lbnRbXVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGVtcHR5IGNvbHVtbnMgdG8gdGhlIGVuZCBvZiB0aGUgY29sdW1uIHNldC5cblx0ICpcblx0ICogSGVhZGVyIGZvcm0gd2l0aCBsZXNzIHRoYW4gdGhlIG1heGltdW0gY29sdW1ucyBuZWVkIHRvIGJlIGFkZGVkIHdpdGggZW1wdHkgY29sdW1ucyB0byBoYXZlIHRoZSBjb25zaXN0ZW50IGxheW91dCBlcXVhbCB0byBNQVhfQ09MVU1OUy5cblx0ICogVGhpcyBpcyBuZWVkcyBpbiBjYXNlIG9mIGEgaGVhZGVyIGZvcm0gY29udGFpbnMgRGF0YVBvaW50cyBzaWRlIGJ5IHNpZGUuIFdlIGZpbGwgdGhlIGVtcHR5IHNwYWNlIGluIHRoZSBsYXlvdXQgd2l0aCBhIGR1bW15IGVtcHR5IGNvbHVtbi5cblx0ICogQHBhcmFtIGNhcmRDb2x1bW5TZXQgRXF1aXZhbGVudCBvZiBhIEhlYWRlciBGb3JtXG5cdCAqL1xuXHRwcml2YXRlIGFkZEVtcHR5Q29sdW1ucyhjYXJkQ29sdW1uU2V0OiBDYXJkQ29sdW1uU2V0KTogdm9pZCB7XG5cdFx0Y29uc3QgbnVtQ29sdW1ucyA9IGNhcmRDb2x1bW5TZXQuY29sdW1ucy5sZW5ndGg7XG5cdFx0aWYgKG51bUNvbHVtbnMgPCBNQVhfQ09MVU1OUyAmJiBudW1Db2x1bW5zID4gMSkge1xuXHRcdFx0Ly8gSWYgb25seSBvbmUgY29sdW1uIGV4aXN0cyB0aGVuIHdlIGRvbid0IGhhdmUgcHJvYmxlbSBhcyBpdCBjYW4gZnJlZWx5IG9jY3VweSB0aGUgd2hvbGUgd2lkdGggb2YgdGhlIHJvdy5cblx0XHRcdGNvbnN0IG51bUNvbHVtbnNUb0FkZCA9IE1BWF9DT0xVTU5TIC0gbnVtQ29sdW1ucztcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQ29sdW1uc1RvQWRkOyBpKyspIHtcblx0XHRcdFx0Y2FyZENvbHVtblNldC5jb2x1bW5zLnB1c2goLi4udGhpcy5nZXRDb2x1bW5Gb3JEYXRhRmllbGQoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgQWRkcmVzcyBjb250ZW50IGZyb20gdGhlIGZhY2V0LlxuXHQgKiBAcGFyYW0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBNZXRhXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIFRpdGxlIG9mIHRoZSBmb3JtIGhlYWRlclxuXHQgKiBAcGFyYW0gdmlzaWJsZSBWaXNpYmxlIGV4cHJlc3Npb24gZm9yIHRoZSBGYWNldEhlYWRlclxuXHQgKiBAcmV0dXJucyBUaXRsZSBhbmQgY29udGVudCBvZiB0aGUgYWRkcmVzc1xuXHQgKi9cblx0cHJpdmF0ZSBnZXRBZGRyZXNzQ29udGVudChcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxBZGRyZXNzPixcblx0XHRmb3JtSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0dmlzaWJsZTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHwgYm9vbGVhblxuXHQpOiBDYXJkRWxlbWVudFtdIHtcblx0XHRjb25zdCBhZGRyZXNzQ29udGVudDogQ2FyZEVsZW1lbnRbXSA9IFtdO1xuXHRcdGNvbnN0IGFkZHJlc3MgPSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldFRhcmdldCgpO1xuXHRcdGlmIChmb3JtSGVhZGVyKSB7XG5cdFx0XHRhZGRyZXNzQ29udGVudC5wdXNoKFxuXHRcdFx0XHRnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRcdHNpemU6IFwiU21hbGxcIixcblx0XHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdFx0dGV4dDogZm9ybUhlYWRlcixcblx0XHRcdFx0XHRtYXhMaW5lczogMixcblx0XHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHRcdHNwYWNpbmc6IFwiTWVkaXVtXCIsXG5cdFx0XHRcdFx0dmlzaWJsZTogdmlzaWJsZVxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Y29uc3QgYWRkcmVzc0NvbHVtblNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRjb25zdCBpdGVtcyA9IFtdO1xuXHRcdGNvbnN0IGNvbHVtbnMgPSBbXTtcblx0XHRpZiAoYWRkcmVzcz8ubGFiZWwpIHtcblx0XHRcdGl0ZW1zLnB1c2goXG5cdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdHRleHQ6IGAke2FkZHJlc3M/LmxhYmVsfWAsXG5cdFx0XHRcdFx0bWF4TGluZXM6IDJcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0XHRjb2x1bW5zLnB1c2goZ2V0Q29sdW1uKHsgaXRlbXM6IGl0ZW1zLCB2aXNpYmxlOiB2aXNpYmxlID8/IHVuZGVmaW5lZCB9KSk7XG5cdFx0fVxuXHRcdGlmIChjb2x1bW5zLmxlbmd0aCA+IDApIHtcblx0XHRcdGFkZHJlc3NDb2x1bW5TZXQuY29sdW1ucy5wdXNoKC4uLmNvbHVtbnMpO1xuXHRcdH1cblx0XHRhZGRyZXNzQ29udGVudC5wdXNoKGFkZHJlc3NDb2x1bW5TZXQpO1xuXHRcdHJldHVybiBhZGRyZXNzQ29udGVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIFJlZmVyZW5jZSBmYWNldHMgY29uZmlndXJlZCBpbiB0aGUgaGVhZGVyIGZhY2V0LlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRzIEhlYWRlckZhY2V0cyBjb250YWluaW5nIHJlZmVybmNlZmFjZXRzLlxuXHQgKiBAcmV0dXJucyBBbiBBcnJheSBvZiBSZWZlcmVuY2VGYWNldHMuXG5cdCAqL1xuXHRwcml2YXRlIGdldFJlZmVyZW5jZUZhY2V0RnJvbUFubm90YXRpb25zKGhlYWRlckZhY2V0czogSGVhZGVyRmFjZXRzKTogUmVmZXJlbmNlRmFjZXRbXSB7XG5cdFx0cmV0dXJuIGhlYWRlckZhY2V0cyA/IChoZWFkZXJGYWNldHMuZmlsdGVyKChmYWNldCkgPT4gZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0KSBhcyBSZWZlcmVuY2VGYWNldFtdKSA6IFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCByZWZlcmVuY2VmYWNldCAgdmlzaWJpbGl0eS5cblx0ICogQHBhcmFtIGVsZW1lbnQgUmVmZXJlbmNlIGZhY2V0XG5cdCAqIEBwYXJhbSBuYXZpZ2F0aW9uUGF0aCBWaXNpdGVkIG5hdmlnYXRpb24gcGF0aHNcblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRWaXNpYmxlRm9yUmVmZXJlbmNlRmFjZXQoZWxlbWVudDogUmVmZXJlbmNlRmFjZXQsIG5hdmlnYXRpb25QYXRoPzogc3RyaW5nKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB2aXNpYmlsaXR5RXhwID0gaXNWaXNpYmxlKGVsZW1lbnQpO1xuXHRcdHJldHVybiB0aGlzLnVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uKHZpc2liaWxpdHlFeHAsIG5hdmlnYXRpb25QYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgZGF0YWZpZWxkIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBkYXRhRmllbGQgRGF0YUZpZWxkQWJzdHJhY3Rcblx0ICogQHBhcmFtIG5hdmlnYXRpb25QYXRoIFZpc2l0ZWQgbmF2aWdhdGlvbiBwYXRoc1xuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRwcml2YXRlIGdldFZpc2libGVGb3JEYXRhRmllbGQoXG5cdFx0ZGF0YUZpZWxkOiBNZXRhUGF0aDxEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgRGF0YVBvaW50VHlwZT4sXG5cdFx0bmF2aWdhdGlvblBhdGg/OiBzdHJpbmdcblx0KTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB2aXNpYmlsaXR5RXhwID0gZ2VuZXJhdGVWaXNpYmxlRXhwcmVzc2lvbihkYXRhRmllbGQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbih2aXNpYmlsaXR5RXhwLCBuYXZpZ2F0aW9uUGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBuYXZpZ2F0aW9uIHBhdGhzIG9mIHRoZSBwcm9wZXJ0aWVzLlxuXHQgKiBAcGFyYW0gbWV0YVBhdGhPYmplY3QgTWV0YVBhdGggb2YgdGhlIG9iamVjdFxuXHQgKiBAcmV0dXJucyBOYXZpZ2F0aW9uIHBhdGhzXG5cdCAqL1xuXHRwcml2YXRlIGdldE5hdmlnYXRpb25QYXRoRm9yRXhwcmVzc2lvbihcblx0XHRtZXRhUGF0aE9iamVjdDogTWV0YVBhdGg8RmllbGRHcm91cCB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlPlxuXHQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gbWV0YVBhdGhPYmplY3QuZ2V0TmF2aWdhdGlvblByb3BlcnRpZXMoKTtcblx0XHRjb25zdCBuYXZpZ2F0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblx0XHRpZiAobmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAoaXNOYXZpZ2F0aW9uUHJvcGVydHkocHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0bmF2aWdhdGVkUGF0aHMucHVzaChwcm9wZXJ0eS5uYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBuYXZpZ2F0ZWRQYXRocz8udG9TdHJpbmcoKT8ucmVwbGFjZUFsbChcIixcIiwgXCIvXCIpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEyQ0E7O0VBb0JBOztFQVFBLE1BQU1BLFdBQVcsR0FBRyxDQUFDO0VBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBTXFCQyxhQUFhLDBCQUFBQyxxQkFBQTtJQVdqQyxTQUFBRCxjQUFZRSxjQUFpQyxFQUFFQyxNQUFrQixFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNsRUEsS0FBQSxHQUFBSCxxQkFBQSxDQUFBSSxJQUFBLE9BQU1ILGNBQWMsRUFBRUMsTUFBTSxDQUFDO01BQUNDLEtBQUEsQ0FYdkJFLFlBQVksR0FBa0IsRUFBRTtNQVl2QyxJQUFJQywyQkFBMEMsR0FBRyxFQUFFO01BQ25ELE1BQU07UUFBRUM7TUFBWSxDQUFDLEdBQUdKLEtBQUEsQ0FBS0sseUJBQXlCLENBQUMs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
|
|
569
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfQ09MVU1OUyIsIkhlYWRlckNvbnRlbnQiLCJfQmFzZUNhcmRDb250ZW50UHJvdmkiLCJjb252ZXJ0ZWRUeXBlcyIsImNvbmZpZyIsIl90aGlzIiwiY2FsbCIsImNhcmRFbGVtZW50cyIsImhlYWRlckZhY2V0c0ZvckFkYXB0aXZlQ2FyZCIsImNvbnRleHRQYXRoIiwiZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleSIsImhlYWRlckZhY2V0IiwiTWV0YVBhdGgiLCJjdXN0b21Db25maWdIZWFkZXJGYWNldHMiLCJnZXRDdXN0b21Db25maWdIZWFkZXJGYWNldHMiLCJjcmVhdGVIZWFkZXJGb3JtcyIsImVycm9yIiwiTG9nIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRIZWFkZXJDb250ZW50IiwiZ2V0RmllbGRHcm91cFByb3BlcnRpZXMiLCJyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIiwiZGF0YUZpZWxkIiwiZm9ybUVsZW1lbnRDb25maWciLCJwcm9wZXJ0eSIsInRleHRQcm9wZXJ0eSIsInRleHRwcm9wZXJ0eUFubm90YXRpb24iLCJsYWJlbCIsImxhYmVsVGV4dCIsIm5hdmlnYXRpb25QYXRoIiwiY29sb3IiLCIkVHlwZSIsImlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uIiwiVmFsdWUiLCJnZXRNZXRhUGF0aEZvck9iamVjdCIsImdldE5hdmlnYXRpb25QYXRoRm9yRXhwcmVzc2lvbiIsImdldFRhcmdldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsIkxhYmVsIiwiJHRhcmdldCIsInZhbHVlT2YiLCJnZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMiLCJkYXRhRmllbGRUYXJnZXRQYXRoIiwiVGFyZ2V0IiwiZGF0YUZpZWxkVGFyZ2V0IiwiaXNBbm5vdGF0aW9uT2ZUeXBlIiwiY29udGFjdE9iamVjdCIsImZuIiwiZ2V0VmlzaWJsZURhdGFGaWVsZHMiLCJkYXRhRmllbGRzIiwicmVkdWNlIiwidmlzaWJsZWRhdGFGaWVsZHMiLCJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsImlzUG90ZW50aWFsbHlTZW5zaXRpdmUiLCJwdXNoIiwiZ2V0Q29sdW1uRm9yRGF0YUZpZWxkIiwicHJvcGVydGllcyIsImRhdGFQb2ludFRpdGxlIiwiaXRlbXMiLCJjb2x1bW5zIiwiZ2V0Q29sdW1uIiwidmlzaWJsZSIsImdldFZpc2libGVGb3JEYXRhRmllbGQiLCJ1b20iLCJnZXRUZXh0QmxvY2siLCJzaXplIiwid2VpZ2h0IiwidGV4dCIsIm1heExpbmVzIiwid3JhcCIsInNwYWNpbmciLCJpc1N1YnRsZSIsInRleHRCaW5kaW5nIiwiZ2V0VmFsdWVCaW5kaW5nIiwiYWRkaXRpb25hbFZhbHVlIiwiZGF0ZUZpZWxkVmlzaWJsZUV4cCIsImdldFRleHRCbG9ja1Zpc2libGl0eUZvckRhdGVGaWVsZCIsInVuZGVmaW5lZCIsIiR3aGVuIiwiY29tcGlsZVRvQWRhcHRpdmVFeHByZXNzaW9uIiwiZXF1YWwiLCJjb25zdGFudCIsImdldEZpZWxkR3JvdXBDb250ZW50IiwiZm9ybUhlYWRlciIsImZvcm1FbGVtZW50c0NvbmZpZyIsImZpZWxkR3JvdXAiLCJtYXhDb2x1bW5zIiwiZm9ybXMiLCJmb3JtVGl0bGUiLCJmaWVsZEl0ZW1zIiwiRGF0YSIsImlUb3RhbENvbHVtcyIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiaSIsImlMb29wRW5kIiwiaUxvb3BTdGFydCIsImRhdGFGaWVsZGNvbHVtbnNldCIsImdldENvbHVtblNldCIsImoiLCJrZXkiLCJnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkIiwiZGF0YVByb3BlcnRpZXMiLCJkYXRhRmllbGROZXh0IiwiZGF0YUZpZWxkQ29sdW1ucyIsImRhdGFQb2ludCIsImV4cCIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5RXhwcmVzc2lvbiIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImdldENyaXRpY2FsaXR5RXhwcmVzc2lvbkZvckNhcmRzIiwidXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24iLCJnZXRVb21QYXRoQmluZGluZyIsInByb3BlcnR5VGFyZ2V0T2JqZWN0IiwiTWVhc3VyZXMiLCJJU09DdXJyZW5jeSIsIlVuaXQiLCJ1b21NZXRhUGF0aCIsInRhcmdldFBhdGgiLCJ0YXJnZXRJc1Byb3BlcnR5IiwiZ2V0RGF0YVBvaW50UHJvcGVydGllcyIsImdldERhdGFQb2ludENvbnRlbnQiLCJWaXN1YWxpemF0aW9uIiwiZGF0YVBvaW50Rm9ybXMiLCJnZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzIiwiaGVhZGVyRmFjZXRDb25maWdzIiwiYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzIiwiY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXROYW1lcyIsIk9iamVjdCIsImtleXMiLCJjdXN0b21IZWFkZXJGYWNldEVsZW1lbnRzIiwiY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXkiLCJyZWxldmFudEZhY2V0RWxlbWVudCIsImZpbmQiLCJoZWFkZXJGYWNldEVsZW1lbnQiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiaGVhZGVyRmFjZXRNZXRhUGF0aCIsInJlZmVyZW5jZUZhY2V0cyIsImdldFJlZmVyZW5jZUZhY2V0RnJvbUFubm90YXRpb25zIiwibWFwIiwiZ2VuZXJhdGUiLCJ2YWx1ZSIsImN1c3RvbUhlYWRlckZhY2V0Q29uZmlnRWxlbWVudHMiLCJoZWFkZXJGYWNldE92ZXJ3cml0ZUNvbmZpZyIsImlzVmlzaWJsZSIsIk92ZXJyaWRlVHlwZSIsIm92ZXJ3cml0ZSIsInRpdGxlIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJjb25maWdIZWFkZXJGYWNldHMiLCJwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQiLCJoZWFkZXJGb3JtcyIsImNvbmZpZ0hlYWRlckZhY2V0IiwiY3VycmVudElkeCIsImFsbENvbmZpZ0hlYWRlckZhY2V0cyIsIkZhY2V0SXRlbSIsIlVJIiwiSGlkZGVuIiwiZmFjZXREZWZpbml0aW9uIiwiZ2V0VmlzaWJsZUZvclJlZmVyZW5jZUZhY2V0IiwidG9TdHJpbmciLCJ0ZXJtIiwiYWRkRW1wdHlDb2x1bW5zIiwiZGF0YVBvaW50Q29sdW1ucyIsImRhdGFQb2ludENvbHVtblNldCIsImdldEFkZHJlc3NDb250ZW50IiwiYmluZCIsImNhcmRDb2x1bW5TZXQiLCJudW1Db2x1bW5zIiwibnVtQ29sdW1uc1RvQWRkIiwiYWRkcmVzc0NvbnRlbnQiLCJhZGRyZXNzIiwiYWRkcmVzc0NvbHVtblNldCIsImhlYWRlckZhY2V0cyIsImZpbHRlciIsImZhY2V0IiwiZWxlbWVudCIsInZpc2liaWxpdHlFeHAiLCJnZW5lcmF0ZVZpc2libGVFeHByZXNzaW9uIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsIm1ldGFQYXRoT2JqZWN0IiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJnZXROYXZpZ2F0aW9uUHJvcGVydGllcyIsIm5hdmlnYXRlZFBhdGhzIiwiZm9yRWFjaCIsImlzTmF2aWdhdGlvblByb3BlcnR5IiwibmFtZSIsInJlcGxhY2VBbGwiLCJCYXNlQ2FyZENvbnRlbnRQcm92aWRlciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiSGVhZGVyQ29udGVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnZlcnRlZE1ldGFkYXRhLCBOYXZpZ2F0aW9uUHJvcGVydHksIFByaW1pdGl2ZVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNCYXNlX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHtcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcyxcblx0dHlwZSBBZGRyZXNzLFxuXHR0eXBlIENvbnRhY3Rcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdERhdGFQb2ludCxcblx0RGF0YVBvaW50VHlwZSxcblx0RmllbGRHcm91cCxcblx0SGVhZGVyRmFjZXRzLFxuXHRSZWZlcmVuY2VGYWNldFxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UZXJtcywgVUlBbm5vdGF0aW9uVHlwZXMsIFZpc3VhbGl6YXRpb25UeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29uc3RhbnQsIGVxdWFsLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0S2V5LCBDdXN0b21FbGVtZW50LCBQb3NpdGlvbmFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgT3ZlcnJpZGVUeXBlLCBQbGFjZW1lbnQsIGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGlzUG90ZW50aWFsbHlTZW5zaXRpdmUsIGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9EYXRhRmllbGRIZWxwZXJcIjtcbmltcG9ydCB7IGNvbXBpbGVUb0FkYXB0aXZlRXhwcmVzc2lvbiwgdHlwZSBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9BZGFwdGl2ZUNhcmRFeHByZXNzaW9uQ29tcGlsZXJcIjtcbmltcG9ydCBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUsIGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUeXBlLCBpc05hdmlnYXRpb25Qcm9wZXJ0eSwgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb25Gb3JDYXJkcyB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0NyaXRpY2FsaXR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVWaXNpYmxlRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFGaWVsZEZvcm1hdHRlcnNcIjtcbmltcG9ydCB7IGlzVmlzaWJsZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IHsgZ2V0Q29sdW1uLCBnZXRDb2x1bW5TZXQsIGdldFRleHRCbG9jayB9IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvY2FyZC9BZGFwdGl2ZUNhcmRDb250ZW50XCI7XG5pbXBvcnQgQmFzZUNhcmRDb250ZW50UHJvdmlkZXIsIHsgdHlwZSBDYXJkQ29uZmlnIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0Jhc2VDYXJkQ29udGVudFByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSB7IENhcmRDb2x1bW4sIENhcmRDb2x1bW5TZXQsIENhcmRFbGVtZW50LCBDYXJkVGV4dEJsb2NrIH0gZnJvbSBcInR5cGVzL2FkYXB0aXZlQ2FyZF90eXBlc1wiO1xuXG50eXBlIERhdGFQcm9wZXJ0aWVzID0ge1xuXHRjb2xvcj86IENvbXBpbGVkQWRhcHRpdmVDYXJkRXhwcmVzc2lvbjtcblx0dW9tPzogc3RyaW5nO1xuXHRsYWJlbD86IHN0cmluZztcblx0cHJvcGVydHk/OiBNZXRhUGF0aDxzdHJpbmc+O1xuXHR0ZXh0UHJvcGVydHk/OiBNZXRhUGF0aDxzdHJpbmc+O1xuXHRuYXZpZ2F0aW9uUGF0aD86IHN0cmluZztcbn07XG5cbi8vIEV4dGVybmFsIHR5cGVzIGZvciBoZWFkZXIgZmFjZXQgY29uZmlndXJhdGlvblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnRDb25maWcgPSB7XG5cdGxhYmVsVGV4dDogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEN1c3RvbUZvcm1FbGVtZW50c0NvbmZpZyA9IFJlY29yZDxDb25maWd1cmFibGVPYmplY3RLZXksIEZvcm1FbGVtZW50Q29uZmlnPjtcblxuZXhwb3J0IHR5cGUgSGVhZGVyRmFjZXRDb25maWcgPSBQb3NpdGlvbmFibGUgJiB7XG5cdGlzVmlzaWJsZT86IHN0cmluZyB8IGJvb2xlYW47XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRmb3JtRWxlbWVudHNDb25maWc/OiBDdXN0b21Gb3JtRWxlbWVudHNDb25maWc7XG59O1xuXG5leHBvcnQgdHlwZSBDdXN0b21IZWFkZXJGYWNldENvbmZpZ3MgPSBSZWNvcmQ8Q29uZmlndXJhYmxlT2JqZWN0S2V5LCBIZWFkZXJGYWNldENvbmZpZz47XG5cbmV4cG9ydCB0eXBlIEhlYWRlckZhY2V0Q29uZmlndXJhYmxlID0ge1xuXHRoZWFkZXJGYWNldHM/OiBDdXN0b21IZWFkZXJGYWNldENvbmZpZ3M7XG59O1xuXG5leHBvcnQgdHlwZSBDYXJkSGVhZGVyRmFjZXRzQ29uZmlnID0gSGVhZGVyRmFjZXRDb25maWd1cmFibGUgJiBDYXJkQ29uZmlnO1xuXG4vLyBJbnRlcm5hbCB0eXBlcyBmb3IgaGVhZGVyIGZhY2V0IGNvbmZpZ3VyYXRpb25cbnR5cGUgSGVhZGVyRmFjZXRDb25maWdFbGVtZW50ID0gSGVhZGVyRmFjZXRDb25maWcgJiB7XG5cdGtleTogQ29uZmlndXJhYmxlT2JqZWN0S2V5O1xuXHRoZWFkZXJGYWNldDogUmVmZXJlbmNlRmFjZXQ7XG59O1xuXG50eXBlIEludGVybmFsQ3VzdG9tSGVhZGVyRmFjZXRFbGVtZW50cyA9IFJlY29yZDxDb25maWd1cmFibGVPYmplY3RLZXksIEN1c3RvbUVsZW1lbnQ8SGVhZGVyRmFjZXRDb25maWdFbGVtZW50Pj47XG5cbmNvbnN0IE1BWF9DT0xVTU5TID0gMztcbi8qKlxuICogR2V0IGltYWdlIGFuZCB0aXRsZSBmb3IgY2FyZC5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVhZGVyQ29udGVudCBleHRlbmRzIEJhc2VDYXJkQ29udGVudFByb3ZpZGVyPENhcmRIZWFkZXJGYWNldHNDb25maWc+IHtcblx0cHJpdmF0ZSBjYXJkRWxlbWVudHM6IENhcmRFbGVtZW50W10gPSBbXTtcblxuXHQvKipcblx0ICogR2V0IGltYWdlIGFuZCB0aXRsZSBpbiBjb2x1bW4gc2V0LlxuXHQgKiBAcmV0dXJucyBDb2x1bW4gc2V0LlxuXHQgKi9cblx0cHVibGljIGdldEhlYWRlckNvbnRlbnQoKTogQ2FyZEVsZW1lbnRbXSB7XG5cdFx0cmV0dXJuIHRoaXMuY2FyZEVsZW1lbnRzO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLCBjb25maWc6IENhcmRDb25maWcpIHtcblx0XHRzdXBlcihjb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRsZXQgaGVhZGVyRmFjZXRzRm9yQWRhcHRpdmVDYXJkOiBDYXJkRWxlbWVudFtdID0gW107XG5cdFx0Y29uc3QgeyBjb250ZXh0UGF0aCB9ID0gdGhpcy5nZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5KFwiY29udGV4dEluZm9cIik7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGhlYWRlckZhY2V0ID0gbmV3IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4oY29udmVydGVkVHlwZXMsIGAke2NvbnRleHRQYXRofUAke1VJQW5ub3RhdGlvblRlcm1zLkhlYWRlckZhY2V0c31gLCBjb250ZXh0UGF0aCk7XG5cdFx0XHRjb25zdCBjdXN0b21Db25maWdIZWFkZXJGYWNldHMgPSB0aGlzLmdldEN1c3RvbUNvbmZpZ0hlYWRlckZhY2V0cyhoZWFkZXJGYWNldCk7XG5cdFx0XHRoZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQgPSB0aGlzLmNyZWF0ZUhlYWRlckZvcm1zKGhlYWRlckZhY2V0LCBjdXN0b21Db25maWdIZWFkZXJGYWNldHMpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRMb2cuZXJyb3IoYEZFIDogVjQgOiBBZGFwdGl2ZSBDYXJkIGhlYWRlciBmYWNldHMgOiBubyBFbnRpdHlUeXBlIGZvdW5kIGF0IGNvbnRleHQgcGF0aDogJHtjb250ZXh0UGF0aH1gKTtcblx0XHR9XG5cdFx0dGhpcy5jYXJkRWxlbWVudHMgPSBoZWFkZXJGYWNldHNGb3JBZGFwdGl2ZUNhcmQ7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBEYXRhUG9pbnQgSW5mb3JtYXRpb24gZnJvbSBSZWZlcmVuY2VGYWNldC5cblx0ICogQHBhcmFtIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggTWV0YVBhdGggcG9pbnRpbmcgdG8gRmllbGRHcm91cFxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZEFic3RyYWN0IHR5cGVzXG5cdCAqIEBwYXJhbSBmb3JtRWxlbWVudENvbmZpZyBGaWVsZCBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBQcm9wZXJ0aWVzIGFwcGxpY2FibGUgZm9yIHRoZSBkYXRhUG9pbnQgYW5ub3RhdGlvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZEdyb3VwUHJvcGVydGllcyhcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxGaWVsZEdyb3VwPixcblx0XHRkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdFx0Zm9ybUVsZW1lbnRDb25maWc/OiBGb3JtRWxlbWVudENvbmZpZ1xuXHQpOiBEYXRhUHJvcGVydGllcyB7XG5cdFx0bGV0IHByb3BlcnR5LFxuXHRcdFx0dGV4dFByb3BlcnR5LFxuXHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbixcblx0XHRcdGxhYmVsID0gZm9ybUVsZW1lbnRDb25maWc/LmxhYmVsVGV4dCxcblx0XHRcdG5hdmlnYXRpb25QYXRoLFxuXHRcdFx0Y29sb3I7XG5cdFx0c3dpdGNoIChkYXRhRmllbGQ/LiRUeXBlKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aFVybDpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0XHRpZiAoaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24oZGF0YUZpZWxkLlZhbHVlKSkge1xuXHRcdFx0XHRcdHByb3BlcnR5ID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChkYXRhRmllbGQuVmFsdWUpO1xuXHRcdFx0XHRcdG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24ocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCk7XG5cdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9ICgocHJvcGVydHk/LmdldFRhcmdldCgpIGFzIFByb3BlcnR5KT8uYW5ub3RhdGlvbnM/LkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zQmFzZV9Db21tb24pXG5cdFx0XHRcdFx0XHQ/LlRleHQ7XG5cdFx0XHRcdFx0dGV4dFByb3BlcnR5ID0gdGV4dHByb3BlcnR5QW5ub3RhdGlvbiAmJiByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KHRleHRwcm9wZXJ0eUFubm90YXRpb24pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHByb3BlcnR5ID0gZGF0YUZpZWxkLlZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxhYmVsID0gbGFiZWwgPz8gZGF0YUZpZWxkLkxhYmVsID8/IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWwudmFsdWVPZigpID8/IFwiXCI7XG5cdFx0XHRcdGNvbG9yID0gdGhpcy5nZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YUZpZWxkKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFubm90YXRpb246XG5cdFx0XHRcdGxhYmVsID1cblx0XHRcdFx0XHRsYWJlbCA/PyBkYXRhRmllbGQuTGFiZWwgPz8gKGRhdGFGaWVsZCBhcyBQcmltaXRpdmVUeXBlKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsLnZhbHVlT2YoKSA/PyBcIlwiO1xuXHRcdFx0XHRjb25zdCBkYXRhRmllbGRUYXJnZXRQYXRoID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChkYXRhRmllbGQuVGFyZ2V0KTtcblx0XHRcdFx0Y29uc3QgZGF0YUZpZWxkVGFyZ2V0ID0gZGF0YUZpZWxkVGFyZ2V0UGF0aD8uZ2V0VGFyZ2V0KCk7XG5cdFx0XHRcdG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24oZGF0YUZpZWxkVGFyZ2V0UGF0aCBhcyBNZXRhUGF0aDxEYXRhUG9pbnRUeXBlPik7XG5cdFx0XHRcdGlmIChpc0Fubm90YXRpb25PZlR5cGU8RGF0YVBvaW50PihkYXRhRmllbGRUYXJnZXQsIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGUpKSB7XG5cdFx0XHRcdFx0aWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKGRhdGFGaWVsZFRhcmdldC5WYWx1ZSkpIHtcblx0XHRcdFx0XHRcdHByb3BlcnR5ID0gZGF0YUZpZWxkVGFyZ2V0UGF0aD8uZ2V0TWV0YVBhdGhGb3JPYmplY3QoKGRhdGFGaWVsZFRhcmdldCBhcyBEYXRhUG9pbnRUeXBlKT8uVmFsdWUpO1xuXHRcdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IHByb3BlcnR5Py5nZXRUYXJnZXQoKT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0XHRcdFx0XHRcdHRleHRQcm9wZXJ0eSA9IHRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdCh0ZXh0cHJvcGVydHlBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cHJvcGVydHkgPSBkYXRhRmllbGRUYXJnZXQuVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvbG9yID0gdGhpcy5nZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YUZpZWxkVGFyZ2V0KTtcblx0XHRcdFx0fSBlbHNlIGlmIChpc0Fubm90YXRpb25PZlR5cGU8Q29udGFjdD4oZGF0YUZpZWxkVGFyZ2V0LCBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblR5cGVzLkNvbnRhY3RUeXBlKSkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbnRhY3RPYmplY3QgPSBkYXRhRmllbGRUYXJnZXQuZm47XG5cdFx0XHRcdFx0aWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKGNvbnRhY3RPYmplY3QpKSB7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0eSA9IGRhdGFGaWVsZFRhcmdldFBhdGg/LmdldE1ldGFQYXRoRm9yT2JqZWN0KGNvbnRhY3RPYmplY3QpO1xuXHRcdFx0XHRcdFx0dGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IChwcm9wZXJ0eSBhcyBQcmltaXRpdmVUeXBlKT8uZ2V0VGFyZ2V0KCk/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ7XG5cdFx0XHRcdFx0XHR0ZXh0UHJvcGVydHkgPSB0ZXh0cHJvcGVydHlBbm5vdGF0aW9uICYmIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QodGV4dHByb3BlcnR5QW5ub3RhdGlvbik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHJldHVybiB7IHByb3BlcnR5LCBsYWJlbCwgbmF2aWdhdGlvblBhdGgsIHRleHRQcm9wZXJ0eSwgY29sb3IgfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSB2aXNpYmxlIGRhdGFGaWVsZHMgZnJvbSBmaWVsZEdyb3VwLlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkcyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLlxuXHQgKiBAcmV0dXJucyBWaXNpYmxlIERhdGFGaWVsZHMuXG5cdCAqL1xuXHRwcml2YXRlIGdldFZpc2libGVEYXRhRmllbGRzKGRhdGFGaWVsZHM6IERhdGFGaWVsZEFic3RyYWN0VHlwZXNbXSk6IERhdGFGaWVsZEFic3RyYWN0VHlwZXNbXSB7XG5cdFx0cmV0dXJuIGRhdGFGaWVsZHMucmVkdWNlKCh2aXNpYmxlZGF0YUZpZWxkcywgZGF0YUZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoIWlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuKGRhdGFGaWVsZCkgJiYgIWlzUG90ZW50aWFsbHlTZW5zaXRpdmUoZGF0YUZpZWxkKSkge1xuXHRcdFx0XHR2aXNpYmxlZGF0YUZpZWxkcy5wdXNoKGRhdGFGaWVsZCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdmlzaWJsZWRhdGFGaWVsZHM7XG5cdFx0fSwgW10gYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlc1tdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgdGhlIGNvbHVtblNldHMgZm9yIGVhY2ggZGF0YUZpZWxkcy5cblx0ICogQHBhcmFtIGRhdGFGaWVsZCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIFByb3BlcnRpZXMgb2YgdGhlIERhdGFGaWVsZCByZXF1aXJlZCBmb3IgYWRhcHRpdmUgY2FyZFxuXHQgKiBAcGFyYW0gZGF0YVBvaW50VGl0bGVcblx0ICogQHJldHVybnMgQ29sdW1uU2V0cyBjb250YWluaW5nIGhlYWRlciBmYWNldCBpbmZvcm1hdGlvbiB3aGljaCBpcyByZXF1aXJlZCBmb3IgYWRhcHRpdmUgY2FyZFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDb2x1bW5Gb3JEYXRhRmllbGQoXG5cdFx0ZGF0YUZpZWxkPzogTWV0YVBhdGg8RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB8IERhdGFQb2ludFR5cGU+LFxuXHRcdHByb3BlcnRpZXM/OiBEYXRhUHJvcGVydGllcyxcblx0XHRkYXRhUG9pbnRUaXRsZT86IGJvb2xlYW5cblx0KTogQ2FyZENvbHVtbltdIHtcblx0XHRjb25zdCBpdGVtcyA9IFtdO1xuXHRcdGNvbnN0IGNvbHVtbnMgPSBbXTtcblx0XHRpZiAoIWRhdGFGaWVsZCkge1xuXHRcdFx0Y29sdW1ucy5wdXNoKGdldENvbHVtbigpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgdmlzaWJsZSA9IHRoaXMuZ2V0VmlzaWJsZUZvckRhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0Y29uc3QgeyBwcm9wZXJ0eSwgbGFiZWwsIGNvbG9yLCB1b20sIHRleHRQcm9wZXJ0eSB9ID0gcHJvcGVydGllcyB8fCB7fTtcblx0XHRcdGlmIChwcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAobGFiZWwpIHtcblx0XHRcdFx0XHRpZiAoZGF0YVBvaW50VGl0bGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGl0ZW1zLnB1c2goXG5cdFx0XHRcdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdFx0XHRcdHdlaWdodDogXCJCb2xkZXJcIixcblx0XHRcdFx0XHRcdFx0XHR0ZXh0OiBsYWJlbCxcblx0XHRcdFx0XHRcdFx0XHRtYXhMaW5lczogMixcblx0XHRcdFx0XHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdHNwYWNpbmc6IFwiTWVkaXVtXCIsXG5cdFx0XHRcdFx0XHRcdFx0dmlzaWJsZTogdmlzaWJsZVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0aXRlbXMucHVzaChnZXRUZXh0QmxvY2soeyBzaXplOiBcIlNtYWxsXCIsIHRleHQ6IGAke2xhYmVsfTpgLCBtYXhMaW5lczogMSwgaXNTdWJ0bGU6IHRydWUgfSkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB0ZXh0QmluZGluZyA9IHRoaXMuZ2V0VmFsdWVCaW5kaW5nKHByb3BlcnR5LCB0ZXh0UHJvcGVydHkpO1xuXHRcdFx0XHRjb25zdCBhZGRpdGlvbmFsVmFsdWUgPSB1b20gPz8gdGV4dFByb3BlcnR5O1xuXHRcdFx0XHRjb25zdCBkYXRlRmllbGRWaXNpYmxlRXhwID0gdGhpcy5nZXRUZXh0QmxvY2tWaXNpYmxpdHlGb3JEYXRlRmllbGQoXG5cdFx0XHRcdFx0cHJvcGVydHksXG5cdFx0XHRcdFx0dHlwZW9mIGFkZGl0aW9uYWxWYWx1ZSAhPT0gXCJzdHJpbmdcIiA/IGFkZGl0aW9uYWxWYWx1ZSA6IHVuZGVmaW5lZFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpdGVtcy5wdXNoKFxuXHRcdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0XHRzaXplOiBcIlNtYWxsXCIsXG5cdFx0XHRcdFx0XHQkd2hlbjogY29tcGlsZVRvQWRhcHRpdmVFeHByZXNzaW9uKGRhdGVGaWVsZFZpc2libGVFeHApLFxuXHRcdFx0XHRcdFx0dGV4dDogdW9tID8gYCR7dGV4dEJpbmRpbmd9ICR7dW9tfWAgOiB0ZXh0QmluZGluZyxcblx0XHRcdFx0XHRcdG1heExpbmVzOiAyLFxuXHRcdFx0XHRcdFx0Y29sb3I6IGNvbG9yXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0KTtcblx0XHRcdFx0aXRlbXMucHVzaChcblx0XHRcdFx0XHRnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdFx0JHdoZW46IGNvbXBpbGVUb0FkYXB0aXZlRXhwcmVzc2lvbihlcXVhbChkYXRlRmllbGRWaXNpYmxlRXhwLCBjb25zdGFudChmYWxzZSkpKSxcblx0XHRcdFx0XHRcdHRleHQ6IFwiXFxcXC1cIlxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbHVtbnMucHVzaChnZXRDb2x1bW4oeyBpdGVtczogaXRlbXMsIHZpc2libGU6IHZpc2libGUgPz8gdW5kZWZpbmVkIH0pKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbHVtbnM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgY29sdW1uIHNldHMgYW5kIGdldHMgdGhlIGZpZWxkZ3JvdXAgY29udGVudC5cblx0ICogQHBhcmFtIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggTWV0YXBhdGggb2YgdGhlIHJlZmVyZW5jZSBmYWNldCBmaWVsZGdyb3VwXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIEZvcm0gSGVhZGVyXG5cdCAqIEBwYXJhbSB2aXNpYmxlIFZpc2libGUgZXhwcmVzc2lvbiBmb3IgdGhlIEZhY2V0SGVhZGVyXG5cdCAqIEBwYXJhbSBmb3JtRWxlbWVudHNDb25maWcgRmllbGRzJyBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBDb2x1bW5TZXRzIGNvbnRhaW5pbmcgaGVhZGVyIGZhY2V0IGluZm9ybWF0aW9uIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBhZGFwdGl2ZSBjYXJkXG5cdCAqL1xuXHRwcml2YXRlIGdldEZpZWxkR3JvdXBDb250ZW50KFxuXHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGg6IE1ldGFQYXRoPEZpZWxkR3JvdXA+LFxuXHRcdGZvcm1IZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0XHR2aXNpYmxlOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24gfCBib29sZWFuLFxuXHRcdGZvcm1FbGVtZW50c0NvbmZpZz86IEN1c3RvbUZvcm1FbGVtZW50c0NvbmZpZ1xuXHQpOiBDYXJkRWxlbWVudFtdIHtcblx0XHRjb25zdCBmaWVsZEdyb3VwID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRUYXJnZXQoKTtcblx0XHRjb25zdCBtYXhDb2x1bW5zID0gTUFYX0NPTFVNTlM7XG5cdFx0Y29uc3QgZm9ybXM6IENhcmRFbGVtZW50W10gPSBbXTtcblx0XHRpZiAoZm9ybUhlYWRlcikge1xuXHRcdFx0Y29uc3QgZm9ybVRpdGxlOiBDYXJkVGV4dEJsb2NrID0gZ2V0VGV4dEJsb2NrKHtcblx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGZvcm1IZWFkZXIsXG5cdFx0XHRcdG1heExpbmVzOiAyLFxuXHRcdFx0XHRzcGFjaW5nOiBcIk1lZGl1bVwiLFxuXHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHR2aXNpYmxlOiB2aXNpYmxlID8/IHVuZGVmaW5lZFxuXHRcdFx0fSk7XG5cdFx0XHRmb3Jtcy5wdXNoKGZvcm1UaXRsZSk7XG5cdFx0fVxuXHRcdGNvbnN0IGZpZWxkSXRlbXMgPSB0aGlzLmdldFZpc2libGVEYXRhRmllbGRzKGZpZWxkR3JvdXA/LkRhdGEpO1xuXHRcdC8qIENvbHVtbiBzZXQgc2hvdWxkIGNvbnRhaW4gbWF4aW11bSBvZiB0aHJlZSBjb2x1bW5zXG5cdFx0aGVuY2UgY2hlY2sgdGhlIG51bWJlciBvZiBkYXRhZmllbGRzIGFuZCBkZWNpZGUgdGhlIGNvbHVtbnMgZm9yIGVhY2ggY29sdW1uIHNldCAqL1xuXHRcdGNvbnN0IGlUb3RhbENvbHVtcyA9IE1hdGguY2VpbChmaWVsZEl0ZW1zLmxlbmd0aCAvIG1heENvbHVtbnMpO1xuXHRcdGZvciAobGV0IGkgPSAxOyBpIDw9IGlUb3RhbENvbHVtczsgaSsrKSB7XG5cdFx0XHRjb25zdCBpTG9vcEVuZCA9IGkgKiBtYXhDb2x1bW5zO1xuXHRcdFx0Y29uc3QgaUxvb3BTdGFydCA9IGlMb29wRW5kIC0gbWF4Q29sdW1ucztcblx0XHRcdGNvbnN0IGRhdGFGaWVsZGNvbHVtbnNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRcdGZvciAobGV0IGogPSBpTG9vcFN0YXJ0OyBqIDwgaUxvb3BFbmQ7IGorKykge1xuXHRcdFx0XHRjb25zdCBkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgPSBmaWVsZEl0ZW1zW2pdO1xuXHRcdFx0XHRjb25zdCBrZXkgPSBkYXRhRmllbGQgJiYgZ2V0U3RhYmxlSWRQYXJ0RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRjb25zdCBmb3JtRWxlbWVudENvbmZpZyA9IGtleSA/IGZvcm1FbGVtZW50c0NvbmZpZz8uW2tleV0gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdGNvbnN0IGRhdGFQcm9wZXJ0aWVzID0gdGhpcy5nZXRGaWVsZEdyb3VwUHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLCBkYXRhRmllbGQsIGZvcm1FbGVtZW50Q29uZmlnKTtcblx0XHRcdFx0Y29uc3QgZGF0YUZpZWxkTmV4dCA9IGRhdGFGaWVsZCAmJiByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KGRhdGFGaWVsZCk7XG5cdFx0XHRcdGNvbnN0IGRhdGFGaWVsZENvbHVtbnMgPSB0aGlzLmdldENvbHVtbkZvckRhdGFGaWVsZChkYXRhRmllbGROZXh0LCBkYXRhUHJvcGVydGllcyk7XG5cdFx0XHRcdGlmIChkYXRhRmllbGRDb2x1bW5zKSB7XG5cdFx0XHRcdFx0ZGF0YUZpZWxkY29sdW1uc2V0LmNvbHVtbnMucHVzaCguLi5kYXRhRmllbGRDb2x1bW5zKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGRhdGFGaWVsZGNvbHVtbnNldCkge1xuXHRcdFx0XHRmb3Jtcy5wdXNoKGRhdGFGaWVsZGNvbHVtbnNldCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBmb3Jtcztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHRleHQgY29sb3IgZm9yIHRoZSBkYXRhUG9pbnQuXG5cdCAqIEBwYXJhbSBkYXRhUG9pbnQgRGF0YVBvaW50IGFubm90YXRpb25cblx0ICogQHJldHVybnMgQ29sb3Igb2YgdGhlIFRleHRcblx0ICovXG5cdHB1YmxpYyBnZXRDcml0aWNhbGl0eUZvckRhdGFQb2ludHMoZGF0YVBvaW50OiBEYXRhUG9pbnQgfCBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRsZXQgZXhwO1xuXHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSBkYXRhUG9pbnQuQ3JpdGljYWxpdHk7XG5cdFx0aWYgKGNyaXRpY2FsaXR5UHJvcGVydHkpIHtcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5RXhwcmVzc2lvbjogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPHN0cmluZyB8IG51bWJlcj4gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oY3JpdGljYWxpdHlQcm9wZXJ0eSk7XG5cdFx0XHRleHAgPSBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb25Gb3JDYXJkcyhjcml0aWNhbGl0eUV4cHJlc3Npb24sIGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZXhwID0gY29uc3RhbnQoXCJkZWZhdWx0XCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbihleHApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgdW9tIHBhdGggZm9yIHRoZSBkYXRhUG9pbnQuXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIE1ldGFQYXRoIHBvaW50aW5nIHRvIGRhdGFwb2ludHNcblx0ICogQHBhcmFtIHByb3BlcnR5VGFyZ2V0T2JqZWN0IERhdGFQb2ludCBwcm9wZXJ0eVxuXHQgKiBAcmV0dXJucyBQYXRoIGJpbmRpbmcgZm9yIFVPTVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRVb21QYXRoQmluZGluZyhcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxEYXRhUG9pbnRUeXBlIHwgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcz4sXG5cdFx0cHJvcGVydHlUYXJnZXRPYmplY3Q6IFByb3BlcnR5IHwgdW5kZWZpbmVkXG5cdCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdW9tID0gcHJvcGVydHlUYXJnZXRPYmplY3Q/LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSB8fCBwcm9wZXJ0eVRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQ7XG5cdFx0aWYgKCF1b20pIHtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKHVvbSkpIHtcblx0XHRcdGNvbnN0IHVvbU1ldGFQYXRoID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdCh1b20pO1xuXHRcdFx0Y29uc3QgdGFyZ2V0UGF0aCA9IHVvbU1ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRcdHJldHVybiB0YXJnZXRQYXRoICYmIHRoaXMudGFyZ2V0SXNQcm9wZXJ0eSh1b21NZXRhUGF0aCkgPyB0aGlzLmdldFZhbHVlQmluZGluZyh1b21NZXRhUGF0aCkgOiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgRGF0YVBvaW50IEluZm9ybWF0aW9uIGZyb20gUmVmZXJlbmNlRmFjZXQuXG5cdCAqIEBwYXJhbSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIE1ldGFQYXRoIHBvaW50aW5nIHRvIGRhdGFwb2ludHNcblx0ICogQHBhcmFtIGRhdGFQb2ludCBEYXRhUG9pbnRcblx0ICogQHJldHVybnMgUHJvcGVydGllcyBhcHBsaWNhYmxlIGZvciB0aGUgZGF0YVBvaW50IGFubm90YXRpb25cblx0ICovXG5cdHByaXZhdGUgZ2V0RGF0YVBvaW50UHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxEYXRhUG9pbnQ+LCBkYXRhUG9pbnQ6IERhdGFQb2ludCk6IERhdGFQcm9wZXJ0aWVzIHtcblx0XHRjb25zdCBwcm9wZXJ0eSA9IHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QoZGF0YVBvaW50Py5WYWx1ZSk7XG5cdFx0Y29uc3QgdW9tID0gdGhpcy5nZXRVb21QYXRoQmluZGluZyhcblx0XHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGgsXG5cdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldE1ldGFQYXRoRm9yT2JqZWN0KGRhdGFQb2ludD8uVmFsdWUpPy5nZXRUYXJnZXQoKVxuXHRcdCk7XG5cdFx0Y29uc3QgdGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IHByb3BlcnR5Py5nZXRUYXJnZXQoKT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dDtcblx0XHRjb25zdCB0ZXh0UHJvcGVydHkgPSB0ZXh0cHJvcGVydHlBbm5vdGF0aW9uICYmIHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGguZ2V0TWV0YVBhdGhGb3JPYmplY3QodGV4dHByb3BlcnR5QW5ub3RhdGlvbik7XG5cdFx0Y29uc3QgY29sb3IgPSB0aGlzLmdldENyaXRpY2FsaXR5Rm9yRGF0YVBvaW50cyhkYXRhUG9pbnQpO1xuXHRcdGNvbnN0IG5hdmlnYXRpb25QYXRoID0gdGhpcy5nZXROYXZpZ2F0aW9uUGF0aEZvckV4cHJlc3Npb24ocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCk7XG5cdFx0cmV0dXJuIHsgcHJvcGVydHksIGNvbG9yLCB1b20sIG5hdmlnYXRpb25QYXRoLCB0ZXh0UHJvcGVydHkgfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIERhdGFwb2ludCBjb250ZW50IGZyb20gdGhlIGZhY2V0LlxuXHQgKiBAcGFyYW0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBNZXRhUGF0aCBwb2ludGluZyB0byBEYXRhcG9pbnRzXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIFRpdGxlIG9mIHRoZSBmb3JtIGhlYWRlclxuXHQgKiBAcmV0dXJucyBUaXRsZSBhbmQgY29udGVudCBvZiB0aGUgZGF0YXBvaW50XG5cdCAqL1xuXHRwcml2YXRlIGdldERhdGFQb2ludENvbnRlbnQocmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aDogTWV0YVBhdGg8RGF0YVBvaW50PiwgZm9ybUhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogQ2FyZENvbHVtbltdIHtcblx0XHRjb25zdCBjb2x1bW5zID0gW107XG5cdFx0Y29uc3QgZGF0YVBvaW50ID0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aC5nZXRUYXJnZXQoKTtcblx0XHRpZiAoZGF0YVBvaW50Py5WaXN1YWxpemF0aW9uICE9PSBWaXN1YWxpemF0aW9uVHlwZS5SYXRpbmcgJiYgZGF0YVBvaW50Py5WaXN1YWxpemF0aW9uICE9PSBWaXN1YWxpemF0aW9uVHlwZS5Qcm9ncmVzcykge1xuXHRcdFx0Y29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0RGF0YVBvaW50UHJvcGVydGllcyhyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLCBkYXRhUG9pbnQpO1xuXHRcdFx0cHJvcGVydGllcy5sYWJlbCA9IGZvcm1IZWFkZXI7XG5cdFx0XHRjb25zdCBkYXRhUG9pbnRGb3JtcyA9IHRoaXMuZ2V0Q29sdW1uRm9yRGF0YUZpZWxkKHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGgsIHByb3BlcnRpZXMsIHRydWUpO1xuXHRcdFx0aWYgKGRhdGFQb2ludEZvcm1zKSB7XG5cdFx0XHRcdGNvbHVtbnMucHVzaCguLi5kYXRhUG9pbnRGb3Jtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjb2x1bW5zO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY3VzdG9tIGNvbmZpZ3VyZWQgaGVhZGVyIGZhY2V0IGVsZW1lbnRzLlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRDb25maWdzXG5cdCAqIEBwYXJhbSBhbm5vdGF0ZWRSZWZlcmVuY2VGYWNldHNcblx0ICogQHJldHVybnMgVGhlIGN1c3RvbSBjb25maWd1cmVkIGhlYWRlciBmYWNldCBlbGVtZW50c1xuXHQgKi9cblx0cHJpdmF0ZSBnZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzKFxuXHRcdGhlYWRlckZhY2V0Q29uZmlnczogQ3VzdG9tSGVhZGVyRmFjZXRDb25maWdzLFxuXHRcdGFubm90YXRlZFJlZmVyZW5jZUZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W11cblx0KTogSW50ZXJuYWxDdXN0b21IZWFkZXJGYWNldEVsZW1lbnRzIHtcblx0XHRjb25zdCBjdXN0b21Db25maWdIZWFkZXJGYWNldE5hbWVzID0gT2JqZWN0LmtleXMoaGVhZGVyRmFjZXRDb25maWdzKTtcblx0XHRyZXR1cm4gY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXROYW1lcy5yZWR1Y2UoKGN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHMsIGN1c3RvbUNvbmZpZ0hlYWRlckZhY2V0S2V5KSA9PiB7XG5cdFx0XHRjb25zdCByZWxldmFudEZhY2V0RWxlbWVudCA9IGFubm90YXRlZFJlZmVyZW5jZUZhY2V0cy5maW5kKFxuXHRcdFx0XHQoaGVhZGVyRmFjZXRFbGVtZW50KSA9PiBoZWFkZXJGYWNldEVsZW1lbnQua2V5ID09PSBjdXN0b21Db25maWdIZWFkZXJGYWNldEtleVxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKHJlbGV2YW50RmFjZXRFbGVtZW50KSB7XG5cdFx0XHRcdGN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHNbY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXldID0ge1xuXHRcdFx0XHRcdGtleTogY3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRLZXksXG5cdFx0XHRcdFx0aGVhZGVyRmFjZXQ6IHJlbGV2YW50RmFjZXRFbGVtZW50LmhlYWRlckZhY2V0LFxuXHRcdFx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdFx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudC5BZnRlclxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Li4uaGVhZGVyRmFjZXRDb25maWdzW2N1c3RvbUNvbmZpZ0hlYWRlckZhY2V0S2V5XVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gY3VzdG9tSGVhZGVyRmFjZXRFbGVtZW50cztcblx0XHR9LCB7fSBhcyBJbnRlcm5hbEN1c3RvbUhlYWRlckZhY2V0RWxlbWVudHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY3VzdG9tIGNvbmZpZ3VyZWQgaGVhZGVyIGZhY2V0cy5cblx0ICogQHBhcmFtIGhlYWRlckZhY2V0TWV0YVBhdGggTWV0YVBhdGggb2JqZWN0IG9mIHRoZSBhbm5vdGF0ZWQgaGVhZGVyIGZhY2V0c1xuXHQgKiBAcmV0dXJucyBSZWZlcmVuY2UgZmFjZXRzIHdpdGggb3ZlcnJpZGRlbiBjdXN0b20gY29uZmlndXJhdGlvbnNcblx0ICovXG5cdHByaXZhdGUgZ2V0Q3VzdG9tQ29uZmlnSGVhZGVyRmFjZXRzKGhlYWRlckZhY2V0TWV0YVBhdGg6IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4pOiBIZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRbXSB7XG5cdFx0Y29uc3QgcmVmZXJlbmNlRmFjZXRzOiBSZWZlcmVuY2VGYWNldFtdID0gdGhpcy5nZXRSZWZlcmVuY2VGYWNldEZyb21Bbm5vdGF0aW9ucyhoZWFkZXJGYWNldE1ldGFQYXRoLmdldFRhcmdldCgpKTtcblx0XHRsZXQgYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzOiBIZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRbXSA9IHJlZmVyZW5jZUZhY2V0cy5tYXAoZnVuY3Rpb24gKGhlYWRlckZhY2V0KSB7XG5cdFx0XHRyZXR1cm4geyBrZXk6IGdlbmVyYXRlKFtoZWFkZXJGYWNldC5UYXJnZXQudmFsdWVdKSwgaGVhZGVyRmFjZXQgfTtcblx0XHR9KTtcblx0XHQvLyBHZXQgdGhlIFVJIG92ZXJyaWRlcyBmb3IgaGVhZGVyIGZhY2V0cywgaWYgYW55XG5cdFx0Y29uc3QgaGVhZGVyRmFjZXRDb25maWdzID0gdGhpcy5nZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5KFwiaGVhZGVyRmFjZXRzXCIpO1xuXHRcdGlmIChoZWFkZXJGYWNldENvbmZpZ3MgJiYgT2JqZWN0LmtleXMoaGVhZGVyRmFjZXRDb25maWdzKS5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBjdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzID0gdGhpcy5nZXRDdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzKGhlYWRlckZhY2V0Q29uZmlncywgYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzKTtcblxuXHRcdFx0Y29uc3QgaGVhZGVyRmFjZXRPdmVyd3JpdGVDb25maWcgPSB7XG5cdFx0XHRcdGlzVmlzaWJsZTogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZSxcblx0XHRcdFx0dGl0bGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGUsXG5cdFx0XHRcdHBvc2l0aW9uOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlLFxuXHRcdFx0XHRmb3JtRWxlbWVudHNDb25maWc6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGVcblx0XHRcdH07XG5cblx0XHRcdC8vIG92ZXJyaWRlIHRoZSBhbm5vdGF0ZWQgaGVhZGVyIGZhY2V0cyB0byByZWZsZWN0IHRoZSBVSSBjaGFuZ2VzIG9uIE9QXG5cdFx0XHRhbm5vdGF0ZWRSZWZlcmVuY2VGYWNldHMgPSBpbnNlcnRDdXN0b21FbGVtZW50cyhcblx0XHRcdFx0YW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzLFxuXHRcdFx0XHRjdXN0b21IZWFkZXJGYWNldENvbmZpZ0VsZW1lbnRzLFxuXHRcdFx0XHRoZWFkZXJGYWNldE92ZXJ3cml0ZUNvbmZpZ1xuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYW5ub3RhdGVkUmVmZXJlbmNlRmFjZXRzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBIZWFkZXIgRGF0YSBDb2x1bW5TZXRzLlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRNZXRhUGF0aCBBcnJheSBvZiBoZWFkZXIgRmFjZXRzXG5cdCAqIEBwYXJhbSBjb25maWdIZWFkZXJGYWNldHMgSGVhZGVyIGZhY2V0cyBjb25maWd1cmF0aW9uc1xuXHQgKiBAcmV0dXJucyBDb2x1bW5TZXRzIGNvbnRhaW5pbmcgaGVhZGVyIGZhY2V0IGluZm9ybWF0aW9uIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBhZGFwdGl2ZSBjYXJkXG5cdCAqL1xuXHRwcml2YXRlIGNyZWF0ZUhlYWRlckZvcm1zKGhlYWRlckZhY2V0TWV0YVBhdGg6IE1ldGFQYXRoPEhlYWRlckZhY2V0cz4sIGNvbmZpZ0hlYWRlckZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W10pOiBDYXJkRWxlbWVudFtdIHtcblx0XHRsZXQgcHJldmlvdXNDYXJkRWxlbWVudElzRGF0YVBvaW50ID0gZmFsc2U7XG5cdFx0cmV0dXJuIGNvbmZpZ0hlYWRlckZhY2V0cy5yZWR1Y2UoXG5cdFx0XHRmdW5jdGlvbiAoXG5cdFx0XHRcdHRoaXM6IEhlYWRlckNvbnRlbnQsXG5cdFx0XHRcdGhlYWRlckZvcm1zOiBDYXJkRWxlbWVudFtdLFxuXHRcdFx0XHRjb25maWdIZWFkZXJGYWNldDogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50LFxuXHRcdFx0XHRjdXJyZW50SWR4OiBudW1iZXIsXG5cdFx0XHRcdGFsbENvbmZpZ0hlYWRlckZhY2V0czogSGVhZGVyRmFjZXRDb25maWdFbGVtZW50W11cblx0XHRcdCk6IENhcmRFbGVtZW50W10ge1xuXHRcdFx0XHRjb25zdCBGYWNldEl0ZW0gPSBjb25maWdIZWFkZXJGYWNldC5oZWFkZXJGYWNldDtcblx0XHRcdFx0aWYgKEZhY2V0SXRlbS4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQgJiYgRmFjZXRJdGVtLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUpIHtcblx0XHRcdFx0XHRjb25zdCByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoID0gaGVhZGVyRmFjZXRNZXRhUGF0aC5nZXRNZXRhUGF0aEZvck9iamVjdChGYWNldEl0ZW0uVGFyZ2V0KTtcblx0XHRcdFx0XHRjb25zdCBmYWNldERlZmluaXRpb24gPSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRcdFx0XHRjb25zdCBuYXZpZ2F0aW9uUGF0aCA9IHRoaXMuZ2V0TmF2aWdhdGlvblBhdGhGb3JFeHByZXNzaW9uKFxuXHRcdFx0XHRcdFx0cmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBhcyBNZXRhUGF0aDxGaWVsZEdyb3VwIHwgRGF0YVBvaW50VHlwZT5cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGNvbnN0IHZpc2libGUgPSBjb25maWdIZWFkZXJGYWNldC5pc1Zpc2libGUgPz8gdGhpcy5nZXRWaXNpYmxlRm9yUmVmZXJlbmNlRmFjZXQoRmFjZXRJdGVtLCBuYXZpZ2F0aW9uUGF0aCk7XG5cdFx0XHRcdFx0Y29uc3QgZm9ybUhlYWRlciA9IGNvbmZpZ0hlYWRlckZhY2V0LnRpdGxlID8/IEZhY2V0SXRlbS5MYWJlbD8udG9TdHJpbmcoKTtcblx0XHRcdFx0XHRjb25zdCBmb3JtRWxlbWVudHNDb25maWcgPSBjb25maWdIZWFkZXJGYWNldC5mb3JtRWxlbWVudHNDb25maWc7XG5cdFx0XHRcdFx0c3dpdGNoIChmYWNldERlZmluaXRpb24/LnRlcm0pIHtcblx0XHRcdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIElmIHByZXZpb3VzIGhlYWRlciBmb3JtIGNvbnRlbnQgd2FzIGEgRGF0YVBvaW50LCB3ZSBhZGQgZHVtbXkgY29sdW1ucy5cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmFkZEVtcHR5Q29sdW1ucyhoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KTtcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdC4uLnRoaXMuZ2V0RmllbGRHcm91cENvbnRlbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIGFzIE1ldGFQYXRoPEZpZWxkR3JvdXA+LFxuXHRcdFx0XHRcdFx0XHRcdFx0Zm9ybUhlYWRlcixcblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGUsXG5cdFx0XHRcdFx0XHRcdFx0XHRmb3JtRWxlbWVudHNDb25maWdcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRcdFx0XHRcdGlmICghaXNQb3RlbnRpYWxseVNlbnNpdGl2ZShmYWNldERlZmluaXRpb24pKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgZGF0YVBvaW50Q29sdW1ucyA9IHRoaXMuZ2V0RGF0YVBvaW50Q29udGVudChcblx0XHRcdFx0XHRcdFx0XHRcdHJlZmVyZW5jZUZhY2V0VGFyZ2V0TWV0YVBhdGggYXMgTWV0YVBhdGg8RGF0YVBvaW50Pixcblx0XHRcdFx0XHRcdFx0XHRcdGNvbmZpZ0hlYWRlckZhY2V0LnRpdGxlID8/IGZvcm1IZWFkZXJcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGRhdGFQb2ludENvbHVtblNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgJiZcblx0XHRcdFx0XHRcdFx0XHRcdChoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KS5jb2x1bW5zLmxlbmd0aCAhPT0gTUFYX0NPTFVNTlNcblx0XHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdChoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KS5jb2x1bW5zLnB1c2goLi4uZGF0YVBvaW50Q29sdW1ucyk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFQb2ludENvbHVtblNldC5jb2x1bW5zLnB1c2goLi4uZGF0YVBvaW50Q29sdW1ucyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKGRhdGFQb2ludENvbHVtblNldCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRjYXNlIENvbW11bmljYXRpb25Bbm5vdGF0aW9uVGVybXMuQWRkcmVzczpcblx0XHRcdFx0XHRcdFx0aWYgKHByZXZpb3VzQ2FyZEVsZW1lbnRJc0RhdGFQb2ludCkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIElmIHByZXZpb3VzIGhlYWRlciBmb3JtIGNvbnRlbnQgd2FzIGEgRGF0YVBvaW50LCB3ZSBhZGQgZHVtbXkgY29sdW1ucy5cblx0XHRcdFx0XHRcdFx0XHR0aGlzLmFkZEVtcHR5Q29sdW1ucyhoZWFkZXJGb3Jtc1toZWFkZXJGb3Jtcy5sZW5ndGggLSAxXSBhcyBDYXJkQ29sdW1uU2V0KTtcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRoZWFkZXJGb3Jtcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHRcdC4uLnRoaXMuZ2V0QWRkcmVzc0NvbnRlbnQoXG5cdFx0XHRcdFx0XHRcdFx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoIGFzIE1ldGFQYXRoPEFkZHJlc3M+LFxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uZmlnSGVhZGVyRmFjZXQudGl0bGUgPz8gZm9ybUhlYWRlcixcblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGVcblx0XHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChjdXJyZW50SWR4ID09PSBhbGxDb25maWdIZWFkZXJGYWNldHMubGVuZ3RoIC0gMSAmJiBwcmV2aW91c0NhcmRFbGVtZW50SXNEYXRhUG9pbnQpIHtcblx0XHRcdFx0XHQvLyBUaGlzIGlzIHRoZSBsYXN0IHJlY3Vyc2lvbiBvZiB0aGUgcmVkdWNlIGxvb3AuXG5cdFx0XHRcdFx0Ly8gSWYgcHJldmlvdXMgaGVhZGVyIGZvcm0gY29udGVudCB3YXMgYSBEYXRhUG9pbnQsIHdlIGFkZCBkdW1teSBjb2x1bW5zLlxuXHRcdFx0XHRcdHRoaXMuYWRkRW1wdHlDb2x1bW5zKGhlYWRlckZvcm1zW2hlYWRlckZvcm1zLmxlbmd0aCAtIDFdIGFzIENhcmRDb2x1bW5TZXQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGhlYWRlckZvcm1zO1xuXHRcdFx0fS5iaW5kKHRoaXMpLFxuXHRcdFx0W10gYXMgQ2FyZEVsZW1lbnRbXVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogQWRkIGVtcHR5IGNvbHVtbnMgdG8gdGhlIGVuZCBvZiB0aGUgY29sdW1uIHNldC5cblx0ICpcblx0ICogSGVhZGVyIGZvcm0gd2l0aCBsZXNzIHRoYW4gdGhlIG1heGltdW0gY29sdW1ucyBuZWVkIHRvIGJlIGFkZGVkIHdpdGggZW1wdHkgY29sdW1ucyB0byBoYXZlIHRoZSBjb25zaXN0ZW50IGxheW91dCBlcXVhbCB0byBNQVhfQ09MVU1OUy5cblx0ICogVGhpcyBpcyBuZWVkcyBpbiBjYXNlIG9mIGEgaGVhZGVyIGZvcm0gY29udGFpbnMgRGF0YVBvaW50cyBzaWRlIGJ5IHNpZGUuIFdlIGZpbGwgdGhlIGVtcHR5IHNwYWNlIGluIHRoZSBsYXlvdXQgd2l0aCBhIGR1bW15IGVtcHR5IGNvbHVtbi5cblx0ICogQHBhcmFtIGNhcmRDb2x1bW5TZXQgRXF1aXZhbGVudCBvZiBhIEhlYWRlciBGb3JtXG5cdCAqL1xuXHRwcml2YXRlIGFkZEVtcHR5Q29sdW1ucyhjYXJkQ29sdW1uU2V0OiBDYXJkQ29sdW1uU2V0KTogdm9pZCB7XG5cdFx0Y29uc3QgbnVtQ29sdW1ucyA9IGNhcmRDb2x1bW5TZXQuY29sdW1ucy5sZW5ndGg7XG5cdFx0aWYgKG51bUNvbHVtbnMgPCBNQVhfQ09MVU1OUyAmJiBudW1Db2x1bW5zID4gMSkge1xuXHRcdFx0Ly8gSWYgb25seSBvbmUgY29sdW1uIGV4aXN0cyB0aGVuIHdlIGRvbid0IGhhdmUgcHJvYmxlbSBhcyBpdCBjYW4gZnJlZWx5IG9jY3VweSB0aGUgd2hvbGUgd2lkdGggb2YgdGhlIHJvdy5cblx0XHRcdGNvbnN0IG51bUNvbHVtbnNUb0FkZCA9IE1BWF9DT0xVTU5TIC0gbnVtQ29sdW1ucztcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQ29sdW1uc1RvQWRkOyBpKyspIHtcblx0XHRcdFx0Y2FyZENvbHVtblNldC5jb2x1bW5zLnB1c2goLi4udGhpcy5nZXRDb2x1bW5Gb3JEYXRhRmllbGQoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgQWRkcmVzcyBjb250ZW50IGZyb20gdGhlIGZhY2V0LlxuXHQgKiBAcGFyYW0gcmVmZXJlbmNlRmFjZXRUYXJnZXRNZXRhUGF0aCBNZXRhXG5cdCAqIEBwYXJhbSBmb3JtSGVhZGVyIFRpdGxlIG9mIHRoZSBmb3JtIGhlYWRlclxuXHQgKiBAcGFyYW0gdmlzaWJsZSBWaXNpYmxlIGV4cHJlc3Npb24gZm9yIHRoZSBGYWNldEhlYWRlclxuXHQgKiBAcmV0dXJucyBUaXRsZSBhbmQgY29udGVudCBvZiB0aGUgYWRkcmVzc1xuXHQgKi9cblx0cHJpdmF0ZSBnZXRBZGRyZXNzQ29udGVudChcblx0XHRyZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoOiBNZXRhUGF0aDxBZGRyZXNzPixcblx0XHRmb3JtSGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0dmlzaWJsZTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHwgYm9vbGVhblxuXHQpOiBDYXJkRWxlbWVudFtdIHtcblx0XHRjb25zdCBhZGRyZXNzQ29udGVudDogQ2FyZEVsZW1lbnRbXSA9IFtdO1xuXHRcdGNvbnN0IGFkZHJlc3MgPSByZWZlcmVuY2VGYWNldFRhcmdldE1ldGFQYXRoLmdldFRhcmdldCgpO1xuXHRcdGlmIChmb3JtSGVhZGVyKSB7XG5cdFx0XHRhZGRyZXNzQ29udGVudC5wdXNoKFxuXHRcdFx0XHRnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRcdHNpemU6IFwiU21hbGxcIixcblx0XHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdFx0dGV4dDogZm9ybUhlYWRlcixcblx0XHRcdFx0XHRtYXhMaW5lczogMixcblx0XHRcdFx0XHR3cmFwOiB0cnVlLFxuXHRcdFx0XHRcdHNwYWNpbmc6IFwiTWVkaXVtXCIsXG5cdFx0XHRcdFx0dmlzaWJsZTogdmlzaWJsZVxuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Y29uc3QgYWRkcmVzc0NvbHVtblNldCA9IGdldENvbHVtblNldChbXSBhcyBDYXJkQ29sdW1uW10sIHZpc2libGUgPz8gdW5kZWZpbmVkKTtcblx0XHRjb25zdCBpdGVtcyA9IFtdO1xuXHRcdGNvbnN0IGNvbHVtbnMgPSBbXTtcblx0XHRpZiAoYWRkcmVzcz8ubGFiZWwpIHtcblx0XHRcdGl0ZW1zLnB1c2goXG5cdFx0XHRcdGdldFRleHRCbG9jayh7XG5cdFx0XHRcdFx0c2l6ZTogXCJTbWFsbFwiLFxuXHRcdFx0XHRcdHRleHQ6IGAke2FkZHJlc3M/LmxhYmVsfWAsXG5cdFx0XHRcdFx0bWF4TGluZXM6IDJcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0XHRjb2x1bW5zLnB1c2goZ2V0Q29sdW1uKHsgaXRlbXM6IGl0ZW1zLCB2aXNpYmxlOiB2aXNpYmxlID8/IHVuZGVmaW5lZCB9KSk7XG5cdFx0fVxuXHRcdGlmIChjb2x1bW5zLmxlbmd0aCA+IDApIHtcblx0XHRcdGFkZHJlc3NDb2x1bW5TZXQuY29sdW1ucy5wdXNoKC4uLmNvbHVtbnMpO1xuXHRcdH1cblx0XHRhZGRyZXNzQ29udGVudC5wdXNoKGFkZHJlc3NDb2x1bW5TZXQpO1xuXHRcdHJldHVybiBhZGRyZXNzQ29udGVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIFJlZmVyZW5jZSBmYWNldHMgY29uZmlndXJlZCBpbiB0aGUgaGVhZGVyIGZhY2V0LlxuXHQgKiBAcGFyYW0gaGVhZGVyRmFjZXRzIEhlYWRlckZhY2V0cyBjb250YWluaW5nIHJlZmVybmNlZmFjZXRzLlxuXHQgKiBAcmV0dXJucyBBbiBBcnJheSBvZiBSZWZlcmVuY2VGYWNldHMuXG5cdCAqL1xuXHRwcml2YXRlIGdldFJlZmVyZW5jZUZhY2V0RnJvbUFubm90YXRpb25zKGhlYWRlckZhY2V0czogSGVhZGVyRmFjZXRzKTogUmVmZXJlbmNlRmFjZXRbXSB7XG5cdFx0cmV0dXJuIGhlYWRlckZhY2V0cyA/IChoZWFkZXJGYWNldHMuZmlsdGVyKChmYWNldCkgPT4gZmFjZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLlJlZmVyZW5jZUZhY2V0KSBhcyBSZWZlcmVuY2VGYWNldFtdKSA6IFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCByZWZlcmVuY2VmYWNldCAgdmlzaWJpbGl0eS5cblx0ICogQHBhcmFtIGVsZW1lbnQgUmVmZXJlbmNlIGZhY2V0XG5cdCAqIEBwYXJhbSBuYXZpZ2F0aW9uUGF0aCBWaXNpdGVkIG5hdmlnYXRpb24gcGF0aHNcblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRWaXNpYmxlRm9yUmVmZXJlbmNlRmFjZXQoZWxlbWVudDogUmVmZXJlbmNlRmFjZXQsIG5hdmlnYXRpb25QYXRoPzogc3RyaW5nKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB2aXNpYmlsaXR5RXhwID0gaXNWaXNpYmxlKGVsZW1lbnQpO1xuXHRcdHJldHVybiB0aGlzLnVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uKHZpc2liaWxpdHlFeHAsIG5hdmlnYXRpb25QYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgZGF0YWZpZWxkIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBkYXRhRmllbGQgRGF0YUZpZWxkQWJzdHJhY3Rcblx0ICogQHBhcmFtIG5hdmlnYXRpb25QYXRoIFZpc2l0ZWQgbmF2aWdhdGlvbiBwYXRoc1xuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRwcml2YXRlIGdldFZpc2libGVGb3JEYXRhRmllbGQoXG5cdFx0ZGF0YUZpZWxkOiBNZXRhUGF0aDxEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgRGF0YVBvaW50VHlwZT4sXG5cdFx0bmF2aWdhdGlvblBhdGg/OiBzdHJpbmdcblx0KTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB2aXNpYmlsaXR5RXhwID0gZ2VuZXJhdGVWaXNpYmxlRXhwcmVzc2lvbihkYXRhRmllbGQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbih2aXNpYmlsaXR5RXhwLCBuYXZpZ2F0aW9uUGF0aCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBuYXZpZ2F0aW9uIHBhdGhzIG9mIHRoZSBwcm9wZXJ0aWVzLlxuXHQgKiBAcGFyYW0gbWV0YVBhdGhPYmplY3QgTWV0YVBhdGggb2YgdGhlIG9iamVjdFxuXHQgKiBAcmV0dXJucyBOYXZpZ2F0aW9uIHBhdGhzXG5cdCAqL1xuXHRwcml2YXRlIGdldE5hdmlnYXRpb25QYXRoRm9yRXhwcmVzc2lvbihcblx0XHRtZXRhUGF0aE9iamVjdDogTWV0YVBhdGg8RmllbGRHcm91cCB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlPlxuXHQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gbWV0YVBhdGhPYmplY3QuZ2V0TmF2aWdhdGlvblByb3BlcnRpZXMoKTtcblx0XHRjb25zdCBuYXZpZ2F0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblx0XHRpZiAobmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAoaXNOYXZpZ2F0aW9uUHJvcGVydHkocHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0bmF2aWdhdGVkUGF0aHMucHVzaChwcm9wZXJ0eS5uYW1lKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBuYXZpZ2F0ZWRQYXRocz8udG9TdHJpbmcoKT8ucmVwbGFjZUFsbChcIixcIiwgXCIvXCIpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEyQ0E7O0VBb0JBOztFQVFBLE1BQU1BLFdBQVcsR0FBRyxDQUFDO0VBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQUtxQkMsYUFBYSwwQkFBQUMscUJBQUE7SUFXakMsU0FBQUQsY0FBWUUsY0FBaUMsRUFBRUMsTUFBa0IsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDbEVBLEtBQUEsR0FBQUgscUJBQUEsQ0FBQUksSUFBQSxPQUFNSCxjQUFjLEVBQUVDLE1BQU0sQ0FBQztNQUFDQyxLQUFBLENBWHZCRSxZQUFZLEdBQWtCLEVBQUU7TUFZdkMsSUFBSUMsMkJBQTBDLEdBQUcsRUFBRTtNQUNuRCxNQUFNO1FBQUVDO01BQVksQ0FBQyxHQUFHSixLQUFBLENBQUtLLHlCQUF5QixDQUFDLGFBQWEsQ0FBQztNQUNyRSxJQUFJO1FB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
|
|
@@ -74,7 +74,6 @@ const MAX_COLUMNS = 3;
|
|
|
74
74
|
* Get image and title for card.
|
|
75
75
|
* @param convertedTypes Converted Metadata.
|
|
76
76
|
* @param config Card Configuration.
|
|
77
|
-
* @experimental
|
|
78
77
|
*/
|
|
79
78
|
export default class HeaderContent extends BaseCardContentProvider<CardHeaderFacetsConfig> {
|
|
80
79
|
private cardElements: CardElement[] = [];
|