@sapui5/sap.fe.templates 1.139.0 → 1.141.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 +51 -10
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +49 -8
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +8 -3
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +7 -2
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +7 -23
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +7 -26
- 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 +40 -34
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +58 -42
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +14 -3
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +11 -0
- 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/CollaborationManager.js +4 -3
- package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.ts +32 -29
- 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/ObjectPage/overrides/Share.js +2 -2
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +8 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +4 -1
- 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
|
@@ -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[] = [];
|
|
@@ -16,7 +16,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/MetaPath", "sap/fe/templates
|
|
|
16
16
|
* Get image and title for card.
|
|
17
17
|
* @param convertedTypes Converted Metadata.
|
|
18
18
|
* @param config Card Configuration.
|
|
19
|
-
* @experimental
|
|
20
19
|
*/
|
|
21
20
|
let HeaderTitle = /*#__PURE__*/function (_BaseCardContentProvi) {
|
|
22
21
|
function HeaderTitle(convertedTypes, config) {
|
|
@@ -148,4 +147,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/MetaPath", "sap/fe/templates
|
|
|
148
147
|
_exports = HeaderTitle;
|
|
149
148
|
return _exports;
|
|
150
149
|
}, false);
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIZWFkZXJUaXRsZSIsIl9CYXNlQ2FyZENvbnRlbnRQcm92aSIsImNvbnZlcnRlZFR5cGVzIiwiY29uZmlnIiwiX3RoaXMiLCJjYWxsIiwiY29udGV4dFBhdGgiLCJnZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5IiwiaGVhZGVySW5mbyIsImhlYWRlckluZm9NZXRhUGF0aCIsIk1ldGFQYXRoIiwiaGVhZGVyRGV0YWlscyIsImdldEhlYWRlclRpdGxlYW5kRGVzY3JpcHRpb24iLCJoZWFkZXJUaXRsZSIsImRlc2NyaXB0aW9uIiwiYXBwVGl0bGUiLCJhcHBVcmwiLCJjYXJkQ29sdW1uU2V0IiwiY3JlYXRlSGVhZGVyVGl0bGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJFcnJvciIsIlN0cmluZyIsIkxvZyIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0VGl0bGUiLCJoZWFkZXJJbmZvVGFyZ2V0IiwiZ2V0VGFyZ2V0IiwiaGVhZGVySW5mb1RpdGxlIiwiVGl0bGUiLCJoZWFkZXJJbmZvRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsInRpdGxlIiwidGV4dFByb3BlcnR5IiwidGV4dHByb3BlcnR5QW5ub3RhdGlvbiIsImRlc2NyaXB0aW9udGV4dHByb3BlcnR5QW5ub3RhdGlvbiIsImRlc2NyaXB0aW9udGV4dFByb3BlcnR5IiwiaGVhZGVyRGVzY3JpcHRpb24iLCIkVHlwZSIsImdldE1ldGFQYXRoRm9yT2JqZWN0IiwiVmFsdWUiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlRleHQiLCJUeXBlTmFtZSIsInRvU3RyaW5nIiwidGl0bGVWYWx1ZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJkZXNjcmlwdGlvblZhbHVlQmluZGluZyIsInN1YlRpdGxlIiwiaXRlbXMiLCJjb2x1bW5zIiwiZ2V0VGV4dEJsb2NrIiwic2l6ZSIsIndlaWdodCIsInRleHQiLCJtYXhMaW5lcyIsIndyYXAiLCJwdXNoIiwic3BhY2luZyIsImdldENvbHVtbiIsImdldENvbHVtblNldCIsInVuZGVmaW5lZCIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJIZWFkZXJUaXRsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnZlcnRlZE1ldGFkYXRhIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNCYXNlX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBIZWFkZXJJbmZvVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7XG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlcyxcblx0dHlwZSBEYXRhRmllbGQsXG5cdHR5cGUgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0dHlwZSBEYXRhRmllbGRGb3JBbm5vdGF0aW9uXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE1ldGFQYXRoIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01ldGFQYXRoXCI7XG5pbXBvcnQgeyBnZXRDb2x1bW4sIGdldENvbHVtblNldCwgZ2V0VGV4dEJsb2NrIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0FkYXB0aXZlQ2FyZENvbnRlbnRcIjtcbmltcG9ydCBCYXNlQ2FyZENvbnRlbnRQcm92aWRlciwgeyB0eXBlIENhcmRDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvQmFzZUNhcmRDb250ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIHsgQ2FyZENvbHVtblNldCwgQ2FyZFRleHRCbG9jayB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxudHlwZSBIZWFkZXJJbmZvID0ge1xuXHRoZWFkZXJUaXRsZT86IHN0cmluZztcblx0YXBwVXJsPzogc3RyaW5nO1xuXHRhcHBUaXRsZTogc3RyaW5nO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogR2V0IGltYWdlIGFuZCB0aXRsZSBmb3IgY2FyZC5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVhZGVyVGl0bGUgZXh0ZW5kcyBCYXNlQ2FyZENvbnRlbnRQcm92aWRlcjxDYXJkQ29uZmlnPiB7XG5cdHByaXZhdGUgY2FyZENvbHVtblNldD86IENhcmRDb2x1bW5TZXQ7XG5cblx0LyoqXG5cdCAqIEdldCBpbWFnZSBhbmQgdGl0bGUgaW4gY29sdW1uIHNldC5cblx0ICogQHJldHVybnMgQ29sdW1uIHNldC5cblx0ICovXG5cdHB1YmxpYyBnZXRUaXRsZSgpOiBDYXJkQ29sdW1uU2V0IHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5jYXJkQ29sdW1uU2V0O1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLCBjb25maWc6IENhcmRDb25maWcpIHtcblx0XHRzdXBlcihjb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCB7IGNvbnRleHRQYXRoIH0gPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJjb250ZXh0SW5mb1wiKTtcblx0XHRsZXQgaGVhZGVySW5mbzogSGVhZGVySW5mbztcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgaGVhZGVySW5mb01ldGFQYXRoID0gbmV3IE1ldGFQYXRoPEhlYWRlckluZm9UeXBlPihcblx0XHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRcdGAke2NvbnRleHRQYXRofUAke1VJQW5ub3RhdGlvblRlcm1zLkhlYWRlckluZm99YCxcblx0XHRcdFx0Y29udGV4dFBhdGhcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBoZWFkZXJEZXRhaWxzID0gdGhpcy5nZXRIZWFkZXJUaXRsZWFuZERlc2NyaXB0aW9uKGhlYWRlckluZm9NZXRhUGF0aCk7XG5cdFx0XHRoZWFkZXJJbmZvID0ge1xuXHRcdFx0XHRoZWFkZXJUaXRsZTogaGVhZGVyRGV0YWlscz8uaGVhZGVyVGl0bGUsXG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBoZWFkZXJEZXRhaWxzPy5kZXNjcmlwdGlvbixcblx0XHRcdFx0YXBwVGl0bGU6IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcIm9iamVjdFRpdGxlXCIpLFxuXHRcdFx0XHRhcHBVcmw6IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImFwcFVybFwiKVxuXHRcdFx0fTtcblx0XHRcdHRoaXMuY2FyZENvbHVtblNldCA9IHRoaXMuY3JlYXRlSGVhZGVyVGl0bGUoaGVhZGVySW5mbyk7XG5cdFx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjcmVhdGluZyB0aGUgY2FyZCBkZWZpbnRpb25cIiwgbWVzc2FnZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBIZWFkZXIgdGl0bGUgZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqIEBwYXJhbSBoZWFkZXJJbmZvTWV0YVBhdGggSGVhZGVySW5mbyBNZXRhUGF0aFxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIEhlYWRlciBUaXRsZSBvZiB0aGUgb2JqZWN0IHBhZ2Vcblx0ICovXG5cdHByaXZhdGUgZ2V0SGVhZGVyVGl0bGVhbmREZXNjcmlwdGlvbihoZWFkZXJJbmZvTWV0YVBhdGg/OiBNZXRhUGF0aDxIZWFkZXJJbmZvVHlwZT4pOiBQYXJ0aWFsPEhlYWRlckluZm8+IHtcblx0XHRjb25zdCBoZWFkZXJJbmZvVGFyZ2V0ID0gaGVhZGVySW5mb01ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRjb25zdCBoZWFkZXJJbmZvVGl0bGUgPSBoZWFkZXJJbmZvVGFyZ2V0Py5UaXRsZSBhcyBEYXRhRmllbGQgfCBEYXRhRmllbGRGb3JBbm5vdGF0aW9uO1xuXHRcdGNvbnN0IGhlYWRlckluZm9EZXNjcmlwdGlvbiA9IGhlYWRlckluZm9UYXJnZXQ/LkRlc2NyaXB0aW9uIGFzIERhdGFGaWVsZCB8IERhdGFGaWVsZEZvckFubm90YXRpb247XG5cdFx0bGV0IHRpdGxlLFxuXHRcdFx0aGVhZGVyVGl0bGUsXG5cdFx0XHR0ZXh0UHJvcGVydHksXG5cdFx0XHR0ZXh0cHJvcGVydHlBbm5vdGF0aW9uLFxuXHRcdFx0ZGVzY3JpcHRpb24sXG5cdFx0XHRkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24sXG5cdFx0XHRkZXNjcmlwdGlvbnRleHRQcm9wZXJ0eSxcblx0XHRcdGhlYWRlckRlc2NyaXB0aW9uO1xuXHRcdGlmIChoZWFkZXJJbmZvVGl0bGUpIHtcblx0XHRcdHN3aXRjaCAoaGVhZGVySW5mb1RpdGxlLiRUeXBlKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkOlxuXHRcdFx0XHRcdHRpdGxlID0gaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdChoZWFkZXJJbmZvVGl0bGU/LlZhbHVlKTtcblx0XHRcdFx0XHR0ZXh0cHJvcGVydHlBbm5vdGF0aW9uID0gKFxuXHRcdFx0XHRcdFx0KHRpdGxlPy5nZXRUYXJnZXQoKSBhcyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKT8uYW5ub3RhdGlvbnM/LkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zQmFzZV9Db21tb25cblx0XHRcdFx0XHQpPy5UZXh0O1xuXHRcdFx0XHRcdHRleHRQcm9wZXJ0eSA9IHRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdCh0ZXh0cHJvcGVydHlBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHRcdHRpdGxlID0gaGVhZGVySW5mb1RhcmdldD8uVHlwZU5hbWUudG9TdHJpbmcoKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRpdGxlKSB7XG5cdFx0XHRjb25zdCB0aXRsZVZhbHVlQmluZGluZyA9IHRoaXMuZ2V0VmFsdWVCaW5kaW5nKHRpdGxlLCB0ZXh0UHJvcGVydHkpO1xuXHRcdFx0aGVhZGVyVGl0bGUgPSB0aXRsZVZhbHVlQmluZGluZztcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm9EZXNjcmlwdGlvbikge1xuXHRcdFx0c3dpdGNoIChoZWFkZXJJbmZvRGVzY3JpcHRpb24uJFR5cGUpIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQ6XG5cdFx0XHRcdFx0ZGVzY3JpcHRpb24gPSBoZWFkZXJJbmZvTWV0YVBhdGg/LmdldE1ldGFQYXRoRm9yT2JqZWN0KGhlYWRlckluZm9EZXNjcmlwdGlvbj8uVmFsdWUpO1xuXHRcdFx0XHRcdGRlc2NyaXB0aW9udGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IChcblx0XHRcdFx0XHRcdChkZXNjcmlwdGlvbj8uZ2V0VGFyZ2V0KCkgYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyk/LmFubm90YXRpb25zPy5Db21tb24gYXMgUHJvcGVydHlBbm5vdGF0aW9uc0Jhc2VfQ29tbW9uXG5cdFx0XHRcdFx0KT8uVGV4dDtcblx0XHRcdFx0XHRkZXNjcmlwdGlvbnRleHRQcm9wZXJ0eSA9XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdChkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZGVzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IGRlc2NyaXB0aW9uVmFsdWVCaW5kaW5nID0gdGhpcy5nZXRWYWx1ZUJpbmRpbmcoZGVzY3JpcHRpb24sIGRlc2NyaXB0aW9udGV4dFByb3BlcnR5KTtcblx0XHRcdGhlYWRlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25WYWx1ZUJpbmRpbmc7XG5cdFx0fVxuXHRcdHJldHVybiB7IGhlYWRlclRpdGxlOiBoZWFkZXJUaXRsZSwgZGVzY3JpcHRpb246IGhlYWRlckRlc2NyaXB0aW9uIH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIEhlYWRlciBJbWFnZSBhbmQgVGl0bGUgY29sdW1uIHNldHMuXG5cdCAqIEBwYXJhbSBoZWFkZXJJbmZvIEhlYWRlckluZm8gd2l0aCB0aXRsZSBhbmQgaGVhZGVyIGRlc2NyaXB0aW9uIGluZm9ybWF0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBBcnJheSBvZiBDb2x1bW5TZXRzIGZvciBJbWFnZSBhbmQgVGl0bGUuXG5cdCAqL1xuXHRwdWJsaWMgY3JlYXRlSGVhZGVyVGl0bGUoaGVhZGVySW5mbzogSGVhZGVySW5mbyB8IHVuZGVmaW5lZCk6IENhcmRDb2x1bW5TZXQgfCB1bmRlZmluZWQge1xuXHRcdGxldCBhcHBUaXRsZSwgaGVhZGVyVGl0bGUsIHN1YlRpdGxlOiBDYXJkVGV4dEJsb2NrO1xuXHRcdGNvbnN0IGl0ZW1zID0gW107XG5cdFx0Y29uc3QgY29sdW1ucyA9IFtdO1xuXHRcdGlmIChoZWFkZXJJbmZvPy5hcHBUaXRsZSkge1xuXHRcdFx0YXBwVGl0bGUgPSBnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRzaXplOiBcIk1lZGl1bVwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGhlYWRlckluZm8/LmFwcFRpdGxlLFxuXHRcdFx0XHRtYXhMaW5lczogMyxcblx0XHRcdFx0d3JhcDogdHJ1ZVxuXHRcdFx0fSk7XG5cdFx0XHRpdGVtcy5wdXNoKGFwcFRpdGxlKTtcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm8/LmhlYWRlclRpdGxlKSB7XG5cdFx0XHRoZWFkZXJUaXRsZSA9IGdldFRleHRCbG9jayh7XG5cdFx0XHRcdHNpemU6IFwiRGVmYXVsdFwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGBbICR7aGVhZGVySW5mbz8uaGVhZGVyVGl0bGV9IF0oJHtoZWFkZXJJbmZvPy5hcHBVcmx9KWAsXG5cdFx0XHRcdG1heExpbmVzOiAxLFxuXHRcdFx0XHRzcGFjaW5nOiBcIk5vbmVcIlxuXHRcdFx0fSk7XG5cdFx0XHRpdGVtcy5wdXNoKGhlYWRlclRpdGxlKTtcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm8/LmRlc2NyaXB0aW9uKSB7XG5cdFx0XHRzdWJUaXRsZSA9IGdldFRleHRCbG9jayh7XG5cdFx0XHRcdHNpemU6IFwiRGVmYXVsdFwiLFxuXHRcdFx0XHR0ZXh0OiBoZWFkZXJJbmZvPy5kZXNjcmlwdGlvbixcblx0XHRcdFx0bWF4TGluZXM6IDEsXG5cdFx0XHRcdHNwYWNpbmc6IFwiTm9uZVwiXG5cdFx0XHR9KTtcblx0XHRcdGl0ZW1zLnB1c2goc3ViVGl0bGUpO1xuXHRcdH1cblx0XHRjb2x1bW5zLnB1c2goZ2V0Q29sdW1uKHsgaXRlbXM6IFsuLi5pdGVtc10gfSkpO1xu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
|
|
150
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJIZWFkZXJUaXRsZSIsIl9CYXNlQ2FyZENvbnRlbnRQcm92aSIsImNvbnZlcnRlZFR5cGVzIiwiY29uZmlnIiwiX3RoaXMiLCJjYWxsIiwiY29udGV4dFBhdGgiLCJnZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5IiwiaGVhZGVySW5mbyIsImhlYWRlckluZm9NZXRhUGF0aCIsIk1ldGFQYXRoIiwiaGVhZGVyRGV0YWlscyIsImdldEhlYWRlclRpdGxlYW5kRGVzY3JpcHRpb24iLCJoZWFkZXJUaXRsZSIsImRlc2NyaXB0aW9uIiwiYXBwVGl0bGUiLCJhcHBVcmwiLCJjYXJkQ29sdW1uU2V0IiwiY3JlYXRlSGVhZGVyVGl0bGUiLCJlcnJvciIsIm1lc3NhZ2UiLCJFcnJvciIsIlN0cmluZyIsIkxvZyIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZ2V0VGl0bGUiLCJoZWFkZXJJbmZvVGFyZ2V0IiwiZ2V0VGFyZ2V0IiwiaGVhZGVySW5mb1RpdGxlIiwiVGl0bGUiLCJoZWFkZXJJbmZvRGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsInRpdGxlIiwidGV4dFByb3BlcnR5IiwidGV4dHByb3BlcnR5QW5ub3RhdGlvbiIsImRlc2NyaXB0aW9udGV4dHByb3BlcnR5QW5ub3RhdGlvbiIsImRlc2NyaXB0aW9udGV4dFByb3BlcnR5IiwiaGVhZGVyRGVzY3JpcHRpb24iLCIkVHlwZSIsImdldE1ldGFQYXRoRm9yT2JqZWN0IiwiVmFsdWUiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlRleHQiLCJUeXBlTmFtZSIsInRvU3RyaW5nIiwidGl0bGVWYWx1ZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJkZXNjcmlwdGlvblZhbHVlQmluZGluZyIsInN1YlRpdGxlIiwiaXRlbXMiLCJjb2x1bW5zIiwiZ2V0VGV4dEJsb2NrIiwic2l6ZSIsIndlaWdodCIsInRleHQiLCJtYXhMaW5lcyIsIndyYXAiLCJwdXNoIiwic3BhY2luZyIsImdldENvbHVtbiIsImdldENvbHVtblNldCIsInVuZGVmaW5lZCIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJIZWFkZXJUaXRsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnZlcnRlZE1ldGFkYXRhIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5QW5ub3RhdGlvbnNCYXNlX0NvbW1vbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uX0VkbVwiO1xuaW1wb3J0IHR5cGUgeyBIZWFkZXJJbmZvVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7XG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlcyxcblx0dHlwZSBEYXRhRmllbGQsXG5cdHR5cGUgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0dHlwZSBEYXRhRmllbGRGb3JBbm5vdGF0aW9uXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE1ldGFQYXRoIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01ldGFQYXRoXCI7XG5pbXBvcnQgeyBnZXRDb2x1bW4sIGdldENvbHVtblNldCwgZ2V0VGV4dEJsb2NrIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9jYXJkL0FkYXB0aXZlQ2FyZENvbnRlbnRcIjtcbmltcG9ydCBCYXNlQ2FyZENvbnRlbnRQcm92aWRlciwgeyB0eXBlIENhcmRDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvQmFzZUNhcmRDb250ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIHsgQ2FyZENvbHVtblNldCwgQ2FyZFRleHRCbG9jayB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxudHlwZSBIZWFkZXJJbmZvID0ge1xuXHRoZWFkZXJUaXRsZT86IHN0cmluZztcblx0YXBwVXJsPzogc3RyaW5nO1xuXHRhcHBUaXRsZTogc3RyaW5nO1xuXHRkZXNjcmlwdGlvbj86IHN0cmluZztcbn07XG5cbi8qKlxuICogR2V0IGltYWdlIGFuZCB0aXRsZSBmb3IgY2FyZC5cbiAqIEBwYXJhbSBjb252ZXJ0ZWRUeXBlcyBDb252ZXJ0ZWQgTWV0YWRhdGEuXG4gKiBAcGFyYW0gY29uZmlnIENhcmQgQ29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVhZGVyVGl0bGUgZXh0ZW5kcyBCYXNlQ2FyZENvbnRlbnRQcm92aWRlcjxDYXJkQ29uZmlnPiB7XG5cdHByaXZhdGUgY2FyZENvbHVtblNldD86IENhcmRDb2x1bW5TZXQ7XG5cblx0LyoqXG5cdCAqIEdldCBpbWFnZSBhbmQgdGl0bGUgaW4gY29sdW1uIHNldC5cblx0ICogQHJldHVybnMgQ29sdW1uIHNldC5cblx0ICovXG5cdHB1YmxpYyBnZXRUaXRsZSgpOiBDYXJkQ29sdW1uU2V0IHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5jYXJkQ29sdW1uU2V0O1xuXHR9XG5cblx0Y29uc3RydWN0b3IoY29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhLCBjb25maWc6IENhcmRDb25maWcpIHtcblx0XHRzdXBlcihjb252ZXJ0ZWRUeXBlcywgY29uZmlnKTtcblx0XHRjb25zdCB7IGNvbnRleHRQYXRoIH0gPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJjb250ZXh0SW5mb1wiKTtcblx0XHRsZXQgaGVhZGVySW5mbzogSGVhZGVySW5mbztcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgaGVhZGVySW5mb01ldGFQYXRoID0gbmV3IE1ldGFQYXRoPEhlYWRlckluZm9UeXBlPihcblx0XHRcdFx0Y29udmVydGVkVHlwZXMsXG5cdFx0XHRcdGAke2NvbnRleHRQYXRofUAke1VJQW5ub3RhdGlvblRlcm1zLkhlYWRlckluZm99YCxcblx0XHRcdFx0Y29udGV4dFBhdGhcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBoZWFkZXJEZXRhaWxzID0gdGhpcy5nZXRIZWFkZXJUaXRsZWFuZERlc2NyaXB0aW9uKGhlYWRlckluZm9NZXRhUGF0aCk7XG5cdFx0XHRoZWFkZXJJbmZvID0ge1xuXHRcdFx0XHRoZWFkZXJUaXRsZTogaGVhZGVyRGV0YWlscz8uaGVhZGVyVGl0bGUsXG5cdFx0XHRcdGRlc2NyaXB0aW9uOiBoZWFkZXJEZXRhaWxzPy5kZXNjcmlwdGlvbixcblx0XHRcdFx0YXBwVGl0bGU6IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcIm9iamVjdFRpdGxlXCIpLFxuXHRcdFx0XHRhcHBVcmw6IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImFwcFVybFwiKVxuXHRcdFx0fTtcblx0XHRcdHRoaXMuY2FyZENvbHVtblNldCA9IHRoaXMuY3JlYXRlSGVhZGVyVGl0bGUoaGVhZGVySW5mbyk7XG5cdFx0fSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjcmVhdGluZyB0aGUgY2FyZCBkZWZpbnRpb25cIiwgbWVzc2FnZSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBIZWFkZXIgdGl0bGUgZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqIEBwYXJhbSBoZWFkZXJJbmZvTWV0YVBhdGggSGVhZGVySW5mbyBNZXRhUGF0aFxuXHQgKiBAcmV0dXJucyBSZXR1cm5zIEhlYWRlciBUaXRsZSBvZiB0aGUgb2JqZWN0IHBhZ2Vcblx0ICovXG5cdHByaXZhdGUgZ2V0SGVhZGVyVGl0bGVhbmREZXNjcmlwdGlvbihoZWFkZXJJbmZvTWV0YVBhdGg/OiBNZXRhUGF0aDxIZWFkZXJJbmZvVHlwZT4pOiBQYXJ0aWFsPEhlYWRlckluZm8+IHtcblx0XHRjb25zdCBoZWFkZXJJbmZvVGFyZ2V0ID0gaGVhZGVySW5mb01ldGFQYXRoPy5nZXRUYXJnZXQoKTtcblx0XHRjb25zdCBoZWFkZXJJbmZvVGl0bGUgPSBoZWFkZXJJbmZvVGFyZ2V0Py5UaXRsZSBhcyBEYXRhRmllbGQgfCBEYXRhRmllbGRGb3JBbm5vdGF0aW9uO1xuXHRcdGNvbnN0IGhlYWRlckluZm9EZXNjcmlwdGlvbiA9IGhlYWRlckluZm9UYXJnZXQ/LkRlc2NyaXB0aW9uIGFzIERhdGFGaWVsZCB8IERhdGFGaWVsZEZvckFubm90YXRpb247XG5cdFx0bGV0IHRpdGxlLFxuXHRcdFx0aGVhZGVyVGl0bGUsXG5cdFx0XHR0ZXh0UHJvcGVydHksXG5cdFx0XHR0ZXh0cHJvcGVydHlBbm5vdGF0aW9uLFxuXHRcdFx0ZGVzY3JpcHRpb24sXG5cdFx0XHRkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24sXG5cdFx0XHRkZXNjcmlwdGlvbnRleHRQcm9wZXJ0eSxcblx0XHRcdGhlYWRlckRlc2NyaXB0aW9uO1xuXHRcdGlmIChoZWFkZXJJbmZvVGl0bGUpIHtcblx0XHRcdHN3aXRjaCAoaGVhZGVySW5mb1RpdGxlLiRUeXBlKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkOlxuXHRcdFx0XHRcdHRpdGxlID0gaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdChoZWFkZXJJbmZvVGl0bGU/LlZhbHVlKTtcblx0XHRcdFx0XHR0ZXh0cHJvcGVydHlBbm5vdGF0aW9uID0gKFxuXHRcdFx0XHRcdFx0KHRpdGxlPy5nZXRUYXJnZXQoKSBhcyBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKT8uYW5ub3RhdGlvbnM/LkNvbW1vbiBhcyBQcm9wZXJ0eUFubm90YXRpb25zQmFzZV9Db21tb25cblx0XHRcdFx0XHQpPy5UZXh0O1xuXHRcdFx0XHRcdHRleHRQcm9wZXJ0eSA9IHRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdCh0ZXh0cHJvcGVydHlBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHRcdHRpdGxlID0gaGVhZGVySW5mb1RhcmdldD8uVHlwZU5hbWUudG9TdHJpbmcoKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKHRpdGxlKSB7XG5cdFx0XHRjb25zdCB0aXRsZVZhbHVlQmluZGluZyA9IHRoaXMuZ2V0VmFsdWVCaW5kaW5nKHRpdGxlLCB0ZXh0UHJvcGVydHkpO1xuXHRcdFx0aGVhZGVyVGl0bGUgPSB0aXRsZVZhbHVlQmluZGluZztcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm9EZXNjcmlwdGlvbikge1xuXHRcdFx0c3dpdGNoIChoZWFkZXJJbmZvRGVzY3JpcHRpb24uJFR5cGUpIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGQ6XG5cdFx0XHRcdFx0ZGVzY3JpcHRpb24gPSBoZWFkZXJJbmZvTWV0YVBhdGg/LmdldE1ldGFQYXRoRm9yT2JqZWN0KGhlYWRlckluZm9EZXNjcmlwdGlvbj8uVmFsdWUpO1xuXHRcdFx0XHRcdGRlc2NyaXB0aW9udGV4dHByb3BlcnR5QW5ub3RhdGlvbiA9IChcblx0XHRcdFx0XHRcdChkZXNjcmlwdGlvbj8uZ2V0VGFyZ2V0KCkgYXMgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyk/LmFubm90YXRpb25zPy5Db21tb24gYXMgUHJvcGVydHlBbm5vdGF0aW9uc0Jhc2VfQ29tbW9uXG5cdFx0XHRcdFx0KT8uVGV4dDtcblx0XHRcdFx0XHRkZXNjcmlwdGlvbnRleHRQcm9wZXJ0eSA9XG5cdFx0XHRcdFx0XHRkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24gJiYgaGVhZGVySW5mb01ldGFQYXRoPy5nZXRNZXRhUGF0aEZvck9iamVjdChkZXNjcmlwdGlvbnRleHRwcm9wZXJ0eUFubm90YXRpb24pO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoZGVzY3JpcHRpb24pIHtcblx0XHRcdGNvbnN0IGRlc2NyaXB0aW9uVmFsdWVCaW5kaW5nID0gdGhpcy5nZXRWYWx1ZUJpbmRpbmcoZGVzY3JpcHRpb24sIGRlc2NyaXB0aW9udGV4dFByb3BlcnR5KTtcblx0XHRcdGhlYWRlckRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25WYWx1ZUJpbmRpbmc7XG5cdFx0fVxuXHRcdHJldHVybiB7IGhlYWRlclRpdGxlOiBoZWFkZXJUaXRsZSwgZGVzY3JpcHRpb246IGhlYWRlckRlc2NyaXB0aW9uIH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIEhlYWRlciBJbWFnZSBhbmQgVGl0bGUgY29sdW1uIHNldHMuXG5cdCAqIEBwYXJhbSBoZWFkZXJJbmZvIEhlYWRlckluZm8gd2l0aCB0aXRsZSBhbmQgaGVhZGVyIGRlc2NyaXB0aW9uIGluZm9ybWF0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBBcnJheSBvZiBDb2x1bW5TZXRzIGZvciBJbWFnZSBhbmQgVGl0bGUuXG5cdCAqL1xuXHRwdWJsaWMgY3JlYXRlSGVhZGVyVGl0bGUoaGVhZGVySW5mbzogSGVhZGVySW5mbyB8IHVuZGVmaW5lZCk6IENhcmRDb2x1bW5TZXQgfCB1bmRlZmluZWQge1xuXHRcdGxldCBhcHBUaXRsZSwgaGVhZGVyVGl0bGUsIHN1YlRpdGxlOiBDYXJkVGV4dEJsb2NrO1xuXHRcdGNvbnN0IGl0ZW1zID0gW107XG5cdFx0Y29uc3QgY29sdW1ucyA9IFtdO1xuXHRcdGlmIChoZWFkZXJJbmZvPy5hcHBUaXRsZSkge1xuXHRcdFx0YXBwVGl0bGUgPSBnZXRUZXh0QmxvY2soe1xuXHRcdFx0XHRzaXplOiBcIk1lZGl1bVwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGhlYWRlckluZm8/LmFwcFRpdGxlLFxuXHRcdFx0XHRtYXhMaW5lczogMyxcblx0XHRcdFx0d3JhcDogdHJ1ZVxuXHRcdFx0fSk7XG5cdFx0XHRpdGVtcy5wdXNoKGFwcFRpdGxlKTtcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm8/LmhlYWRlclRpdGxlKSB7XG5cdFx0XHRoZWFkZXJUaXRsZSA9IGdldFRleHRCbG9jayh7XG5cdFx0XHRcdHNpemU6IFwiRGVmYXVsdFwiLFxuXHRcdFx0XHR3ZWlnaHQ6IFwiQm9sZGVyXCIsXG5cdFx0XHRcdHRleHQ6IGBbICR7aGVhZGVySW5mbz8uaGVhZGVyVGl0bGV9IF0oJHtoZWFkZXJJbmZvPy5hcHBVcmx9KWAsXG5cdFx0XHRcdG1heExpbmVzOiAxLFxuXHRcdFx0XHRzcGFjaW5nOiBcIk5vbmVcIlxuXHRcdFx0fSk7XG5cdFx0XHRpdGVtcy5wdXNoKGhlYWRlclRpdGxlKTtcblx0XHR9XG5cdFx0aWYgKGhlYWRlckluZm8/LmRlc2NyaXB0aW9uKSB7XG5cdFx0XHRzdWJUaXRsZSA9IGdldFRleHRCbG9jayh7XG5cdFx0XHRcdHNpemU6IFwiRGVmYXVsdFwiLFxuXHRcdFx0XHR0ZXh0OiBoZWFkZXJJbmZvPy5kZXNjcmlwdGlvbixcblx0XHRcdFx0bWF4TGluZXM6IDEsXG5cdFx0XHRcdHNwYWNpbmc6IFwiTm9uZVwiXG5cdFx0XHR9KTtcblx0XHRcdGl0ZW1zLnB1c2goc3ViVGl0bGUpO1xuXHRcdH1cblx0XHRjb2x1bW5zLnB1c2goZ2V0Q29sdW1uKHsgaXRlbXM6IFsuLi5pdGVtc10gfSkpO1xuXHRcdHJldHVybiBnZXRDb2x1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
|
|
@@ -25,7 +25,6 @@ type HeaderInfo = {
|
|
|
25
25
|
* Get image and title for card.
|
|
26
26
|
* @param convertedTypes Converted Metadata.
|
|
27
27
|
* @param config Card Configuration.
|
|
28
|
-
* @experimental
|
|
29
28
|
*/
|
|
30
29
|
export default class HeaderTitle extends BaseCardContentProvider<CardConfig> {
|
|
31
30
|
private cardColumnSet?: CardColumnSet;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/fe/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/macros/insights/CommonInsightsHelper"], function (Log, CommonUtils, CommonInsightsHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -30,9 +30,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/insights/CommonInsightsHelper", "s
|
|
|
30
30
|
Log.error(e);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
+
const pageTitleInformation = await controller._getPageTitleInformation();
|
|
33
34
|
cards.push({
|
|
34
35
|
card: card,
|
|
35
|
-
title:
|
|
36
|
+
title: pageTitleInformation.subtitle || "",
|
|
36
37
|
callback: onAddCardToCollaborationManagerCallback
|
|
37
38
|
});
|
|
38
39
|
}
|
|
@@ -40,4 +41,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/insights/CommonInsightsHelper", "s
|
|
|
40
41
|
};
|
|
41
42
|
return CollaborationManagerOverride;
|
|
42
43
|
}, false);
|
|
43
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyaWV2ZUNhcmRUeXBlcyIsIklOVEVHUkFUSU9OIiwiX2V4cG9ydHMiLCJDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlIiwiY29sbGVjdEF2YWlsYWJsZUNhcmRzIiwiY2FyZHMiLCJ2aWV3IiwiYmFzZSIsImdldFZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImFwcENvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiaXNFZGl0YWJsZSIsIkNvbW1vblV0aWxzIiwiZ2V0SXNFZGl0YWJsZSIsImNhcmQiLCJnZXRDb2xsYWJvcmF0aW9uTWFuYWdlclNlcnZpY2UiLCJnZXREZXNpZ25UaW1lQ2FyZCIsInVuZGVmaW5lZCIsIm9uQWRkQ2FyZFRvQ29sbGFib3JhdGlvbk1hbmFnZXJDYWxsYmFjayIsInB1Ymxpc2hDYXJkIiwiZSIsInNob3dHZW5lcmljRXJyb3JNZXNzYWdlIiwiTG9nIiwiZXJyb3IiLCJwYWdlVGl0bGVJbmZvcm1hdGlvbiIsIl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbiIsInB1c2giLCJ0aXRsZSIsInN1YnRpdGxlIiwiY2FsbGJhY2siXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgdHlwZSBSZXRyaWV2ZUNhcmRUeXBlIH0gZnJvbSBcInNhcC9jYXJkcy9hcC9jb21tb24vc2VydmljZXMvUmV0cmlldmVDYXJkXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBDb2xsYWJvcmF0aW9uTWFuYWdlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY2FyZHMvQ29sbGFib3JhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgV3JhcHBlZENhcmQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgc2hvd0dlbmVyaWNFcnJvck1lc3NhZ2UgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnNpZ2h0cy9Db21tb25JbnNpZ2h0c0hlbHBlclwiO1xuaW1wb3J0IHsgdHlwZSBDYXJkTWFuaWZlc3QgfSBmcm9tIFwic2FwL2luc2lnaHRzL0NhcmRIZWxwZXJcIjtcbmV4cG9ydCBjb25zdCBSZXRyaWV2ZUNhcmRUeXBlczogUmVjb3JkPHN0cmluZywgUmV0cmlldmVDYXJkVHlwZT4gPSB7XG5cdElOVEVHUkFUSU9OOiBcImludGVncmF0aW9uXCJcbn07XG5cbmNvbnN0IENvbGxhYm9yYXRpb25NYW5hZ2VyT3ZlcnJpZGUgPSB7XG5cdGFzeW5jIGNvbGxlY3RBdmFpbGFibGVDYXJkcyh0aGlzOiBDb2xsYWJvcmF0aW9uTWFuYWdlciwgY2FyZHM6IFdyYXBwZWRDYXJkW10pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5iYXNlLmdldFZpZXcoKTtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IGlzRWRpdGFibGUgPSBDb21tb25VdGlscy5nZXRJc0VkaXRhYmxlKHZpZXcpO1xuXHRcdGNvbnN0IGNhcmQgPSAhaXNFZGl0YWJsZVxuXHRcdFx0PyBhd2FpdCBhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlKCkuZ2V0RGVzaWduVGltZUNhcmQoUmV0cmlldmVDYXJkVHlwZXMuSU5URUdSQVRJT04pXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRpZiAoY2FyZCkge1xuXHRcdFx0Y29uc3Qgb25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjYXJkKSB7XG5cdFx0XHRcdFx0XHRhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlKCkucHVibGlzaENhcmQoY2FyZCBhcyBDYXJkTWFuaWZlc3QpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdHNob3dHZW5lcmljRXJyb3JNZXNzYWdlKHZpZXcpO1xuXHRcdFx0XHRcdExvZy5lcnJvcihlIGFzIHN0cmluZyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBwYWdlVGl0bGVJbmZvcm1hdGlvbiA9IGF3YWl0IGNvbnRyb2xsZXIuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0XHRjYXJkcy5wdXNoKHtcblx0XHRcdFx0Y2FyZDogY2FyZCxcblx0XHRcdFx0dGl0bGU6IHBhZ2VUaXRsZUluZm9ybWF0aW9uLnN1YnRpdGxlIHx8IFwiXCIsXG5cdFx0XHRcdGNhbGxiYWNrOiBvbkFkZENhcmRUb0NvbGxhYm9yYXRpb25NYW5hZ2VyQ2FsbGJhY2tcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpb25NYW5hZ2VyT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztFQU9PLE1BQU1BLGlCQUFtRCxHQUFHO0lBQ2xFQyxXQUFXLEVBQUU7RUFDZCxDQUFDO0VBQUNDLFFBQUEsQ0FBQUYsaUJBQUEsR0FBQUEsaUJBQUE7RUFFRixNQUFNRyw0QkFBNEIsR0FBRztJQUNwQyxNQUFNQyxxQkFBcUJBLENBQTZCQyxLQUFvQixFQUFpQjtNQUM1RixNQUFNQyxJQUFJLEdBQUcsSUFBSSxDQUFDQyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDO01BQ2hDLE1BQU1DLFVBQVUsR0FBR0gsSUFBSSxDQUFDSSxhQUFhLENBQUMsQ0FBQztNQUN2QyxNQUFNQyxZQUFZLEdBQUdGLFVBQVUsQ0FBQ0csaUJBQWlCLENBQUMsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQztNQUNyRSxNQUFNQyxVQUFVLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDVixJQUFJLENBQUM7TUFDbEQsTUFBTVcsSUFBSSxHQUFHLENBQUNILFVBQVUsR0FDckIsTUFBTUgsWUFBWSxDQUFDTyw4QkFBOEIsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDbkIsaUJBQWlCLENBQUNDLFdBQVcsQ0FBQyxHQUNwR21CLFNBQVM7TUFDWixJQUFJSCxJQUFJLEVBQUU7UUFDVCxNQUFNSSx1Q0FBdUMsR0FBR0EsQ0FBQSxLQUFZO1VBQzNELElBQUk7WUFDSCxJQUFJSixJQUFJLEVBQUU7Y0FDVE4sWUFBWSxDQUFDTyw4QkFBOEIsQ0FBQyxDQUFDLENBQUNJLFdBQVcsQ0FBQ0wsSUFBb0IsQ0FBQztjQUMvRTtZQUNEO1VBQ0QsQ0FBQyxDQUFDLE9BQU9NLENBQUMsRUFBRTtZQUNYQyx1QkFBdUIsQ0FBQ2xCLElBQUksQ0FBQztZQUM3Qm1CLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDSCxDQUFXLENBQUM7VUFDdkI7UUFDRCxDQUFDO1FBQ0QsTUFBTUksb0JBQW9CLEdBQUcsTUFBTWxCLFVBQVUsQ0FBQ21CLHdCQUF3QixDQUFDLENBQUM7UUFDeEV2QixLQUFLLENBQUN3QixJQUFJLENBQUM7VUFDVlosSUFBSSxFQUFFQSxJQUFJO1VBQ1ZhLEtBQUssRUFBRUgsb0JBQW9CLENBQUNJLFFBQVEsSUFBSSxFQUFFO1VBQzFDQyxRQUFRLEVBQUVYO1FBQ1gsQ0FBQyxDQUFDO01BQ0g7SUFDRDtFQUNELENBQUM7RUFBQyxPQUNhbEIsNEJBQTRCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|