@sapui5/sap.fe.templates 1.142.7 → 1.142.8
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/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/Component.js +4 -2
- package/src/sap/fe/templates/ObjectPage/Component.ts +3 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +6 -2
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +5 -1
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/library.js +1 -1
package/package.json
CHANGED
|
@@ -129,7 +129,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
129
129
|
let dataForCreate;
|
|
130
130
|
if (oStartUpParams?.preferredMode?.[0].includes("create") === true) {
|
|
131
131
|
const oInboundParameters = this.getViewData().inboundParameters;
|
|
132
|
-
|
|
132
|
+
const metaModel = this.getModel()?.getMetaModel();
|
|
133
|
+
const contextPath = this.contextPath || `/${this.entitySet}`;
|
|
134
|
+
dataForCreate = Object.assign({}, parameters.data, CommonUtils.getAdditionalParamsForCreate(oStartUpParams, oInboundParameters, metaModel, contextPath));
|
|
133
135
|
} else {
|
|
134
136
|
dataForCreate = parameters.data;
|
|
135
137
|
}
|
|
@@ -222,4 +224,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
222
224
|
}), _class2)) || _class);
|
|
223
225
|
return ObjectPageComponent;
|
|
224
226
|
}, false);
|
|
225
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiQ3JlYXRpb25Nb2RlIiwiU2VjdGlvbkxheW91dCIsInRlbXBsYXRlTGliIiwiT2JqZWN0UGFnZSIsIk9iamVjdFBhZ2VDb21wb25lbnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJsaWJyYXJ5IiwibWFuaWZlc3QiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIk5vbmUiLCJfZGVjMyIsIlBhZ2UiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX1RlbXBsYXRlQ29tcG9uZW50IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIkRlZmVycmVkQ29udGV4dENyZWF0ZWQiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJicmVhZGNydW1ic0hpZXJhcmNoeU1vZGUiLCJpc0NvbnRleHRFeHBlY3RlZCIsImV4dGVuZFBhZ2VEZWZpbml0aW9uIiwicGFnZURlZmluaXRpb24iLCJjb252ZXJ0ZXJDb250ZXh0IiwiZXh0ZW5kT2JqZWN0UGFnZURlZmluaXRpb24iLCJjcmVhdGVEZWZlcnJlZENvbnRleHQiLCJzUGF0aCIsInBhcmFtZXRlcnMiLCJiQWN0aW9uQ3JlYXRlIiwibGlzdEJpbmRpbmciLCJnZXRVcGRhdGVHcm91cElkIiwiQ29tbW9uVXRpbHMiLCJJTkxJTkVFRElUX1VQREFURUdST1VQSUQiLCJvUGFyYW1ldGVycyIsIiQkZ3JvdXBJZCIsIiQkdXBkYXRlR3JvdXBJZCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiTW9kZWxIZWxwZXIiLCJpc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZCIsIiRzZWxlY3QiLCJiaW5kTGlzdCIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJvU3RhcnRVcFBhcmFtcyIsIm9BcHBDb21wb25lbnQiLCJnZXRDb21wb25lbnREYXRhIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJkYXRhRm9yQ3JlYXRlIiwicHJlZmVycmVkTW9kZSIsImluY2x1ZGVzIiwib0luYm91bmRQYXJhbWV0ZXJzIiwiZ2V0Vmlld0RhdGEiLCJpbmJvdW5kUGFyYW1ldGVycyIsIk9iamVjdCIsImFzc2lnbiIsImRhdGEiLCJnZXRBZGRpdGlvbmFsUGFyYW1zRm9yQ3JlYXRlIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiZWRpdEZsb3ciLCJjcmVhdGVEb2N1bWVudCIsImNyZWF0aW9uTW9kZSIsIlN5bmMiLCJjcmVhdGVBY3Rpb24iLCJiRnJvbURlZmVycmVkIiwic2VsZWN0ZWRDb250ZXh0cyIsInBhcmVudENvbnRleHQiLCJyZXF1ZXN0QXRMZWFzdCIsImZpbmFsbHkiLCJjYXRjaCIsInNldFZhcmlhbnRNYW5hZ2VtZW50Iiwic1ZhcmlhbnRNYW5hZ2VtZW50IiwiTG9nIiwiZXJyb3IiLCJzZXRQcm9wZXJ0eSIsImlzT3BlbkluRWRpdE1vZGUiLCJvcGVuSW5FZGl0TW9kZSIsIl9nZXRDb250cm9sbGVyTmFtZSIsIlRlbXBsYXRlQ29tcG9uZW50IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEluYm91bmRQYXJhbWV0ZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBPYmplY3RQYWdlRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL3RlbXBsYXRlcy9PYmplY3RQYWdlQ29udmVydGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyBGaW5hbFBhZ2VEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvT2JqZWN0UGFnZS9FeHRlbmRQYWdlRGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgZXh0ZW5kT2JqZWN0UGFnZURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL0V4dGVuZFBhZ2VEZWZpbml0aW9uXCI7XG5pbXBvcnQgdGVtcGxhdGVMaWIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5cbmNvbnN0IFZhcmlhbnRNYW5hZ2VtZW50ID0gQ29yZUxpYnJhcnkuVmFyaWFudE1hbmFnZW1lbnQsXG5cdENyZWF0aW9uTW9kZSA9IENvcmVMaWJyYXJ5LkNyZWF0aW9uTW9kZTtcbmNvbnN0IFNlY3Rpb25MYXlvdXQgPSB0ZW1wbGF0ZUxpYi5PYmplY3RQYWdlLlNlY3Rpb25MYXlvdXQ7XG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuQ29tcG9uZW50XCIsIHsgbGlicmFyeTogXCJzYXAuZmUudGVtcGxhdGVzXCIsIG1hbmlmZXN0OiBcImpzb25cIiB9KVxuY2xhc3MgT2JqZWN0UGFnZUNvbXBvbmVudCBleHRlbmRzIFRlbXBsYXRlQ29tcG9uZW50IHtcblx0LyoqXG5cdCAqIERlZmluZXMgaWYgYW5kIG9uIHdoaWNoIGxldmVsIHZhcmlhbnRzIGNhbiBiZSBjb25maWd1cmVkOlxuXHQgKiBcdFx0Tm9uZTogbm8gdmFyaWFudCBjb25maWd1cmF0aW9uIGF0IGFsbFxuXHQgKiBcdFx0UGFnZTogb25lIHZhcmlhbnQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2Vcblx0ICogXHRcdENvbnRyb2w6IHZhcmlhbnQgY29uZmlndXJhdGlvbiBvbiBjb250cm9sIGxldmVsXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic2FwLmZlLmNvcmUuVmFyaWFudE1hbmFnZW1lbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IFZhcmlhbnRNYW5hZ2VtZW50Lk5vbmVcblx0fSlcblx0dmFyaWFudE1hbmFnZW1lbnQ6IHR5cGVvZiBWYXJpYW50TWFuYWdlbWVudDtcblxuXHQvKipcblx0ICogRGVmaW5lcyBob3cgdGhlIHNlY3Rpb25zIGFyZSByZW5kZXJlZFxuXHQgKiBcdFx0UGFnZTogYWxsIHNlY3Rpb25zIGFyZSBzaG93biBvbiBvbmUgcGFnZVxuXHQgKiBcdFx0VGFiczogZWFjaCB0b3AtbGV2ZWwgc2VjdGlvbiBpcyBzaG93biBpbiBhbiBvd24gdGFiXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLlNlY3Rpb25MYXlvdXRcIixcblx0XHRkZWZhdWx0VmFsdWU6IFNlY3Rpb25MYXlvdXQuUGFnZVxuXHR9KVxuXHRzZWN0aW9uTGF5b3V0OiB0eXBlb2YgU2VjdGlvbkxheW91dDtcblxuXHQvKipcblx0ICogRW5hYmxlcyB0aGUgcmVsYXRlZCBhcHBzIGZlYXR1cmVzXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogZmFsc2Vcblx0fSlcblx0c2hvd1JlbGF0ZWRBcHBzITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogRW5hYmxlcyB0aGUgJ01pY3Jvc29mdCBUZWFtcyA+IEFzIENhcmQnIG9wdGlvbiBpbiB0aGUgJ1NoYXJlJyBtZW51XG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwib2JqZWN0XCJcblx0fSlcblx0c2hhcmUhOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRhZGRpdGlvbmFsU2VtYW50aWNPYmplY3RzITogb2JqZWN0O1xuXG5cdC8qKlxuXHQgKiBFbmFibGVzIHRoZSBlZGl0YWJsZSBvYmplY3QgcGFnZSBoZWFkZXJcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiB0cnVlXG5cdH0pXG5cdGVkaXRhYmxlSGVhZGVyQ29udGVudCE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFNob3dzIGEgdGV4dCBpbnN0ZWFkIG9mIGFuIElsbHVzdHJhdGVkTWVzc2FnZSBpbiB0aGUgbm9EYXRhIGFnZ3JlZ2F0aW9uIG9mIFRhYmxlcyBvciBDaGFydHNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHR1c2VUZXh0Rm9yTm9EYXRhTWVzc2FnZXMhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBwcm9wZXJ0aWVzIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBpbmJvdW5kIE5hdmlnYXRpb25cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIlxuXHR9KVxuXHRpbmJvdW5kUGFyYW1ldGVycyE6IG9iamVjdDtcblxuXHQvKipcblx0ICogRGVmaW5lcyBpZiBhbiBvYmplY3QgcGFnZSBzaG91bGQgYmUgb3BlbmVkIGluIGVkaXQgbW9kZVxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRvcGVuSW5FZGl0TW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogZmFsc2Vcblx0fSlcblx0ZW5hYmxlTGF6eUxvYWRpbmchOiBib29sZWFuO1xuXG5cdHByaXZhdGUgRGVmZXJyZWRDb250ZXh0Q3JlYXRlZCA9IGZhbHNlO1xuXG5cdGluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5icmVhZGNydW1ic0hpZXJhcmNoeU1vZGUgPSB0aGlzLmJyZWFkY3J1bWJzSGllcmFyY2h5TW9kZSA/PyBcIm9iamVjdE5hdmlnYXRpb25cIjtcblx0XHRzdXBlci5pbml0KCk7XG5cdH1cblxuXHRpc0NvbnRleHRFeHBlY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdGV4dGVuZFBhZ2VEZWZpbml0aW9uKHBhZ2VEZWZpbml0aW9uOiBPYmplY3RQYWdlRGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEZpbmFsUGFnZURlZmluaXRpb24ge1xuXHRcdHJldHVybiBleHRlbmRPYmplY3RQYWdlRGVmaW5pdGlvbihwYWdlRGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCk7XG5cdH1cblxuXHQvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpZGVhbGx5IGJlIGhhbmRsZWQgYnkgdGhlIGVkaXRmbG93L3JvdXRpbmcgd2l0aG91dCB0aGUgbmVlZCB0byBoYXZlIHRoaXMgbWV0aG9kIGluIHRoZVxuXHQvLyBvYmplY3QgcGFnZSAtIGZvciBub3cga2VlcCBpdCBoZXJlXG5cdGNyZWF0ZURlZmVycmVkQ29udGV4dChcblx0XHRzUGF0aDogc3RyaW5nLFxuXHRcdHBhcmFtZXRlcnM6IHsgbGlzdEJpbmRpbmc/OiBPRGF0YUxpc3RCaW5kaW5nOyBwYXJlbnRDb250ZXh0PzogQ29udGV4dDsgZGF0YT86IG9iamVjdDsgcmVxdWVzdEF0TGVhc3Q/OiBzdHJpbmdbXSB9LFxuXHRcdGJBY3Rpb25DcmVhdGU6IGJvb2xlYW5cblx0KTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLkRlZmVycmVkQ29udGV4dENyZWF0ZWQpIHtcblx0XHRcdHRoaXMuRGVmZXJyZWRDb250ZXh0Q3JlYXRlZCA9IHRydWU7XG5cblx0XHRcdGlmICghcGFyYW1ldGVycy5saXN0QmluZGluZyB8fCBwYXJhbWV0ZXJzLmxpc3RCaW5kaW5nLmdldFVwZGF0ZUdyb3VwSWQoKSA9PT0gQ29tbW9uVXRpbHMuSU5MSU5FRURJVF9VUERBVEVHUk9VUElEKSB7XG5cdFx0XHRcdGNvbnN0IG9QYXJhbWV0ZXJzOiB7ICQkZ3JvdXBJZDogc3RyaW5nOyAkJHVwZGF0ZUdyb3VwSWQ6IHN0cmluZzsgJHNlbGVjdD86IHN0cmluZyB9ID0ge1xuXHRcdFx0XHRcdCQkZ3JvdXBJZDogXCIkYXV0by5IZXJvZXNcIixcblx0XHRcdFx0XHQkJHVwZGF0ZUdyb3VwSWQ6IFwiJGF1dG9cIlxuXHRcdFx0XHR9O1xuXHRcdFx0XHRjb25zdCBtZXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRcdGlmIChNb2RlbEhlbHBlci5pc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChtZXRhTW9kZWwpKSB7XG5cdFx0XHRcdFx0b1BhcmFtZXRlcnMuJHNlbGVjdCA9IFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGEvRHJhZnRBZG1pbmlzdHJhdGl2ZVVzZXJcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRwYXJhbWV0ZXJzLmxpc3RCaW5kaW5nID0gdGhpcy5nZXRNb2RlbCgpLmJpbmRMaXN0KHNQYXRoLnJlcGxhY2UoXCIoLi4uKVwiLCBcIlwiKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb1BhcmFtZXRlcnMpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBvU3RhcnRVcFBhcmFtcyA9IHRoaXMub0FwcENvbXBvbmVudD8uZ2V0Q29tcG9uZW50RGF0YSgpPy5zdGFydHVwUGFyYW1ldGVycztcblx0XHRcdGxldCBkYXRhRm9yQ3JlYXRlO1xuXHRcdFx0aWYgKG9TdGFydFVwUGFyYW1zPy5wcmVmZXJyZWRNb2RlPy5bMF0uaW5jbHVkZXMoXCJjcmVhdGVcIikgPT09IHRydWUpIHtcblx0XHRcdFx0Y29uc3Qgb0luYm91bmRQYXJhbWV0ZXJzID0gdGhpcy5nZXRWaWV3RGF0YSgpLmluYm91bmRQYXJhbWV0ZXJzIGFzIFJlY29yZDxzdHJpbmcsIEluYm91bmRQYXJhbWV0ZXI+IHwgdW5kZWZpbmVkO1xuXHRcdFx0XHRkYXRhRm9yQ3JlYXRlID0gT2JqZWN0LmFzc2lnbihcblx0XHRcdFx0XHR7fSxcblx0XHRcdFx0XHRwYXJhbWV0ZXJzLmRhdGEsXG5cdFx0XHRcdFx0Q29tbW9uVXRpbHMuZ2V0QWRkaXRpb25hbFBhcmFtc0ZvckNyZWF0ZShvU3RhcnRVcFBhcmFtcywgb0luYm91bmRQYXJhbWV0ZXJzKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0YUZvckNyZWF0ZSA9IHBhcmFtZXRlcnMuZGF0YTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gZm9yIG5vdyB3YWl0IHVudGlsIHRoZSB2aWV3IGFuZCB0aGUgY29udHJvbGxlciBpcyBjcmVhdGVkXG5cdFx0XHR0aGlzLmdldFJvb3RDb250cm9sKClcblx0XHRcdFx0LmdldENvbnRyb2xsZXIoKVxuXHRcdFx0XHQuZWRpdEZsb3cuY3JlYXRlRG9jdW1lbnQocGFyYW1ldGVycy5saXN0QmluZGluZywge1xuXHRcdFx0XHRcdGNyZWF0aW9uTW9kZTogQ3JlYXRpb25Nb2RlLlN5bmMsXG5cdFx0XHRcdFx0Y3JlYXRlQWN0aW9uOiBiQWN0aW9uQ3JlYXRlLFxuXHRcdFx0XHRcdGRhdGE6IGRhdGFGb3JDcmVhdGUsXG5cdFx0XHRcdFx0YkZyb21EZWZlcnJlZDogdHJ1ZSxcblx0XHRcdFx0XHRzZWxlY3RlZENvbnRleHRzOiBwYXJhbWV0ZXJzLnBhcmVudENvbnRleHQgPyBbcGFyYW1ldGVycy5wYXJlbnRDb250ZXh0XSA6IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRyZXF1ZXN0QXRMZWFzdDogcGFyYW1ldGVycy5yZXF1ZXN0QXRMZWFzdFxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5EZWZlcnJlZENvbnRleHRDcmVhdGVkID0gZmFsc2U7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0Ly8gRG8gTm90aGluZyA/XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHNldFZhcmlhbnRNYW5hZ2VtZW50KHNWYXJpYW50TWFuYWdlbWVudDogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKHNWYXJpYW50TWFuYWdlbWVudCA9PT0gVmFyaWFudE1hbmFnZW1lbnQuUGFnZSkge1xuXHRcdFx0TG9nLmVycm9yKFwiT2JqZWN0UGFnZSBkb2VzIG5vdCBzdXBwb3J0IFBhZ2UtbGV2ZWwgdmFyaWFudCBtYW5hZ2VtZW50IHlldFwiKTtcblx0XHRcdHNWYXJpYW50TWFuYWdlbWVudCA9IFZhcmlhbnRNYW5hZ2VtZW50Lk5vbmU7XG5cdFx0fVxuXG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhcmlhbnRNYW5hZ2VtZW50XCIsIHNWYXJpYW50TWFuYWdlbWVudCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIG9wZW5JbkVkaXRNb2RlIGlzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0IHNldHRpbmdzXG5cdCAqIEByZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIGVkaXQgbW9kZSBpcyBzZXQgZm9yIGFuIG9iamVjdCBwYWdlXG5cdCAqL1xuXG5cdGlzT3BlbkluRWRpdE1vZGUoKTogYm9vbGVhbiB7XG5cdFx0Y29uc3Qgb3BlbkluRWRpdE1vZGUgPSB0aGlzLmdldFZpZXdEYXRhKCkub3BlbkluRWRpdE1vZGU7XG5cdFx0cmV0dXJuIG9wZW5JbkVkaXRNb2RlID09PSB0cnVlO1xuXHR9XG5cblx0X2dldENvbnRyb2xsZXJOYW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCI7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0UGFnZUNvbXBvbmVudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztFQWVBLE1BQU1BLGlCQUFpQixHQUFHQyxXQUFXLENBQUNELGlCQUFpQjtJQUN0REUsWUFBWSxHQUFHRCxXQUFXLENBQUNDLFlBQVk7RUFDeEMsTUFBTUMsYUFBYSxHQUFHQyxXQUFXLENBQUNDLFVBQVUsQ0FBQ0YsYUFBYTtFQUFDLElBRXJERyxtQkFBbUIsSUFBQUMsSUFBQSxHQUR4QkMsY0FBYyxDQUFDLHVDQUF1QyxFQUFFO0lBQUVDLE9BQU8sRUFBRSxrQkFBa0I7SUFBRUMsUUFBUSxFQUFFO0VBQU8sQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FRekdDLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsK0JBQStCO0lBQ3JD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
|
|
227
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiQ3JlYXRpb25Nb2RlIiwiU2VjdGlvbkxheW91dCIsInRlbXBsYXRlTGliIiwiT2JqZWN0UGFnZSIsIk9iamVjdFBhZ2VDb21wb25lbnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJsaWJyYXJ5IiwibWFuaWZlc3QiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsIk5vbmUiLCJfZGVjMyIsIlBhZ2UiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX1RlbXBsYXRlQ29tcG9uZW50IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIkRlZmVycmVkQ29udGV4dENyZWF0ZWQiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImluaXQiLCJicmVhZGNydW1ic0hpZXJhcmNoeU1vZGUiLCJpc0NvbnRleHRFeHBlY3RlZCIsImV4dGVuZFBhZ2VEZWZpbml0aW9uIiwicGFnZURlZmluaXRpb24iLCJjb252ZXJ0ZXJDb250ZXh0IiwiZXh0ZW5kT2JqZWN0UGFnZURlZmluaXRpb24iLCJjcmVhdGVEZWZlcnJlZENvbnRleHQiLCJzUGF0aCIsInBhcmFtZXRlcnMiLCJiQWN0aW9uQ3JlYXRlIiwibGlzdEJpbmRpbmciLCJnZXRVcGRhdGVHcm91cElkIiwiQ29tbW9uVXRpbHMiLCJJTkxJTkVFRElUX1VQREFURUdST1VQSUQiLCJvUGFyYW1ldGVycyIsIiQkZ3JvdXBJZCIsIiQkdXBkYXRlR3JvdXBJZCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiTW9kZWxIZWxwZXIiLCJpc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZCIsIiRzZWxlY3QiLCJiaW5kTGlzdCIsInJlcGxhY2UiLCJ1bmRlZmluZWQiLCJvU3RhcnRVcFBhcmFtcyIsIm9BcHBDb21wb25lbnQiLCJnZXRDb21wb25lbnREYXRhIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJkYXRhRm9yQ3JlYXRlIiwicHJlZmVycmVkTW9kZSIsImluY2x1ZGVzIiwib0luYm91bmRQYXJhbWV0ZXJzIiwiZ2V0Vmlld0RhdGEiLCJpbmJvdW5kUGFyYW1ldGVycyIsImNvbnRleHRQYXRoIiwiZW50aXR5U2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiZGF0YSIsImdldEFkZGl0aW9uYWxQYXJhbXNGb3JDcmVhdGUiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJlZGl0RmxvdyIsImNyZWF0ZURvY3VtZW50IiwiY3JlYXRpb25Nb2RlIiwiU3luYyIsImNyZWF0ZUFjdGlvbiIsImJGcm9tRGVmZXJyZWQiLCJzZWxlY3RlZENvbnRleHRzIiwicGFyZW50Q29udGV4dCIsInJlcXVlc3RBdExlYXN0IiwiZmluYWxseSIsImNhdGNoIiwic2V0VmFyaWFudE1hbmFnZW1lbnQiLCJzVmFyaWFudE1hbmFnZW1lbnQiLCJMb2ciLCJlcnJvciIsInNldFByb3BlcnR5IiwiaXNPcGVuSW5FZGl0TW9kZSIsIm9wZW5JbkVkaXRNb2RlIiwiX2dldENvbnRyb2xsZXJOYW1lIiwiVGVtcGxhdGVDb21wb25lbnQiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgSW5ib3VuZFBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE9iamVjdFBhZ2VEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvdGVtcGxhdGVzL09iamVjdFBhZ2VDb252ZXJ0ZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvcmVMaWJyYXJ5IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbmFsUGFnZURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL0V4dGVuZFBhZ2VEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBleHRlbmRPYmplY3RQYWdlRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL09iamVjdFBhZ2UvRXh0ZW5kUGFnZURlZmluaXRpb25cIjtcbmltcG9ydCB0ZW1wbGF0ZUxpYiBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuY29uc3QgVmFyaWFudE1hbmFnZW1lbnQgPSBDb3JlTGlicmFyeS5WYXJpYW50TWFuYWdlbWVudCxcblx0Q3JlYXRpb25Nb2RlID0gQ29yZUxpYnJhcnkuQ3JlYXRpb25Nb2RlO1xuY29uc3QgU2VjdGlvbkxheW91dCA9IHRlbXBsYXRlTGliLk9iamVjdFBhZ2UuU2VjdGlvbkxheW91dDtcbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5Db21wb25lbnRcIiwgeyBsaWJyYXJ5OiBcInNhcC5mZS50ZW1wbGF0ZXNcIiwgbWFuaWZlc3Q6IFwianNvblwiIH0pXG5jbGFzcyBPYmplY3RQYWdlQ29tcG9uZW50IGV4dGVuZHMgVGVtcGxhdGVDb21wb25lbnQge1xuXHQvKipcblx0ICogRGVmaW5lcyBpZiBhbmQgb24gd2hpY2ggbGV2ZWwgdmFyaWFudHMgY2FuIGJlIGNvbmZpZ3VyZWQ6XG5cdCAqIFx0XHROb25lOiBubyB2YXJpYW50IGNvbmZpZ3VyYXRpb24gYXQgYWxsXG5cdCAqIFx0XHRQYWdlOiBvbmUgdmFyaWFudCBjb25maWd1cmF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZVxuXHQgKiBcdFx0Q29udHJvbDogdmFyaWFudCBjb25maWd1cmF0aW9uIG9uIGNvbnRyb2wgbGV2ZWxcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzYXAuZmUuY29yZS5WYXJpYW50TWFuYWdlbWVudFwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogVmFyaWFudE1hbmFnZW1lbnQuTm9uZVxuXHR9KVxuXHR2YXJpYW50TWFuYWdlbWVudDogdHlwZW9mIFZhcmlhbnRNYW5hZ2VtZW50O1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIGhvdyB0aGUgc2VjdGlvbnMgYXJlIHJlbmRlcmVkXG5cdCAqIFx0XHRQYWdlOiBhbGwgc2VjdGlvbnMgYXJlIHNob3duIG9uIG9uZSBwYWdlXG5cdCAqIFx0XHRUYWJzOiBlYWNoIHRvcC1sZXZlbCBzZWN0aW9uIGlzIHNob3duIGluIGFuIG93biB0YWJcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuU2VjdGlvbkxheW91dFwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogU2VjdGlvbkxheW91dC5QYWdlXG5cdH0pXG5cdHNlY3Rpb25MYXlvdXQ6IHR5cGVvZiBTZWN0aW9uTGF5b3V0O1xuXG5cdC8qKlxuXHQgKiBFbmFibGVzIHRoZSByZWxhdGVkIGFwcHMgZmVhdHVyZXNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHRzaG93UmVsYXRlZEFwcHMhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBFbmFibGVzIHRoZSAnTWljcm9zb2Z0IFRlYW1zID4gQXMgQ2FyZCcgb3B0aW9uIGluIHRoZSAnU2hhcmUnIG1lbnVcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIlxuXHR9KVxuXHRzaGFyZSE6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdGFkZGl0aW9uYWxTZW1hbnRpY09iamVjdHMhOiBvYmplY3Q7XG5cblx0LyoqXG5cdCAqIEVuYWJsZXMgdGhlIGVkaXRhYmxlIG9iamVjdCBwYWdlIGhlYWRlclxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IHRydWVcblx0fSlcblx0ZWRpdGFibGVIZWFkZXJDb250ZW50ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogU2hvd3MgYSB0ZXh0IGluc3RlYWQgb2YgYW4gSWxsdXN0cmF0ZWRNZXNzYWdlIGluIHRoZSBub0RhdGEgYWdncmVnYXRpb24gb2YgVGFibGVzIG9yIENoYXJ0c1xuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IGZhbHNlXG5cdH0pXG5cdHVzZVRleHRGb3JOb0RhdGFNZXNzYWdlcyE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHByb3BlcnRpZXMgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGluYm91bmQgTmF2aWdhdGlvblxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcIm9iamVjdFwiXG5cdH0pXG5cdGluYm91bmRQYXJhbWV0ZXJzITogb2JqZWN0O1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIGlmIGFuIG9iamVjdCBwYWdlIHNob3VsZCBiZSBvcGVuZWQgaW4gZWRpdCBtb2RlXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdG9wZW5JbkVkaXRNb2RlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHRlbmFibGVMYXp5TG9hZGluZyE6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBEZWZlcnJlZENvbnRleHRDcmVhdGVkID0gZmFsc2U7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmJyZWFkY3J1bWJzSGllcmFyY2h5TW9kZSA9IHRoaXMuYnJlYWRjcnVtYnNIaWVyYXJjaHlNb2RlID8/IFwib2JqZWN0TmF2aWdhdGlvblwiO1xuXHRcdHN1cGVyLmluaXQoKTtcblx0fVxuXG5cdGlzQ29udGV4dEV4cGVjdGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0ZXh0ZW5kUGFnZURlZmluaXRpb24ocGFnZURlZmluaXRpb246IE9iamVjdFBhZ2VEZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogRmluYWxQYWdlRGVmaW5pdGlvbiB7XG5cdFx0cmV0dXJuIGV4dGVuZE9iamVjdFBhZ2VEZWZpbml0aW9uKHBhZ2VEZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0fVxuXG5cdC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIGlkZWFsbHkgYmUgaGFuZGxlZCBieSB0aGUgZWRpdGZsb3cvcm91dGluZyB3aXRob3V0IHRoZSBuZWVkIHRvIGhhdmUgdGhpcyBtZXRob2QgaW4gdGhlXG5cdC8vIG9iamVjdCBwYWdlIC0gZm9yIG5vdyBrZWVwIGl0IGhlcmVcblx0Y3JlYXRlRGVmZXJyZWRDb250ZXh0KFxuXHRcdHNQYXRoOiBzdHJpbmcsXG5cdFx0cGFyYW1ldGVyczogeyBsaXN0QmluZGluZz86IE9EYXRhTGlzdEJpbmRpbmc7IHBhcmVudENvbnRleHQ/OiBDb250ZXh0OyBkYXRhPzogb2JqZWN0OyByZXF1ZXN0QXRMZWFzdD86IHN0cmluZ1tdIH0sXG5cdFx0YkFjdGlvbkNyZWF0ZTogYm9vbGVhblxuXHQpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuRGVmZXJyZWRDb250ZXh0Q3JlYXRlZCkge1xuXHRcdFx0dGhpcy5EZWZlcnJlZENvbnRleHRDcmVhdGVkID0gdHJ1ZTtcblxuXHRcdFx0aWYgKCFwYXJhbWV0ZXJzLmxpc3RCaW5kaW5nIHx8IHBhcmFtZXRlcnMubGlzdEJpbmRpbmcuZ2V0VXBkYXRlR3JvdXBJZCgpID09PSBDb21tb25VdGlscy5JTkxJTkVFRElUX1VQREFURUdST1VQSUQpIHtcblx0XHRcdFx0Y29uc3Qgb1BhcmFtZXRlcnM6IHsgJCRncm91cElkOiBzdHJpbmc7ICQkdXBkYXRlR3JvdXBJZDogc3RyaW5nOyAkc2VsZWN0Pzogc3RyaW5nIH0gPSB7XG5cdFx0XHRcdFx0JCRncm91cElkOiBcIiRhdXRvLkhlcm9lc1wiLFxuXHRcdFx0XHRcdCQkdXBkYXRlR3JvdXBJZDogXCIkYXV0b1wiXG5cdFx0XHRcdH07XG5cdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRcdFx0aWYgKE1vZGVsSGVscGVyLmlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkKG1ldGFNb2RlbCkpIHtcblx0XHRcdFx0XHRvUGFyYW1ldGVycy4kc2VsZWN0ID0gXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdEFkbWluaXN0cmF0aXZlVXNlclwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHBhcmFtZXRlcnMubGlzdEJpbmRpbmcgPSB0aGlzLmdldE1vZGVsKCkuYmluZExpc3Qoc1BhdGgucmVwbGFjZShcIiguLi4pXCIsIFwiXCIpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBvUGFyYW1ldGVycyk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IG9TdGFydFVwUGFyYW1zID0gdGhpcy5vQXBwQ29tcG9uZW50Py5nZXRDb21wb25lbnREYXRhKCk/LnN0YXJ0dXBQYXJhbWV0ZXJzO1xuXHRcdFx0bGV0IGRhdGFGb3JDcmVhdGU7XG5cdFx0XHRpZiAob1N0YXJ0VXBQYXJhbXM/LnByZWZlcnJlZE1vZGU/LlswXS5pbmNsdWRlcyhcImNyZWF0ZVwiKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRjb25zdCBvSW5ib3VuZFBhcmFtZXRlcnMgPSB0aGlzLmdldFZpZXdEYXRhKCkuaW5ib3VuZFBhcmFtZXRlcnMgYXMgUmVjb3JkPHN0cmluZywgSW5ib3VuZFBhcmFtZXRlcj4gfCB1bmRlZmluZWQ7XG5cdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRcdGNvbnN0IGNvbnRleHRQYXRoID0gdGhpcy5jb250ZXh0UGF0aCB8fCBgLyR7dGhpcy5lbnRpdHlTZXR9YDtcblx0XHRcdFx0ZGF0YUZvckNyZWF0ZSA9IE9iamVjdC5hc3NpZ24oXG5cdFx0XHRcdFx0e30sXG5cdFx0XHRcdFx0cGFyYW1ldGVycy5kYXRhLFxuXHRcdFx0XHRcdENvbW1vblV0aWxzLmdldEFkZGl0aW9uYWxQYXJhbXNGb3JDcmVhdGUob1N0YXJ0VXBQYXJhbXMsIG9JbmJvdW5kUGFyYW1ldGVycywgbWV0YU1vZGVsLCBjb250ZXh0UGF0aClcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRhdGFGb3JDcmVhdGUgPSBwYXJhbWV0ZXJzLmRhdGE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGZvciBub3cgd2FpdCB1bnRpbCB0aGUgdmlldyBhbmQgdGhlIGNvbnRyb2xsZXIgaXMgY3JlYXRlZFxuXHRcdFx0dGhpcy5nZXRSb290Q29udHJvbCgpXG5cdFx0XHRcdC5nZXRDb250cm9sbGVyKClcblx0XHRcdFx0LmVkaXRGbG93LmNyZWF0ZURvY3VtZW50KHBhcmFtZXRlcnMubGlzdEJpbmRpbmcsIHtcblx0XHRcdFx0XHRjcmVhdGlvbk1vZGU6IENyZWF0aW9uTW9kZS5TeW5jLFxuXHRcdFx0XHRcdGNyZWF0ZUFjdGlvbjogYkFjdGlvbkNyZWF0ZSxcblx0XHRcdFx0XHRkYXRhOiBkYXRhRm9yQ3JlYXRlLFxuXHRcdFx0XHRcdGJGcm9tRGVmZXJyZWQ6IHRydWUsXG5cdFx0XHRcdFx0c2VsZWN0ZWRDb250ZXh0czogcGFyYW1ldGVycy5wYXJlbnRDb250ZXh0ID8gW3BhcmFtZXRlcnMucGFyZW50Q29udGV4dF0gOiB1bmRlZmluZWQsXG5cdFx0XHRcdFx0cmVxdWVzdEF0TGVhc3Q6IHBhcmFtZXRlcnMucmVxdWVzdEF0TGVhc3Rcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuRGVmZXJyZWRDb250ZXh0Q3JlYXRlZCA9IGZhbHNlO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdC8vIERvIE5vdGhpbmcgP1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRzZXRWYXJpYW50TWFuYWdlbWVudChzVmFyaWFudE1hbmFnZW1lbnQ6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmIChzVmFyaWFudE1hbmFnZW1lbnQgPT09IFZhcmlhbnRNYW5hZ2VtZW50LlBhZ2UpIHtcblx0XHRcdExvZy5lcnJvcihcIk9iamVjdFBhZ2UgZG9lcyBub3Qgc3VwcG9ydCBQYWdlLWxldmVsIHZhcmlhbnQgbWFuYWdlbWVudCB5ZXRcIik7XG5cdFx0XHRzVmFyaWFudE1hbmFnZW1lbnQgPSBWYXJpYW50TWFuYWdlbWVudC5Ob25lO1xuXHRcdH1cblxuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJ2YXJpYW50TWFuYWdlbWVudFwiLCBzVmFyaWFudE1hbmFnZW1lbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiBvcGVuSW5FZGl0TW9kZSBpcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBzZXR0aW5nc1xuXHQgKiBAcmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiBlZGl0IG1vZGUgaXMgc2V0IGZvciBhbiBvYmplY3QgcGFnZVxuXHQgKi9cblxuXHRpc09wZW5JbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IG9wZW5JbkVkaXRNb2RlID0gdGhpcy5nZXRWaWV3RGF0YSgpLm9wZW5JbkVkaXRNb2RlO1xuXHRcdHJldHVybiBvcGVuSW5FZGl0TW9kZSA9PT0gdHJ1ZTtcblx0fVxuXG5cdF9nZXRDb250cm9sbGVyTmFtZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9iamVjdFBhZ2VDb21wb25lbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFlQSxNQUFNQSxpQkFBaUIsR0FBR0MsV0FBVyxDQUFDRCxpQkFBaUI7SUFDdERFLFlBQVksR0FBR0QsV0FBVyxDQUFDQyxZQUFZO0VBQ3hDLE1BQU1DLGFBQWEsR0FBR0MsV0FBVyxDQUFDQyxVQUFV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
|
|
@@ -142,10 +142,12 @@ class ObjectPageComponent extends TemplateComponent {
|
|
|
142
142
|
let dataForCreate;
|
|
143
143
|
if (oStartUpParams?.preferredMode?.[0].includes("create") === true) {
|
|
144
144
|
const oInboundParameters = this.getViewData().inboundParameters as Record<string, InboundParameter> | undefined;
|
|
145
|
+
const metaModel = this.getModel()?.getMetaModel();
|
|
146
|
+
const contextPath = this.contextPath || `/${this.entitySet}`;
|
|
145
147
|
dataForCreate = Object.assign(
|
|
146
148
|
{},
|
|
147
149
|
parameters.data,
|
|
148
|
-
CommonUtils.getAdditionalParamsForCreate(oStartUpParams, oInboundParameters)
|
|
150
|
+
CommonUtils.getAdditionalParamsForCreate(oStartUpParams, oInboundParameters, metaModel, contextPath)
|
|
149
151
|
);
|
|
150
152
|
} else {
|
|
151
153
|
dataForCreate = parameters.data;
|
|
@@ -276,7 +276,11 @@ sap.ui.define(["sap/base/Log", "sap/base/util/uid", "sap/fe/base/ClassSupport",
|
|
|
276
276
|
_proto._showMessages = function _showMessages(messages) {
|
|
277
277
|
let origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "Custom";
|
|
278
278
|
try {
|
|
279
|
-
|
|
279
|
+
if (messages.length > 0) {
|
|
280
|
+
// Only if there are messages to show, we remove custom message strip.
|
|
281
|
+
// This way we ensure that we don't interfere with custom message strip's lifecyle until there are new messages to show in the standard message strip.
|
|
282
|
+
this.removeCustomMessageStrip();
|
|
283
|
+
}
|
|
280
284
|
const view = this._view;
|
|
281
285
|
const internalModel = view.getModel("internal");
|
|
282
286
|
const messagestripInternalModelContext = internalModel.bindContext(this._getMessageStripBindingContextPath()).getBoundContext();
|
|
@@ -434,4 +438,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/uid", "sap/fe/base/ClassSupport",
|
|
|
434
438
|
}(ExtensionAPI)) || _class);
|
|
435
439
|
return ObjectPageExtensionAPI;
|
|
436
440
|
}, false);
|
|
437
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3RQYWdlRXh0ZW5zaW9uQVBJIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX0V4dGVuc2lvbkFQSSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJvU2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwib1NpZGVFZmZlY3RzIiwidGFyZ2V0UHJvcGVydGllcyIsInRhcmdldEVudGl0aWVzIiwidW5kZWZpbmVkIiwicHVzaCIsIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoIiwiYWxsUGF0aHMiLCJBcnJheSIsImlzQXJyYXkiLCJvd25lckNvbXBvbmVudCIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJjb250ZXh0UGF0aCIsImdldENvbnRleHRQYXRoIiwiZ2V0RW50aXR5U2V0IiwicGF0aCIsImtpbmQiLCJnZXRPYmplY3QiLCJyZWplY3QiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwic1RhYmxlSWQiLCJ0YWJsZSIsImJ5SWQiLCJpc0EiLCJnZXRQYXJlbnQiLCJzaG93U2lkZUNvbnRlbnQiLCJzU3ViU2VjdGlvbktleSIsImJTaG93Iiwic0Jsb2NrSUQiLCJnZXRTaWRlQ29udGVudExheW91dElEIiwib0Jsb2NrIiwiYkJsb2NrU3RhdGUiLCJnZXRTaG93U2lkZUNvbnRlbnQiLCJzZXRTaG93U2lkZUNvbnRlbnQiLCJfZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoIiwiaW50ZXJuYWxNb2RlbENvbnRleHRQYXRoIiwiZ2V0UGF0aCIsInZpZXdDb250ZXh0UGF0aCIsInJlcGxhY2UiLCJzaG93TWVzc2FnZXMiLCJtZXNzYWdlc09yU3RyaXAiLCJfc2hvd01lc3NhZ2VzIiwic2hvd0N1c3RvbU1lc3NhZ2VTdHJpcCIsIm1lc3NhZ2VTdHJpcCIsIm1lc3NhZ2VTdHJpcEludGVybmFsTW9kZWxDb250ZXh0IiwiYmluZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJyZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAiLCJzZXRQcm9wZXJ0eSIsImN1c3RvbU1lc3NhZ2VTdHJpcElkIiwiZ2V0SWQiLCJ1aWQiLCJhZGRTdHlsZUNsYXNzIiwiYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlIiwibWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQiLCJoZWFkZXJDb250YWluZXIiLCJpbnNlcnRJbnRvQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbk5hbWUiLCJjb250cm9sVG9JbnNlcnQiLCJhZ2dyZWdhdGlvbkNvbnRlbnQiLCJnZXRBZ2dyZWdhdGlvbiIsImNvbnRlbnRBcnJheSIsImluc2VydEFnZ3JlZ2F0aW9uIiwibGVuZ3RoIiwiY2xvbmUiLCJyZW1vdmVGcm9tQWdncmVnYXRpb24iLCJpZE1hdGNoZXIiLCJjb250cm9sVG9SZW1vdmUiLCJmaW5kIiwiY29udHJvbCIsInJlbW92ZUFnZ3JlZ2F0aW9uIiwiZGVzdHJveSIsImNvbnRyb2xJZCIsImluY2x1ZGVzIiwiY3JlYXRlTWVzc2FnZUl0ZW0iLCJtZXNzYWdlIiwic0Rlc2NyaXB0aW9uVXJsIiwiZ2V0RGVzY3JpcHRpb25VcmwiLCJNZXNzYWdlSXRlbSIsInRpdGxlIiwiZ2V0TWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb24iLCJ0eXBlIiwiZ2V0VHlwZSIsImxvbmd0ZXh0VXJsIiwic3VidGl0bGUiLCJnZXRBZGRpdGlvbmFsVGV4dCIsImdyb3VwTmFtZSIsImFjdGl2ZVRpdGxlIiwiZ2V0Q29udHJvbElkcyIsImNyZWF0ZU1lc3NhZ2VQb3BvdmVyIiwibWVzc2FnZUl0ZW1zIiwicG9wb3ZlciIsIk1lc3NhZ2VQb3BvdmVyIiwiaXRlbXMiLCJzaG93TWVzc2FnZVBvcG92ZXIiLCJldmVudCIsIm1lc3NhZ2VJdGVtIiwic291cmNlQ29udHJvbCIsImdldFNvdXJjZSIsImFkZERlcGVuZGVudCIsIm9wZW5CeSIsIm1lc3NhZ2VzIiwib3JpZ2luIiwidmlldyIsImludGVybmFsTW9kZWwiLCJyZXNvdXJjZU1vZGVsIiwiUmVzb3VyY2VNb2RlbEhlbHBlciIsImdldFJlc291cmNlTW9kZWwiLCJoYXNEZXNjcmlwdGlvblVybCIsImlzRWRpdE1vZGUiLCJnZXRJc0VkaXRhYmxlIiwib2JqZWN0UGFnZSIsImdldENvbnRlbnQiLCJoZWFkZXJUaXRsZSIsImdldEhlYWRlclRpdGxlIiwiYWxsU3RyaXBzIiwiZ2V0U25hcHBlZENvbnRlbnQiLCJnZXRFeHBhbmRlZENvbnRlbnQiLCJmaWx0ZXIiLCJpdGVtIiwiTWVzc2FnZVN0cmlwIiwiZm9yRWFjaCIsInN0cmlwIiwiZ2V0TGluayIsImRlc3Ryb3lMaW5rIiwibGluayIsIkxpbmsiLCJ0ZXh0IiwiZ2V0VGV4dCIsInByZXNzIiwic2V0TGluayIsImVyciIsIkxvZyIsIndhcm5pbmciLCJtZXNzYWdlU3RhdHMiLCJFcnJvciIsImlkIiwiY291bnQiLCJXYXJuaW5nIiwiSW5mb3JtYXRpb24iLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50VmFsdWUiLCJjdXJyZW50VHlwZSIsInNldFR5cGUiLCJNZXNzYWdlIiwiTWVzc2FnZVR5cGUiLCJzZXRNZXNzYWdlIiwiSW52aXNpYmxlTWVzc2FnZSIsImdldEluc3RhbmNlIiwiYW5ub3VuY2UiLCJJbnZpc2libGVNZXNzYWdlTW9kZSIsIkFzc2VydGl2ZSIsImVycm9yIiwiaGlkZU1lc3NhZ2UiLCJzZXRSZWNvbW1lbmRhdGlvbnMiLCJkYXRhIiwicmVjb21tZW5kYXRpb25IZWxwZXIiLCJ0cmFuc2Zvcm1SZWNvbW1lbmRhdGlvbnNGb3JJbnRlcm5hbFN0b3JhZ2UiLCJzZXRBc1NlY3Rpb25UaXRsZU93bmVyIiwic2VjdGlvbiIsIm9yaWdpbmFsQ29udHJvbCIsInJldXNlQ29tcG9uZW50IiwiY29udGFpbmVyIiwiY29udHJvbFBhcmVudCIsImdldFZpc2libGVTdWJTZWN0aW9ucyIsImFkanVzdEZvclNpbmdsZUNvbnRlbnQiLCJtdWx0aXBsZVN1YlNlY3Rpb25zV2l0aFJldXNlQ29tcG9uZW50IiwiRXh0ZW5zaW9uQVBJIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFeHRlbnNpb25BUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdWlkIGZyb20gXCJzYXAvYmFzZS91dGlsL3VpZFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIFJldXNlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9SZXVzZUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCB0eXBlIHsgSW5Db21wbGV0ZW5lc3NJbmZvVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1JlY29tbWVuZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyByZWNvbW1lbmRhdGlvbkhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1JlY29tbWVuZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IFNpZGVFZmZlY3RzVGFyZ2V0VHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSBTZWN0aW9uIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL1NlY3Rpb25cIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgTGluayBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IE1lc3NhZ2VJdGVtIGZyb20gXCJzYXAvbS9NZXNzYWdlSXRlbVwiO1xuaW1wb3J0IE1lc3NhZ2VQb3BvdmVyIGZyb20gXCJzYXAvbS9NZXNzYWdlUG9wb3ZlclwiO1xuaW1wb3J0IE1lc3NhZ2VTdHJpcCBmcm9tIFwic2FwL20vTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgdHlwZSBVSTVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBJbnZpc2libGVNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVNZXNzYWdlXCI7XG5pbXBvcnQgeyBJbnZpc2libGVNZXNzYWdlTW9kZSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgTWVzc2FnZVR5cGUgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVR5cGVcIjtcbmltcG9ydCB0eXBlIER5bmFtaWNTaWRlQ29udGVudCBmcm9tIFwic2FwL3VpL2xheW91dC9EeW5hbWljU2lkZUNvbnRlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9tZGMvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VEeW5hbWljSGVhZGVyVGl0bGUgZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VEeW5hbWljSGVhZGVyVGl0bGVcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VMYXlvdXQgZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VMYXlvdXRcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gQVBJIGZvciBvYmplY3QgcGFnZXMgb24gU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBUbyBjb3JyZWN0bHkgaW50ZWdyYXRlIHlvdXIgYXBwIGV4dGVuc2lvbiBjb2Rpbmcgd2l0aCBTQVAgRmlvcmkgZWxlbWVudHMsIHVzZSBvbmx5IHRoZSBleHRlbnNpb25BUEkgb2YgU0FQIEZpb3JpIGVsZW1lbnRzLiBEb24ndCBhY2Nlc3Mgb3IgbWFuaXB1bGF0ZSBjb250cm9scywgcHJvcGVydGllcywgbW9kZWxzLCBvciBvdGhlciBpbnRlcm5hbCBvYmplY3RzIGNyZWF0ZWQgYnkgdGhlIFNBUCBGaW9yaSBlbGVtZW50cyBmcmFtZXdvcmsuXG4gKiBAcHVibGljXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAZmluYWxcbiAqIEBzaW5jZSAxLjc5LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVwiKVxuY2xhc3MgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSBleHRlbmRzIEV4dGVuc2lvbkFQSSB7XG5cdC8qKlxuXHQgKiBJRCBvZiB0aGUgYWN0aXZlIGN1c3RvbSBNZXNzYWdlU3RyaXAgZm9yIHByb2dyYW1tYXRpYyByZW1vdmFsLlxuXHQgKi9cblx0cHJpdmF0ZSBjdXN0b21NZXNzYWdlU3RyaXBJZD86IHN0cmluZztcblxuXHQvKipcblx0ICogUmVmcmVzaGVzIGVpdGhlciB0aGUgd2hvbGUgb2JqZWN0IHBhZ2Ugb3Igb25seSBwYXJ0cyBvZiBpdC5cblx0ICogQHBhcmFtIFt2UGF0aF0gUGF0aCBvciBhcnJheSBvZiBwYXRocyByZWZlcnJpbmcgdG8gZW50aXRpZXMgb3IgcHJvcGVydGllcyB0byBiZSByZWZyZXNoZWQuXG5cdCAqIElmIG9taXR0ZWQsIHRoZSB3aG9sZSBvYmplY3QgcGFnZSBpcyByZWZyZXNoZWQuIFRoZSBwYXRoIFwiXCIgcmVmcmVzaGVzIHRoZSBlbnRpdHkgYXNzaWduZWQgdG8gdGhlIG9iamVjdCBwYWdlXG5cdCAqIHdpdGhvdXQgbmF2aWdhdGlvbi5cblx0ICogQHJldHVybnMgUmVzb2x2ZWQgb25jZSB0aGUgZGF0YSBpcyByZWZyZXNoZWQgb3IgcmVqZWN0ZWQgaWYgdGhlIHJlcXVlc3QgZmFpbGVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHJlZnJlc2godlBhdGg/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG9CaW5kaW5nQ29udGV4dCA9IHRoaXMuX3ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRpZiAoIW9CaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0Ly8gbm90aGluZyB0byBiZSByZWZyZXNoZWQgLSBkbyBub3QgYmxvY2sgdGhlIGFwcCFcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBTaWRlRWZmZWN0c1RhcmdldFR5cGUgPSB7XG5cdFx0XHRcdHRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cblx0XHRpZiAodlBhdGggPT09IHVuZGVmaW5lZCB8fCB2UGF0aCA9PT0gbnVsbCkge1xuXHRcdFx0Ly8gd2UganVzdCBhZGQgYW4gZW1wdHkgcGF0aCB3aGljaCBzaG91bGQgcmVmcmVzaCB0aGUgcGFnZSB3aXRoIGFsbCBkZXBlbmRlbnQgYmluZGluZ3Ncblx0XHRcdG9TaWRlRWZmZWN0cy50YXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IFwiXCJcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhbGxQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0Y29uc3Qgb3duZXJDb21wb25lbnQgPSB0aGlzLl9jb250cm9sbGVyLmdldE93bmVyQ29tcG9uZW50KCkgYXMgdW5rbm93biBhcyB7XG5cdFx0XHRcdGdldENvbnRleHRQYXRoOiAoKSA9PiBzdHJpbmc7XG5cdFx0XHRcdGdldEVudGl0eVNldDogKCkgPT4gc3RyaW5nO1xuXHRcdFx0fTtcblx0XHRcdGNvbnN0IGNvbnRleHRQYXRoID0gb3duZXJDb21wb25lbnQuZ2V0Q29udGV4dFBhdGgoKSB8fCBgLyR7b3duZXJDb21wb25lbnQuZ2V0RW50aXR5U2V0KCl9YDtcblxuXHRcdFx0Zm9yIChjb25zdCBwYXRoIG9mIGFsbFBhdGhzKSB7XG5cdFx0XHRcdGlmIChwYXRoID09PSBcIlwiKSB7XG5cdFx0XHRcdFx0Ly8gYW4gZW1wdHkgcGF0aCBzaGFsbCByZWZyZXNoIHRoZSBlbnRpdHkgd2l0aG91dCBkZXBlbmRlbmNpZXMgd2hpY2ggbWVhbnMgKiBmb3IgdGhlIG1vZGVsXG5cdFx0XHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldFByb3BlcnRpZXMucHVzaChcIipcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29uc3Qga2luZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2NvbnRleHRQYXRofS8ke3BhdGh9LyRraW5kYCk7XG5cblx0XHRcdFx0XHRpZiAoa2luZCA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0XHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogcGF0aFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChraW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMudGFyZ2V0UHJvcGVydGllcy5wdXNoKHBhdGgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7cGF0aH0gaXMgbm90IGEgdmFsaWQgcGF0aCB0byBiZSByZWZyZXNoZWRgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG9TaWRlRWZmZWN0c1NlcnZpY2UucmVxdWVzdFNpZGVFZmZlY3RzKFsuLi5vU2lkZUVmZmVjdHMudGFyZ2V0RW50aXRpZXMsIC4uLm9TaWRlRWZmZWN0cy50YXJnZXRQcm9wZXJ0aWVzXSwgb0JpbmRpbmdDb250ZXh0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgdGFibGUuXG5cdCAqIEBwYXJhbSBzVGFibGVJZCBUaGUgSUQgaWRlbnRpZnlpbmcgdGhlIHRhYmxlIHRoZSBzZWxlY3RlZCBjb250ZXh0IGlzIHJlcXVlc3RlZCBmb3Jcblx0ICogQHJldHVybnMgQXJyYXkgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgY29udGV4dHNcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0U2VsZWN0ZWRDb250ZXh0cyhzVGFibGVJZDogc3RyaW5nKTogT0RhdGFWNENvbnRleHRbXSB7XG5cdFx0bGV0IHRhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAodGFibGU/LmlzQTxUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHR0YWJsZSA9IHRhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJO1xuXHRcdH1cblx0XHRpZiAodGFibGU/LmlzQShcInNhcC5mZS5tYWNyb3MudGFibGUuVGFibGVBUElcIikpIHtcblx0XHRcdHJldHVybiAodGFibGUgYXMgVGFibGVBUEkpLmdldFNlbGVjdGVkQ29udGV4dHMoKTtcblx0XHR9XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIG9yIGhpZGVzIHRoZSBzaWRlIGNvbnRlbnQgb2YgYW4gb2JqZWN0IHBhZ2UuXG5cdCAqIEBwYXJhbSBzU3ViU2VjdGlvbktleSBLZXkgb2YgdGhlIHNpZGUgY29udGVudCBmcmFnbWVudCBhcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5qc29uXG5cdCAqIEBwYXJhbSBbYlNob3ddIE9wdGlvbmFsIEJvb2xlYW4gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHNpZGUgY29udGVudFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzaG93U2lkZUNvbnRlbnQoc1N1YlNlY3Rpb25LZXk6IHN0cmluZywgYlNob3c/OiBib29sZWFuKTogdm9pZCB7XG5cdFx0Y29uc3Qgc0Jsb2NrSUQgPSBnZXRTaWRlQ29udGVudExheW91dElEKHNTdWJTZWN0aW9uS2V5KSxcblx0XHRcdG9CbG9jayA9IHRoaXMuX3ZpZXcuYnlJZChzQmxvY2tJRCksXG5cdFx0XHRiQmxvY2tTdGF0ZSA9IGJTaG93ID09PSB1bmRlZmluZWQgPyAhKG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldFNob3dTaWRlQ29udGVudCgpIDogYlNob3c7XG5cdFx0KG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLnNldFNob3dTaWRlQ29udGVudChiQmxvY2tTdGF0ZSwgZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGJvdW5kIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHBhZ2UuXG5cdCAqIEByZXR1cm5zIENvbnRleHQgYm91bmQgdG8gdGhlIG9iamVjdCBwYWdlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldEJpbmRpbmdDb250ZXh0KCk6IENvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkIHRoZSBpbnRlcm5hbCBjb250ZXh0IHBhdGggb2YgdGhlIE1lc3NhZ2VTdHJpcCBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBUaGUgaW50ZXJuYWwgYmluZGluZyBjb250ZXh0IHBhdGggZm9yIHRoZSBtZXNzYWdlU3RyaXBcblx0ICovXG5cdF9nZXRNZXNzYWdlU3RyaXBCaW5kaW5nQ29udGV4dFBhdGgoKTogc3RyaW5nIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dFBhdGggPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik/LmdldFBhdGgoKTtcblx0XHRjb25zdCB2aWV3Q29udGV4dFBhdGggPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCk/LmdldFBhdGgoKTtcblx0XHRyZXR1cm4gaW50ZXJuYWxNb2RlbENvbnRleHRQYXRoICYmIHZpZXdDb250ZXh0UGF0aFxuXHRcdFx0PyBgJHtpbnRlcm5hbE1vZGVsQ29udGV4dFBhdGh9L01lc3NhZ2VTdHJpcC8ke3ZpZXdDb250ZXh0UGF0aC5yZXBsYWNlKC9cXC8vZywgXCItXCIpfWBcblx0XHRcdDogXCJcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyB0aGUgbWVzc2FnZSBzdHJpcCBiZXR3ZWVuIHRoZSB0aXRsZSBhbmQgdGhlIGhlYWRlciBvZiB0aGUgT2JqZWN0UGFnZS4gSWYgb25seSBvbmUgbWVzc2FnZSBpcyBwcm92aWRlZCwgaXQgaXMgZGlzcGxheWVkIGRpcmVjdGx5IGluIHRoZSBtZXNzYWdlIHN0cmlwLiBJZiBtdWx0aXBsZSBtZXNzYWdlcyBhcmUgcHJvdmlkZWQsIHRoZXkgYXJlIHByaW9yaXRpemVkIGJ5IHRoZSBvcmRlcjogRXJyb3IsIFdhcm5pbmcsIGFuZCBJbmZvcm1hdGlvbiBhbmQgYSBjb3JyZXNwb25kaW5nIGdlbmVyaWMgdGV4dCBpcyBkaXNwbGF5ZWQ6XG5cdCAqIC0gRXJyb3I6IFwiVGhlIG9iamVjdCBjb250YWlucyBlcnJvcnMuXCJcblx0ICogLSBXYXJuaW5nOiBcIlRoZSBvYmplY3QgY29udGFpbnMgd2FybmluZ3MuXCJcblx0ICogLSBJbmZvcm1hdGlvbjogXCJUaGUgb2JqZWN0IGNvbnRhaW5zIG1lc3NhZ2VzLlwiXG5cdCAqIElmIGEgYmFjay1lbmQgbWVzc2FnZSBpcyByZWNlaXZlZCB3aXRoIGEgdGFyZ2V0IHBvaW50aW5nIHRvIHRoZSBPYmplY3QgUGFnZSwgaXQgaXMgZGlzcGxheWVkIGluIHRoZSBtZXNzYWdlIHN0cmlwLCBvdmVycmlkaW5nIGFueSBleGlzdGluZyBtZXNzYWdlIG9yIG1lc3NhZ2Ugc3RyaXAuIElmIG11bHRpcGxlIGJhY2stZW5kIG1lc3NhZ2VzIGFyZSByZWNlaXZlZCwgdGhlIG1lc3NhZ2Ugd2l0aCB0aGUgaGlnaGVzdCBwcmlvcml0eSBpcyBkaXNwbGF5ZWQgd2l0aCBhIGdlbmVyaWMgdGV4dCBhcyBkZXNjcmliZWQgYWJvdmUuXG5cdCAqIEBwYXJhbSAgbWVzc2FnZXNPclN0cmlwIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvciBhIE1lc3NhZ2VTdHJpcCBjb250cm9sXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNob3dNZXNzYWdlcyhtZXNzYWdlc09yU3RyaXA6IE1lc3NhZ2VbXSB8IE1lc3NhZ2VTdHJpcCk6IHZvaWQge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2VzT3JTdHJpcCkpIHtcblx0XHRcdHRoaXMuX3Nob3dNZXNzYWdlcyhtZXNzYWdlc09yU3RyaXApO1xuXHRcdH0gZWxzZSBpZiAobWVzc2FnZXNPclN0cmlwLmlzQShcInNhcC5tLk1lc3NhZ2VTdHJpcFwiKSkge1xuXHRcdFx0dGhpcy5zaG93Q3VzdG9tTWVzc2FnZVN0cmlwKG1lc3NhZ2VzT3JTdHJpcCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNob3dzIGEgY3VzdG9tIE1lc3NhZ2VTdHJpcCBjb250cm9sIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cblx0ICogRW5zdXJlcyBtdXR1YWwgZXhjbHVzaXZpdHkgd2l0aCB0aGUgTWVzc2FnZVN0cmlwIHJlbmRlcmVkIGJ5IHRoZSBvYmplY3QgcGFnZSB2aWV3LlxuXHQgKiBAcGFyYW0gbWVzc2FnZVN0cmlwIE1lc3NhZ2VTdHJpcCBjb250cm9sXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIHNob3dDdXN0b21NZXNzYWdlU3RyaXAobWVzc2FnZVN0cmlwOiBNZXNzYWdlU3RyaXApOiB2b2lkIHtcblx0XHRjb25zdCBtZXNzYWdlU3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuX3ZpZXdcblx0XHRcdC5nZXRNb2RlbChcImludGVybmFsXCIpXG5cdFx0XHQuYmluZENvbnRleHQodGhpcy5fZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoKCkpXG5cdFx0XHQuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0aWYgKCFtZXNzYWdlU3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMucmVtb3ZlQ3VzdG9tTWVzc2FnZVN0cmlwKCk7IC8vIFJlbW92ZSBhbnkgZXhpc3RpbmcgY3VzdG9tIG1lc3NhZ2Ugc3RyaXAgYmVmb3JlIGFkZGluZyBuZXcgb25lXG5cblx0XHQvLyBIaWRlIGZyYW1ld29yayBnZW5lcmF0ZWQgbWVzc2FnZSBzdHJpcCB0byBlbnN1cmUgbXV0dWFsIGV4Y2x1c2l2aXR5XG5cdFx0bWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJPUEJhY2tlbmRNZXNzYWdlVmlzaWJsZVwiLCBmYWxzZSk7XG5cdFx0bWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJPUEN1c3RvbU1lc3NhZ2VWaXNpYmxlXCIsIGZhbHNlKTtcblxuXHRcdHRoaXMuY3VzdG9tTWVzc2FnZVN0cmlwSWQgPSBtZXNzYWdlU3RyaXAuZ2V0SWQoKSB8fCB1aWQoKTsgLy8gU3RvcmUgcmVmZXJlbmNlIGZvciBwcm9ncmFtbWF0aWMgcmVtb3ZhbFxuXG5cdFx0bWVzc2FnZVN0cmlwLmFkZFN0eWxlQ2xhc3MoXCJzYXBVaVNtYWxsTWFyZ2luVG9wXCIpO1xuXHRcdHRoaXMuYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlKG1lc3NhZ2VTdHJpcCwgbWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBjdXN0b20gTWVzc2FnZVN0cmlwIHRvIHRoZSBwYWdlIGxheW91dCBpbiB0aGUgaGVhZGVyIGNvbnRhaW5lciBzdWNoIGFzIGluIGV4cGFuZGVkIGFuZCBzbmFwcGVkIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBtZXNzYWdlU3RyaXAgVGhlIE1lc3NhZ2VTdHJpcCBjb250cm9sIHRvIGFkZFxuXHQgKiBAcGFyYW0gbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHRcblx0ICovXG5cdHByaXZhdGUgYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlKG1lc3NhZ2VTdHJpcDogTWVzc2FnZVN0cmlwLCBtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dDogQ29udGV4dCk6IHZvaWQge1xuXHRcdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IHRoaXMuX3ZpZXcuYnlJZChcImZlOjpPYmplY3RQYWdlRHluYW1pY0hlYWRlclRpdGxlXCIpO1xuXHRcdGlmIChoZWFkZXJDb250YWluZXIpIHtcblx0XHRcdGNvbnN0IGluc2VydEludG9BZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgY29udHJvbFRvSW5zZXJ0OiBNZXNzYWdlU3RyaXApOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgYWdncmVnYXRpb25Db250ZW50ID0gaGVhZGVyQ29udGFpbmVyLmdldEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSk7XG5cdFx0XHRcdGlmIChhZ2dyZWdhdGlvbkNvbnRlbnQpIHtcblx0XHRcdFx0XHRjb25zdCBjb250ZW50QXJyYXkgPSBBcnJheS5pc0FycmF5KGFnZ3JlZ2F0aW9uQ29udGVudCkgPyBhZ2dyZWdhdGlvbkNvbnRlbnQgOiBbYWdncmVnYXRpb25Db250ZW50XTtcblx0XHRcdFx0XHRoZWFkZXJDb250YWluZXIuaW5zZXJ0QWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBjb250cm9sVG9JbnNlcnQsIGNvbnRlbnRBcnJheS5sZW5ndGgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0aW5zZXJ0SW50b0FnZ3JlZ2F0aW9uKFwiZXhwYW5kZWRDb250ZW50XCIsIG1lc3NhZ2VTdHJpcCk7XG5cdFx0XHRpbnNlcnRJbnRvQWdncmVnYXRpb24oXCJzbmFwcGVkQ29udGVudFwiLCBtZXNzYWdlU3RyaXAuY2xvbmUoKSk7XG5cblx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiT1BDdXN0b21NZXNzYWdlU3RyaXBWaXNpYmxlXCIsIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIHRoZSBhY3RpdmUgY3VzdG9tIE1lc3NhZ2VTdHJpcCBwcm9ncmFtbWF0aWNhbGx5LlxuXHQgKi9cblx0cHJpdmF0ZSByZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmN1c3RvbU1lc3NhZ2VTdHJpcElkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRmluZCBhbmQgcmVtb3ZlIHRoZSBjdXN0b20gbWVzc2FnZSBzdHJpcCBmcm9tIGhlYWRlciBjb250YWluZXJcblx0XHRjb25zdCBoZWFkZXJDb250YWluZXIgPSB0aGlzLl92aWV3LmJ5SWQoXCJmZTo6T2JqZWN0UGFnZUR5bmFtaWNIZWFkZXJUaXRsZVwiKTtcblx0XHRpZiAoaGVhZGVyQ29udGFpbmVyKSB7XG5cdFx0XHRjb25zdCByZW1vdmVGcm9tQWdncmVnYXRpb24gPSAoYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIGlkTWF0Y2hlcjogKGNvbnRyb2xJZDogc3RyaW5nKSA9PiBib29sZWFuKTogdm9pZCA9PiB7XG5cdFx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uQ29udGVudCA9IGhlYWRlckNvbnRhaW5lci5nZXRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUpIGFzIENvbnRyb2xbXTtcblx0XHRcdFx0aWYgKGFnZ3JlZ2F0aW9uQ29udGVudCkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbnRyb2xUb1JlbW92ZSA9IGFnZ3JlZ2F0aW9uQ29udGVudC5maW5kKChjb250cm9sKSA9PiBpZE1hdGNoZXIoY29udHJvbC5nZXRJZCgpKSk7XG5cdFx0XHRcdFx0aWYgKGNvbnRyb2xUb1JlbW92ZSkge1xuXHRcdFx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLnJlbW92ZUFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgY29udHJvbFRvUmVtb3ZlKTtcblx0XHRcdFx0XHRcdGNvbnRyb2xUb1JlbW92ZS5kZXN0cm95KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0cmVtb3ZlRnJvbUFnZ3JlZ2F0aW9uKFwiZXhwYW5kZWRDb250ZW50XCIsIChjb250cm9sSWQpID0+IGNvbnRyb2xJZCA9PT0gdGhpcy5jdXN0b21NZXNzYWdlU3RyaXBJZCk7XG5cdFx0XHRyZW1vdmVGcm9tQWdncmVnYXRpb24oXCJzbmFwcGVkQ29udGVudFwiLCAoY29udHJvbElkKSA9PiBjb250cm9sSWQuaW5jbHVkZXModGhpcy5jdXN0b21NZXNzYWdlU3RyaXBJZCArIFwiLV9fY2xvbmVcIikpO1xuXHRcdH1cblxuXHRcdHRoaXMuY3VzdG9tTWVzc2FnZVN0cmlwSWQgPSB1bmRlZmluZWQ7XG5cblx0XHRjb25zdCBtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuX3ZpZXdcblx0XHRcdC5nZXRNb2RlbChcImludGVybmFsXCIpXG5cdFx0XHQuYmluZENvbnRleHQodGhpcy5fZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoKCkpXG5cdFx0XHQuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0aWYgKG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0KSB7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcIk9QQ3VzdG9tTWVzc2FnZVN0cmlwVmlzaWJsZVwiLCBmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBNZXNzYWdlSXRlbSBmcm9tIGEgTWVzc2FnZSBpbnN0YW5jZS5cblx0ICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgdGV4dCwgdHlwZSwgZGVzY3JpcHRpb24sIGV0Yy5cblx0ICogQHJldHVybnMgVGhlIGNyZWF0ZWQgTWVzc2FnZUl0ZW0gaW5zdGFuY2UgZm9yIHRoZSBNZXNzYWdlUG9wb3Zlci5cblx0ICovXG5cdHByaXZhdGUgY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZTogTWVzc2FnZSk6IE1lc3NhZ2VJdGVtIHtcblx0XHRjb25zdCBzRGVzY3JpcHRpb25Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG1lc3NhZ2UuZ2V0RGVzY3JpcHRpb25Vcmw/LigpO1xuXG5cdFx0cmV0dXJuIG5ldyBNZXNzYWdlSXRlbSh7XG5cdFx0XHR0aXRsZTogbWVzc2FnZS5nZXRNZXNzYWdlKCksXG5cdFx0XHRkZXNjcmlwdGlvbjogbWVzc2FnZS5nZXREZXNjcmlwdGlvbigpLFxuXHRcdFx0dHlwZTogbWVzc2FnZS5nZXRUeXBlKCksXG5cdFx0XHRsb25ndGV4dFVybDogc0Rlc2NyaXB0aW9uVXJsLFxuXHRcdFx0c3VidGl0bGU6IG1lc3NhZ2UuZ2V0QWRkaXRpb25hbFRleHQ/LigpLFxuXHRcdFx0Z3JvdXBOYW1lOiBcIlRfTUVTU0FHRV9CVVRUT05fU0FQRkVfTUVTU0FHRV9HUk9VUF9HRU5FUkFMXCIsXG5cdFx0XHRhY3RpdmVUaXRsZTogISFtZXNzYWdlLmdldENvbnRyb2xJZHM/LigpLmxlbmd0aFxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBNZXNzYWdlUG9wb3ZlciBmb3IgYSBzZXQgb2YgTWVzc2FnZUl0ZW1zIGFuZCBhdHRhY2hlc1xuXHQgKiBhbiBhc3luYyBkZXNjcmlwdGlvbiBoYW5kbGVyIHRvIGxvYWQgbG9uZyB0ZXh0IHdoZW4gbmVlZGVkLlxuXHQgKiBAcGFyYW0gbWVzc2FnZUl0ZW1zIEFycmF5IG9mIE1lc3NhZ2VJdGVtcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHBvcG92ZXIuXG5cdCAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIE1lc3NhZ2VQb3BvdmVyIGluc3RhbmNlLlxuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbSk6IE1lc3NhZ2VQb3BvdmVyIHtcblx0XHRjb25zdCBwb3BvdmVyID0gbmV3IE1lc3NhZ2VQb3BvdmVyKHtcblx0XHRcdGl0ZW1zOiBtZXNzYWdlSXRlbXNcblx0XHR9KSBhcyBNZXNzYWdlUG9wb3Zlcjtcblx0XHRyZXR1cm4gcG9wb3Zlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBPcGVucyBhIE1lc3NhZ2VQb3BvdmVyIGZvciB0aGUgcHJvdmlkZWQgbWVzc2FnZXMsIGFuY2hvcmVkIHRvIHRoZVxuXHQgKiBzb3VyY2UgY29udHJvbCBvZiB0aGUgVUk1IGV2ZW50LlxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIFVJNSBldmVudCBmcm9tIHRoZSBjb250cm9sIHRoYXQgdHJpZ2dlcnMgdGhlIHBvcG92ZXIuXG5cdCAqIEBwYXJhbSBtZXNzYWdlIEFycmF5IG9mIE1lc3NhZ2Ugb2JqZWN0cyB0byBiZSBzaG93biBpbiB0aGUgcG9wb3Zlci5cblx0ICogQHJldHVybnMgVGhlIE1lc3NhZ2VQb3BvdmVyIHRoYXQgd2FzIG9wZW5lZC5cblx0ICovXG5cdHNob3dNZXNzYWdlUG9wb3ZlcihldmVudDogVUk1RXZlbnQsIG1lc3NhZ2U6IE1lc3NhZ2VbXSk6IE1lc3NhZ2VQb3BvdmVyIHtcblx0XHRjb25zdCBtZXNzYWdlSXRlbSA9IHRoaXMuY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZVswXSk7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuY3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW0pO1xuXHRcdGNvbnN0IHNvdXJjZUNvbnRyb2wgPSBldmVudC5nZXRTb3VyY2U/LigpIGFzIENvbnRyb2w7XG5cdFx0c291cmNlQ29udHJvbD8uYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdHBvcG92ZXIub3BlbkJ5KHNvdXJjZUNvbnRyb2wpO1xuXHRcdHJldHVybiBwb3BvdmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIHRoZSBtZXNzYWdlIHN0cmlwIGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgaGVhZGVyIG9mIHRoZSBPYmplY3RQYWdlLlxuXHQgKiBAcGFyYW0gbWVzc2FnZXMgVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkXG5cdCAqIEBwYXJhbSBvcmlnaW4gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZS4gSXQgbWF5IGNvbWUgZnJvbSBhIGJhY2stZW5kIG1lc3NhZ2Ugb3IgYSBjdXN0b20gbWVzc2FnZVxuXHQgKi9cblx0X3Nob3dNZXNzYWdlcyhtZXNzYWdlczogTWVzc2FnZVtdLCBvcmlnaW46IFwiQmFja2VuZFwiIHwgXCJDdXN0b21cIiA9IFwiQ3VzdG9tXCIpOiB2b2lkIHtcblx0XHR0cnkge1xuXHRcdFx0dGhpcy5yZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAoKTtcblxuXHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpO1xuXHRcdFx0Y29uc3QgbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQgPSBpbnRlcm5hbE1vZGVsLmJpbmRDb250ZXh0KHRoaXMuX2dldE1lc3NhZ2VTdHJpcEJpbmRpbmdDb250ZXh0UGF0aCgpKS5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdGlmICghbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IFJlc291cmNlTW9kZWxIZWxwZXIuZ2V0UmVzb3VyY2VNb2RlbCh2aWV3KTtcblx0XHRcdGxldCBtZXNzYWdlOiBNZXNzYWdlIHwgbnVsbCA9IG1lc3NhZ2VzWzBdIHx8IG51bGw7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1Ake29yaWdpbn1NZXNzYWdlVmlzaWJsZWAsICEhbWVzc2FnZSk7XG5cdFx0XHRzd2l0Y2ggKG1lc3NhZ2VzLmxlbmd0aCkge1xuXHRcdFx0XHRjYXNlIDA6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgMTpcblx0XHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXNbMF07XG5cdFx0XHRcdFx0Y29uc3QgaGFzRGVzY3JpcHRpb25VcmwgPSAhIW1lc3NhZ2U/LmdldERlc2NyaXB0aW9uVXJsKCk7XG5cdFx0XHRcdFx0Y29uc3QgaXNFZGl0TW9kZSA9IENvbW1vblV0aWxzLmdldElzRWRpdGFibGUodmlldyk7XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdGNvbnN0IG9iamVjdFBhZ2UgPSB2aWV3LmdldENvbnRlbnQoKT8uWzBdIGFzIE9iamVjdFBhZ2VMYXlvdXQ7XG5cdFx0XHRcdFx0XHRjb25zdCBoZWFkZXJUaXRsZSA9IG9iamVjdFBhZ2UuZ2V0SGVhZGVyVGl0bGUoKSBhcyBPYmplY3RQYWdlRHluYW1pY0hlYWRlclRpdGxlO1xuXG5cdFx0XHRcdFx0XHQvLyBDb2xsZWN0IGFsbCBNZXNzYWdlU3RyaXBzIChleGNsdWRpbmcgQ29sbGFib3JhdGlvbiBTdHJpcHMpXG5cdFx0XHRcdFx0XHRjb25zdCBhbGxTdHJpcHMgPSBbXG5cdFx0XHRcdFx0XHRcdC4uLihoZWFkZXJUaXRsZS5nZXRTbmFwcGVkQ29udGVudD8uKCkgfHwgW10pLFxuXHRcdFx0XHRcdFx0XHQuLi4oaGVhZGVyVGl0bGUuZ2V0RXhwYW5kZWRDb250ZW50Py4oKSB8fCBbXSlcblx0XHRcdFx0XHRcdF0uZmlsdGVyKFxuXHRcdFx0XHRcdFx0XHQoaXRlbSk6IGl0ZW0gaXMgTWVzc2FnZVN0cmlwID0+IGl0ZW0gaW5zdGFuY2VvZiBNZXNzYWdlU3RyaXAgJiYgIWl0ZW0uZ2V0SWQoKT8uaW5jbHVkZXMoXCJDb2xsYWJvcmF0aW9uU3RyaXBcIilcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIE9ubHkgYWRkIGxpbmtzIHdoZW4gbWVzc2FnZSBpcyBmcm9tIEJhY2tlbmQsIGluIERpc3BsYXkgbW9kZSwgYW5kIGhhcyBhIGRlc2NyaXB0aW9uIFVSTFxuXHRcdFx0XHRcdFx0aWYgKG9yaWdpbiA9PT0gXCJCYWNrZW5kXCIgJiYgIWlzRWRpdE1vZGUgJiYgaGFzRGVzY3JpcHRpb25VcmwpIHtcblx0XHRcdFx0XHRcdFx0YWxsU3RyaXBzLmZvckVhY2goKHN0cmlwKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gQWx3YXlzIGRlc3Ryb3kgdGhlIGV4aXN0aW5nIGxpbmsgYmVmb3JlIGNyZWF0aW5nIGEgbmV3IG9uZVxuXHRcdFx0XHRcdFx0XHRcdGlmIChzdHJpcC5nZXRMaW5rKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHN0cmlwLmRlc3Ryb3lMaW5rKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGxpbmsgPSBuZXcgTGluayh7XG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0OiByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX01FU1NBR0VfSEFORExJTkdfU0FQRkVfRVJST1JfTUVTU0FHRV9TVFJJUF9MSU5LX1RFWFRcIiksXG5cdFx0XHRcdFx0XHRcdFx0XHRwcmVzczogKGV2ZW50OiBVSTVFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3dNZXNzYWdlUG9wb3ZlcihldmVudCwgW21lc3NhZ2UhXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0c3RyaXAuc2V0TGluayhsaW5rKTtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBSZW1vdmUgbGlua3Mgd2hlbiBub3QgYXBwbGljYWJsZVxuXHRcdFx0XHRcdFx0XHRhbGxTdHJpcHMuZm9yRWFjaCgoc3RyaXApID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoc3RyaXAuZ2V0TGluaygpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRzdHJpcC5kZXN0cm95TGluaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcIlVuYWJsZSB0byBhdHRhY2ggbGluayB0byBPYmplY3RQYWdlIE1lc3NhZ2VTdHJpcFwiLCBlcnIgYXMgRXJyb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlU3RhdHM6IHsgW2tleTogc3RyaW5nXTogeyBpZDogbnVtYmVyOyBjb3VudDogbnVtYmVyIH0gfSA9IHtcblx0XHRcdFx0XHRcdEVycm9yOiB7IGlkOiAyLCBjb3VudDogMCB9LFxuXHRcdFx0XHRcdFx0V2FybmluZzogeyBpZDogMSwgY291bnQ6IDAgfSxcblx0XHRcdFx0XHRcdEluZm9ybWF0aW9uOiB7IGlkOiAwLCBjb3VudDogMCB9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXMucmVkdWNlKFxuXHRcdFx0XHRcdFx0KGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUeXBlID0gY3VycmVudFZhbHVlLmdldFR5cGUoKTtcblx0XHRcdFx0XHRcdFx0YWNjLnNldFR5cGUobWVzc2FnZVN0YXRzW2N1cnJlbnRUeXBlXS5pZCA+IG1lc3NhZ2VTdGF0c1thY2MuZ2V0VHlwZSgpXS5pZCA/IGN1cnJlbnRUeXBlIDogYWNjLmdldFR5cGUoKSk7XG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uY291bnQrKztcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRuZXcgTWVzc2FnZSh7IHR5cGU6IE1lc3NhZ2VUeXBlLkluZm9ybWF0aW9uIH0pXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAob3JpZ2luID09PSBcIkJhY2tlbmRcIiAmJiAhQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KSkge1xuXHRcdFx0XHRcdFx0bWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYE9QJHtvcmlnaW59TWVzc2FnZVZpc2libGVgLCBmYWxzZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBPUCR7b3JpZ2lufU1lc3NhZ2VWaXNpYmxlYCwgISFtZXNzYWdlKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAobWVzc2FnZVN0YXRzLkVycm9yLmNvdW50ID4gMCkge1xuXHRcdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIk9CSkVDVFBBR0VTVEFURV9FUlJPUlwiKSk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChtZXNzYWdlU3RhdHMuV2FybmluZy5jb3VudCA+IDApIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZU1vZGVsLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfV0FSTklOR1wiKSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZU1vZGVsLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfSU5GT1JNQVRJT05cIikpO1xuXHRcdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBPUCR7b3JpZ2lufU1lc3NhZ2VUZXh0YCwgbWVzc2FnZSA/IG1lc3NhZ2UuZ2V0TWVzc2FnZSgpIDogbnVsbCk7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1Ake29yaWdpbn1NZXNzYWdlVHlwZWAsIG1lc3NhZ2UgPyBtZXNzYWdlLmdldFR5cGUoKSA6IG51bGwpO1xuXHRcdFx0aWYgKG1lc3NhZ2UpIHtcblx0XHRcdFx0SW52aXNpYmxlTWVzc2FnZS5nZXRJbnN0YW5jZSgpLmFubm91bmNlKG1lc3NhZ2UuZ2V0TWVzc2FnZSgpLCBJbnZpc2libGVNZXNzYWdlTW9kZS5Bc3NlcnRpdmUpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IGRpc3BsYXkgT2JqZWN0UGFnZSBtZXNzYWdlXCIpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIaWRlcyB0aGUgbWVzc2FnZSBzdHJpcCBiZWxvdyB0aGUgYW5jaG9yIGJhci5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0aGlkZU1lc3NhZ2UoKTogdm9pZCB7XG5cdFx0Y29uc3QgbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQgPSB0aGlzLl92aWV3XG5cdFx0XHQuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKVxuXHRcdFx0LmJpbmRDb250ZXh0KHRoaXMuX2dldE1lc3NhZ2VTdHJpcEJpbmRpbmdDb250ZXh0UGF0aCgpKVxuXHRcdFx0LmdldEJvdW5kQ29udGV4dCgpITtcblx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1BDdXN0b21NZXNzYWdlVmlzaWJsZWAsIGZhbHNlKTtcblx0XHR0aGlzLnJlbW92ZUN1c3RvbU1lc3NhZ2VTdHJpcCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCB0YWtlIHRoZSByZWNvbW1lbmRhdGlvbiBkYXRhIGRldGFpbHMsIHRyYW5zZm9ybSBpdCwgYW5kIHVwZGF0ZSB0aGUgaW50ZXJuYWwgbW9kZWwuXG5cdCAqIEBwYXJhbSBkYXRhIFJlY29tbWVuZGF0aW9uIGRhdGEgZm9yIHRoZSBhcHBcblx0ICovXG5cdHNldFJlY29tbWVuZGF0aW9ucyhkYXRhOiBJbkNvbXBsZXRlbmVzc0luZm9UeXBlKTogdm9pZCB7XG5cdFx0cmVjb21tZW5kYXRpb25IZWxwZXIudHJhbnNmb3JtUmVjb21tZW5kYXRpb25zRm9ySW50ZXJuYWxTdG9yYWdlKGRhdGEpO1xuXHRcdHRoaXMuX3ZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5zZXRQcm9wZXJ0eShcIi9yZWNvbW1lbmRhdGlvbnNEYXRhXCIsIGRhdGEpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlZmluZXMgYSBjb250cm9sIHRvIGJlIHRoZSB0aXRsZSBvd25lciBvZiBpdHMgc2VjdGlvbi9zdWJzZWN0aW9uLiBBcyB0aGUgdGl0bGUgb3duZXJzIG9mIHN0YW5kYXJkIHN1YnNlY3Rpb25zIGFyZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGZvciBjdXN0b20gc2VjdGlvbi9zdWJzZWN0aW9uLlxuXHQgKiBUaGUgdGl0bGUgb3duZXIgY2FuIGJlIGVpdGhlciBvbmUgb2YgdGhlIHN0YW5kYXJkIGJ1aWxkaW5nIGJsb2NrcyAoRm9ybSwgQ2hhcnQsIFRhYmxlKSwgb3IgcmV1c2UgY29tcG9uZW50cywgb3Igc2FwLm0uVGl0bGUuXG5cdCAqIFRoZSBmcmFtZXdvcmsgYWRhcHRzIHRoZSB2YWx1ZSBvZiB0aGVzZSBwcm9wZXJ0aWVzIHRvIGJlIGFsaWduZWQgd2l0aCB0aGUgdGl0bGUgdGhhdCBpcyBzaG93biBpbiB0aGUgYW5jaG9yIGJhciAob3IgaWNvbiB0YWIgYmFyKSBmb3IgdGhlIHNlY3Rpb24uIE1vcmVvdmVyLCB0aGUgdGl0bGUgb2YgdGhlIHN1YnNlY3Rpb24gKGFuZCBpZiBhcHBsaWNhYmxlIGFsc28gb2YgdGhlIHNlY3Rpb24pIGlzIGhpZGRlbiBpbiBvcmRlciB0byBwcmV2ZW50IHJlZHVuZGFudCB0aXRsZXMsIGlmIHRoZSBzdWJzZWN0aW9uIHBvc3Nlc3NlcyBhIHRpdGxlIG93bmVyLlxuXHQgKiBIaW50OiBJZiB5b3UgY2hvb3NlIHRvIHNldCBzYXAubS5UaXRsZSBhcyB0aGUgdGl0bGUgb3duZXIsIHN0eWxpbmcgYWRqdXN0bWVudHMgbWF5IGJlIHJlcXVpcmVkIGluIHRoZSBjdXN0b20gdmlldy4gRm9yIGV4YW1wbGUsIGlmIHNhcC5tLlRpdGxlIGlzIHNldCBhcyB0aXRsZSBvd25lciB3aGljaCBiZWxvbmdzIHRvIHNhcC5tLk92ZXJmbG93VG9vbGJhciBvciB0byBzYXAubS5Ub29sYmFyLCB0aGVuIHRoZSDigJhkZXNpZ27igJkgcHJvcGVydHkgb2YgdGhlIHRvb2xiYXIgY29udHJvbCBpcyB0byBiZSBzZXQgdG8g4oCYVHJhbnNwYXJlbnTigJkuXG5cdCAqIEBwYXJhbSBjb250cm9sIFRoZSBzaW5nbGUgY29udGVudCBjb250cm9sIGNhbiBiZSBlaXRoZXIgb25lIG9mIHRoZSBzdGFuZGFyZCBidWlsZGluZyBibG9ja3MgKEZvcm0sIENoYXJ0LCBUYWJsZSksIG9yIHJldXNlIGNvbXBvbmVudHMsIG9yIHNhcC5tLlRpdGxlLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRBc1NlY3Rpb25UaXRsZU93bmVyKGNvbnRyb2w6IE1hbmFnZWRPYmplY3QpOiB2b2lkIHtcblx0XHRsZXQgc2VjdGlvbjtcblx0XHRjb25zdCBvcmlnaW5hbENvbnRyb2wgPSBjb250cm9sO1xuXHRcdGxldCByZXVzZUNvbXBvbmVudDtcblx0XHR3aGlsZSAoY29udHJvbCkge1xuXHRcdFx0aWYgKGNvbnRyb2wuaXNBPFNlY3Rpb24+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCIpKSB7XG5cdFx0XHRcdHNlY3Rpb24gPSBjb250cm9sO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmIChjb250cm9sLmlzQTxSZXVzZUNvbXBvbmVudD4oXCJzYXAuZmUuY29yZS5SZXVzZUNvbXBvbmVudFwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbC5jb250YWluZXIuZ2V0UGFyZW50KCkgYXMgQ29udHJvbDtcblx0XHRcdFx0cmV1c2VDb21wb25lbnQgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgY29udHJvbFBhcmVudCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0XHRpZiAoY29udHJvbFBhcmVudCkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbFBhcmVudDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoc2VjdGlvbikge1xuXHRcdFx0aWYgKHJldXNlQ29tcG9uZW50ICYmIHNlY3Rpb24uZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRzZWN0aW9uLmFkanVzdEZvclNpbmdsZUNvbnRlbnQob3JpZ2luYWxDb250cm9sLCB7IG11bHRpcGxlU3ViU2VjdGlvbnNXaXRoUmV1c2VDb21wb25lbnQ6IHRydWUgfSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWN0aW9uLmFkanVzdEZvclNpbmdsZUNvbnRlbnQob3JpZ2luYWxDb250cm9sKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7RUErQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBUkEsSUFVTUEsc0JBQXNCLElBQUFDLElBQUEsR0FEM0JDLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLGFBQUE7SUFBQSxTQUFBSix1QkFBQTtNQUFBLE9BQUFJLGFBQUEsQ0FBQUMsS0FBQSxPQUFBQyxTQUFBO0lBQUE7SUFBQUMsY0FBQSxDQUFBUCxzQkFBQSxFQUFBSSxhQUFBO0lBQUEsSUFBQUksTUFBQSxHQUFBUixzQkFBQSxDQUFBUyxTQUFBO0lBRTFEO0FBQ0Q7QUFDQTtJQUdDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFQQ0QsTUFBQSxDQVFNRSxPQUFPLEdBQWIsZUFBTUEsT0FBT0EsQ0FBQ0MsS0FBeUIsRUFBaUI7TUFDdkQsTUFBTUMsZUFBZSxHQUFHLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO01BQ3RELElBQUksQ0FBQ0YsZUFBZSxFQUFFO1FBQ3JCO1FBQ0EsT0FBT0csT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUN6QjtNQUNBLE1BQU1DLGFBQWEsR0FBR0MsV0FBVyxDQUFDQyxlQUFlLENBQUMsSUFBSSxDQUFDTixLQUFLLENBQUM7UUFDNURPLG1CQUFtQixHQUFHSCxhQUFh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
|
|
441
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3RQYWdlRXh0ZW5zaW9uQVBJIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX0V4dGVuc2lvbkFQSSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJvU2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwib01ldGFNb2RlbCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwib1NpZGVFZmZlY3RzIiwidGFyZ2V0UHJvcGVydGllcyIsInRhcmdldEVudGl0aWVzIiwidW5kZWZpbmVkIiwicHVzaCIsIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoIiwiYWxsUGF0aHMiLCJBcnJheSIsImlzQXJyYXkiLCJvd25lckNvbXBvbmVudCIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJjb250ZXh0UGF0aCIsImdldENvbnRleHRQYXRoIiwiZ2V0RW50aXR5U2V0IiwicGF0aCIsImtpbmQiLCJnZXRPYmplY3QiLCJyZWplY3QiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwic1RhYmxlSWQiLCJ0YWJsZSIsImJ5SWQiLCJpc0EiLCJnZXRQYXJlbnQiLCJzaG93U2lkZUNvbnRlbnQiLCJzU3ViU2VjdGlvbktleSIsImJTaG93Iiwic0Jsb2NrSUQiLCJnZXRTaWRlQ29udGVudExheW91dElEIiwib0Jsb2NrIiwiYkJsb2NrU3RhdGUiLCJnZXRTaG93U2lkZUNvbnRlbnQiLCJzZXRTaG93U2lkZUNvbnRlbnQiLCJfZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoIiwiaW50ZXJuYWxNb2RlbENvbnRleHRQYXRoIiwiZ2V0UGF0aCIsInZpZXdDb250ZXh0UGF0aCIsInJlcGxhY2UiLCJzaG93TWVzc2FnZXMiLCJtZXNzYWdlc09yU3RyaXAiLCJfc2hvd01lc3NhZ2VzIiwic2hvd0N1c3RvbU1lc3NhZ2VTdHJpcCIsIm1lc3NhZ2VTdHJpcCIsIm1lc3NhZ2VTdHJpcEludGVybmFsTW9kZWxDb250ZXh0IiwiYmluZENvbnRleHQiLCJnZXRCb3VuZENvbnRleHQiLCJyZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAiLCJzZXRQcm9wZXJ0eSIsImN1c3RvbU1lc3NhZ2VTdHJpcElkIiwiZ2V0SWQiLCJ1aWQiLCJhZGRTdHlsZUNsYXNzIiwiYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlIiwibWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQiLCJoZWFkZXJDb250YWluZXIiLCJpbnNlcnRJbnRvQWdncmVnYXRpb24iLCJhZ2dyZWdhdGlvbk5hbWUiLCJjb250cm9sVG9JbnNlcnQiLCJhZ2dyZWdhdGlvbkNvbnRlbnQiLCJnZXRBZ2dyZWdhdGlvbiIsImNvbnRlbnRBcnJheSIsImluc2VydEFnZ3JlZ2F0aW9uIiwibGVuZ3RoIiwiY2xvbmUiLCJyZW1vdmVGcm9tQWdncmVnYXRpb24iLCJpZE1hdGNoZXIiLCJjb250cm9sVG9SZW1vdmUiLCJmaW5kIiwiY29udHJvbCIsInJlbW92ZUFnZ3JlZ2F0aW9uIiwiZGVzdHJveSIsImNvbnRyb2xJZCIsImluY2x1ZGVzIiwiY3JlYXRlTWVzc2FnZUl0ZW0iLCJtZXNzYWdlIiwic0Rlc2NyaXB0aW9uVXJsIiwiZ2V0RGVzY3JpcHRpb25VcmwiLCJNZXNzYWdlSXRlbSIsInRpdGxlIiwiZ2V0TWVzc2FnZSIsImRlc2NyaXB0aW9uIiwiZ2V0RGVzY3JpcHRpb24iLCJ0eXBlIiwiZ2V0VHlwZSIsImxvbmd0ZXh0VXJsIiwic3VidGl0bGUiLCJnZXRBZGRpdGlvbmFsVGV4dCIsImdyb3VwTmFtZSIsImFjdGl2ZVRpdGxlIiwiZ2V0Q29udHJvbElkcyIsImNyZWF0ZU1lc3NhZ2VQb3BvdmVyIiwibWVzc2FnZUl0ZW1zIiwicG9wb3ZlciIsIk1lc3NhZ2VQb3BvdmVyIiwiaXRlbXMiLCJzaG93TWVzc2FnZVBvcG92ZXIiLCJldmVudCIsIm1lc3NhZ2VJdGVtIiwic291cmNlQ29udHJvbCIsImdldFNvdXJjZSIsImFkZERlcGVuZGVudCIsIm9wZW5CeSIsIm1lc3NhZ2VzIiwib3JpZ2luIiwidmlldyIsImludGVybmFsTW9kZWwiLCJyZXNvdXJjZU1vZGVsIiwiUmVzb3VyY2VNb2RlbEhlbHBlciIsImdldFJlc291cmNlTW9kZWwiLCJoYXNEZXNjcmlwdGlvblVybCIsImlzRWRpdE1vZGUiLCJnZXRJc0VkaXRhYmxlIiwib2JqZWN0UGFnZSIsImdldENvbnRlbnQiLCJoZWFkZXJUaXRsZSIsImdldEhlYWRlclRpdGxlIiwiYWxsU3RyaXBzIiwiZ2V0U25hcHBlZENvbnRlbnQiLCJnZXRFeHBhbmRlZENvbnRlbnQiLCJmaWx0ZXIiLCJpdGVtIiwiTWVzc2FnZVN0cmlwIiwiZm9yRWFjaCIsInN0cmlwIiwiZ2V0TGluayIsImRlc3Ryb3lMaW5rIiwibGluayIsIkxpbmsiLCJ0ZXh0IiwiZ2V0VGV4dCIsInByZXNzIiwic2V0TGluayIsImVyciIsIkxvZyIsIndhcm5pbmciLCJtZXNzYWdlU3RhdHMiLCJFcnJvciIsImlkIiwiY291bnQiLCJXYXJuaW5nIiwiSW5mb3JtYXRpb24iLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50VmFsdWUiLCJjdXJyZW50VHlwZSIsInNldFR5cGUiLCJNZXNzYWdlIiwiTWVzc2FnZVR5cGUiLCJzZXRNZXNzYWdlIiwiSW52aXNpYmxlTWVzc2FnZSIsImdldEluc3RhbmNlIiwiYW5ub3VuY2UiLCJJbnZpc2libGVNZXNzYWdlTW9kZSIsIkFzc2VydGl2ZSIsImVycm9yIiwiaGlkZU1lc3NhZ2UiLCJzZXRSZWNvbW1lbmRhdGlvbnMiLCJkYXRhIiwicmVjb21tZW5kYXRpb25IZWxwZXIiLCJ0cmFuc2Zvcm1SZWNvbW1lbmRhdGlvbnNGb3JJbnRlcm5hbFN0b3JhZ2UiLCJzZXRBc1NlY3Rpb25UaXRsZU93bmVyIiwic2VjdGlvbiIsIm9yaWdpbmFsQ29udHJvbCIsInJldXNlQ29tcG9uZW50IiwiY29udGFpbmVyIiwiY29udHJvbFBhcmVudCIsImdldFZpc2libGVTdWJTZWN0aW9ucyIsImFkanVzdEZvclNpbmdsZUNvbnRlbnQiLCJtdWx0aXBsZVN1YlNlY3Rpb25zV2l0aFJldXNlQ29tcG9uZW50IiwiRXh0ZW5zaW9uQVBJIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFeHRlbnNpb25BUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdWlkIGZyb20gXCJzYXAvYmFzZS91dGlsL3VpZFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIFJldXNlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9SZXVzZUNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCB0eXBlIHsgSW5Db21wbGV0ZW5lc3NJbmZvVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1JlY29tbWVuZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyByZWNvbW1lbmRhdGlvbkhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1JlY29tbWVuZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9SZXNvdXJjZU1vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IFNpZGVFZmZlY3RzVGFyZ2V0VHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSBTZWN0aW9uIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL1NlY3Rpb25cIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgTGluayBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IE1lc3NhZ2VJdGVtIGZyb20gXCJzYXAvbS9NZXNzYWdlSXRlbVwiO1xuaW1wb3J0IE1lc3NhZ2VQb3BvdmVyIGZyb20gXCJzYXAvbS9NZXNzYWdlUG9wb3ZlclwiO1xuaW1wb3J0IE1lc3NhZ2VTdHJpcCBmcm9tIFwic2FwL20vTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgdHlwZSBVSTVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBJbnZpc2libGVNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVNZXNzYWdlXCI7XG5pbXBvcnQgeyBJbnZpc2libGVNZXNzYWdlTW9kZSB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgTWVzc2FnZVR5cGUgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVR5cGVcIjtcbmltcG9ydCB0eXBlIER5bmFtaWNTaWRlQ29udGVudCBmcm9tIFwic2FwL3VpL2xheW91dC9EeW5hbWljU2lkZUNvbnRlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9tZGMvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VEeW5hbWljSGVhZGVyVGl0bGUgZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VEeW5hbWljSGVhZGVyVGl0bGVcIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VMYXlvdXQgZnJvbSBcInNhcC91eGFwL09iamVjdFBhZ2VMYXlvdXRcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gQVBJIGZvciBvYmplY3QgcGFnZXMgb24gU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBUbyBjb3JyZWN0bHkgaW50ZWdyYXRlIHlvdXIgYXBwIGV4dGVuc2lvbiBjb2Rpbmcgd2l0aCBTQVAgRmlvcmkgZWxlbWVudHMsIHVzZSBvbmx5IHRoZSBleHRlbnNpb25BUEkgb2YgU0FQIEZpb3JpIGVsZW1lbnRzLiBEb24ndCBhY2Nlc3Mgb3IgbWFuaXB1bGF0ZSBjb250cm9scywgcHJvcGVydGllcywgbW9kZWxzLCBvciBvdGhlciBpbnRlcm5hbCBvYmplY3RzIGNyZWF0ZWQgYnkgdGhlIFNBUCBGaW9yaSBlbGVtZW50cyBmcmFtZXdvcmsuXG4gKiBAcHVibGljXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAZmluYWxcbiAqIEBzaW5jZSAxLjc5LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVwiKVxuY2xhc3MgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSBleHRlbmRzIEV4dGVuc2lvbkFQSSB7XG5cdC8qKlxuXHQgKiBJRCBvZiB0aGUgYWN0aXZlIGN1c3RvbSBNZXNzYWdlU3RyaXAgZm9yIHByb2dyYW1tYXRpYyByZW1vdmFsLlxuXHQgKi9cblx0cHJpdmF0ZSBjdXN0b21NZXNzYWdlU3RyaXBJZD86IHN0cmluZztcblxuXHQvKipcblx0ICogUmVmcmVzaGVzIGVpdGhlciB0aGUgd2hvbGUgb2JqZWN0IHBhZ2Ugb3Igb25seSBwYXJ0cyBvZiBpdC5cblx0ICogQHBhcmFtIFt2UGF0aF0gUGF0aCBvciBhcnJheSBvZiBwYXRocyByZWZlcnJpbmcgdG8gZW50aXRpZXMgb3IgcHJvcGVydGllcyB0byBiZSByZWZyZXNoZWQuXG5cdCAqIElmIG9taXR0ZWQsIHRoZSB3aG9sZSBvYmplY3QgcGFnZSBpcyByZWZyZXNoZWQuIFRoZSBwYXRoIFwiXCIgcmVmcmVzaGVzIHRoZSBlbnRpdHkgYXNzaWduZWQgdG8gdGhlIG9iamVjdCBwYWdlXG5cdCAqIHdpdGhvdXQgbmF2aWdhdGlvbi5cblx0ICogQHJldHVybnMgUmVzb2x2ZWQgb25jZSB0aGUgZGF0YSBpcyByZWZyZXNoZWQgb3IgcmVqZWN0ZWQgaWYgdGhlIHJlcXVlc3QgZmFpbGVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHJlZnJlc2godlBhdGg/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG9CaW5kaW5nQ29udGV4dCA9IHRoaXMuX3ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRpZiAoIW9CaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0Ly8gbm90aGluZyB0byBiZSByZWZyZXNoZWQgLSBkbyBub3QgYmxvY2sgdGhlIGFwcCFcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBTaWRlRWZmZWN0c1RhcmdldFR5cGUgPSB7XG5cdFx0XHRcdHRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHR0YXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cblx0XHRpZiAodlBhdGggPT09IHVuZGVmaW5lZCB8fCB2UGF0aCA9PT0gbnVsbCkge1xuXHRcdFx0Ly8gd2UganVzdCBhZGQgYW4gZW1wdHkgcGF0aCB3aGljaCBzaG91bGQgcmVmcmVzaCB0aGUgcGFnZSB3aXRoIGFsbCBkZXBlbmRlbnQgYmluZGluZ3Ncblx0XHRcdG9TaWRlRWZmZWN0cy50YXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IFwiXCJcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhbGxQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0Y29uc3Qgb3duZXJDb21wb25lbnQgPSB0aGlzLl9jb250cm9sbGVyLmdldE93bmVyQ29tcG9uZW50KCkgYXMgdW5rbm93biBhcyB7XG5cdFx0XHRcdGdldENvbnRleHRQYXRoOiAoKSA9PiBzdHJpbmc7XG5cdFx0XHRcdGdldEVudGl0eVNldDogKCkgPT4gc3RyaW5nO1xuXHRcdFx0fTtcblx0XHRcdGNvbnN0IGNvbnRleHRQYXRoID0gb3duZXJDb21wb25lbnQuZ2V0Q29udGV4dFBhdGgoKSB8fCBgLyR7b3duZXJDb21wb25lbnQuZ2V0RW50aXR5U2V0KCl9YDtcblxuXHRcdFx0Zm9yIChjb25zdCBwYXRoIG9mIGFsbFBhdGhzKSB7XG5cdFx0XHRcdGlmIChwYXRoID09PSBcIlwiKSB7XG5cdFx0XHRcdFx0Ly8gYW4gZW1wdHkgcGF0aCBzaGFsbCByZWZyZXNoIHRoZSBlbnRpdHkgd2l0aG91dCBkZXBlbmRlbmNpZXMgd2hpY2ggbWVhbnMgKiBmb3IgdGhlIG1vZGVsXG5cdFx0XHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldFByb3BlcnRpZXMucHVzaChcIipcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29uc3Qga2luZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAke2NvbnRleHRQYXRofS8ke3BhdGh9LyRraW5kYCk7XG5cblx0XHRcdFx0XHRpZiAoa2luZCA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0XHRcdFx0b1NpZGVFZmZlY3RzLnRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogcGF0aFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChraW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMudGFyZ2V0UHJvcGVydGllcy5wdXNoKHBhdGgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7cGF0aH0gaXMgbm90IGEgdmFsaWQgcGF0aCB0byBiZSByZWZyZXNoZWRgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG9TaWRlRWZmZWN0c1NlcnZpY2UucmVxdWVzdFNpZGVFZmZlY3RzKFsuLi5vU2lkZUVmZmVjdHMudGFyZ2V0RW50aXRpZXMsIC4uLm9TaWRlRWZmZWN0cy50YXJnZXRQcm9wZXJ0aWVzXSwgb0JpbmRpbmdDb250ZXh0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgdGFibGUuXG5cdCAqIEBwYXJhbSBzVGFibGVJZCBUaGUgSUQgaWRlbnRpZnlpbmcgdGhlIHRhYmxlIHRoZSBzZWxlY3RlZCBjb250ZXh0IGlzIHJlcXVlc3RlZCBmb3Jcblx0ICogQHJldHVybnMgQXJyYXkgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgY29udGV4dHNcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0U2VsZWN0ZWRDb250ZXh0cyhzVGFibGVJZDogc3RyaW5nKTogT0RhdGFWNENvbnRleHRbXSB7XG5cdFx0bGV0IHRhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAodGFibGU/LmlzQTxUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHR0YWJsZSA9IHRhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJO1xuXHRcdH1cblx0XHRpZiAodGFibGU/LmlzQShcInNhcC5mZS5tYWNyb3MudGFibGUuVGFibGVBUElcIikpIHtcblx0XHRcdHJldHVybiAodGFibGUgYXMgVGFibGVBUEkpLmdldFNlbGVjdGVkQ29udGV4dHMoKTtcblx0XHR9XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIG9yIGhpZGVzIHRoZSBzaWRlIGNvbnRlbnQgb2YgYW4gb2JqZWN0IHBhZ2UuXG5cdCAqIEBwYXJhbSBzU3ViU2VjdGlvbktleSBLZXkgb2YgdGhlIHNpZGUgY29udGVudCBmcmFnbWVudCBhcyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdC5qc29uXG5cdCAqIEBwYXJhbSBbYlNob3ddIE9wdGlvbmFsIEJvb2xlYW4gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHNpZGUgY29udGVudFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzaG93U2lkZUNvbnRlbnQoc1N1YlNlY3Rpb25LZXk6IHN0cmluZywgYlNob3c/OiBib29sZWFuKTogdm9pZCB7XG5cdFx0Y29uc3Qgc0Jsb2NrSUQgPSBnZXRTaWRlQ29udGVudExheW91dElEKHNTdWJTZWN0aW9uS2V5KSxcblx0XHRcdG9CbG9jayA9IHRoaXMuX3ZpZXcuYnlJZChzQmxvY2tJRCksXG5cdFx0XHRiQmxvY2tTdGF0ZSA9IGJTaG93ID09PSB1bmRlZmluZWQgPyAhKG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldFNob3dTaWRlQ29udGVudCgpIDogYlNob3c7XG5cdFx0KG9CbG9jayBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLnNldFNob3dTaWRlQ29udGVudChiQmxvY2tTdGF0ZSwgZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGJvdW5kIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgb2JqZWN0IHBhZ2UuXG5cdCAqIEByZXR1cm5zIENvbnRleHQgYm91bmQgdG8gdGhlIG9iamVjdCBwYWdlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldEJpbmRpbmdDb250ZXh0KCk6IENvbnRleHQgfCBudWxsIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkIHRoZSBpbnRlcm5hbCBjb250ZXh0IHBhdGggb2YgdGhlIE1lc3NhZ2VTdHJpcCBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBUaGUgaW50ZXJuYWwgYmluZGluZyBjb250ZXh0IHBhdGggZm9yIHRoZSBtZXNzYWdlU3RyaXBcblx0ICovXG5cdF9nZXRNZXNzYWdlU3RyaXBCaW5kaW5nQ29udGV4dFBhdGgoKTogc3RyaW5nIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dFBhdGggPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik/LmdldFBhdGgoKTtcblx0XHRjb25zdCB2aWV3Q29udGV4dFBhdGggPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCk/LmdldFBhdGgoKTtcblx0XHRyZXR1cm4gaW50ZXJuYWxNb2RlbENvbnRleHRQYXRoICYmIHZpZXdDb250ZXh0UGF0aFxuXHRcdFx0PyBgJHtpbnRlcm5hbE1vZGVsQ29udGV4dFBhdGh9L01lc3NhZ2VTdHJpcC8ke3ZpZXdDb250ZXh0UGF0aC5yZXBsYWNlKC9cXC8vZywgXCItXCIpfWBcblx0XHRcdDogXCJcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyB0aGUgbWVzc2FnZSBzdHJpcCBiZXR3ZWVuIHRoZSB0aXRsZSBhbmQgdGhlIGhlYWRlciBvZiB0aGUgT2JqZWN0UGFnZS4gSWYgb25seSBvbmUgbWVzc2FnZSBpcyBwcm92aWRlZCwgaXQgaXMgZGlzcGxheWVkIGRpcmVjdGx5IGluIHRoZSBtZXNzYWdlIHN0cmlwLiBJZiBtdWx0aXBsZSBtZXNzYWdlcyBhcmUgcHJvdmlkZWQsIHRoZXkgYXJlIHByaW9yaXRpemVkIGJ5IHRoZSBvcmRlcjogRXJyb3IsIFdhcm5pbmcsIGFuZCBJbmZvcm1hdGlvbiBhbmQgYSBjb3JyZXNwb25kaW5nIGdlbmVyaWMgdGV4dCBpcyBkaXNwbGF5ZWQ6XG5cdCAqIC0gRXJyb3I6IFwiVGhlIG9iamVjdCBjb250YWlucyBlcnJvcnMuXCJcblx0ICogLSBXYXJuaW5nOiBcIlRoZSBvYmplY3QgY29udGFpbnMgd2FybmluZ3MuXCJcblx0ICogLSBJbmZvcm1hdGlvbjogXCJUaGUgb2JqZWN0IGNvbnRhaW5zIG1lc3NhZ2VzLlwiXG5cdCAqIElmIGEgYmFjay1lbmQgbWVzc2FnZSBpcyByZWNlaXZlZCB3aXRoIGEgdGFyZ2V0IHBvaW50aW5nIHRvIHRoZSBPYmplY3QgUGFnZSwgaXQgaXMgZGlzcGxheWVkIGluIHRoZSBtZXNzYWdlIHN0cmlwLCBvdmVycmlkaW5nIGFueSBleGlzdGluZyBtZXNzYWdlIG9yIG1lc3NhZ2Ugc3RyaXAuIElmIG11bHRpcGxlIGJhY2stZW5kIG1lc3NhZ2VzIGFyZSByZWNlaXZlZCwgdGhlIG1lc3NhZ2Ugd2l0aCB0aGUgaGlnaGVzdCBwcmlvcml0eSBpcyBkaXNwbGF5ZWQgd2l0aCBhIGdlbmVyaWMgdGV4dCBhcyBkZXNjcmliZWQgYWJvdmUuXG5cdCAqIEBwYXJhbSAgbWVzc2FnZXNPclN0cmlwIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvciBhIE1lc3NhZ2VTdHJpcCBjb250cm9sXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNob3dNZXNzYWdlcyhtZXNzYWdlc09yU3RyaXA6IE1lc3NhZ2VbXSB8IE1lc3NhZ2VTdHJpcCk6IHZvaWQge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KG1lc3NhZ2VzT3JTdHJpcCkpIHtcblx0XHRcdHRoaXMuX3Nob3dNZXNzYWdlcyhtZXNzYWdlc09yU3RyaXApO1xuXHRcdH0gZWxzZSBpZiAobWVzc2FnZXNPclN0cmlwLmlzQShcInNhcC5tLk1lc3NhZ2VTdHJpcFwiKSkge1xuXHRcdFx0dGhpcy5zaG93Q3VzdG9tTWVzc2FnZVN0cmlwKG1lc3NhZ2VzT3JTdHJpcCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNob3dzIGEgY3VzdG9tIE1lc3NhZ2VTdHJpcCBjb250cm9sIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbi5cblx0ICogRW5zdXJlcyBtdXR1YWwgZXhjbHVzaXZpdHkgd2l0aCB0aGUgTWVzc2FnZVN0cmlwIHJlbmRlcmVkIGJ5IHRoZSBvYmplY3QgcGFnZSB2aWV3LlxuXHQgKiBAcGFyYW0gbWVzc2FnZVN0cmlwIE1lc3NhZ2VTdHJpcCBjb250cm9sXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRwcml2YXRlIHNob3dDdXN0b21NZXNzYWdlU3RyaXAobWVzc2FnZVN0cmlwOiBNZXNzYWdlU3RyaXApOiB2b2lkIHtcblx0XHRjb25zdCBtZXNzYWdlU3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuX3ZpZXdcblx0XHRcdC5nZXRNb2RlbChcImludGVybmFsXCIpXG5cdFx0XHQuYmluZENvbnRleHQodGhpcy5fZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoKCkpXG5cdFx0XHQuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0aWYgKCFtZXNzYWdlU3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMucmVtb3ZlQ3VzdG9tTWVzc2FnZVN0cmlwKCk7IC8vIFJlbW92ZSBhbnkgZXhpc3RpbmcgY3VzdG9tIG1lc3NhZ2Ugc3RyaXAgYmVmb3JlIGFkZGluZyBuZXcgb25lXG5cblx0XHQvLyBIaWRlIGZyYW1ld29yayBnZW5lcmF0ZWQgbWVzc2FnZSBzdHJpcCB0byBlbnN1cmUgbXV0dWFsIGV4Y2x1c2l2aXR5XG5cdFx0bWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJPUEJhY2tlbmRNZXNzYWdlVmlzaWJsZVwiLCBmYWxzZSk7XG5cdFx0bWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJPUEN1c3RvbU1lc3NhZ2VWaXNpYmxlXCIsIGZhbHNlKTtcblxuXHRcdHRoaXMuY3VzdG9tTWVzc2FnZVN0cmlwSWQgPSBtZXNzYWdlU3RyaXAuZ2V0SWQoKSB8fCB1aWQoKTsgLy8gU3RvcmUgcmVmZXJlbmNlIGZvciBwcm9ncmFtbWF0aWMgcmVtb3ZhbFxuXG5cdFx0bWVzc2FnZVN0cmlwLmFkZFN0eWxlQ2xhc3MoXCJzYXBVaVNtYWxsTWFyZ2luVG9wXCIpO1xuXHRcdHRoaXMuYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlKG1lc3NhZ2VTdHJpcCwgbWVzc2FnZVN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBjdXN0b20gTWVzc2FnZVN0cmlwIHRvIHRoZSBwYWdlIGxheW91dCBpbiB0aGUgaGVhZGVyIGNvbnRhaW5lciBzdWNoIGFzIGluIGV4cGFuZGVkIGFuZCBzbmFwcGVkIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBtZXNzYWdlU3RyaXAgVGhlIE1lc3NhZ2VTdHJpcCBjb250cm9sIHRvIGFkZFxuXHQgKiBAcGFyYW0gbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHRcblx0ICovXG5cdHByaXZhdGUgYWRkQ3VzdG9tTWVzc2FnZVN0cmlwVG9QYWdlKG1lc3NhZ2VTdHJpcDogTWVzc2FnZVN0cmlwLCBtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dDogQ29udGV4dCk6IHZvaWQge1xuXHRcdGNvbnN0IGhlYWRlckNvbnRhaW5lciA9IHRoaXMuX3ZpZXcuYnlJZChcImZlOjpPYmplY3RQYWdlRHluYW1pY0hlYWRlclRpdGxlXCIpO1xuXHRcdGlmIChoZWFkZXJDb250YWluZXIpIHtcblx0XHRcdGNvbnN0IGluc2VydEludG9BZ2dyZWdhdGlvbiA9IChhZ2dyZWdhdGlvbk5hbWU6IHN0cmluZywgY29udHJvbFRvSW5zZXJ0OiBNZXNzYWdlU3RyaXApOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgYWdncmVnYXRpb25Db250ZW50ID0gaGVhZGVyQ29udGFpbmVyLmdldEFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSk7XG5cdFx0XHRcdGlmIChhZ2dyZWdhdGlvbkNvbnRlbnQpIHtcblx0XHRcdFx0XHRjb25zdCBjb250ZW50QXJyYXkgPSBBcnJheS5pc0FycmF5KGFnZ3JlZ2F0aW9uQ29udGVudCkgPyBhZ2dyZWdhdGlvbkNvbnRlbnQgOiBbYWdncmVnYXRpb25Db250ZW50XTtcblx0XHRcdFx0XHRoZWFkZXJDb250YWluZXIuaW5zZXJ0QWdncmVnYXRpb24oYWdncmVnYXRpb25OYW1lLCBjb250cm9sVG9JbnNlcnQsIGNvbnRlbnRBcnJheS5sZW5ndGgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0aW5zZXJ0SW50b0FnZ3JlZ2F0aW9uKFwiZXhwYW5kZWRDb250ZW50XCIsIG1lc3NhZ2VTdHJpcCk7XG5cdFx0XHRpbnNlcnRJbnRvQWdncmVnYXRpb24oXCJzbmFwcGVkQ29udGVudFwiLCBtZXNzYWdlU3RyaXAuY2xvbmUoKSk7XG5cblx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiT1BDdXN0b21NZXNzYWdlU3RyaXBWaXNpYmxlXCIsIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIHRoZSBhY3RpdmUgY3VzdG9tIE1lc3NhZ2VTdHJpcCBwcm9ncmFtbWF0aWNhbGx5LlxuXHQgKi9cblx0cHJpdmF0ZSByZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmN1c3RvbU1lc3NhZ2VTdHJpcElkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRmluZCBhbmQgcmVtb3ZlIHRoZSBjdXN0b20gbWVzc2FnZSBzdHJpcCBmcm9tIGhlYWRlciBjb250YWluZXJcblx0XHRjb25zdCBoZWFkZXJDb250YWluZXIgPSB0aGlzLl92aWV3LmJ5SWQoXCJmZTo6T2JqZWN0UGFnZUR5bmFtaWNIZWFkZXJUaXRsZVwiKTtcblx0XHRpZiAoaGVhZGVyQ29udGFpbmVyKSB7XG5cdFx0XHRjb25zdCByZW1vdmVGcm9tQWdncmVnYXRpb24gPSAoYWdncmVnYXRpb25OYW1lOiBzdHJpbmcsIGlkTWF0Y2hlcjogKGNvbnRyb2xJZDogc3RyaW5nKSA9PiBib29sZWFuKTogdm9pZCA9PiB7XG5cdFx0XHRcdGNvbnN0IGFnZ3JlZ2F0aW9uQ29udGVudCA9IGhlYWRlckNvbnRhaW5lci5nZXRBZ2dyZWdhdGlvbihhZ2dyZWdhdGlvbk5hbWUpIGFzIENvbnRyb2xbXTtcblx0XHRcdFx0aWYgKGFnZ3JlZ2F0aW9uQ29udGVudCkge1xuXHRcdFx0XHRcdGNvbnN0IGNvbnRyb2xUb1JlbW92ZSA9IGFnZ3JlZ2F0aW9uQ29udGVudC5maW5kKChjb250cm9sKSA9PiBpZE1hdGNoZXIoY29udHJvbC5nZXRJZCgpKSk7XG5cdFx0XHRcdFx0aWYgKGNvbnRyb2xUb1JlbW92ZSkge1xuXHRcdFx0XHRcdFx0aGVhZGVyQ29udGFpbmVyLnJlbW92ZUFnZ3JlZ2F0aW9uKGFnZ3JlZ2F0aW9uTmFtZSwgY29udHJvbFRvUmVtb3ZlKTtcblx0XHRcdFx0XHRcdGNvbnRyb2xUb1JlbW92ZS5kZXN0cm95KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0cmVtb3ZlRnJvbUFnZ3JlZ2F0aW9uKFwiZXhwYW5kZWRDb250ZW50XCIsIChjb250cm9sSWQpID0+IGNvbnRyb2xJZCA9PT0gdGhpcy5jdXN0b21NZXNzYWdlU3RyaXBJZCk7XG5cdFx0XHRyZW1vdmVGcm9tQWdncmVnYXRpb24oXCJzbmFwcGVkQ29udGVudFwiLCAoY29udHJvbElkKSA9PiBjb250cm9sSWQuaW5jbHVkZXModGhpcy5jdXN0b21NZXNzYWdlU3RyaXBJZCArIFwiLV9fY2xvbmVcIikpO1xuXHRcdH1cblxuXHRcdHRoaXMuY3VzdG9tTWVzc2FnZVN0cmlwSWQgPSB1bmRlZmluZWQ7XG5cblx0XHRjb25zdCBtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dCA9IHRoaXMuX3ZpZXdcblx0XHRcdC5nZXRNb2RlbChcImludGVybmFsXCIpXG5cdFx0XHQuYmluZENvbnRleHQodGhpcy5fZ2V0TWVzc2FnZVN0cmlwQmluZGluZ0NvbnRleHRQYXRoKCkpXG5cdFx0XHQuZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0aWYgKG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0KSB7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcIk9QQ3VzdG9tTWVzc2FnZVN0cmlwVmlzaWJsZVwiLCBmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBNZXNzYWdlSXRlbSBmcm9tIGEgTWVzc2FnZSBpbnN0YW5jZS5cblx0ICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgdGV4dCwgdHlwZSwgZGVzY3JpcHRpb24sIGV0Yy5cblx0ICogQHJldHVybnMgVGhlIGNyZWF0ZWQgTWVzc2FnZUl0ZW0gaW5zdGFuY2UgZm9yIHRoZSBNZXNzYWdlUG9wb3Zlci5cblx0ICovXG5cdHByaXZhdGUgY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZTogTWVzc2FnZSk6IE1lc3NhZ2VJdGVtIHtcblx0XHRjb25zdCBzRGVzY3JpcHRpb25Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG1lc3NhZ2UuZ2V0RGVzY3JpcHRpb25Vcmw/LigpO1xuXG5cdFx0cmV0dXJuIG5ldyBNZXNzYWdlSXRlbSh7XG5cdFx0XHR0aXRsZTogbWVzc2FnZS5nZXRNZXNzYWdlKCksXG5cdFx0XHRkZXNjcmlwdGlvbjogbWVzc2FnZS5nZXREZXNjcmlwdGlvbigpLFxuXHRcdFx0dHlwZTogbWVzc2FnZS5nZXRUeXBlKCksXG5cdFx0XHRsb25ndGV4dFVybDogc0Rlc2NyaXB0aW9uVXJsLFxuXHRcdFx0c3VidGl0bGU6IG1lc3NhZ2UuZ2V0QWRkaXRpb25hbFRleHQ/LigpLFxuXHRcdFx0Z3JvdXBOYW1lOiBcIlRfTUVTU0FHRV9CVVRUT05fU0FQRkVfTUVTU0FHRV9HUk9VUF9HRU5FUkFMXCIsXG5cdFx0XHRhY3RpdmVUaXRsZTogISFtZXNzYWdlLmdldENvbnRyb2xJZHM/LigpLmxlbmd0aFxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBNZXNzYWdlUG9wb3ZlciBmb3IgYSBzZXQgb2YgTWVzc2FnZUl0ZW1zIGFuZCBhdHRhY2hlc1xuXHQgKiBhbiBhc3luYyBkZXNjcmlwdGlvbiBoYW5kbGVyIHRvIGxvYWQgbG9uZyB0ZXh0IHdoZW4gbmVlZGVkLlxuXHQgKiBAcGFyYW0gbWVzc2FnZUl0ZW1zIEFycmF5IG9mIE1lc3NhZ2VJdGVtcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHBvcG92ZXIuXG5cdCAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIE1lc3NhZ2VQb3BvdmVyIGluc3RhbmNlLlxuXHQgKi9cblx0Y3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW1zOiBNZXNzYWdlSXRlbSk6IE1lc3NhZ2VQb3BvdmVyIHtcblx0XHRjb25zdCBwb3BvdmVyID0gbmV3IE1lc3NhZ2VQb3BvdmVyKHtcblx0XHRcdGl0ZW1zOiBtZXNzYWdlSXRlbXNcblx0XHR9KSBhcyBNZXNzYWdlUG9wb3Zlcjtcblx0XHRyZXR1cm4gcG9wb3Zlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBPcGVucyBhIE1lc3NhZ2VQb3BvdmVyIGZvciB0aGUgcHJvdmlkZWQgbWVzc2FnZXMsIGFuY2hvcmVkIHRvIHRoZVxuXHQgKiBzb3VyY2UgY29udHJvbCBvZiB0aGUgVUk1IGV2ZW50LlxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIFVJNSBldmVudCBmcm9tIHRoZSBjb250cm9sIHRoYXQgdHJpZ2dlcnMgdGhlIHBvcG92ZXIuXG5cdCAqIEBwYXJhbSBtZXNzYWdlIEFycmF5IG9mIE1lc3NhZ2Ugb2JqZWN0cyB0byBiZSBzaG93biBpbiB0aGUgcG9wb3Zlci5cblx0ICogQHJldHVybnMgVGhlIE1lc3NhZ2VQb3BvdmVyIHRoYXQgd2FzIG9wZW5lZC5cblx0ICovXG5cdHNob3dNZXNzYWdlUG9wb3ZlcihldmVudDogVUk1RXZlbnQsIG1lc3NhZ2U6IE1lc3NhZ2VbXSk6IE1lc3NhZ2VQb3BvdmVyIHtcblx0XHRjb25zdCBtZXNzYWdlSXRlbSA9IHRoaXMuY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZVswXSk7XG5cdFx0Y29uc3QgcG9wb3ZlciA9IHRoaXMuY3JlYXRlTWVzc2FnZVBvcG92ZXIobWVzc2FnZUl0ZW0pO1xuXHRcdGNvbnN0IHNvdXJjZUNvbnRyb2wgPSBldmVudC5nZXRTb3VyY2U/LigpIGFzIENvbnRyb2w7XG5cdFx0c291cmNlQ29udHJvbD8uYWRkRGVwZW5kZW50KHBvcG92ZXIpO1xuXHRcdHBvcG92ZXIub3BlbkJ5KHNvdXJjZUNvbnRyb2wpO1xuXHRcdHJldHVybiBwb3BvdmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIHRoZSBtZXNzYWdlIHN0cmlwIGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgaGVhZGVyIG9mIHRoZSBPYmplY3RQYWdlLlxuXHQgKiBAcGFyYW0gbWVzc2FnZXMgVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkXG5cdCAqIEBwYXJhbSBvcmlnaW4gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZS4gSXQgbWF5IGNvbWUgZnJvbSBhIGJhY2stZW5kIG1lc3NhZ2Ugb3IgYSBjdXN0b20gbWVzc2FnZVxuXHQgKi9cblx0X3Nob3dNZXNzYWdlcyhtZXNzYWdlczogTWVzc2FnZVtdLCBvcmlnaW46IFwiQmFja2VuZFwiIHwgXCJDdXN0b21cIiA9IFwiQ3VzdG9tXCIpOiB2b2lkIHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKG1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Ly8gT25seSBpZiB0aGVyZSBhcmUgbWVzc2FnZXMgdG8gc2hvdywgd2UgcmVtb3ZlIGN1c3RvbSBtZXNzYWdlIHN0cmlwLlxuXHRcdFx0XHQvLyBUaGlzIHdheSB3ZSBlbnN1cmUgdGhhdCB3ZSBkb24ndCBpbnRlcmZlcmUgd2l0aCBjdXN0b20gbWVzc2FnZSBzdHJpcCdzIGxpZmVjeWxlIHVudGlsIHRoZXJlIGFyZSBuZXcgbWVzc2FnZXMgdG8gc2hvdyBpbiB0aGUgc3RhbmRhcmQgbWVzc2FnZSBzdHJpcC5cblx0XHRcdFx0dGhpcy5yZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAoKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdmlldy5nZXRNb2RlbChcImludGVybmFsXCIpO1xuXHRcdFx0Y29uc3QgbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQgPSBpbnRlcm5hbE1vZGVsLmJpbmRDb250ZXh0KHRoaXMuX2dldE1lc3NhZ2VTdHJpcEJpbmRpbmdDb250ZXh0UGF0aCgpKS5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdGlmICghbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IFJlc291cmNlTW9kZWxIZWxwZXIuZ2V0UmVzb3VyY2VNb2RlbCh2aWV3KTtcblx0XHRcdGxldCBtZXNzYWdlOiBNZXNzYWdlIHwgbnVsbCA9IG1lc3NhZ2VzWzBdIHx8IG51bGw7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1Ake29yaWdpbn1NZXNzYWdlVmlzaWJsZWAsICEhbWVzc2FnZSk7XG5cdFx0XHRzd2l0Y2ggKG1lc3NhZ2VzLmxlbmd0aCkge1xuXHRcdFx0XHRjYXNlIDA6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgMTpcblx0XHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXNbMF07XG5cdFx0XHRcdFx0Y29uc3QgaGFzRGVzY3JpcHRpb25VcmwgPSAhIW1lc3NhZ2U/LmdldERlc2NyaXB0aW9uVXJsKCk7XG5cdFx0XHRcdFx0Y29uc3QgaXNFZGl0TW9kZSA9IENvbW1vblV0aWxzLmdldElzRWRpdGFibGUodmlldyk7XG5cdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdGNvbnN0IG9iamVjdFBhZ2UgPSB2aWV3LmdldENvbnRlbnQoKT8uWzBdIGFzIE9iamVjdFBhZ2VMYXlvdXQ7XG5cdFx0XHRcdFx0XHRjb25zdCBoZWFkZXJUaXRsZSA9IG9iamVjdFBhZ2UuZ2V0SGVhZGVyVGl0bGUoKSBhcyBPYmplY3RQYWdlRHluYW1pY0hlYWRlclRpdGxlO1xuXG5cdFx0XHRcdFx0XHQvLyBDb2xsZWN0IGFsbCBNZXNzYWdlU3RyaXBzIChleGNsdWRpbmcgQ29sbGFib3JhdGlvbiBTdHJpcHMpXG5cdFx0XHRcdFx0XHRjb25zdCBhbGxTdHJpcHMgPSBbXG5cdFx0XHRcdFx0XHRcdC4uLihoZWFkZXJUaXRsZS5nZXRTbmFwcGVkQ29udGVudD8uKCkgfHwgW10pLFxuXHRcdFx0XHRcdFx0XHQuLi4oaGVhZGVyVGl0bGUuZ2V0RXhwYW5kZWRDb250ZW50Py4oKSB8fCBbXSlcblx0XHRcdFx0XHRcdF0uZmlsdGVyKFxuXHRcdFx0XHRcdFx0XHQoaXRlbSk6IGl0ZW0gaXMgTWVzc2FnZVN0cmlwID0+IGl0ZW0gaW5zdGFuY2VvZiBNZXNzYWdlU3RyaXAgJiYgIWl0ZW0uZ2V0SWQoKT8uaW5jbHVkZXMoXCJDb2xsYWJvcmF0aW9uU3RyaXBcIilcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIE9ubHkgYWRkIGxpbmtzIHdoZW4gbWVzc2FnZSBpcyBmcm9tIEJhY2tlbmQsIGluIERpc3BsYXkgbW9kZSwgYW5kIGhhcyBhIGRlc2NyaXB0aW9uIFVSTFxuXHRcdFx0XHRcdFx0aWYgKG9yaWdpbiA9PT0gXCJCYWNrZW5kXCIgJiYgIWlzRWRpdE1vZGUgJiYgaGFzRGVzY3JpcHRpb25VcmwpIHtcblx0XHRcdFx0XHRcdFx0YWxsU3RyaXBzLmZvckVhY2goKHN0cmlwKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gQWx3YXlzIGRlc3Ryb3kgdGhlIGV4aXN0aW5nIGxpbmsgYmVmb3JlIGNyZWF0aW5nIGEgbmV3IG9uZVxuXHRcdFx0XHRcdFx0XHRcdGlmIChzdHJpcC5nZXRMaW5rKCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHN0cmlwLmRlc3Ryb3lMaW5rKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGxpbmsgPSBuZXcgTGluayh7XG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0OiByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX01FU1NBR0VfSEFORExJTkdfU0FQRkVfRVJST1JfTUVTU0FHRV9TVFJJUF9MSU5LX1RFWFRcIiksXG5cdFx0XHRcdFx0XHRcdFx0XHRwcmVzczogKGV2ZW50OiBVSTVFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLnNob3dNZXNzYWdlUG9wb3ZlcihldmVudCwgW21lc3NhZ2UhXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdFx0c3RyaXAuc2V0TGluayhsaW5rKTtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBSZW1vdmUgbGlua3Mgd2hlbiBub3QgYXBwbGljYWJsZVxuXHRcdFx0XHRcdFx0XHRhbGxTdHJpcHMuZm9yRWFjaCgoc3RyaXApID0+IHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoc3RyaXAuZ2V0TGluaygpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRzdHJpcC5kZXN0cm95TGluaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcIlVuYWJsZSB0byBhdHRhY2ggbGluayB0byBPYmplY3RQYWdlIE1lc3NhZ2VTdHJpcFwiLCBlcnIgYXMgRXJyb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlU3RhdHM6IHsgW2tleTogc3RyaW5nXTogeyBpZDogbnVtYmVyOyBjb3VudDogbnVtYmVyIH0gfSA9IHtcblx0XHRcdFx0XHRcdEVycm9yOiB7IGlkOiAyLCBjb3VudDogMCB9LFxuXHRcdFx0XHRcdFx0V2FybmluZzogeyBpZDogMSwgY291bnQ6IDAgfSxcblx0XHRcdFx0XHRcdEluZm9ybWF0aW9uOiB7IGlkOiAwLCBjb3VudDogMCB9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRtZXNzYWdlID0gbWVzc2FnZXMucmVkdWNlKFxuXHRcdFx0XHRcdFx0KGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUeXBlID0gY3VycmVudFZhbHVlLmdldFR5cGUoKTtcblx0XHRcdFx0XHRcdFx0YWNjLnNldFR5cGUobWVzc2FnZVN0YXRzW2N1cnJlbnRUeXBlXS5pZCA+IG1lc3NhZ2VTdGF0c1thY2MuZ2V0VHlwZSgpXS5pZCA/IGN1cnJlbnRUeXBlIDogYWNjLmdldFR5cGUoKSk7XG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uY291bnQrKztcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRuZXcgTWVzc2FnZSh7IHR5cGU6IE1lc3NhZ2VUeXBlLkluZm9ybWF0aW9uIH0pXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAob3JpZ2luID09PSBcIkJhY2tlbmRcIiAmJiAhQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KSkge1xuXHRcdFx0XHRcdFx0bWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYE9QJHtvcmlnaW59TWVzc2FnZVZpc2libGVgLCBmYWxzZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBPUCR7b3JpZ2lufU1lc3NhZ2VWaXNpYmxlYCwgISFtZXNzYWdlKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAobWVzc2FnZVN0YXRzLkVycm9yLmNvdW50ID4gMCkge1xuXHRcdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIk9CSkVDVFBBR0VTVEFURV9FUlJPUlwiKSk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChtZXNzYWdlU3RhdHMuV2FybmluZy5jb3VudCA+IDApIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZU1vZGVsLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfV0FSTklOR1wiKSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShyZXNvdXJjZU1vZGVsLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfSU5GT1JNQVRJT05cIikpO1xuXHRcdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG1lc3NhZ2VzdHJpcEludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBPUCR7b3JpZ2lufU1lc3NhZ2VUZXh0YCwgbWVzc2FnZSA/IG1lc3NhZ2UuZ2V0TWVzc2FnZSgpIDogbnVsbCk7XG5cdFx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1Ake29yaWdpbn1NZXNzYWdlVHlwZWAsIG1lc3NhZ2UgPyBtZXNzYWdlLmdldFR5cGUoKSA6IG51bGwpO1xuXHRcdFx0aWYgKG1lc3NhZ2UpIHtcblx0XHRcdFx0SW52aXNpYmxlTWVzc2FnZS5nZXRJbnN0YW5jZSgpLmFubm91bmNlKG1lc3NhZ2UuZ2V0TWVzc2FnZSgpLCBJbnZpc2libGVNZXNzYWdlTW9kZS5Bc3NlcnRpdmUpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IGRpc3BsYXkgT2JqZWN0UGFnZSBtZXNzYWdlXCIpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBIaWRlcyB0aGUgbWVzc2FnZSBzdHJpcCBiZWxvdyB0aGUgYW5jaG9yIGJhci5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0aGlkZU1lc3NhZ2UoKTogdm9pZCB7XG5cdFx0Y29uc3QgbWVzc2FnZXN0cmlwSW50ZXJuYWxNb2RlbENvbnRleHQgPSB0aGlzLl92aWV3XG5cdFx0XHQuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKVxuXHRcdFx0LmJpbmRDb250ZXh0KHRoaXMuX2dldE1lc3NhZ2VTdHJpcEJpbmRpbmdDb250ZXh0UGF0aCgpKVxuXHRcdFx0LmdldEJvdW5kQ29udGV4dCgpITtcblx0XHRtZXNzYWdlc3RyaXBJbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgT1BDdXN0b21NZXNzYWdlVmlzaWJsZWAsIGZhbHNlKTtcblx0XHR0aGlzLnJlbW92ZUN1c3RvbU1lc3NhZ2VTdHJpcCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gd2lsbCB0YWtlIHRoZSByZWNvbW1lbmRhdGlvbiBkYXRhIGRldGFpbHMsIHRyYW5zZm9ybSBpdCwgYW5kIHVwZGF0ZSB0aGUgaW50ZXJuYWwgbW9kZWwuXG5cdCAqIEBwYXJhbSBkYXRhIFJlY29tbWVuZGF0aW9uIGRhdGEgZm9yIHRoZSBhcHBcblx0ICovXG5cdHNldFJlY29tbWVuZGF0aW9ucyhkYXRhOiBJbkNvbXBsZXRlbmVzc0luZm9UeXBlKTogdm9pZCB7XG5cdFx0cmVjb21tZW5kYXRpb25IZWxwZXIudHJhbnNmb3JtUmVjb21tZW5kYXRpb25zRm9ySW50ZXJuYWxTdG9yYWdlKGRhdGEpO1xuXHRcdHRoaXMuX3ZpZXcuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5zZXRQcm9wZXJ0eShcIi9yZWNvbW1lbmRhdGlvbnNEYXRhXCIsIGRhdGEpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlZmluZXMgYSBjb250cm9sIHRvIGJlIHRoZSB0aXRsZSBvd25lciBvZiBpdHMgc2VjdGlvbi9zdWJzZWN0aW9uLiBBcyB0aGUgdGl0bGUgb3duZXJzIG9mIHN0YW5kYXJkIHN1YnNlY3Rpb25zIGFyZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGZvciBjdXN0b20gc2VjdGlvbi9zdWJzZWN0aW9uLlxuXHQgKiBUaGUgdGl0bGUgb3duZXIgY2FuIGJlIGVpdGhlciBvbmUgb2YgdGhlIHN0YW5kYXJkIGJ1aWxkaW5nIGJsb2NrcyAoRm9ybSwgQ2hhcnQsIFRhYmxlKSwgb3IgcmV1c2UgY29tcG9uZW50cywgb3Igc2FwLm0uVGl0bGUuXG5cdCAqIFRoZSBmcmFtZXdvcmsgYWRhcHRzIHRoZSB2YWx1ZSBvZiB0aGVzZSBwcm9wZXJ0aWVzIHRvIGJlIGFsaWduZWQgd2l0aCB0aGUgdGl0bGUgdGhhdCBpcyBzaG93biBpbiB0aGUgYW5jaG9yIGJhciAob3IgaWNvbiB0YWIgYmFyKSBmb3IgdGhlIHNlY3Rpb24uIE1vcmVvdmVyLCB0aGUgdGl0bGUgb2YgdGhlIHN1YnNlY3Rpb24gKGFuZCBpZiBhcHBsaWNhYmxlIGFsc28gb2YgdGhlIHNlY3Rpb24pIGlzIGhpZGRlbiBpbiBvcmRlciB0byBwcmV2ZW50IHJlZHVuZGFudCB0aXRsZXMsIGlmIHRoZSBzdWJzZWN0aW9uIHBvc3Nlc3NlcyBhIHRpdGxlIG93bmVyLlxuXHQgKiBIaW50OiBJZiB5b3UgY2hvb3NlIHRvIHNldCBzYXAubS5UaXRsZSBhcyB0aGUgdGl0bGUgb3duZXIsIHN0eWxpbmcgYWRqdXN0bWVudHMgbWF5IGJlIHJlcXVpcmVkIGluIHRoZSBjdXN0b20gdmlldy4gRm9yIGV4YW1wbGUsIGlmIHNhcC5tLlRpdGxlIGlzIHNldCBhcyB0aXRsZSBvd25lciB3aGljaCBiZWxvbmdzIHRvIHNhcC5tLk92ZXJmbG93VG9vbGJhciBvciB0byBzYXAubS5Ub29sYmFyLCB0aGVuIHRoZSDigJhkZXNpZ27igJkgcHJvcGVydHkgb2YgdGhlIHRvb2xiYXIgY29udHJvbCBpcyB0byBiZSBzZXQgdG8g4oCYVHJhbnNwYXJlbnTigJkuXG5cdCAqIEBwYXJhbSBjb250cm9sIFRoZSBzaW5nbGUgY29udGVudCBjb250cm9sIGNhbiBiZSBlaXRoZXIgb25lIG9mIHRoZSBzdGFuZGFyZCBidWlsZGluZyBibG9ja3MgKEZvcm0sIENoYXJ0LCBUYWJsZSksIG9yIHJldXNlIGNvbXBvbmVudHMsIG9yIHNhcC5tLlRpdGxlLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRBc1NlY3Rpb25UaXRsZU93bmVyKGNvbnRyb2w6IE1hbmFnZWRPYmplY3QpOiB2b2lkIHtcblx0XHRsZXQgc2VjdGlvbjtcblx0XHRjb25zdCBvcmlnaW5hbENvbnRyb2wgPSBjb250cm9sO1xuXHRcdGxldCByZXVzZUNvbXBvbmVudDtcblx0XHR3aGlsZSAoY29udHJvbCkge1xuXHRcdFx0aWYgKGNvbnRyb2wuaXNBPFNlY3Rpb24+KFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCIpKSB7XG5cdFx0XHRcdHNlY3Rpb24gPSBjb250cm9sO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmIChjb250cm9sLmlzQTxSZXVzZUNvbXBvbmVudD4oXCJzYXAuZmUuY29yZS5SZXVzZUNvbXBvbmVudFwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbC5jb250YWluZXIuZ2V0UGFyZW50KCkgYXMgQ29udHJvbDtcblx0XHRcdFx0cmV1c2VDb21wb25lbnQgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgY29udHJvbFBhcmVudCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0XHRpZiAoY29udHJvbFBhcmVudCkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbFBhcmVudDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoc2VjdGlvbikge1xuXHRcdFx0aWYgKHJldXNlQ29tcG9uZW50ICYmIHNlY3Rpb24uZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRzZWN0aW9uLmFkanVzdEZvclNpbmdsZUNvbnRlbnQob3JpZ2luYWxDb250cm9sLCB7IG11bHRpcGxlU3ViU2VjdGlvbnNXaXRoUmV1c2VDb21wb25lbnQ6IHRydWUgfSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWN0aW9uLmFkanVzdEZvclNpbmdsZUNvbnRlbnQob3JpZ2luYWxDb250cm9sKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7RUErQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBUkEsSUFVTUEsc0JBQXNCLElBQUFDLElBQUEsR0FEM0JDLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLGFBQUE7SUFBQSxTQUFBSix1QkFBQTtNQUFBLE9BQUFJLGFBQUEsQ0FBQUMsS0FBQSxPQUFBQyxTQUFBO0lBQUE7SUFBQUMsY0FBQSxDQUFBUCxzQkFBQSxFQUFBSSxhQUFBO0lBQUEsSUFBQUksTUFBQSxHQUFBUixzQkFBQSxDQUFBUyxTQUFBO0lBRTFEO0FBQ0Q7QUFDQTtJQUdDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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
|
|
@@ -310,7 +310,11 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
|
|
|
310
310
|
*/
|
|
311
311
|
_showMessages(messages: Message[], origin: "Backend" | "Custom" = "Custom"): void {
|
|
312
312
|
try {
|
|
313
|
-
|
|
313
|
+
if (messages.length > 0) {
|
|
314
|
+
// Only if there are messages to show, we remove custom message strip.
|
|
315
|
+
// This way we ensure that we don't interfere with custom message strip's lifecyle until there are new messages to show in the standard message strip.
|
|
316
|
+
this.removeCustomMessageStrip();
|
|
317
|
+
}
|
|
314
318
|
|
|
315
319
|
const view = this._view;
|
|
316
320
|
const internalModel = view.getModel("internal");
|
|
@@ -36,7 +36,7 @@ sap.ui.define(["sap/f/library", "sap/fe/core/library", "sap/fe/macros/library",
|
|
|
36
36
|
controls: [],
|
|
37
37
|
elements: [],
|
|
38
38
|
// eslint-disable-next-line no-template-curly-in-string
|
|
39
|
-
version: "1.142.
|
|
39
|
+
version: "1.142.8",
|
|
40
40
|
noLibraryCSS: true
|
|
41
41
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
42
|
});
|