@sapui5/sap.fe.core 1.120.21 → 1.120.22
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/core/.library +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +2 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +1 -4
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +3 -2
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +7 -5
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +9 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +5 -4
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +6 -3
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +19 -10
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +38 -14
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle_ar.properties +2 -2
- package/src/sap/fe/core/messagebundle_bg.properties +1 -1
- package/src/sap/fe/core/messagebundle_cs.properties +1 -1
- package/src/sap/fe/core/messagebundle_cy.properties +2 -2
- package/src/sap/fe/core/messagebundle_da.properties +1 -1
- package/src/sap/fe/core/messagebundle_de.properties +7 -7
- package/src/sap/fe/core/messagebundle_es.properties +3 -3
- package/src/sap/fe/core/messagebundle_fr_CA.properties +18 -18
- package/src/sap/fe/core/messagebundle_hi.properties +1 -1
- package/src/sap/fe/core/messagebundle_hr.properties +2 -2
- package/src/sap/fe/core/messagebundle_hu.properties +2 -2
- package/src/sap/fe/core/messagebundle_id.properties +4 -4
- package/src/sap/fe/core/messagebundle_iw.properties +2 -2
- package/src/sap/fe/core/messagebundle_ko.properties +1 -1
- package/src/sap/fe/core/messagebundle_mk.properties +1 -1
- package/src/sap/fe/core/messagebundle_nl.properties +12 -12
- package/src/sap/fe/core/messagebundle_no.properties +1 -1
- package/src/sap/fe/core/messagebundle_sl.properties +6 -6
- package/src/sap/fe/core/messagebundle_th.properties +6 -6
- package/src/sap/fe/core/messagebundle_tr.properties +1 -1
- package/src/sap/fe/core/messagebundle_uk.properties +3 -3
- package/src/sap/fe/core/messagebundle_vi.properties +1 -1
|
@@ -2027,10 +2027,7 @@ class EditFlow extends BaseControllerExtension {
|
|
|
2027
2027
|
first one as they are anyway siblings
|
|
2028
2028
|
*/
|
|
2029
2029
|
if (mParameters.contexts) {
|
|
2030
|
-
if (
|
|
2031
|
-
!this._isFclEnabled() &&
|
|
2032
|
-
(this.base.getView().getViewData() as object & { converterType: string }).converterType !== "ListReport"
|
|
2033
|
-
) {
|
|
2030
|
+
if ((this.base.getView().getViewData() as object & { converterType: string }).converterType !== "ListReport") {
|
|
2034
2031
|
EditState.setEditStateDirty();
|
|
2035
2032
|
}
|
|
2036
2033
|
this.getInternalModel().setProperty("/lastInvokedAction", sActionName);
|
|
@@ -152,7 +152,8 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
152
152
|
this.strictHandlingUtilities.is412Executed = false;
|
|
153
153
|
}
|
|
154
154
|
if (!(this.isMultiContext412 ?? false)) {
|
|
155
|
-
|
|
155
|
+
var _this$resolve2;
|
|
156
|
+
(_this$resolve2 = this.resolve) === null || _this$resolve2 === void 0 ? void 0 : _this$resolve2.call(this, false);
|
|
156
157
|
} else {
|
|
157
158
|
this.strictHandlingPromises.forEach(function (strictHandlingPromise) {
|
|
158
159
|
strictHandlingPromise.resolve(false);
|
|
@@ -280,4 +281,4 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockSupport", "sap/fe/core/b
|
|
|
280
281
|
_exports = OperationsDialogBlock;
|
|
281
282
|
return _exports;
|
|
282
283
|
}, false);
|
|
283
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWNyb1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk9wZXJhdGlvbnNEaWFsb2dCbG9jayIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiYmxvY2tBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNQdWJsaWMiLCJyZXF1aXJlZCIsImRlZmluZVJlZmVyZW5jZSIsInByb3BzIiwib3BlbiIsImdldENvbnRlbnQiLCJvcGVyYXRpb25zRGlhbG9nIiwiY3VycmVudCIsImdldEJlZ2luQnV0dG9uIiwiQnV0dG9uIiwicHJlc3MiLCJpc011bHRpQ29udGV4dDQxMiIsInJlc29sdmUiLCJtb2RlbCIsInN1Ym1pdEJhdGNoIiwiZ3JvdXBJZCIsInN0cmljdEhhbmRsaW5nUHJvbWlzZXMiLCJmb3JFYWNoIiwic3RyaWN0SGFuZGxpbmdQcm9taXNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwic3RyaWN0SGFuZGxpbmdGYWlscyIsInN0cmljdEhhbmRsaW5nVXRpbGl0aWVzIiwic3RyaWN0SGFuZGxpbmdUcmFuc2l0aW9uRmFpbHMiLCJsZW5ndGgiLCJtZXNzYWdlSGFuZGxlciIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsInN0cmljdEhhbmRsaW5nV2FybmluZ01lc3NhZ2VzIiwiaXM0MTJFeGVjdXRlZCIsIm1lc3NhZ2VEaWFsb2dNb2RlbCIsInNldERhdGEiLCJjbG9zZSIsInRleHQiLCJhY3Rpb25OYW1lIiwiZ2V0VGl0bGUiLCJzVGl0bGUiLCJnZXRUZXh0IiwiVGl0bGUiLCJnZXRFbmRCdXR0b24iLCJpc0dyb3VwZWQiLCJzaG93TWVzc2FnZUluZm8iLCJjYW5jZWxCdXR0b25UeHQiLCJpZCIsIm1lc3NhZ2VPYmplY3QiLCJvTWVzc2FnZVZpZXciLCJCYXIiLCJjb250ZW50TGVmdCIsIm9CYWNrQnV0dG9uIiwiY29udGVudE1pZGRsZSIsIlJ1bnRpbWVCdWlsZGluZ0Jsb2NrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJPcGVyYXRpb25zRGlhbG9nLmJsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBibG9ja0F0dHJpYnV0ZSwgZGVmaW5lQnVpbGRpbmdCbG9jayB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9SdW50aW1lQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVJlZmVyZW5jZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBSZWYgfSBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgQmFyIGZyb20gXCJzYXAvbS9CYXJcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgVGl0bGUgZnJvbSBcInNhcC9tL1RpdGxlXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyIGZyb20gXCIuLi9NZXNzYWdlSGFuZGxlclwiO1xuXG50eXBlIFN0cmljdEhhbmRsaW5nUHJvbWlzZSA9IHtcblx0Ly9UT0RPOiBtb3ZlIHRvIHNvbWV3aGVyZSBlbHNlXG5cdHJlc29sdmU6IEZ1bmN0aW9uO1xuXHRncm91cElkOiBzdHJpbmc7XG5cdHJlcXVlc3RTaWRlRWZmZWN0cz86IEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgU3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMgPSB7XG5cdC8vVE9ETzogbW92ZSB0byBzb21ld2hlcmUgZWxzZVxuXHRpczQxMkV4ZWN1dGVkOiBib29sZWFuO1xuXHRzdHJpY3RIYW5kbGluZ1RyYW5zaXRpb25GYWlsczogT2JqZWN0W107XG5cdHN0cmljdEhhbmRsaW5nUHJvbWlzZXM6IFN0cmljdEhhbmRsaW5nUHJvbWlzZVtdO1xuXHRzdHJpY3RIYW5kbGluZ1dhcm5pbmdNZXNzYWdlczogTWVzc2FnZVtdO1xuXHRkZWxheVN1Y2Nlc3NNZXNzYWdlczogTWVzc2FnZVtdO1xuXHRwcm9jZXNzZWRNZXNzYWdlSWRzOiBzdHJpbmdbXTtcbn07XG5cbmNvbnN0IG1hY3JvUmVzb3VyY2VCdW5kbGUgPSBDb3JlLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5tYWNyb3NcIik7XG4vKipcbiAqIEtub3duIGxpbWl0YXRpb25zIGZvciB0aGUgZmlyc3QgdHJ5b3V0IGFzIG1lbnRpb25lZCBpbiBnaXQgNTgwNjQ0MlxuICogIC0gZnVuY3Rpb25hbCBibG9jayBkZXBlbmRlbmN5XG4gKiBcdC0gcXVlc3Rpb25hYmxlIHBhcmFtZXRlcnMgd2lsbCBiZSByZWZhY3RvcmVkXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJPcGVyYXRpb25zRGlhbG9nXCIsXG5cdG5hbWVzcGFjZTogXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9uc1wiXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uc0RpYWxvZ0Jsb2NrIGV4dGVuZHMgUnVudGltZUJ1aWxkaW5nQmxvY2sge1xuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPE9wZXJhdGlvbnNEaWFsb2dCbG9jaz4pIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cdH1cblxuXHQvKlxuXHQgKiBUaGUgJ2lkJyBwcm9wZXJ0eSBvZiB0aGUgZGlhbG9nXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCBpc1B1YmxpYzogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHVibGljIGlkITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGUgJ3RpdGxlJyBwcm9wZXJ0eSBvZiB0aGUgRGlhbG9nO1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRwdWJsaWMgdGl0bGU/OiBzdHJpbmcgPSBcIkRpYWxvZyBTdGFuZGFyZCBUaXRsZVwiO1xuXG5cdC8qKlxuXHQgKiBUaGUgbWVzc2FnZSBvYmplY3QgdGhhdCBpcyBwcm92aWRlZCB0byB0aGlzIGRpYWxvZ1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiwgcmVxdWlyZWQ6IHRydWUgfSkgLy9UT0RPOiBjcmVhdGUgdGhlIHR5cGVcblx0cHVibGljIG1lc3NhZ2VPYmplY3Q/OiBhbnkgPSBcIlwiO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRvcGVyYXRpb25zRGlhbG9nITogUmVmPERpYWxvZz47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJib29sZWFuXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBpc011bHRpQ29udGV4dDQxMj86IGJvb2xlYW47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJmdW5jdGlvblwiIH0pXG5cdHB1YmxpYyByZXNvbHZlPzogRnVuY3Rpb247XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHVibGljIG1vZGVsITogT0RhdGFNb2RlbDtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgZ3JvdXBJZCE6IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgYWN0aW9uTmFtZSE6IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgY2FuY2VsQnV0dG9uVHh0ITogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwib2JqZWN0XCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBzdHJpY3RIYW5kbGluZ1Byb21pc2VzITogU3RyaWN0SGFuZGxpbmdQcm9taXNlW107XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRwdWJsaWMgc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM/OiBTdHJpY3RIYW5kbGluZ1V0aWxpdGllcztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdHB1YmxpYyBtZXNzYWdlSGFuZGxlcj86IE1lc3NhZ2VIYW5kbGVyO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwib2JqZWN0XCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBtZXNzYWdlRGlhbG9nTW9kZWwhOiBKU09OTW9kZWw7XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGlzR3JvdXBlZD86IGJvb2xlYW47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJmdW5jdGlvblwiIH0pXG5cdHB1YmxpYyBzaG93TWVzc2FnZUluZm8/OiBGdW5jdGlvbjtcblxuXHRwdWJsaWMgb3BlbigpIHtcblx0XHR0aGlzLmdldENvbnRlbnQoKTtcblx0XHR0aGlzLm9wZXJhdGlvbnNEaWFsb2cuY3VycmVudD8ub3BlbigpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRCZWdpbkJ1dHRvbigpIHtcblx0XHRyZXR1cm4gbmV3IEJ1dHRvbih7XG5cdFx0XHRwcmVzczogKCkgPT4ge1xuXHRcdFx0XHRpZiAoISh0aGlzLmlzTXVsdGlDb250ZXh0NDEyID8/IGZhbHNlKSkge1xuXHRcdFx0XHRcdHRoaXMucmVzb2x2ZT8uKHRydWUpO1xuXHRcdFx0XHRcdHRoaXMubW9kZWwuc3VibWl0QmF0Y2godGhpcy5ncm91cElkKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nUHJvbWlzZXMuZm9yRWFjaCgoc3RyaWN0SGFuZGxpbmdQcm9taXNlOiBTdHJpY3RIYW5kbGluZ1Byb21pc2UpID0+IHtcblx0XHRcdFx0XHRcdHN0cmljdEhhbmRsaW5nUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0dGhpcy5tb2RlbC5zdWJtaXRCYXRjaChzdHJpY3RIYW5kbGluZ1Byb21pc2UuZ3JvdXBJZCk7XG5cdFx0XHRcdFx0XHRpZiAoc3RyaWN0SGFuZGxpbmdQcm9taXNlLnJlcXVlc3RTaWRlRWZmZWN0cykge1xuXHRcdFx0XHRcdFx0XHRzdHJpY3RIYW5kbGluZ1Byb21pc2UucmVxdWVzdFNpZGVFZmZlY3RzKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0Y29uc3Qgc3RyaWN0SGFuZGxpbmdGYWlscyA9IHRoaXMuc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM/LnN0cmljdEhhbmRsaW5nVHJhbnNpdGlvbkZhaWxzO1xuXHRcdFx0XHRcdGlmIChzdHJpY3RIYW5kbGluZ0ZhaWxzICYmIHN0cmljdEhhbmRsaW5nRmFpbHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5tZXNzYWdlSGFuZGxlcj8ucmVtb3ZlVHJhbnNpdGlvbk1lc3NhZ2VzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLnN0cmljdEhhbmRsaW5nV2FybmluZ01lc3NhZ2VzID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzKSB7XG5cdFx0XHRcdFx0dGhpcy5zdHJpY3RIYW5kbGluZ1V0aWxpdGllcy5pczQxMkV4ZWN1dGVkID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VEaWFsb2dNb2RlbC5zZXREYXRhKHt9KTtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0fSxcblx0XHRcdHR5cGU6IFwiRW1waGFzaXplZFwiLFxuXHRcdFx0dGV4dDogdGhpcy5hY3Rpb25OYW1lXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlKCkge1xuXHRcdHRoaXMub3BlcmF0aW9uc0RpYWxvZy5jdXJyZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUaXRsZSgpIHtcblx0XHRjb25zdCBzVGl0bGUgPSBtYWNyb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1dBUk5JTkdTXCIpO1xuXHRcdHJldHVybiBuZXcgVGl0bGUoeyB0ZXh0OiBzVGl0bGUgfSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEVuZEJ1dHRvbigpIHtcblx0XHRyZXR1cm4gbmV3IEJ1dHRvbih7XG5cdFx0XHRwcmVzczogKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5zdHJpY3RIYW5kbGluZ1V0aWxpdGllcykge1xuXHRcdFx0XHRcdHRoaXMuc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMuc3RyaWN0SGFuZGxpbmdXYXJuaW5nTWVzc2FnZXMgPSBbXTtcblx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLmlzNDEyRXhlY3V0ZWQgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoISh0aGlzLmlzTXVsdGlDb250ZXh0NDEyID8/IGZhbHNlKSkge1xuXHRcdFx0XHRcdHRoaXMucmVzb2x2ZSEoZmFsc2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuc3RyaWN0SGFuZGxpbmdQcm9taXNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzdHJpY3RIYW5kbGluZ1Byb21pc2U6IFN0cmljdEhhbmRsaW5nUHJvbWlzZSkge1xuXHRcdFx0XHRcdFx0c3RyaWN0SGFuZGxpbmdQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMubWVzc2FnZURpYWxvZ01vZGVsLnNldERhdGEoe30pO1xuXHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHRcdGlmICh0aGlzLmlzR3JvdXBlZCA/PyBmYWxzZSkge1xuXHRcdFx0XHRcdHRoaXMuc2hvd01lc3NhZ2VJbmZvISgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0dGV4dDogdGhpcy5jYW5jZWxCdXR0b25UeHRcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgYnVpbGRpbmcgYmxvY2sgcmVuZGVyIGZ1bmN0aW9uLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBbiBYTUwtYmFzZWQgc3RyaW5nIHdpdGggdGhlIGRlZmluaXRpb24gb2YgdGhlIGZpZWxkIGNvbnRyb2xcblx0ICovXG5cdGdldENvbnRlbnQoKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxEaWFsb2dcblx0XHRcdFx0aWQ9e3RoaXMuaWR9XG5cdFx0XHRcdHJlZj17dGhpcy5vcGVyYXRpb25zRGlhbG9nfVxuXHRcdFx0XHRyZXNpemFibGU9e3RydWV9XG5cdFx0XHRcdGNvbnRlbnQ9e3RoaXMubWVzc2FnZU9iamVjdC5vTWVzc2FnZVZpZXd9XG5cdFx0XHRcdHN0YXRlPXtcIldhcm5pbmdcIn1cblx0XHRcdFx0Y3VzdG9tSGVhZGVyPXtcblx0XHRcdFx0XHRuZXcgQmFyKHtcblx0XHRcdFx0XHRcdGNvbnRlbnRMZWZ0OiBbdGhpcy5tZXNzYWdlT2JqZWN0Lm9CYWNrQnV0dG9uXSxcblx0XHRcdFx0XHRcdGNvbnRlbnRNaWRkbGU6IFt0aGlzLmdldFRpdGxlKCldXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fVxuXHRcdFx0XHRjb250ZW50SGVpZ2h0PXtcIjUwJVwifVxuXHRcdFx0XHRjb250ZW50V2lkdGg9e1wiNTAlXCJ9XG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPXtmYWxzZX1cblx0XHRcdFx0YmVnaW5CdXR0b249e3RoaXMuZ2V0QmVnaW5CdXR0b24oKX1cblx0XHRcdFx0ZW5kQnV0dG9uPXt0aGlzLmdldEVuZEJ1dHRvbigpfVxuXHRcdFx0PjwvRGlhbG9nPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0VBZ0NBLE1BQU1BLG1CQUFtQixHQUFHQyxJQUFJLENBQUNDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQztFQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkEsSUFTcUJDLHFCQUFxQixXQUp6Q0MsbUJBQW1CLENBQUM7SUFDcEJDLElBQUksRUFBRSxrQkFBa0I7SUFDeEJDLFNBQVMsRUFBRTtFQUNaLENBQUMsQ0FBQyxVQVNBQyxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFLElBQUk7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLFVBTWxFSCxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLFVBTWxDRCxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUUsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLFVBR2xEQyxlQUFlLEVBQUUsVUFHakJKLGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUztJQUFFRSxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsVUFHbkRILGNBQWMsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBVyxDQUFDLENBQUMsVUFHcENELGNBQWMsQ0FBQztJQUFF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LEVBQUU7VUFDWixJQUFJLElBQUksQ0FBQ1EsU0FBUyxJQUFJLEtBQUssRUFBRTtZQUM1QixJQUFJLENBQUNDLGVBQWUsRUFBRztVQUN4QjtRQUNELENBQUM7UUFDRFIsSUFBSSxFQUFFLElBQUksQ0FBQ1M7TUFDWixDQUFDLENBQUM7SUFDSDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQSxPQUtBbkMsVUFBVSxHQUFWLHNCQUFhO01BQ1osT0FDQyxLQUFDLE1BQU07UUFDTixFQUFFLEVBQUUsSUFBSSxDQUFDb0MsRUFBRztRQUNaLEdBQUcsRUFBRSxJQUFJLENBQUNuQyxnQkFBaUI7UUFDM0IsU0FBUyxFQUFFLElBQUs7UUFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQ29DLGFBQWEsQ0FBQ0MsWUFBYTtRQUN6QyxLQUFLLEVBQUUsU0FBVTtRQUNqQixZQUFZLEVBQ1gsSUFBSUMsR0FBRyxDQUFDO1VBQ1BDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQ0gsYUFBYSxDQUFDSSxXQUFXLENBQUM7VUFDN0NDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQ2QsUUFBUSxFQUFFO1FBQ2hDLENBQUMsQ0FDRDtRQUNELGFBQWEsRUFBRSxLQUFNO1FBQ3JCLFlBQVksRUFBRSxLQUFNO1FBQ3BCLGlCQUFpQixFQUFFLEtBQU07UUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQ3pCLGNBQWMsRUFBRztRQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDNkIsWUFBWTtNQUFHLEVBQ3RCO0lBRVosQ0FBQztJQUFBO0VBQUEsRUEvSmlEVyxvQkFBb0I7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7TUFBQSxPQWU5Qyx1QkFBdUI7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7TUFBQSxPQU1sQixFQUFFO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7RUFBQTtFQUFBO0FBQUEifQ==
|
|
284
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWNyb1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk9wZXJhdGlvbnNEaWFsb2dCbG9jayIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwiYmxvY2tBdHRyaWJ1dGUiLCJ0eXBlIiwiaXNQdWJsaWMiLCJyZXF1aXJlZCIsImRlZmluZVJlZmVyZW5jZSIsInByb3BzIiwib3BlbiIsImdldENvbnRlbnQiLCJvcGVyYXRpb25zRGlhbG9nIiwiY3VycmVudCIsImdldEJlZ2luQnV0dG9uIiwiQnV0dG9uIiwicHJlc3MiLCJpc011bHRpQ29udGV4dDQxMiIsInJlc29sdmUiLCJtb2RlbCIsInN1Ym1pdEJhdGNoIiwiZ3JvdXBJZCIsInN0cmljdEhhbmRsaW5nUHJvbWlzZXMiLCJmb3JFYWNoIiwic3RyaWN0SGFuZGxpbmdQcm9taXNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwic3RyaWN0SGFuZGxpbmdGYWlscyIsInN0cmljdEhhbmRsaW5nVXRpbGl0aWVzIiwic3RyaWN0SGFuZGxpbmdUcmFuc2l0aW9uRmFpbHMiLCJsZW5ndGgiLCJtZXNzYWdlSGFuZGxlciIsInJlbW92ZVRyYW5zaXRpb25NZXNzYWdlcyIsInN0cmljdEhhbmRsaW5nV2FybmluZ01lc3NhZ2VzIiwiaXM0MTJFeGVjdXRlZCIsIm1lc3NhZ2VEaWFsb2dNb2RlbCIsInNldERhdGEiLCJjbG9zZSIsInRleHQiLCJhY3Rpb25OYW1lIiwiZ2V0VGl0bGUiLCJzVGl0bGUiLCJnZXRUZXh0IiwiVGl0bGUiLCJnZXRFbmRCdXR0b24iLCJpc0dyb3VwZWQiLCJzaG93TWVzc2FnZUluZm8iLCJjYW5jZWxCdXR0b25UeHQiLCJpZCIsIm1lc3NhZ2VPYmplY3QiLCJvTWVzc2FnZVZpZXciLCJCYXIiLCJjb250ZW50TGVmdCIsIm9CYWNrQnV0dG9uIiwiY29udGVudE1pZGRsZSIsIlJ1bnRpbWVCdWlsZGluZ0Jsb2NrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJPcGVyYXRpb25zRGlhbG9nLmJsb2NrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBibG9ja0F0dHJpYnV0ZSwgZGVmaW5lQnVpbGRpbmdCbG9jayB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IFJ1bnRpbWVCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9SdW50aW1lQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVJlZmVyZW5jZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBSZWYgfSBmcm9tIFwic2FwL2ZlL2NvcmUvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgQmFyIGZyb20gXCJzYXAvbS9CYXJcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgVGl0bGUgZnJvbSBcInNhcC9tL1RpdGxlXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VIYW5kbGVyIGZyb20gXCIuLi9NZXNzYWdlSGFuZGxlclwiO1xuXG50eXBlIFN0cmljdEhhbmRsaW5nUHJvbWlzZSA9IHtcblx0Ly9UT0RPOiBtb3ZlIHRvIHNvbWV3aGVyZSBlbHNlXG5cdHJlc29sdmU6IEZ1bmN0aW9uO1xuXHRncm91cElkOiBzdHJpbmc7XG5cdHJlcXVlc3RTaWRlRWZmZWN0cz86IEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgU3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMgPSB7XG5cdC8vVE9ETzogbW92ZSB0byBzb21ld2hlcmUgZWxzZVxuXHRpczQxMkV4ZWN1dGVkOiBib29sZWFuO1xuXHRzdHJpY3RIYW5kbGluZ1RyYW5zaXRpb25GYWlsczogT2JqZWN0W107XG5cdHN0cmljdEhhbmRsaW5nUHJvbWlzZXM6IFN0cmljdEhhbmRsaW5nUHJvbWlzZVtdO1xuXHRzdHJpY3RIYW5kbGluZ1dhcm5pbmdNZXNzYWdlczogTWVzc2FnZVtdO1xuXHRkZWxheVN1Y2Nlc3NNZXNzYWdlczogTWVzc2FnZVtdO1xuXHRwcm9jZXNzZWRNZXNzYWdlSWRzOiBzdHJpbmdbXTtcbn07XG5cbmNvbnN0IG1hY3JvUmVzb3VyY2VCdW5kbGUgPSBDb3JlLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5tYWNyb3NcIik7XG4vKipcbiAqIEtub3duIGxpbWl0YXRpb25zIGZvciB0aGUgZmlyc3QgdHJ5b3V0IGFzIG1lbnRpb25lZCBpbiBnaXQgNTgwNjQ0MlxuICogIC0gZnVuY3Rpb25hbCBibG9jayBkZXBlbmRlbmN5XG4gKiBcdC0gcXVlc3Rpb25hYmxlIHBhcmFtZXRlcnMgd2lsbCBiZSByZWZhY3RvcmVkXG4gKi9cbkBkZWZpbmVCdWlsZGluZ0Jsb2NrKHtcblx0bmFtZTogXCJPcGVyYXRpb25zRGlhbG9nXCIsXG5cdG5hbWVzcGFjZTogXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9uc1wiXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3BlcmF0aW9uc0RpYWxvZ0Jsb2NrIGV4dGVuZHMgUnVudGltZUJ1aWxkaW5nQmxvY2sge1xuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPE9wZXJhdGlvbnNEaWFsb2dCbG9jaz4pIHtcblx0XHRzdXBlcihwcm9wcyk7XG5cdH1cblxuXHQvKlxuXHQgKiBUaGUgJ2lkJyBwcm9wZXJ0eSBvZiB0aGUgZGlhbG9nXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCBpc1B1YmxpYzogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHVibGljIGlkITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGUgJ3RpdGxlJyBwcm9wZXJ0eSBvZiB0aGUgRGlhbG9nO1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRwdWJsaWMgdGl0bGU/OiBzdHJpbmcgPSBcIkRpYWxvZyBTdGFuZGFyZCBUaXRsZVwiO1xuXG5cdC8qKlxuXHQgKiBUaGUgbWVzc2FnZSBvYmplY3QgdGhhdCBpcyBwcm92aWRlZCB0byB0aGlzIGRpYWxvZ1xuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiwgcmVxdWlyZWQ6IHRydWUgfSkgLy9UT0RPOiBjcmVhdGUgdGhlIHR5cGVcblx0cHVibGljIG1lc3NhZ2VPYmplY3Q/OiBhbnkgPSBcIlwiO1xuXG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHRvcGVyYXRpb25zRGlhbG9nITogUmVmPERpYWxvZz47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJib29sZWFuXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBpc011bHRpQ29udGV4dDQxMj86IGJvb2xlYW47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJmdW5jdGlvblwiIH0pXG5cdHB1YmxpYyByZXNvbHZlPzogRnVuY3Rpb247XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiwgcmVxdWlyZWQ6IHRydWUgfSlcblx0cHVibGljIG1vZGVsITogT0RhdGFNb2RlbDtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgZ3JvdXBJZCE6IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgYWN0aW9uTmFtZSE6IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgY2FuY2VsQnV0dG9uVHh0ITogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwib2JqZWN0XCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBzdHJpY3RIYW5kbGluZ1Byb21pc2VzITogU3RyaWN0SGFuZGxpbmdQcm9taXNlW107XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRwdWJsaWMgc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM/OiBTdHJpY3RIYW5kbGluZ1V0aWxpdGllcztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdHB1YmxpYyBtZXNzYWdlSGFuZGxlcj86IE1lc3NhZ2VIYW5kbGVyO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7IHR5cGU6IFwib2JqZWN0XCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBtZXNzYWdlRGlhbG9nTW9kZWwhOiBKU09OTW9kZWw7XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGlzR3JvdXBlZD86IGJvb2xlYW47XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJmdW5jdGlvblwiIH0pXG5cdHB1YmxpYyBzaG93TWVzc2FnZUluZm8/OiBGdW5jdGlvbjtcblxuXHRwdWJsaWMgb3BlbigpIHtcblx0XHR0aGlzLmdldENvbnRlbnQoKTtcblx0XHR0aGlzLm9wZXJhdGlvbnNEaWFsb2cuY3VycmVudD8ub3BlbigpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRCZWdpbkJ1dHRvbigpIHtcblx0XHRyZXR1cm4gbmV3IEJ1dHRvbih7XG5cdFx0XHRwcmVzczogKCkgPT4ge1xuXHRcdFx0XHRpZiAoISh0aGlzLmlzTXVsdGlDb250ZXh0NDEyID8/IGZhbHNlKSkge1xuXHRcdFx0XHRcdHRoaXMucmVzb2x2ZT8uKHRydWUpO1xuXHRcdFx0XHRcdHRoaXMubW9kZWwuc3VibWl0QmF0Y2godGhpcy5ncm91cElkKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nUHJvbWlzZXMuZm9yRWFjaCgoc3RyaWN0SGFuZGxpbmdQcm9taXNlOiBTdHJpY3RIYW5kbGluZ1Byb21pc2UpID0+IHtcblx0XHRcdFx0XHRcdHN0cmljdEhhbmRsaW5nUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0dGhpcy5tb2RlbC5zdWJtaXRCYXRjaChzdHJpY3RIYW5kbGluZ1Byb21pc2UuZ3JvdXBJZCk7XG5cdFx0XHRcdFx0XHRpZiAoc3RyaWN0SGFuZGxpbmdQcm9taXNlLnJlcXVlc3RTaWRlRWZmZWN0cykge1xuXHRcdFx0XHRcdFx0XHRzdHJpY3RIYW5kbGluZ1Byb21pc2UucmVxdWVzdFNpZGVFZmZlY3RzKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0Y29uc3Qgc3RyaWN0SGFuZGxpbmdGYWlscyA9IHRoaXMuc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM/LnN0cmljdEhhbmRsaW5nVHJhbnNpdGlvbkZhaWxzO1xuXHRcdFx0XHRcdGlmIChzdHJpY3RIYW5kbGluZ0ZhaWxzICYmIHN0cmljdEhhbmRsaW5nRmFpbHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0dGhpcy5tZXNzYWdlSGFuZGxlcj8ucmVtb3ZlVHJhbnNpdGlvbk1lc3NhZ2VzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLnN0cmljdEhhbmRsaW5nV2FybmluZ01lc3NhZ2VzID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzKSB7XG5cdFx0XHRcdFx0dGhpcy5zdHJpY3RIYW5kbGluZ1V0aWxpdGllcy5pczQxMkV4ZWN1dGVkID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VEaWFsb2dNb2RlbC5zZXREYXRhKHt9KTtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0fSxcblx0XHRcdHR5cGU6IFwiRW1waGFzaXplZFwiLFxuXHRcdFx0dGV4dDogdGhpcy5hY3Rpb25OYW1lXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlKCkge1xuXHRcdHRoaXMub3BlcmF0aW9uc0RpYWxvZy5jdXJyZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUaXRsZSgpIHtcblx0XHRjb25zdCBzVGl0bGUgPSBtYWNyb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1dBUk5JTkdTXCIpO1xuXHRcdHJldHVybiBuZXcgVGl0bGUoeyB0ZXh0OiBzVGl0bGUgfSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEVuZEJ1dHRvbigpIHtcblx0XHRyZXR1cm4gbmV3IEJ1dHRvbih7XG5cdFx0XHRwcmVzczogKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5zdHJpY3RIYW5kbGluZ1V0aWxpdGllcykge1xuXHRcdFx0XHRcdHRoaXMuc3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMuc3RyaWN0SGFuZGxpbmdXYXJuaW5nTWVzc2FnZXMgPSBbXTtcblx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLmlzNDEyRXhlY3V0ZWQgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoISh0aGlzLmlzTXVsdGlDb250ZXh0NDEyID8/IGZhbHNlKSkge1xuXHRcdFx0XHRcdHRoaXMucmVzb2x2ZT8uKGZhbHNlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnN0cmljdEhhbmRsaW5nUHJvbWlzZXMuZm9yRWFjaChmdW5jdGlvbiAoc3RyaWN0SGFuZGxpbmdQcm9taXNlOiBTdHJpY3RIYW5kbGluZ1Byb21pc2UpIHtcblx0XHRcdFx0XHRcdHN0cmljdEhhbmRsaW5nUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VEaWFsb2dNb2RlbC5zZXREYXRhKHt9KTtcblx0XHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdFx0XHRpZiAodGhpcy5pc0dyb3VwZWQgPz8gZmFsc2UpIHtcblx0XHRcdFx0XHR0aGlzLnNob3dNZXNzYWdlSW5mbyEoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHRleHQ6IHRoaXMuY2FuY2VsQnV0dG9uVHh0XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJ1aWxkaW5nIGJsb2NrIHJlbmRlciBmdW5jdGlvbi5cblx0ICpcblx0ICogQHJldHVybnMgQW4gWE1MLWJhc2VkIHN0cmluZyB3aXRoIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBmaWVsZCBjb250cm9sXG5cdCAqL1xuXHRnZXRDb250ZW50KCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdGlkPXt0aGlzLmlkfVxuXHRcdFx0XHRyZWY9e3RoaXMub3BlcmF0aW9uc0RpYWxvZ31cblx0XHRcdFx0cmVzaXphYmxlPXt0cnVlfVxuXHRcdFx0XHRjb250ZW50PXt0aGlzLm1lc3NhZ2VPYmplY3Qub01lc3NhZ2VWaWV3fVxuXHRcdFx0XHRzdGF0ZT17XCJXYXJuaW5nXCJ9XG5cdFx0XHRcdGN1c3RvbUhlYWRlcj17XG5cdFx0XHRcdFx0bmV3IEJhcih7XG5cdFx0XHRcdFx0XHRjb250ZW50TGVmdDogW3RoaXMubWVzc2FnZU9iamVjdC5vQmFja0J1dHRvbl0sXG5cdFx0XHRcdFx0XHRjb250ZW50TWlkZGxlOiBbdGhpcy5nZXRUaXRsZSgpXVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdFx0Y29udGVudEhlaWdodD17XCI1MCVcIn1cblx0XHRcdFx0Y29udGVudFdpZHRoPXtcIjUwJVwifVxuXHRcdFx0XHR2ZXJ0aWNhbFNjcm9sbGluZz17ZmFsc2V9XG5cdFx0XHRcdGJlZ2luQnV0dG9uPXt0aGlzLmdldEJlZ2luQnV0dG9uKCl9XG5cdFx0XHRcdGVuZEJ1dHRvbj17dGhpcy5nZXRFbmRCdXR0b24oKX1cblx0XHRcdD48L0RpYWxvZz5cblx0XHQpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztFQWdDQSxNQUFNQSxtQkFBbUIsR0FBR0MsSUFBSSxDQUFDQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUM7RUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBU3FCQyxxQkFBcUIsV0FKekNDLG1CQUFtQixDQUFDO0lBQ3BCQyxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCQyxTQUFTLEVBQUU7RUFDWixDQUFDLENBQUMsVUFTQUMsY0FBYyxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFFBQVEsRUFBRSxJQUFJO0lBQUVDLFFBQVEsRUFBRTtFQUFLLENBQUMsQ0FBQyxVQU1sRUgsY0FBYyxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxVQU1sQ0QsY0FBYyxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVFLFFBQVEsRUFBRTtFQUFLLENBQUMsQ0FBQyxVQUdsREMsZUFBZSxFQUFFLFVBR2pCSixjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUUsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLFVBR25ESCxjQUFjLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVcsQ0FBQyxDQUFDLFVBR3BDRCxjQUFjLENBQUM7SUFB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Q25DLElBQUksQ0FBQ0MsS0FBSyxFQUFFO1VBQ1osSUFBSSxJQUFJLENBQUNRLFNBQVMsSUFBSSxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDQyxlQUFlLEVBQUc7VUFDeEI7UUFDRCxDQUFDO1FBQ0RSLElBQUksRUFBRSxJQUFJLENBQUNTO01BQ1osQ0FBQyxDQUFDO0lBQ0g7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEsT0FLQW5DLFVBQVUsR0FBVixzQkFBYTtNQUNaLE9BQ0MsS0FBQyxNQUFNO1FBQ04sRUFBRSxFQUFFLElBQUksQ0FBQ29DLEVBQUc7UUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDbkMsZ0JBQWlCO1FBQzNCLFNBQVMsRUFBRSxJQUFLO1FBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUNvQyxhQUFhLENBQUNDLFlBQWE7UUFDekMsS0FBSyxFQUFFLFNBQVU7UUFDakIsWUFBWSxFQUNYLElBQUlDLEdBQUcsQ0FBQztVQUNQQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUNILGFBQWEsQ0FBQ0ksV0FBVyxDQUFDO1VBQzdDQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUNkLFFBQVEsRUFBRTtRQUNoQyxDQUFDLENBQ0Q7UUFDRCxhQUFhLEVBQUUsS0FBTTtRQUNyQixZQUFZLEVBQUUsS0FBTTtRQUNwQixpQkFBaUIsRUFBRSxLQUFNO1FBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUN6QixjQUFjLEVBQUc7UUFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQzZCLFlBQVk7TUFBRyxFQUN0QjtJQUVaLENBQUM7SUFBQTtFQUFBLEVBL0ppRFcsb0JBQW9CO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO01BQUEsT0FlOUMsdUJBQXVCO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO01BQUEsT0FNbEIsRUFBRTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0VBQUE7RUFBQTtBQUFBIn0=
|
|
@@ -157,7 +157,7 @@ export default class OperationsDialogBlock extends RuntimeBuildingBlock {
|
|
|
157
157
|
this.strictHandlingUtilities.is412Executed = false;
|
|
158
158
|
}
|
|
159
159
|
if (!(this.isMultiContext412 ?? false)) {
|
|
160
|
-
this.resolve
|
|
160
|
+
this.resolve?.(false);
|
|
161
161
|
} else {
|
|
162
162
|
this.strictHandlingPromises.forEach(function (strictHandlingPromise: StrictHandlingPromise) {
|
|
163
163
|
strictHandlingPromise.resolve(false);
|
|
@@ -231,17 +231,19 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
231
231
|
let draftRootPath = oContext.getPath();
|
|
232
232
|
if (!oDraftRoot) {
|
|
233
233
|
draftRootPath = ModelHelper.getDraftRootPath(oContext) ?? draftRootPath;
|
|
234
|
+
oContext = oModel.bindContext(draftRootPath, undefined, {
|
|
235
|
+
$expand: "DraftAdministrativeData"
|
|
236
|
+
}).getBoundContext();
|
|
234
237
|
}
|
|
235
|
-
oContext = oModel.bindContext(draftRootPath, undefined, {
|
|
236
|
-
$expand: "DraftAdministrativeData"
|
|
237
|
-
}).getBoundContext();
|
|
238
238
|
// Shouldn't display data loss popover on shell back navigation from sub-object pages
|
|
239
239
|
// and when object page is in display mode
|
|
240
240
|
if (originalContext && (originalContext.isDeleted() || originalContext.getObject()) && (!oDraftRoot && navigationType === NavigationType.BackNavigation || !bIsEditable)) {
|
|
241
241
|
fnProcessFunction();
|
|
242
242
|
} else {
|
|
243
243
|
try {
|
|
244
|
-
|
|
244
|
+
// The following 3 properties are needed to determine the state of the draft, so we ensure they are loaded
|
|
245
|
+
await oContext.requestProperty(["DraftAdministrativeData/CreationDateTime", "DraftAdministrativeData/LastChangeDateTime", "HasActiveEntity"]);
|
|
246
|
+
const draftAdminData = oContext.getObject("DraftAdministrativeData");
|
|
245
247
|
await processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, originalContext, oController, bSkipBindingToView, navigationType);
|
|
246
248
|
} catch (oError) {
|
|
247
249
|
Log.error("Cannot retrieve draftDataContext information", oError);
|
|
@@ -335,4 +337,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
335
337
|
};
|
|
336
338
|
return draftDataLossPopup;
|
|
337
339
|
}, false);
|
|
338
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZGF0YUxvc3NEaWFsb2ciLCJEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2siLCJzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24iLCJwYWdlQ29udHJvbGxlciIsInJiU2lsZW50bHlLZWVwIiwib01hbmlmZXN0IiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3QiLCJhcHAiLCJwcm9jZXNzRmNsTW9kZSIsImRyYWZ0QWRtaW5EYXRhIiwiZm5DYW5jZWxGdW5jdGlvbiIsIm9Db250cm9sbGVyIiwicHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIiwiYlNraXBCaW5kaW5nVG9WaWV3IiwiY29udGV4dCIsIkNyZWF0aW9uRGF0ZVRpbWUiLCJMYXN0Q2hhbmdlRGF0ZVRpbWUiLCJvcGVuIiwidGhlbiIsInNlbGVjdGVkS2V5IiwiZHJhZnREYXRhTG9zc1BvcHVwIiwiaGFuZGxlRGlhbG9nU2VsZWN0aW9uIiwicHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZSIsIm5hdmlnYXRpb25UeXBlIiwiYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiIsIkVkaXRTdGF0ZSIsImlzRWRpdFN0YXRlRGlydHkiLCJCYWNrTmF2aWdhdGlvbiIsImRpc2NhcmREcmFmdCIsImVycm9yIiwiTG9nIiwiRm9yd2FyZE5hdmlnYXRpb24iLCJwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkiLCJvQ29udGV4dCIsIm1QYXJhbWV0ZXJzIiwic2tpcERpc2NhcmRQb3BvdmVyIiwiZWRpdEZsb3ciLCJjYW5jZWxEb2N1bWVudCIsInByb2Nlc3NFZGl0U3RhdGVEaXJ0eSIsInByb2Nlc3NEcmFmdEFkbWluRGF0YSIsImZuUHJvY2Vzc0Z1bmN0aW9uIiwib3JpZ2luYWxDb250ZXh0IiwiY29sbGFib3JhdGlvbkNvbm5lY3RlZCIsIkFjdGl2aXR5U3luYyIsImlzQ29ubmVjdGVkIiwiZ2V0VmlldyIsImRpc2Nvbm5lY3QiLCJhcmdzIiwiYXBwbHkiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRPYmplY3QiLCJIYXNBY3RpdmVFbnRpdHkiLCJwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbiIsIm9WaWV3Iiwib01vZGVsIiwiZ2V0TW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiY29udGV4dFBhdGgiLCJnZXRWaWV3RGF0YSIsImVudGl0eVNldCIsInVuZGVmaW5lZCIsIm9EcmFmdFJvb3QiLCJvVUlNb2RlbCIsImJJc0VkaXRhYmxlIiwiZ2V0UHJvcGVydHkiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0UGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0RHJhZnRSb290UGF0aCIsImJpbmRDb250ZXh0IiwiJGV4cGFuZCIsImdldEJvdW5kQ29udGV4dCIsImlzRGVsZXRlZCIsInJlcXVlc3RPYmplY3QiLCJvRXJyb3IiLCJzYXZlRG9jdW1lbnQiLCJjb250cm9sbGVyIiwiaGFzSW5pdGlhbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImlzQSIsIl9zYXZlRG9jdW1lbnQiLCJza2lwQmluZGluZ1RvVmlldyIsInBhcmFtcyIsInNraXBCYWNrTmF2aWdhdGlvbiIsIlNhdmUiLCJjYXRjaCIsIlJlY29tbWVuZGF0aW9uRGlhbG9nRGVjaXNpb24iLCJDb250aW51ZSIsImNsb3NlIiwiS2VlcCIsIkRpc2NhcmQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImRyYWZ0RGF0YUxvc3NQb3B1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBBY3Rpdml0eVN5bmMgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlTeW5jXCI7XG5pbXBvcnQgRWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0VkaXRTdGF0ZVwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRHJhZnREYXRhTG9zc0RpYWxvZ0Jsb2NrIGZyb20gXCIuLi8uLi9jb250cm9scy9EYXRhTG9zc09yRHJhZnREaXNjYXJkL0RyYWZ0RGF0YUxvc3NEaWFsb2cuYmxvY2tcIjtcbmltcG9ydCB7IFJlY29tbWVuZGF0aW9uRGlhbG9nRGVjaXNpb24gfSBmcm9tIFwiLi4vLi4vY29udHJvbHMvUmVjb21tZW5kYXRpb25zL0NvbmZpcm1SZWNvbW1lbmRhdGlvbkRpYWxvZy5ibG9ja1wiO1xuXG4vKiBFbnVtIGZvciBuYXZpZ2F0aW9uIHR5cGVzICovXG5lbnVtIE5hdmlnYXRpb25UeXBlIHtcblx0QmFja05hdmlnYXRpb24gPSBcIkJhY2tOYXZpZ2F0aW9uXCIsXG5cdEZvcndhcmROYXZpZ2F0aW9uID0gXCJGb3J3YXJkTmF2aWdhdGlvblwiXG59XG5cbi8qIEVudW0gdHlwZXMgZm9yIHRoZSBkYXRhbG9zcyBkaWFsb2cgb3B0aW9ucyAqL1xuZW51bSBEcmFmdERhdGFMb3NzT3B0aW9ucyB7XG5cdFNhdmUgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25TYXZlXCIsXG5cdEtlZXAgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25LZWVwXCIsXG5cdERpc2NhcmQgPSBcImRyYWZ0RGF0YUxvc3NPcHRpb25EaXNjYXJkXCJcbn1cblxuLyogQ3VzdG9tIHR5cGUgZm9yIGNvbnRyb2xsZXIgaW4gb3JkZXIgdG8gYWxsb3cgYWRkaXRpb25hbCBwcm9wZXJ0aWVzICovXG50eXBlIEN1c3RvbUNvbnRyb2xsZXIgPSBQYWdlQ29udHJvbGxlciAmIHsgX3NhdmVEb2N1bWVudDogRnVuY3Rpb24gfTtcblxuLypDcmVhdGUgdGhlIGRhdGFsb3NzIGRpYWxvZyovXG5jb25zdCBkYXRhTG9zc0RpYWxvZyA9IG5ldyBEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2soe30pO1xuXG4vKipcbiAqIFRoZSBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIGluIHRoZSBtYW5pZmVzdCBpcyBzZXQgdG8gc2lsZW50bHkga2VlcCB0aGUgZHJhZnQgaW4gY2FzZSBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQuXG4gKlxuICogQHBhcmFtIHBhZ2VDb250cm9sbGVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgUGFnZUNvbnRyb2xsZXIgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgd2l0aCB0cnVlIG9yIGZhbHNlIHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0XG4gKi9cbmZ1bmN0aW9uIHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihwYWdlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpIHtcblx0bGV0IHJiU2lsZW50bHlLZWVwID0gZmFsc2U7XG5cdGNvbnN0IG9NYW5pZmVzdCA9IHBhZ2VDb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldE1hbmlmZXN0KCkgYXMgYW55O1xuXHRyYlNpbGVudGx5S2VlcCA9IG9NYW5pZmVzdD8uW1wic2FwLmZlXCJdPy5hcHA/LnNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiB8fCBmYWxzZTtcblx0cmV0dXJuIHJiU2lsZW50bHlLZWVwO1xufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIEZDTCBtb2RlLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvblxuICogQHJldHVybnMgTm90aGluZ1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRmNsTW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0Y29udGV4dD86IENvbnRleHRcbik6IFByb21pc2U8dm9pZD4ge1xuXHQvLyBUaGUgYXBwbGljYXRpb24gaXMgcnVubmluZyBpbiBGQ0wgbW9kZSBzbyBpbiB0aGlzIGNhc2Ugd2UgZmFsbCBiYWNrIHRvXG5cdC8vIHRoZSBvbGQgbG9naWMgc2luY2UgdGhlIGRpcnR5IHN0YXRlIGhhbmRsaW5nIGlzIG5vdCBwcm9wZXJseSB3b3JraW5nXG5cdC8vIGZvciBGQ0wuXG5cdGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lICE9PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUpIHtcblx0XHRyZXR1cm4gZGF0YUxvc3NEaWFsb2dcblx0XHRcdC5vcGVuKG9Db250cm9sbGVyKVxuXHRcdFx0LnRoZW4oKHNlbGVjdGVkS2V5KSA9PlxuXHRcdFx0XHRkcmFmdERhdGFMb3NzUG9wdXAuaGFuZGxlRGlhbG9nU2VsZWN0aW9uKFxuXHRcdFx0XHRcdHNlbGVjdGVkS2V5IGFzIHN0cmluZyxcblx0XHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdFx0Y29udGV4dFxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHR9IGVsc2Uge1xuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgbW9kZSB3aXRoIG5vIGFjdGl2ZSBlbnRpdHkuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWRcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0Y29udGV4dD86IENvbnRleHRcbik6IFByb21pc2U8dm9pZD4ge1xuXHQvLyBUaGVyZSBpcyBubyBhY3RpdmUgZW50aXR5IHNvLCB3ZSBhcmUgZWRpdGluZyBlaXRoZXIgbmV3bHkgY3JlYXRlZCBkYXRhIG9yXG5cdC8vIGEgZHJhZnQgd2hpY2ggaGFzIG5ldmVyIGJlZW4gc2F2ZWQgdG8gYWN0aXZlIHZlcnNpb25cblx0Ly8gU2luY2Ugd2Ugd2FudCB0byByZWFjdCBkaWZmZXJlbnRseSBpbiB0aGUgdHdvIHNpdHVhdGlvbnMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlXG5cdC8vIGRpcnR5IHN0YXRlXG5cdGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSAmJiBuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRcdC8vIGluIGNhc2Ugd2UgaGF2ZSB1bnRvdWNoZWQgY2hhbmdlcyBmb3IgdGhlIGRyYWZ0IGFuZCBhIFwiYmFja1wiXG5cdFx0XHQvLyBuYXZpZ2F0aW9uIHdlIGNhbiBzaWxlbnRseSBkaXNjYXJkIHRoZSBkcmFmdCBhZ2FpblxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2Uvbm8tbmVzdGluZ1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgZHJhZnREYXRhTG9zc1BvcHVwLmRpc2NhcmREcmFmdChvQ29udHJvbGxlciwgYlNraXBCaW5kaW5nVG9WaWV3LCBjb250ZXh0KTtcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkZvcndhcmROYXZpZ2F0aW9uICYmIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24pIHtcblx0XHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEluIHRoaXMgY2FzZSBkYXRhIGlzIGJlaW5nIGNoYW5nZWQgb3IgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkXG5cdFx0XHQvLyBhbmQsIHdlIGFsd2F5cyB3YW50IHRvIHNob3cgdGhlIGRhdGEgbG9zcyBkaWFsb2cgb24gbmF2aWdhdGlvblxuXHRcdFx0cmV0dXJuIGRhdGFMb3NzRGlhbG9nXG5cdFx0XHRcdC5vcGVuKG9Db250cm9sbGVyKVxuXHRcdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwLmhhbmRsZURpYWxvZ1NlbGVjdGlvbihcblx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5IGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRcdGNvbnRleHRcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIFdlIGFyZSBlZGl0aW5nIGEgZHJhZnQgd2hpY2ggaGFzIGJlZW4gY3JlYXRlZCBlYXJsaWVyIGJ1dCBuZXZlciBzYXZlZCB0byBhY3RpdmVcblx0XHQvLyB2ZXJzaW9uIGFuZCBzaW5jZSB0aGUgZWRpdCBzdGF0ZSBpcyBub3QgZGlydHksIHRoZXJlIGhhdmUgYmVlbiBubyB1c2VyIGNoYW5nZXNcblx0XHQvLyBzbyBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBzaWxlbnRseSBuYXZpZ2F0ZSBhbmQgZG8gbm90aGluZ1xuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgZHJhZnQgZWRpdGluZyBmb3IgZXhpc3RpbmcgZW50aXR5LlxuICpcbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWQuXG4gKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgY2FsbFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShcblx0b0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRvQ29udGV4dDogQ29udGV4dCxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBGdW5jdGlvbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Ly8gV2UgYXJlIGVkaXRpbmcgYSBkcmFmdCBmb3IgYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eVxuXHQvLyBUaGUgQ3JlYXRpb25EYXRlVGltZSBhbmQgTGFzdENoYW5nZURhdGVUaW1lIGFyZSBlcXVhbCwgc28gdGhpcyBkcmFmdCB3YXNcblx0Ly8gbmV2ZXIgc2F2ZWQgYmVmb3JlLCBoZW5jZSB3ZSdyZSBjdXJyZW50bHkgZWRpdGluZyBhIG5ld2x5IGNyZWF0ZWQgZHJhZnQgZm9yXG5cdC8vIGFuIGV4aXN0aW5nIGFjdGl2ZSBlbnRpdHkgZm9yIHRoZSBmaXJzdCB0aW1lLlxuXHQvLyBBbHNvLCB0aGVyZSBoYXZlIHNvIGZhciBiZWVuIG5vIGNoYW5nZXMgbWFkZSB0byB0aGUgZHJhZnQgYW5kIGluIHRoaXNcblx0Ly8gY2FzZSB3ZSB3YW50IHRvIHNpbGVudGx5IG5hdmlnYXRlIGFuZCBkZWxldGUgdGhlIGRyYWZ0aW4gY2FzZSBvZiBhIGJhY2tcblx0Ly8gbmF2aWdhdGlvbiBidXQgaW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSB3YW50IHRvIHNpbGVudGx5IGtlZXAgaXQhXG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IHtcblx0XHRcdHNraXBEaXNjYXJkUG9wb3ZlcjogdHJ1ZVxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgb0NvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbWV0ZXJzKTtcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjYW5jZWxpbmcgdGhlIGRvY3VtZW50XCIsIGVycm9yIGFzIEVycm9yKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBhbmQgb25seVxuXHRcdC8vIGV4ZWN1dGUgdGhlIGZvbGxvd3VwIGZ1bmN0aW9uLlxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgY29udGV4dCB3aGVuIHRoZSBlZGl0IHN0YXRlIGlzIGluIGRpcnR5IG1vZGUuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXcuXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uc1xuICogQHJldHVybnMgTm90aGluZ1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0Y29udGV4dD86IENvbnRleHRcbik6IFByb21pc2U8dm9pZD4ge1xuXHRpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkZvcndhcmROYXZpZ2F0aW9uICYmIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24pIHtcblx0XHQvLyBJbiBjYXNlIHdlIGhhdmUgYSBcImZvcndhcmQgbmF2aWdhdGlvblwiIGFuZCBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciBzZXQgaW4gdGhlIG1hbmlmZXN0XG5cdFx0Ly8gd2UgXCJzaWxlbnRseVwiIGtlZXAgdGhlIGRyYWZ0XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gVGhlIENyZWF0aW9uRGF0ZVRpbWUgYW5kIExhc3RDaGFuZ2VEYXRlVGltZSBhcmUgTk9UIGVxdWFsLCBzbyB3ZSBhcmUgY3VycmVudGx5IGVkaXRpbmdcblx0XHQvLyBhbiBleGlzdGluZyBkcmFmdCBhbmQgbmVlZCB0byBkaXN0aW5ndWlzaCBkZXBlbmRpbmcgb24gaWYgYW55IGNoYW5nZXNcblx0XHQvLyBoYXZlIGJlZW4gbWFkZSBpbiB0aGUgY3VycmVudCBlZGl0aW5nIHNlc3Npb24gb3Igbm90XG5cdFx0Ly8gQ2hhbmdlcyBoYXZlIGJlZW4gbWFkZSBpbiB0aGUgY3VycmVudCBlZGl0aW5nIHNlc3Npb24sIHNvIHdlIHdhbnRcblx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYW5kIGxldCB0aGUgdXNlciBkZWNpZGVcblx0XHRyZXR1cm4gZGF0YUxvc3NEaWFsb2dcblx0XHRcdC5vcGVuKG9Db250cm9sbGVyKVxuXHRcdFx0LnRoZW4oKHNlbGVjdGVkS2V5KSA9PlxuXHRcdFx0XHRkcmFmdERhdGFMb3NzUG9wdXAuaGFuZGxlRGlhbG9nU2VsZWN0aW9uKFxuXHRcdFx0XHRcdHNlbGVjdGVkS2V5IGFzIHN0cmluZyxcblx0XHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdFx0Y29udGV4dFxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgYWRtaW4gZGF0YS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuUHJvY2Vzc0Z1bmN0aW9uIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgY2FsbFxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHJldHVybnMgTm90aGluZ1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b3JpZ2luYWxDb250ZXh0OiBDb250ZXh0LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IGNvbGxhYm9yYXRpb25Db25uZWN0ZWQgPSBBY3Rpdml0eVN5bmMuaXNDb25uZWN0ZWQob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0Y29uc3QgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzID0gIWNvbGxhYm9yYXRpb25Db25uZWN0ZWRcblx0XHQ/IGZuUHJvY2Vzc0Z1bmN0aW9uXG5cdFx0OiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0QWN0aXZpdHlTeW5jLmRpc2Nvbm5lY3Qob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24uYXBwbHkobnVsbCwgLi4uYXJncyk7XG5cdFx0ICB9O1xuXG5cdGNvbnN0IGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gPSBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ob0NvbnRyb2xsZXIpO1xuXG5cdGlmIChkcmFmdEFkbWluRGF0YSkge1xuXHRcdGlmIChvQ29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS5pc0ZjbEVuYWJsZWQoKSkge1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0ZjbE1vZGUoZHJhZnRBZG1pbkRhdGEsIGZuQ2FuY2VsRnVuY3Rpb24sIG9Db250cm9sbGVyLCBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsIGJTa2lwQmluZGluZ1RvVmlldywgb0NvbnRleHQpO1xuXHRcdH0gZWxzZSBpZiAoIW9yaWdpbmFsQ29udGV4dC5nZXRPYmplY3QoKS5IYXNBY3RpdmVFbnRpdHkpIHtcblx0XHRcdHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUoXG5cdFx0XHRcdGRyYWZ0QWRtaW5EYXRhLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZSxcblx0XHRcdFx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSA9PT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lKSB7XG5cdFx0XHRwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkob0NvbnRyb2xsZXIsIG9Db250ZXh0LCBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsIG5hdmlnYXRpb25UeXBlKTtcblx0XHR9IGVsc2UgaWYgKEVkaXRTdGF0ZS5pc0VkaXRTdGF0ZURpcnR5KCkpIHtcblx0XHRcdHByb2Nlc3NFZGl0U3RhdGVEaXJ0eShcblx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0bmF2aWdhdGlvblR5cGUsXG5cdFx0XHRcdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gVGhlIHVzZXIgc3RhcnRlZCBlZGl0aW5nIHRoZSBleGlzdGluZyBkcmFmdCBidXQgZGlkIG5vdCBtYWtlIGFueSBjaGFuZ2VzXG5cdFx0XHQvLyBpbiB0aGUgY3VycmVudCBlZGl0aW5nIHNlc3Npb24sIHNvIGluIHRoaXMgY2FzZSB3ZSBkbyBub3Qgd2FudFxuXHRcdFx0Ly8gdG8gc2hvdyB0aGUgZGF0YWxvc3MgZGlhbG9nIGJ1dCBqdXN0IGtlZXAgdGhlIGRyYWZ0XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Zm5Qcm9jZXNzRnVuY3Rpb24oKTtcblx0fVxufVxuXG4vKipcbiAqIFRoZSBnZW5lcmFsIGhhbmRsZXIgaW4gd2hpY2ggdGhlIGluZGl2aWR1YWwgc3RlcHMgYXJlIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gZm5Qcm9jZXNzRnVuY3Rpb25cbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRleHRcbiAqIEBwYXJhbSBvQ29udHJvbGxlclxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uKFxuXHRmblByb2Nlc3NGdW5jdGlvbjogYW55LFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBhbnksXG5cdG9Db250ZXh0OiBhbnksXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSA9IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uXG4pIHtcblx0Y29uc3Qgb1ZpZXcgPSBvQ29udHJvbGxlci5nZXRWaWV3KCk7XG5cdGNvbnN0IG9Nb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCk7XG5cdGNvbnN0IG9NZXRhTW9kZWwgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCk7XG5cdGNvbnN0IGNvbnRleHRQYXRoID1cblx0XHRvVmlldy5nZXRWaWV3RGF0YSgpLmNvbnRleHRQYXRoIHx8IChvVmlldy5nZXRWaWV3RGF0YSgpLmVudGl0eVNldCA/IGAvJHtvVmlldy5nZXRWaWV3RGF0YSgpLmVudGl0eVNldH1gIDogdW5kZWZpbmVkKTtcblx0Y29uc3Qgb0RyYWZ0Um9vdCA9IGNvbnRleHRQYXRoICYmIG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGNvbnRleHRQYXRoICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdFwiKTtcblx0Y29uc3Qgb1VJTW9kZWwgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpO1xuXHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cdGNvbnN0IG9yaWdpbmFsQ29udGV4dCA9IG9Db250ZXh0O1xuXHRsZXQgZHJhZnRSb290UGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0aWYgKCFvRHJhZnRSb290KSB7XG5cdFx0ZHJhZnRSb290UGF0aCA9IE1vZGVsSGVscGVyLmdldERyYWZ0Um9vdFBhdGgob0NvbnRleHQpID8/IGRyYWZ0Um9vdFBhdGg7XG5cdH1cblx0b0NvbnRleHQgPSBvTW9kZWwuYmluZENvbnRleHQoZHJhZnRSb290UGF0aCwgdW5kZWZpbmVkLCB7ICRleHBhbmQ6IFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIiB9KS5nZXRCb3VuZENvbnRleHQoKTtcblx0Ly8gU2hvdWxkbid0IGRpc3BsYXkgZGF0YSBsb3NzIHBvcG92ZXIgb24gc2hlbGwgYmFjayBuYXZpZ2F0aW9uIGZyb20gc3ViLW9iamVjdCBwYWdlc1xuXHQvLyBhbmQgd2hlbiBvYmplY3QgcGFnZSBpcyBpbiBkaXNwbGF5IG1vZGVcblx0aWYgKFxuXHRcdG9yaWdpbmFsQ29udGV4dCAmJlxuXHRcdChvcmlnaW5hbENvbnRleHQuaXNEZWxldGVkKCkgfHwgb3JpZ2luYWxDb250ZXh0LmdldE9iamVjdCgpKSAmJlxuXHRcdCgoIW9EcmFmdFJvb3QgJiYgbmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uKSB8fCAhYklzRWRpdGFibGUpXG5cdCkge1xuXHRcdGZuUHJvY2Vzc0Z1bmN0aW9uKCk7XG5cdH0gZWxzZSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGRyYWZ0QWRtaW5EYXRhID0gYXdhaXQgb0NvbnRleHQucmVxdWVzdE9iamVjdChcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhXCIpO1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0RyYWZ0QWRtaW5EYXRhKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24sXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250ZXh0LFxuXHRcdFx0XHRvcmlnaW5hbENvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgZHJhZnREYXRhQ29udGV4dCBpbmZvcm1hdGlvblwiLCBvRXJyb3IpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBkb2N1bWVudC4gSWYgdGhlIGNvbnRyb2xsZXIgaXMgb2YgdHlwZSBPYmplY3RQYWdlLCB0aGVuIGludGVybmFsIF9zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLCBvdGhlcndpc2Ugc2F2ZURvY3VtZW50XG4gKiBmcm9tIEVkaXRGbG93IGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgdGhlIHNhdmUgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZURvY3VtZW50KGNvbnRyb2xsZXI6IEN1c3RvbUNvbnRyb2xsZXIsIGNvbnRleHQ/OiBDb250ZXh0KTogUHJvbWlzZTx1bmtub3duPiB7XG5cdGNvbnN0IGhhc0luaXRpYWxDb250ZXh0ID0gY29udGV4dCAhPT0gdW5kZWZpbmVkO1xuXHRjb250ZXh0ID0gY29udGV4dCA/PyAoY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0KTtcblx0aWYgKCFoYXNJbml0aWFsQ29udGV4dCAmJiBjb250cm9sbGVyLmlzQShcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gKGNvbnRyb2xsZXIgYXMgQ3VzdG9tQ29udHJvbGxlcikuZWRpdEZsb3cuc2F2ZURvY3VtZW50KGNvbnRleHQsIHt9KTtcblx0fVxufVxuXG4vKipcbiAqIERpc2NhcmRzIHRoZSBkcmFmdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBza2lwQmluZGluZ1RvVmlldyBUaGUgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgY2FuY2VsRG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLCBza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCwgY29udGV4dD86IENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29udGV4dCA9IGNvbnRleHQgPz8gKGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCk7XG5cdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRza2lwQmFja05hdmlnYXRpb246IHRydWUsXG5cdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlLFxuXHRcdHNraXBCaW5kaW5nVG9WaWV3OiBza2lwQmluZGluZ1RvVmlldyAhPT0gdW5kZWZpbmVkID8gc2tpcEJpbmRpbmdUb1ZpZXcgOiB0cnVlXG5cdH07XG5cdHJldHVybiBjb250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KGNvbnRleHQsIHBhcmFtcyk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgdGhlIGZvbGxvdy11cCBmdW5jdGlvbnMgYWZ0ZXIgYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBpbiB0aGUgZGF0YWxvc3MgZGlhbG9nLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RlZEtleSBUaGUga2V5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgZGF0YWxvc3MgZGlhbG9nXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIGNvbnRyb2xsZXIgQ29udHJvbGxlciBvZiB0aGUgY3VycmVudCB2aWV3XG4gKiBAcGFyYW0gc2tpcEJpbmRpbmdUb1ZpZXcgVGhlIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgYmluZGluZ1xuICovXG5mdW5jdGlvbiBoYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdHNlbGVjdGVkS2V5OiBzdHJpbmcsXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRjb250cm9sbGVyOiBDdXN0b21Db250cm9sbGVyLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0Y29udGV4dD86IENvbnRleHRcbik6IHZvaWQge1xuXHRzd2l0Y2ggKHNlbGVjdGVkS2V5KSB7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5TYXZlOlxuXHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwXG5cdFx0XHRcdC5zYXZlRG9jdW1lbnQoY29udHJvbGxlciwgY29udGV4dClcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ/KSA9PiBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoY29udGV4dCkpXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGlmIChlcnJvciA9PT0gUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbi5Db250aW51ZSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZuQ2FuY2VsRnVuY3Rpb24oKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5LZWVwOlxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgRHJhZnREYXRhTG9zc09wdGlvbnMuRGlzY2FyZDpcblx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cFxuXHRcdFx0XHQuZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXIsIHNraXBCaW5kaW5nVG9WaWV3LCBjb250ZXh0KVxuXHRcdFx0XHQudGhlbigoY29udGV4dD8pID0+IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyhjb250ZXh0KSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uKCk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHR9XG59XG5cbmNvbnN0IGRyYWZ0RGF0YUxvc3NQb3B1cCA9IHtcblx0cHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uLFxuXHRzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb246IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0TmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRwcm9jZXNzRmNsTW9kZTogcHJvY2Vzc0ZjbE1vZGUsXG5cdHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGU6IHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUsXG5cdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eTogcHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5LFxuXHRwcm9jZXNzRWRpdFN0YXRlRGlydHk6IHByb2Nlc3NFZGl0U3RhdGVEaXJ0eSxcblx0aGFuZGxlRGlhbG9nU2VsZWN0aW9uOiBoYW5kbGVEaWFsb2dTZWxlY3Rpb24sXG5cdHNhdmVEb2N1bWVudDogc2F2ZURvY3VtZW50LFxuXHRkaXNjYXJkRHJhZnQ6IGRpc2NhcmREcmFmdFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZHJhZnREYXRhTG9zc1BvcHVwO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQVNBO0VBQUEsSUFDS0EsY0FBYztFQUtuQjtFQUFBLFdBTEtBLGNBQWM7SUFBZEEsY0FBYztJQUFkQSxjQUFjO0VBQUEsR0FBZEEsY0FBYyxLQUFkQSxjQUFjO0VBQUEsSUFNZEMsb0JBQW9CO0VBTXpCO0VBQUEsV0FOS0Esb0JBQW9CO0lBQXBCQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0VBQUEsR0FBcEJBLG9CQUFvQixLQUFwQkEsb0JBQW9CO0VBU3pCO0VBQ0EsTUFBTUMsY0FBYyxHQUFHLElBQUlDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDOztFQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTQyxvQ0FBb0MsQ0FBQ0MsY0FBOEIsRUFBRTtJQUFBO0lBQzdFLElBQUlDLGNBQWMsR0FBRyxLQUFLO0lBQzFCLE1BQU1DLFNBQVMsR0FBR0YsY0FBYyxDQUFDRyxlQUFlLEVBQUUsQ0FBQ0MsV0FBVyxFQUFTO0lBQ3ZFSCxjQUFjLEdBQUcsQ0FBQUMsU0FBUyxhQUFUQSxTQUFTLDJDQUFUQSxTQUFTLENBQUcsUUFBUSxDQUFDLDZFQUFyQixpQkFBdUJHLEdBQUcseURBQTFCLHFCQUE0Qk4sb0NBQW9DLEtBQUksS0FBSztJQUMxRixPQUFPRSxjQUFjO0VBQ3RCOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxlQUFlSyxjQUFjLENBQzVCQyxjQUFtQixFQUNuQkMsZ0JBQXFCLEVBQ3JCQyxXQUFnQixFQUNoQkMsd0JBQTZCLEVBQzdCQyxrQkFBNEIsRUFDNUJDLE9BQWlCLEVBQ0Q7SUFDaEI7SUFDQTtJQUNBO0lBQ0EsSUFBSUwsY0FBYyxDQUFDTSxnQkFBZ0Is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
|
|
340
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZGF0YUxvc3NEaWFsb2ciLCJEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2siLCJzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24iLCJwYWdlQ29udHJvbGxlciIsInJiU2lsZW50bHlLZWVwIiwib01hbmlmZXN0IiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3QiLCJhcHAiLCJwcm9jZXNzRmNsTW9kZSIsImRyYWZ0QWRtaW5EYXRhIiwiZm5DYW5jZWxGdW5jdGlvbiIsIm9Db250cm9sbGVyIiwicHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIiwiYlNraXBCaW5kaW5nVG9WaWV3IiwiY29udGV4dCIsIkNyZWF0aW9uRGF0ZVRpbWUiLCJMYXN0Q2hhbmdlRGF0ZVRpbWUiLCJvcGVuIiwidGhlbiIsInNlbGVjdGVkS2V5IiwiZHJhZnREYXRhTG9zc1BvcHVwIiwiaGFuZGxlRGlhbG9nU2VsZWN0aW9uIiwicHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZSIsIm5hdmlnYXRpb25UeXBlIiwiYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiIsIkVkaXRTdGF0ZSIsImlzRWRpdFN0YXRlRGlydHkiLCJCYWNrTmF2aWdhdGlvbiIsImRpc2NhcmREcmFmdCIsImVycm9yIiwiTG9nIiwiRm9yd2FyZE5hdmlnYXRpb24iLCJwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkiLCJvQ29udGV4dCIsIm1QYXJhbWV0ZXJzIiwic2tpcERpc2NhcmRQb3BvdmVyIiwiZWRpdEZsb3ciLCJjYW5jZWxEb2N1bWVudCIsInByb2Nlc3NFZGl0U3RhdGVEaXJ0eSIsInByb2Nlc3NEcmFmdEFkbWluRGF0YSIsImZuUHJvY2Vzc0Z1bmN0aW9uIiwib3JpZ2luYWxDb250ZXh0IiwiY29sbGFib3JhdGlvbkNvbm5lY3RlZCIsIkFjdGl2aXR5U3luYyIsImlzQ29ubmVjdGVkIiwiZ2V0VmlldyIsImRpc2Nvbm5lY3QiLCJhcmdzIiwiYXBwbHkiLCJnZXRSb290Vmlld0NvbnRyb2xsZXIiLCJpc0ZjbEVuYWJsZWQiLCJnZXRPYmplY3QiLCJIYXNBY3RpdmVFbnRpdHkiLCJwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbiIsIm9WaWV3Iiwib01vZGVsIiwiZ2V0TW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiY29udGV4dFBhdGgiLCJnZXRWaWV3RGF0YSIsImVudGl0eVNldCIsInVuZGVmaW5lZCIsIm9EcmFmdFJvb3QiLCJvVUlNb2RlbCIsImJJc0VkaXRhYmxlIiwiZ2V0UHJvcGVydHkiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0UGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0RHJhZnRSb290UGF0aCIsImJpbmRDb250ZXh0IiwiJGV4cGFuZCIsImdldEJvdW5kQ29udGV4dCIsImlzRGVsZXRlZCIsInJlcXVlc3RQcm9wZXJ0eSIsIm9FcnJvciIsInNhdmVEb2N1bWVudCIsImNvbnRyb2xsZXIiLCJoYXNJbml0aWFsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiaXNBIiwiX3NhdmVEb2N1bWVudCIsInNraXBCaW5kaW5nVG9WaWV3IiwicGFyYW1zIiwic2tpcEJhY2tOYXZpZ2F0aW9uIiwiU2F2ZSIsImNhdGNoIiwiUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiIsIkNvbnRpbnVlIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiZHJhZnREYXRhTG9zc1BvcHVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IEFjdGl2aXR5U3luYyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9BY3Rpdml0eVN5bmNcIjtcbmltcG9ydCBFZGl0U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvRWRpdFN0YXRlXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwiLi4vLi4vUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBEcmFmdERhdGFMb3NzRGlhbG9nQmxvY2sgZnJvbSBcIi4uLy4uL2NvbnRyb2xzL0RhdGFMb3NzT3JEcmFmdERpc2NhcmQvRHJhZnREYXRhTG9zc0RpYWxvZy5ibG9ja1wiO1xuaW1wb3J0IHsgUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbiB9IGZyb20gXCIuLi8uLi9jb250cm9scy9SZWNvbW1lbmRhdGlvbnMvQ29uZmlybVJlY29tbWVuZGF0aW9uRGlhbG9nLmJsb2NrXCI7XG5cbi8qIEVudW0gZm9yIG5hdmlnYXRpb24gdHlwZXMgKi9cbmVudW0gTmF2aWdhdGlvblR5cGUge1xuXHRCYWNrTmF2aWdhdGlvbiA9IFwiQmFja05hdmlnYXRpb25cIixcblx0Rm9yd2FyZE5hdmlnYXRpb24gPSBcIkZvcndhcmROYXZpZ2F0aW9uXCJcbn1cblxuLyogRW51bSB0eXBlcyBmb3IgdGhlIGRhdGFsb3NzIGRpYWxvZyBvcHRpb25zICovXG5lbnVtIERyYWZ0RGF0YUxvc3NPcHRpb25zIHtcblx0U2F2ZSA9IFwiZHJhZnREYXRhTG9zc09wdGlvblNhdmVcIixcblx0S2VlcCA9IFwiZHJhZnREYXRhTG9zc09wdGlvbktlZXBcIixcblx0RGlzY2FyZCA9IFwiZHJhZnREYXRhTG9zc09wdGlvbkRpc2NhcmRcIlxufVxuXG4vKiBDdXN0b20gdHlwZSBmb3IgY29udHJvbGxlciBpbiBvcmRlciB0byBhbGxvdyBhZGRpdGlvbmFsIHByb3BlcnRpZXMgKi9cbnR5cGUgQ3VzdG9tQ29udHJvbGxlciA9IFBhZ2VDb250cm9sbGVyICYgeyBfc2F2ZURvY3VtZW50OiBGdW5jdGlvbiB9O1xuXG4vKkNyZWF0ZSB0aGUgZGF0YWxvc3MgZGlhbG9nKi9cbmNvbnN0IGRhdGFMb3NzRGlhbG9nID0gbmV3IERyYWZ0RGF0YUxvc3NEaWFsb2dCbG9jayh7fSk7XG5cbi8qKlxuICogVGhlIG1ldGhvZCBjaGVja3Mgd2hldGhlciBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgaW4gdGhlIG1hbmlmZXN0IGlzIHNldCB0byBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBpbiBjYXNlIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZC5cbiAqXG4gKiBAcGFyYW0gcGFnZUNvbnRyb2xsZXIgVGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBQYWdlQ29udHJvbGxlciBpbnN0YW5jZVxuICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSB3aXRoIHRydWUgb3IgZmFsc2UgdG8gc2lsZW50bHkga2VlcCB0aGUgZHJhZnRcbiAqL1xuZnVuY3Rpb24gc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKHBhZ2VDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcikge1xuXHRsZXQgcmJTaWxlbnRseUtlZXAgPSBmYWxzZTtcblx0Y29uc3Qgb01hbmlmZXN0ID0gcGFnZUNvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TWFuaWZlc3QoKSBhcyBhbnk7XG5cdHJiU2lsZW50bHlLZWVwID0gb01hbmlmZXN0Py5bXCJzYXAuZmVcIl0/LmFwcD8uc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIHx8IGZhbHNlO1xuXHRyZXR1cm4gcmJTaWxlbnRseUtlZXA7XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgRkNMIG1vZGUuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWRcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgZHJhZnQgb3BlcmF0aW9uXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGY2xNb2RlKFxuXHRkcmFmdEFkbWluRGF0YTogYW55LFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBhbnksXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRjb250ZXh0PzogQ29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIEZDTCBtb2RlIHNvIGluIHRoaXMgY2FzZSB3ZSBmYWxsIGJhY2sgdG9cblx0Ly8gdGhlIG9sZCBsb2dpYyBzaW5jZSB0aGUgZGlydHkgc3RhdGUgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IHdvcmtpbmdcblx0Ly8gZm9yIEZDTC5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgIT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBtb2RlIHdpdGggbm8gYWN0aXZlIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcGFyYW0gYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiBUaGUgcGFyYW1ldGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHNraXAgdGhlIHBvcHVwIGFwcGVhcmFuY2UgaW4gZm9yd2FyZCBjYXNlXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIGNvbnRleHQgVGhlIGNvbnRleHQgdG8gYmUgdXNlZCBmb3IgdGhlIGRyYWZ0IG9wZXJhdGlvbnNcbiAqIEByZXR1cm5zIE5vdGhpbmdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRjb250ZXh0PzogQ29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdC8vIFRoZXJlIGlzIG5vIGFjdGl2ZSBlbnRpdHkgc28sIHdlIGFyZSBlZGl0aW5nIGVpdGhlciBuZXdseSBjcmVhdGVkIGRhdGEgb3Jcblx0Ly8gYSBkcmFmdCB3aGljaCBoYXMgbmV2ZXIgYmVlbiBzYXZlZCB0byBhY3RpdmUgdmVyc2lvblxuXHQvLyBTaW5jZSB3ZSB3YW50IHRvIHJlYWN0IGRpZmZlcmVudGx5IGluIHRoZSB0d28gc2l0dWF0aW9ucywgd2UgaGF2ZSB0byBjaGVjayB0aGVcblx0Ly8gZGlydHkgc3RhdGVcblx0aWYgKEVkaXRTdGF0ZS5pc0VkaXRTdGF0ZURpcnR5KCkpIHtcblx0XHRpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSA9PT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gaW4gY2FzZSB3ZSBoYXZlIHVudG91Y2hlZCBjaGFuZ2VzIGZvciB0aGUgZHJhZnQgYW5kIGEgXCJiYWNrXCJcblx0XHRcdC8vIG5hdmlnYXRpb24gd2UgY2FuIHNpbGVudGx5IGRpc2NhcmQgdGhlIGRyYWZ0IGFnYWluXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9uby1uZXN0aW5nXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRhd2FpdCBkcmFmdERhdGFMb3NzUG9wdXAuZGlzY2FyZERyYWZ0KG9Db250cm9sbGVyLCBiU2tpcEJpbmRpbmdUb1ZpZXcsIGNvbnRleHQpO1xuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY2FuY2VsaW5nIHRoZSBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdFx0Ly8gd2UgXCJzaWxlbnRseVwiIGtlZXAgdGhlIGRyYWZ0XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gSW4gdGhpcyBjYXNlIGRhdGEgaXMgYmVpbmcgY2hhbmdlZCBvciBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWRcblx0XHRcdC8vIGFuZCwgd2UgYWx3YXlzIHdhbnQgdG8gc2hvdyB0aGUgZGF0YSBsb3NzIGRpYWxvZyBvbiBuYXZpZ2F0aW9uXG5cdFx0XHRyZXR1cm4gZGF0YUxvc3NEaWFsb2dcblx0XHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHRcdC50aGVuKChzZWxlY3RlZEtleSkgPT5cblx0XHRcdFx0XHRkcmFmdERhdGFMb3NzUG9wdXAuaGFuZGxlRGlhbG9nU2VsZWN0aW9uKFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3LFxuXHRcdFx0XHRcdFx0Y29udGV4dFxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gV2UgYXJlIGVkaXRpbmcgYSBkcmFmdCB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGVhcmxpZXIgYnV0IG5ldmVyIHNhdmVkIHRvIGFjdGl2ZVxuXHRcdC8vIHZlcnNpb24gYW5kIHNpbmNlIHRoZSBlZGl0IHN0YXRlIGlzIG5vdCBkaXJ0eSwgdGhlcmUgaGF2ZSBiZWVuIG5vIHVzZXIgY2hhbmdlc1xuXHRcdC8vIHNvIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHNpbGVudGx5IG5hdmlnYXRlIGFuZCBkbyBub3RoaW5nXG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBkcmFmdCBlZGl0aW5nIGZvciBleGlzdGluZyBlbnRpdHkuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGUgVGhlIG5hdmlnYXRpb24gdHlwZSBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5KFxuXHRvQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdG9Db250ZXh0OiBDb250ZXh0LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IEZ1bmN0aW9uLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGVcbik6IFByb21pc2U8dm9pZD4ge1xuXHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IGZvciBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5XG5cdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIGVxdWFsLCBzbyB0aGlzIGRyYWZ0IHdhc1xuXHQvLyBuZXZlciBzYXZlZCBiZWZvcmUsIGhlbmNlIHdlJ3JlIGN1cnJlbnRseSBlZGl0aW5nIGEgbmV3bHkgY3JlYXRlZCBkcmFmdCBmb3Jcblx0Ly8gYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cdC8vIEFsc28sIHRoZXJlIGhhdmUgc28gZmFyIGJlZW4gbm8gY2hhbmdlcyBtYWRlIHRvIHRoZSBkcmFmdCBhbmQgaW4gdGhpc1xuXHQvLyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRlbGV0ZSB0aGUgZHJhZnRpbiBjYXNlIG9mIGEgYmFja1xuXHQvLyBuYXZpZ2F0aW9uIGJ1dCBpbiBjYXNlIG9mIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIHdlIHdhbnQgdG8gc2lsZW50bHkga2VlcCBpdCFcblx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikge1xuXHRcdGNvbnN0IG1QYXJhbWV0ZXJzID0ge1xuXHRcdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlXG5cdFx0fTtcblxuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCBvQ29udHJvbGxlci5lZGl0Rmxvdy5jYW5jZWxEb2N1bWVudChvQ29udGV4dCwgbVBhcmFtZXRlcnMpO1xuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IgYXMgRXJyb3IpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBJbiBjYXNlIG9mIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIHdlIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGFuZCBvbmx5XG5cdFx0Ly8gZXhlY3V0ZSB0aGUgZm9sbG93dXAgZnVuY3Rpb24uXG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBjb250ZXh0IHdoZW4gdGhlIGVkaXQgc3RhdGUgaXMgaW4gZGlydHkgbW9kZS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcGFyYW0gYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiBUaGUgcGFyYW1ldGVyIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHNraXAgdGhlIHBvcHVwIGFwcGVhcmFuY2UgaW4gZm9yd2FyZCBjYXNlXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlldy5cbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0U3RhdGVEaXJ0eShcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRjb250ZXh0PzogQ29udGV4dFxuKTogUHJvbWlzZTx2b2lkPiB7XG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHQvLyB3ZSBcInNpbGVudGx5XCIga2VlcCB0aGUgZHJhZnRcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fSBlbHNlIHtcblx0XHQvLyBUaGUgQ3JlYXRpb25EYXRlVGltZSBhbmQgTGFzdENoYW5nZURhdGVUaW1lIGFyZSBOT1QgZXF1YWwsIHNvIHdlIGFyZSBjdXJyZW50bHkgZWRpdGluZ1xuXHRcdC8vIGFuIGV4aXN0aW5nIGRyYWZ0IGFuZCBuZWVkIHRvIGRpc3Rpbmd1aXNoIGRlcGVuZGluZyBvbiBpZiBhbnkgY2hhbmdlc1xuXHRcdC8vIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiBvciBub3Rcblx0XHQvLyBDaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiwgc28gd2Ugd2FudFxuXHRcdC8vIHRvIHNob3cgdGhlIGRhdGFsb3NzIGRpYWxvZyBhbmQgbGV0IHRoZSB1c2VyIGRlY2lkZVxuXHRcdHJldHVybiBkYXRhTG9zc0RpYWxvZ1xuXHRcdFx0Lm9wZW4ob0NvbnRyb2xsZXIpXG5cdFx0XHQudGhlbigoc2VsZWN0ZWRLZXkpID0+XG5cdFx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cC5oYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdFx0XHRcdFx0c2VsZWN0ZWRLZXkgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlldyxcblx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBhZG1pbiBkYXRhLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5Qcm9jZXNzRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKiBAcmV0dXJucyBOb3RoaW5nXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEcmFmdEFkbWluRGF0YShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5Qcm9jZXNzRnVuY3Rpb246IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udGV4dDogYW55LFxuXHRvcmlnaW5hbENvbnRleHQ6IENvbnRleHQsXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdGJTa2lwQmluZGluZ1RvVmlldz86IGJvb2xlYW4sXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSA9IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uXG4pOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgY29sbGFib3JhdGlvbkNvbm5lY3RlZCA9IEFjdGl2aXR5U3luYy5pc0Nvbm5lY3RlZChvQ29udHJvbGxlci5nZXRWaWV3KCkpO1xuXHRjb25zdCBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgPSAhY29sbGFib3JhdGlvbkNvbm5lY3RlZFxuXHRcdD8gZm5Qcm9jZXNzRnVuY3Rpb25cblx0XHQ6IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXHRcdFx0XHRBY3Rpdml0eVN5bmMuZGlzY29ubmVjdChvQ29udHJvbGxlci5nZXRWaWV3KCkpO1xuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbi5hcHBseShudWxsLCAuLi5hcmdzKTtcblx0XHQgIH07XG5cblx0Y29uc3QgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiA9IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihvQ29udHJvbGxlcik7XG5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhKSB7XG5cdFx0aWYgKG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLmlzRmNsRW5hYmxlZCgpKSB7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRmNsTW9kZShkcmFmdEFkbWluRGF0YSwgZm5DYW5jZWxGdW5jdGlvbiwgb0NvbnRyb2xsZXIsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgYlNraXBCaW5kaW5nVG9WaWV3LCBvQ29udGV4dCk7XG5cdFx0fSBlbHNlIGlmICghb3JpZ2luYWxDb250ZXh0LmdldE9iamVjdCgpLkhhc0FjdGl2ZUVudGl0eSkge1xuXHRcdFx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0XHRcdFx0ZHJhZnRBZG1pbkRhdGEsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lID09PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUpIHtcblx0XHRcdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShvQ29udHJvbGxlciwgb0NvbnRleHQsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgbmF2aWdhdGlvblR5cGUpO1xuXHRcdH0gZWxzZSBpZiAoRWRpdFN0YXRlLmlzRWRpdFN0YXRlRGlydHkoKSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRTdGF0ZURpcnR5KFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZSxcblx0XHRcdFx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUaGUgdXNlciBzdGFydGVkIGVkaXRpbmcgdGhlIGV4aXN0aW5nIGRyYWZ0IGJ1dCBkaWQgbm90IG1ha2UgYW55IGNoYW5nZXNcblx0XHRcdC8vIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiwgc28gaW4gdGhpcyBjYXNlIHdlIGRvIG5vdCB3YW50XG5cdFx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYnV0IGp1c3Qga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYWwgaGFuZGxlciBpbiB3aGljaCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBhcmUgY2FsbGVkLlxuICpcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvblxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3XG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24oXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbikge1xuXHRjb25zdCBvVmlldyA9IG9Db250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKTtcblx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0Y29uc3QgY29udGV4dFBhdGggPVxuXHRcdG9WaWV3LmdldFZpZXdEYXRhKCkuY29udGV4dFBhdGggfHwgKG9WaWV3LmdldFZpZXdEYXRhKCkuZW50aXR5U2V0ID8gYC8ke29WaWV3LmdldFZpZXdEYXRhKCkuZW50aXR5U2V0fWAgOiB1bmRlZmluZWQpO1xuXHRjb25zdCBvRHJhZnRSb290ID0gY29udGV4dFBhdGggJiYgb01ldGFNb2RlbC5nZXRPYmplY3QoY29udGV4dFBhdGggKyBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCIpO1xuXHRjb25zdCBvVUlNb2RlbCA9IG9WaWV3LmdldE1vZGVsKFwidWlcIik7XG5cdGNvbnN0IGJJc0VkaXRhYmxlID0gb1VJTW9kZWwuZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKTtcblx0Y29uc3Qgb3JpZ2luYWxDb250ZXh0ID0gb0NvbnRleHQ7XG5cdGxldCBkcmFmdFJvb3RQYXRoID0gb0NvbnRleHQuZ2V0UGF0aCgpO1xuXHRpZiAoIW9EcmFmdFJvb3QpIHtcblx0XHRkcmFmdFJvb3RQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290UGF0aChvQ29udGV4dCkgPz8gZHJhZnRSb290UGF0aDtcblx0XHRvQ29udGV4dCA9IG9Nb2RlbC5iaW5kQ29udGV4dChkcmFmdFJvb3RQYXRoLCB1bmRlZmluZWQsIHsgJGV4cGFuZDogXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YVwiIH0pLmdldEJvdW5kQ29udGV4dCgpO1xuXHR9XG5cdC8vIFNob3VsZG4ndCBkaXNwbGF5IGRhdGEgbG9zcyBwb3BvdmVyIG9uIHNoZWxsIGJhY2sgbmF2aWdhdGlvbiBmcm9tIHN1Yi1vYmplY3QgcGFnZXNcblx0Ly8gYW5kIHdoZW4gb2JqZWN0IHBhZ2UgaXMgaW4gZGlzcGxheSBtb2RlXG5cdGlmIChcblx0XHRvcmlnaW5hbENvbnRleHQgJiZcblx0XHQob3JpZ2luYWxDb250ZXh0LmlzRGVsZXRlZCgpIHx8IG9yaWdpbmFsQ29udGV4dC5nZXRPYmplY3QoKSkgJiZcblx0XHQoKCFvRHJhZnRSb290ICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikgfHwgIWJJc0VkaXRhYmxlKVxuXHQpIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHQvLyBUaGUgZm9sbG93aW5nIDMgcHJvcGVydGllcyBhcmUgbmVlZGVkIHRvIGRldGVybWluZSB0aGUgc3RhdGUgb2YgdGhlIGRyYWZ0LCBzbyB3ZSBlbnN1cmUgdGhleSBhcmUgbG9hZGVkXG5cdFx0XHRhd2FpdCBvQ29udGV4dC5yZXF1ZXN0UHJvcGVydHkoW1xuXHRcdFx0XHRcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0NyZWF0aW9uRGF0ZVRpbWVcIixcblx0XHRcdFx0XCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9MYXN0Q2hhbmdlRGF0ZVRpbWVcIixcblx0XHRcdFx0XCJIYXNBY3RpdmVFbnRpdHlcIlxuXHRcdFx0XSk7XG5cdFx0XHRjb25zdCBkcmFmdEFkbWluRGF0YSA9IG9Db250ZXh0LmdldE9iamVjdChcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhXCIpO1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0RyYWZ0QWRtaW5EYXRhKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24sXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250ZXh0LFxuXHRcdFx0XHRvcmlnaW5hbENvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgZHJhZnREYXRhQ29udGV4dCBpbmZvcm1hdGlvblwiLCBvRXJyb3IpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBkb2N1bWVudC4gSWYgdGhlIGNvbnRyb2xsZXIgaXMgb2YgdHlwZSBPYmplY3RQYWdlLCB0aGVuIGludGVybmFsIF9zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLCBvdGhlcndpc2Ugc2F2ZURvY3VtZW50XG4gKiBmcm9tIEVkaXRGbG93IGlzIGNhbGxlZC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgdGhlIHNhdmUgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZURvY3VtZW50KGNvbnRyb2xsZXI6IEN1c3RvbUNvbnRyb2xsZXIsIGNvbnRleHQ/OiBDb250ZXh0KTogUHJvbWlzZTx1bmtub3duPiB7XG5cdGNvbnN0IGhhc0luaXRpYWxDb250ZXh0ID0gY29udGV4dCAhPT0gdW5kZWZpbmVkO1xuXHRjb250ZXh0ID0gY29udGV4dCA/PyAoY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0KTtcblx0aWYgKCFoYXNJbml0aWFsQ29udGV4dCAmJiBjb250cm9sbGVyLmlzQShcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gKGNvbnRyb2xsZXIgYXMgQ3VzdG9tQ29udHJvbGxlcikuZWRpdEZsb3cuc2F2ZURvY3VtZW50KGNvbnRleHQsIHt9KTtcblx0fVxufVxuXG4vKipcbiAqIERpc2NhcmRzIHRoZSBkcmFmdC5cbiAqXG4gKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIG9mIHRoZSBjdXJyZW50IHZpZXdcbiAqIEBwYXJhbSBza2lwQmluZGluZ1RvVmlldyBUaGUgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIGJlIHVzZWQgZm9yIHRoZSBkcmFmdCBvcGVyYXRpb25zXG4gKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2ZWQgaWYgY2FuY2VsRG9jdW1lbnQgd2FzIHN1Y2Nlc3NmdWxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLCBza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCwgY29udGV4dD86IENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcblx0Y29udGV4dCA9IGNvbnRleHQgPz8gKGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCk7XG5cdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRza2lwQmFja05hdmlnYXRpb246IHRydWUsXG5cdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlLFxuXHRcdHNraXBCaW5kaW5nVG9WaWV3OiBza2lwQmluZGluZ1RvVmlldyAhPT0gdW5kZWZpbmVkID8gc2tpcEJpbmRpbmdUb1ZpZXcgOiB0cnVlXG5cdH07XG5cdHJldHVybiBjb250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KGNvbnRleHQsIHBhcmFtcyk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgdGhlIGZvbGxvdy11cCBmdW5jdGlvbnMgYWZ0ZXIgYW4gb3B0aW9uIHdhcyBzZWxlY3RlZCBpbiB0aGUgZGF0YWxvc3MgZGlhbG9nLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RlZEtleSBUaGUga2V5IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgZGF0YWxvc3MgZGlhbG9nXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdGlvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgZnVuY3Rpb24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIGNvbnRyb2xsZXIgQ29udHJvbGxlciBvZiB0aGUgY3VycmVudCB2aWV3XG4gKiBAcGFyYW0gc2tpcEJpbmRpbmdUb1ZpZXcgVGhlIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCB0byBiZSB1c2VkIGZvciB0aGUgYmluZGluZ1xuICovXG5mdW5jdGlvbiBoYW5kbGVEaWFsb2dTZWxlY3Rpb24oXG5cdHNlbGVjdGVkS2V5OiBzdHJpbmcsXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogRnVuY3Rpb24sXG5cdGZuQ2FuY2VsRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRjb250cm9sbGVyOiBDdXN0b21Db250cm9sbGVyLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0Y29udGV4dD86IENvbnRleHRcbik6IHZvaWQge1xuXHRzd2l0Y2ggKHNlbGVjdGVkS2V5KSB7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5TYXZlOlxuXHRcdFx0ZHJhZnREYXRhTG9zc1BvcHVwXG5cdFx0XHRcdC5zYXZlRG9jdW1lbnQoY29udHJvbGxlciwgY29udGV4dClcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ/KSA9PiBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoY29udGV4dCkpXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGlmIChlcnJvciA9PT0gUmVjb21tZW5kYXRpb25EaWFsb2dEZWNpc2lvbi5Db250aW51ZSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZuQ2FuY2VsRnVuY3Rpb24oKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBEcmFmdERhdGFMb3NzT3B0aW9ucy5LZWVwOlxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgRHJhZnREYXRhTG9zc09wdGlvbnMuRGlzY2FyZDpcblx0XHRcdGRyYWZ0RGF0YUxvc3NQb3B1cFxuXHRcdFx0XHQuZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXIsIHNraXBCaW5kaW5nVG9WaWV3LCBjb250ZXh0KVxuXHRcdFx0XHQudGhlbigoY29udGV4dD8pID0+IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyhjb250ZXh0KSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0ZGF0YUxvc3NEaWFsb2cuY2xvc2UoKTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uKCk7XG5cdFx0XHRkYXRhTG9zc0RpYWxvZy5jbG9zZSgpO1xuXHR9XG59XG5cbmNvbnN0IGRyYWZ0RGF0YUxvc3NQb3B1cCA9IHtcblx0cHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb246IHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uLFxuXHRzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb246IHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0TmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRwcm9jZXNzRmNsTW9kZTogcHJvY2Vzc0ZjbE1vZGUsXG5cdHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGU6IHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUsXG5cdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eTogcHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5LFxuXHRwcm9jZXNzRWRpdFN0YXRlRGlydHk6IHByb2Nlc3NFZGl0U3RhdGVEaXJ0eSxcblx0aGFuZGxlRGlhbG9nU2VsZWN0aW9uOiBoYW5kbGVEaWFsb2dTZWxlY3Rpb24sXG5cdHNhdmVEb2N1bWVudDogc2F2ZURvY3VtZW50LFxuXHRkaXNjYXJkRHJhZnQ6IGRpc2NhcmREcmFmdFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZHJhZnREYXRhTG9zc1BvcHVwO1xuXG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBU0E7RUFBQSxJQUNLQSxjQUFjO0VBS25CO0VBQUEsV0FMS0EsY0FBYztJQUFkQSxjQUFjO0lBQWRBLGNBQWM7RUFBQSxHQUFkQSxjQUFjLEtBQWRBLGNBQWM7RUFBQSxJQU1kQyxvQkFBb0I7RUFNekI7RUFBQSxXQU5LQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0lBQXBCQSxvQkFBb0I7RUFBQSxHQUFwQkEsb0JBQW9CLEtBQXBCQSxvQkFBb0I7RUFTekI7RUFDQSxNQUFNQyxjQUFjLEdBQUcsSUFBSUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7O0VBRXZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLFNBQVNDLG9DQUFvQyxDQUFDQyxjQUE4QixFQUFFO0lBQUE7SUFDN0UsSUFBSUMsY0FBYyxHQUFHLEtBQUs7SUFDMUIsTUFBTUMsU0FBUyxHQUFHRixjQUFjLENBQUNHLGVBQWUsRUFBRSxDQUFDQyxXQUFXLEVBQVM7SUFDdkVILGNBQWMsR0FBRyxDQUFBQyxTQUFTLGFBQVRBLFNBQVMsMkNB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
|
|
@@ -327,8 +327,8 @@ async function processDataLossOrDraftDiscardConfirmation(
|
|
|
327
327
|
let draftRootPath = oContext.getPath();
|
|
328
328
|
if (!oDraftRoot) {
|
|
329
329
|
draftRootPath = ModelHelper.getDraftRootPath(oContext) ?? draftRootPath;
|
|
330
|
+
oContext = oModel.bindContext(draftRootPath, undefined, { $expand: "DraftAdministrativeData" }).getBoundContext();
|
|
330
331
|
}
|
|
331
|
-
oContext = oModel.bindContext(draftRootPath, undefined, { $expand: "DraftAdministrativeData" }).getBoundContext();
|
|
332
332
|
// Shouldn't display data loss popover on shell back navigation from sub-object pages
|
|
333
333
|
// and when object page is in display mode
|
|
334
334
|
if (
|
|
@@ -339,7 +339,13 @@ async function processDataLossOrDraftDiscardConfirmation(
|
|
|
339
339
|
fnProcessFunction();
|
|
340
340
|
} else {
|
|
341
341
|
try {
|
|
342
|
-
|
|
342
|
+
// The following 3 properties are needed to determine the state of the draft, so we ensure they are loaded
|
|
343
|
+
await oContext.requestProperty([
|
|
344
|
+
"DraftAdministrativeData/CreationDateTime",
|
|
345
|
+
"DraftAdministrativeData/LastChangeDateTime",
|
|
346
|
+
"HasActiveEntity"
|
|
347
|
+
]);
|
|
348
|
+
const draftAdminData = oContext.getObject("DraftAdministrativeData");
|
|
343
349
|
await processDraftAdminData(
|
|
344
350
|
draftAdminData,
|
|
345
351
|
fnProcessFunction,
|
|
@@ -456,3 +462,4 @@ const draftDataLossPopup = {
|
|
|
456
462
|
};
|
|
457
463
|
|
|
458
464
|
export default draftDataLossPopup;
|
|
465
|
+
|