@sapui5/sap.fe.core 1.114.0 → 1.114.2
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/ActionRuntime-dbg.js +3 -2
- package/src/sap/fe/core/ActionRuntime.js +1 -1
- package/src/sap/fe/core/ActionRuntime.js.map +1 -1
- package/src/sap/fe/core/ActionRuntime.ts +2 -3
- package/src/sap/fe/core/AppStateHandler-dbg.js +4 -1
- package/src/sap/fe/core/AppStateHandler.js +1 -1
- package/src/sap/fe/core/AppStateHandler.js.map +1 -1
- package/src/sap/fe/core/AppStateHandler.ts +4 -1
- package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -2
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
- package/src/sap/fe/core/ExtensionAPI.ts +7 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +10 -3
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +8 -1
- package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +5 -5
- package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +4 -4
- package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +17 -10
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +15 -8
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +14 -16
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +16 -16
- package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +2 -4
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -3
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +5 -3
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +4 -2
- package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.ts +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +10 -6
- package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +18 -9
- package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -1
- package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +75 -45
- package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/Table.ts +72 -43
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +29 -29
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +28 -34
- package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +11 -3
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -1
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -1
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +13 -8
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +70 -22
- package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.ts +107 -26
- package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +16 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -1
- package/src/sap/fe/core/helpers/RecommendationHelper.ts +20 -0
- package/src/sap/fe/core/library-dbg.js +4 -3
- package/src/sap/fe/core/library-preload.js +22 -22
- package/src/sap/fe/core/library-preload.js.map +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/library.js.map +1 -1
- package/src/sap/fe/core/library.ts +1 -1
- package/src/sap/fe/core/manifest.json +1 -1
- package/src/sap/fe/core/messagebundle.properties +6 -0
- package/src/sap/fe/core/messagebundle_ar.properties +5 -1
- package/src/sap/fe/core/messagebundle_bg.properties +9 -5
- package/src/sap/fe/core/messagebundle_ca.properties +5 -1
- package/src/sap/fe/core/messagebundle_cs.properties +7 -3
- package/src/sap/fe/core/messagebundle_cy.properties +7 -3
- package/src/sap/fe/core/messagebundle_da.properties +7 -3
- package/src/sap/fe/core/messagebundle_de.properties +7 -3
- package/src/sap/fe/core/messagebundle_el.properties +7 -3
- package/src/sap/fe/core/messagebundle_en.properties +7 -3
- package/src/sap/fe/core/messagebundle_en_GB.properties +5 -1
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -2
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +6 -2
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +6 -2
- package/src/sap/fe/core/messagebundle_es.properties +5 -1
- package/src/sap/fe/core/messagebundle_es_MX.properties +5 -1
- package/src/sap/fe/core/messagebundle_et.properties +7 -3
- package/src/sap/fe/core/messagebundle_fi.properties +7 -3
- package/src/sap/fe/core/messagebundle_fr.properties +7 -3
- package/src/sap/fe/core/messagebundle_fr_CA.properties +10 -6
- package/src/sap/fe/core/messagebundle_hi.properties +7 -3
- package/src/sap/fe/core/messagebundle_hr.properties +7 -3
- package/src/sap/fe/core/messagebundle_hu.properties +7 -3
- package/src/sap/fe/core/messagebundle_id.properties +7 -3
- package/src/sap/fe/core/messagebundle_it.properties +13 -9
- package/src/sap/fe/core/messagebundle_iw.properties +7 -3
- package/src/sap/fe/core/messagebundle_ja.properties +13 -9
- package/src/sap/fe/core/messagebundle_kk.properties +7 -3
- package/src/sap/fe/core/messagebundle_ko.properties +7 -3
- package/src/sap/fe/core/messagebundle_lt.properties +7 -3
- package/src/sap/fe/core/messagebundle_lv.properties +5 -1
- package/src/sap/fe/core/messagebundle_ms.properties +5 -1
- package/src/sap/fe/core/messagebundle_nl.properties +7 -3
- package/src/sap/fe/core/messagebundle_no.properties +5 -1
- package/src/sap/fe/core/messagebundle_pl.properties +9 -5
- package/src/sap/fe/core/messagebundle_pt.properties +7 -3
- package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -3
- package/src/sap/fe/core/messagebundle_ro.properties +5 -1
- package/src/sap/fe/core/messagebundle_ru.properties +7 -3
- package/src/sap/fe/core/messagebundle_sh.properties +7 -3
- package/src/sap/fe/core/messagebundle_sk.properties +7 -3
- package/src/sap/fe/core/messagebundle_sl.properties +5 -1
- package/src/sap/fe/core/messagebundle_sv.properties +5 -1
- package/src/sap/fe/core/messagebundle_th.properties +7 -3
- package/src/sap/fe/core/messagebundle_tr.properties +7 -3
- package/src/sap/fe/core/messagebundle_uk.properties +7 -3
- package/src/sap/fe/core/messagebundle_vi.properties +7 -3
- package/src/sap/fe/core/messagebundle_zh_CN.properties +5 -1
- package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -4
- package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +8 -2
- package/src/sap/fe/core/rootView/Fcl.controller.js +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/Fcl.controller.ts +8 -1
- package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +8 -2
- package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +10 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +30 -14
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +30 -20
package/package.json
CHANGED
package/src/sap/fe/core/.library
CHANGED
|
@@ -53,7 +53,8 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
|
|
|
53
53
|
} else if (requiredParameterInfo.isMultiValue) {
|
|
54
54
|
return requiredParameterInfo.value === undefined || !requiredParameterInfo.value.length;
|
|
55
55
|
} else {
|
|
56
|
-
|
|
56
|
+
const fieldValue = requiredParameterInfo.field.getValue();
|
|
57
|
+
return fieldValue === undefined || fieldValue === null || fieldValue === "";
|
|
57
58
|
}
|
|
58
59
|
});
|
|
59
60
|
/* Message for missing mandatory value of the action parameter */
|
|
@@ -243,4 +244,4 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
|
|
|
243
244
|
};
|
|
244
245
|
return ActionRuntime;
|
|
245
246
|
}, false);
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwiX2FkZE1lc3NhZ2VGb3JBY3Rpb25QYXJhbWV0ZXIiLCJtZXNzYWdlTWFuYWdlciIsIm1lc3NhZ2VQYXJhbWV0ZXJzIiwiYWRkTWVzc2FnZXMiLCJtYXAiLCJtZXNzYWdlUGFyYW1ldGVyIiwiYmluZGluZyIsImFjdGlvblBhcmFtZXRlckluZm8iLCJmaWVsZCIsImdldEJpbmRpbmciLCJpc011bHRpVmFsdWUiLCJNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJwcm9jZXNzb3IiLCJnZXRNb2RlbCIsInBlcnNpc3RlbnQiLCJ0YXJnZXQiLCJnZXRSZXNvbHZlZFBhdGgiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJhY3Rpb25QYXJhbWV0ZXJJbmZvcyIsInJlc291cmNlTW9kZWwiLCJQcm9taXNlIiwiYWxsU2V0dGxlZCIsInZhbGlkYXRpb25Qcm9taXNlIiwicmVxdWlyZWRQYXJhbWV0ZXJJbmZvcyIsImZpbHRlciIsInBhcmFtZXRlckluZm8iLCJnZXRSZXF1aXJlZCIsImFsbE1lc3NhZ2VzIiwiZ2V0TWVzc2FnZU1vZGVsIiwiZ2V0RGF0YSIsImVtcHR5UmVxdWlyZWRGaWVsZHMiLCJyZXF1aXJlZFBhcmFtZXRlckluZm8iLCJmaWVsZElkIiwiZ2V0SWQiLCJyZWxldmFudE1lc3NhZ2VzIiwibXNnIiwiZ2V0Q29udHJvbElkcyIsInNvbWUiLCJjb250cm9sSWQiLCJpbmNsdWRlcyIsImxlbmd0aCIsInZhbHVlIiwidW5kZWZpbmVkIiwiZ2V0VGV4dCIsImdldFBhcmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZmlyc3RJbnZhbGlkUGFyYW1ldGVyIiwiZmluZCIsImhhc0Vycm9yIiwiZ2V0VmFsdWVTdGF0ZSIsImZvY3VzIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsImFsbCIsInNldEFjdGlvbkVuYWJsZW1lbnRBZnRlclBhdGNoIiwib1ZpZXciLCJvTGlzdEJpbmRpbmciLCJvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhIiwib0NvbnRyb2xzIiwiY29udHJvbHMiLCJzS2V5Iiwib1RhYmxlIiwiYnlJZCIsImlzQSIsIm9Sb3dCaW5kaW5nIiwiZ2V0Um93QmluZGluZyIsImdldEJpbmRpbmdDb250ZXh0IiwiSlNPTiIsInBhcnNlIiwiZGF0YSIsImN1c3RvbURhdGEiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwidXBkYXRlRWRpdEJ1dHRvblZpc2liaWxpdHlBbmRFbmFibGVtZW50IiwiaVZpZXdMZXZlbCIsImdldFZpZXdEYXRhIiwidmlld0xldmVsIiwiaXNFZGl0YWJsZSIsImdldFByb3BlcnR5Iiwib0NvbnRleHQiLCJvQXBwQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50Iiwic01ldGFQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXRNZXRhUGF0aEZvckNvbnRleHQiLCJzRW50aXR5U2V0IiwiZ2V0Um9vdEVudGl0eVNldFBhdGgiLCJtZXRhQ29udGV4dCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNFbnRpdHlTZXQiLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiJCRncm91cElkIiwiYXR0YWNoQ2hhbmdlIiwib0V2ZW50Iiwib05ld1ZhbHVlIiwiZ2V0U291cmNlIiwiZ2V0RXh0ZXJuYWxWYWx1ZSIsInNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgiLCJvVHJhbnNmb3JtZWRCaW5kaW5nIiwidHJhbnNmb3JtUmVjdXJzaXZlbHkiLCJvQmluZGluZ0V4cHJlc3Npb24iLCJjb25zdGFudCIsInBhdGgiLCJzUmVzdWx0Iiwic2V0RHluYW1pY0FjdGlvbkNvbnRleHRzIiwicmVxdWVzdFByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBY3Rpb25SdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdHlwZSB7IF9SZXF1ZXN0ZWRQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBQYXRoSW5Nb2RlbEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzRW50aXR5U2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmllbGRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZEl0ZW0gZnJvbSBcInNhcC91aS9tZGMvZmllbGQvTXVsdGlWYWx1ZUZpZWxkSXRlbVwiO1xuaW1wb3J0IHR5cGUgTXVsdGlWYWx1ZUZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL011bHRpVmFsdWVGaWVsZFwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgUHJvcGVydHlCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvUHJvcGVydHlCaW5kaW5nXCI7XG5pbXBvcnQgQW55RWxlbWVudCBmcm9tIFwiLi9jb250cm9scy9BbnlFbGVtZW50XCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQmFzZU1hbmlmZXN0U2V0dGluZ3MgfSBmcm9tIFwiLi9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldEVkaXRCdXR0b25FbmFibGVkLCBnZXRIaWRkZW5FeHByZXNzaW9uIH0gZnJvbSBcIi4vY29udmVydGVycy9vYmplY3RQYWdlL0hlYWRlckFuZEZvb3RlckFjdGlvblwiO1xuXG50eXBlIEFjdGlvblBhcmFtZXRlciA9IHtcblx0JE5hbWU6IHN0cmluZztcblx0JGlzQ29sbGVjdGlvbjogYm9vbGVhbjtcblx0Ly8gY3VycmVudGx5IHJ1bnRpbWUgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiBpbnRvIHRoZSBtZXRhbW9kZWw6XG5cdC8vIC0gaW4gdGhlIHByZXNzIGhhbmRsZXIgb2YgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHBhcmFtZXRlciBkaWFsb2csIHRoZSB2YWx1ZSBvZiBlYWNoIHBhcmFtZXRlciBpcyBhZGRlZFxuXHQvLyAtIGluIHNldEFjdGlvblBhcmFtZXRlckRlZmF1bHRWYWx1ZSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIGFuZCB0cmFuc2ZlcnJlZCB0byB0aGUgY29udGV4dCAoaW4gT0RhdGFNb2RlbCkgY3JlYXRlZCBmb3IgdGhlIGFjdGlvbiBleGVjdXRpb25cblx0Ly8gdGhpcyBpcyBxdWl0ZSBvZGQsIGFuZCBpdCB3b3VsZCBtYWtlIG11Y2ggbW9yZSBzZW5zZSB0byB0YWtlIHRoZSB2YWx1ZSBmcm9tIGFjdGlvblBhcmFtZXRlckluZm9zXG5cdC8vIC0gaG93ZXZlciwgc2V0QWN0aW9uUGFyYW1ldGVyRGVmYXVsdFZhbHVlIChvciByYXRoZXIgdGhlIHN1cnJvdW5kaW5nIF9leGVjdXRlQWN0aW9uKSBpcyBhbHNvIGNhbGxlZCBmcm9tIG90aGVyIHBsYWNlc1xuXHQvLyA9PiBmb3IgdGhlIHRpbWUgYmVpbmcsIGFkZGluZyB2YWx1ZSBoZXJlIHRvIGF2b2lkIHRzIGVycm9ycywgc3ViamVjdCB0byByZWZhY3RvcmluZ1xuXHQvLyBpbiBjYXNlIG9mIEZpZWxkLCB0aGUgdmFsdWUgaXMgc3RyaW5nLCBpbiBjYXNlIG9mIE11bHRpVmFsdWVGaWVsZCwgaXQncyBNdWx0aVZhbHVlRmllbGRJdGVtW11cblx0dmFsdWU6IHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBhcmFtZXRlckluZm8gPSB7XG5cdHBhcmFtZXRlcjogQWN0aW9uUGFyYW1ldGVyO1xuXHRmaWVsZDogRmllbGQgfCBNdWx0aVZhbHVlRmllbGQ7XG5cdGlzTXVsdGlWYWx1ZTogYm9vbGVhbjtcblx0dmFsdWU/OiBzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW107XG5cdHZhbGlkYXRpb25Qcm9taXNlPzogUHJvbWlzZTxzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW10+O1xuXHRoYXNFcnJvcjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEFjdGlvblJ1bnRpbWUgPSB7XG5cdC8qKlxuXHQgKiBBZGRzIGVycm9yIG1lc3NhZ2VzIGZvciBhbiBhY3Rpb24gcGFyYW1ldGVyIGZpZWxkIHRvIHRoZSBtZXNzYWdlIG1hbmFnZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBtZXNzYWdlUGFyYW1ldGVycyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyIGFuZCBtZXNzYWdlcyByZWZlcnJpbmcgdG8gdGhpcyBwYXJhbWV0ZXJcblx0ICovXG5cdF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyOiBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdG1lc3NhZ2VQYXJhbWV0ZXJzOiB7IGFjdGlvblBhcmFtZXRlckluZm86IEFjdGlvblBhcmFtZXRlckluZm87IG1lc3NhZ2U6IHN0cmluZyB9W11cblx0KSB7XG5cdFx0bWVzc2FnZU1hbmFnZXIuYWRkTWVzc2FnZXMoXG5cdFx0XHRtZXNzYWdlUGFyYW1ldGVycy5tYXAoKG1lc3NhZ2VQYXJhbWV0ZXIpID0+IHtcblx0XHRcdFx0Y29uc3QgYmluZGluZyA9IG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRCaW5kaW5nKFxuXHRcdFx0XHRcdG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5pc011bHRpVmFsdWUgPyBcIml0ZW1zXCIgOiBcInZhbHVlXCJcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIG5ldyBNZXNzYWdlKHtcblx0XHRcdFx0XHRtZXNzYWdlOiBtZXNzYWdlUGFyYW1ldGVyLm1lc3NhZ2UsXG5cdFx0XHRcdFx0dHlwZTogXCJFcnJvclwiLFxuXHRcdFx0XHRcdHByb2Nlc3NvcjogYmluZGluZz8uZ2V0TW9kZWwoKSxcblx0XHRcdFx0XHRwZXJzaXN0ZW50OiB0cnVlLFxuXHRcdFx0XHRcdHRhcmdldDogYmluZGluZz8uZ2V0UmVzb2x2ZWRQYXRoKClcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiBhbGwgcmVxdWlyZWQgYWN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBkYXRhIGFuZCBjaGVja3MgZm9yIGFsbCBhY3Rpb24gcGFyYW1ldGVycyBpZiB0aGVcblx0ICogY29udGFpbmVkIGRhdGEgaXMgdmFsaWQuXG5cdCAqXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBhY3Rpb25QYXJhbWV0ZXJJbmZvcyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyXG5cdCAqIEBwYXJhbSByZXNvdXJjZU1vZGVsIFRoZSBtb2RlbCB0byBsb2FkIHRleHQgcmVzb3VyY2VzXG5cdCAqIEByZXR1cm5zIFRoZSB2YWxpZGF0aW9uIHJlc3VsdCBjYW4gYmUgdHJ1ZSBvciBmYWxzZVxuXHQgKi9cblx0dmFsaWRhdGVQcm9wZXJ0aWVzOiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdGFjdGlvblBhcmFtZXRlckluZm9zOiBBY3Rpb25QYXJhbWV0ZXJJbmZvW10sXG5cdFx0cmVzb3VyY2VNb2RlbDogUmVzb3VyY2VNb2RlbFxuXHQpOlByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChhY3Rpb25QYXJhbWV0ZXJJbmZvcy5tYXAoKGFjdGlvblBhcmFtZXRlckluZm8pID0+IGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2UpKTtcblxuXHRcdGNvbnN0IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MgPSBhY3Rpb25QYXJhbWV0ZXJJbmZvcy5maWx0ZXIoKHBhcmFtZXRlckluZm8pID0+IHBhcmFtZXRlckluZm8uZmllbGQuZ2V0UmVxdWlyZWQoKSk7XG5cdFx0Y29uc3QgYWxsTWVzc2FnZXMgPSBtZXNzYWdlTWFuYWdlci5nZXRNZXNzYWdlTW9kZWwoKS5nZXREYXRhKCk7XG5cdFx0Y29uc3QgZW1wdHlSZXF1aXJlZEZpZWxkcyA9IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MuZmlsdGVyKChyZXF1aXJlZFBhcmFtZXRlckluZm8pID0+IHtcblx0XHRcdGNvbnN0IGZpZWxkSWQgPSByZXF1aXJlZFBhcmFtZXRlckluZm8uZmllbGQuZ2V0SWQoKTtcblx0XHRcdGNvbnN0IHJlbGV2YW50TWVzc2FnZXMgPSBhbGxNZXNzYWdlcy5maWx0ZXIoKG1zZzogTWVzc2FnZSkgPT5cblx0XHRcdFx0bXNnLmdldENvbnRyb2xJZHMoKS5zb21lKChjb250cm9sSWQ6IHN0cmluZykgPT4gY29udHJvbElkLmluY2x1ZGVzKGZpZWxkSWQpKVxuXHRcdFx0KTtcblx0XHRcdGlmIChyZWxldmFudE1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmIChyZXF1aXJlZFBhcmFtZXRlckluZm8uaXNNdWx0aVZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiByZXF1aXJlZFBhcmFtZXRlckluZm8udmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhcmVxdWlyZWRQYXJhbWV0ZXJJbmZvLnZhbHVlLmxlbmd0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0cmVxdWlyZWRQYXJhbWV0ZXJJbmZvLnZhbHVlID09PSB1bmRlZmluZWQgfHwgcmVxdWlyZWRQYXJhbWV0ZXJJbmZvLnZhbHVlID09PSBudWxsIHx8IHJlcXVpcmVkUGFyYW1ldGVySW5mby52YWx1ZSA9PT0gXCJcIlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdC8qIE1lc3NhZ2UgZm9yIG1pc3NpbmcgbWFuZGF0b3J5IHZhbHVlIG9mIHRoZSBhY3Rpb24gcGFyYW1ldGVyICovXG5cdFx0aWYgKGVtcHR5UmVxdWlyZWRGaWVsZHMubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLl9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyKFxuXHRcdFx0XHRtZXNzYWdlTWFuYWdlcixcblx0XHRcdFx0ZW1wdHlSZXF1aXJlZEZpZWxkcy5tYXAoKGFjdGlvblBhcmFtZXRlckluZm8pID0+ICh7XG5cdFx0XHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mbzogYWN0aW9uUGFyYW1ldGVySW5mbyxcblx0XHRcdFx0XHRtZXNzYWdlOiByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX09QRVJBVElPTlNfQUNUSU9OX1BBUkFNRVRFUl9ESUFMT0dfTUlTU0lOR19NQU5EQVRPUllfTVNHXCIsIFtcblx0XHRcdFx0XHRcdChhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFBhcmVudCgpPy5nZXRBZ2dyZWdhdGlvbihcImxhYmVsXCIpIGFzIExhYmVsKS5nZXRUZXh0KClcblx0XHRcdFx0XHRdKVxuXHRcdFx0XHR9KSlcblx0XHRcdCk7XG5cdFx0fVxuXHRcdC8qIENoZWNrIHZhbHVlIHN0YXRlIG9mIGFsbCBwYXJhbWV0ZXJzICovXG5cdFx0Y29uc3QgZmlyc3RJbnZhbGlkUGFyYW1ldGVyID0gYWN0aW9uUGFyYW1ldGVySW5mb3MuZmluZChcblx0XHRcdChwYXJhbWV0ZXJJbmZvKSA9PiBwYXJhbWV0ZXJJbmZvLmhhc0Vycm9yIHx8IHBhcmFtZXRlckluZm8uZmllbGQuZ2V0VmFsdWVTdGF0ZSgpID09PSBcIkVycm9yXCIgfHwgZW1wdHlSZXF1aXJlZEZpZWxkcy5pbmNsdWRlcyhwYXJhbWV0ZXJJbmZvKVxuXHRcdCk7XG5cdFx0aWYgKGZpcnN0SW52YWxpZFBhcmFtZXRlcikge1xuXHRcdFx0Zmlyc3RJbnZhbGlkUGFyYW1ldGVyLmZpZWxkLmZvY3VzKCk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2V0cyB0aGUgYWN0aW9uIGVuYWJsZW1lbnQuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzZXRBY3Rpb25FbmFibGVtZW50XG5cdCAqIEBwYXJhbSBvSW50ZXJuYWxNb2RlbENvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgbW9kZWxcblx0ICogQHBhcmFtIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAgTWFwIGNvbnRhaW5pbmcgdGhlIG9wZXJhdGlvbiBhdmFpbGFiaWxpdHkgb2YgYWN0aW9uc1xuXHQgKiBAcGFyYW0gYVNlbGVjdGVkQ29udGV4dHMgQXJyYXkgY29udGFpbmluZyBzZWxlY3RlZCBjb250ZXh0cyBvZiB0aGUgY2hhcnRcblx0ICogQHBhcmFtIHNDb250cm9sIENvbnRyb2wgbmFtZVxuXHQgKiBAcmV0dXJucyBUaGUgYWN0aW9uIGVuYWJsZW1lbnQgcHJvbWlzZXNcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRBY3Rpb25FbmFibGVtZW50OiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuXHRcdGFTZWxlY3RlZENvbnRleHRzOiBDb250ZXh0W10sXG5cdFx0c0NvbnRyb2w6IHN0cmluZ1xuXHQpIHtcblx0XHRjb25zdCBhUHJvbWlzZXMgPSBbXTtcblx0XHRmb3IgKGNvbnN0IHNBY3Rpb24gaW4gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCkge1xuXHRcdFx0bGV0IGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdID0gW107XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgZmFsc2UpO1xuXHRcdFx0Y29uc3Qgc1Byb3BlcnR5ID0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcFtzQWN0aW9uXTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2ldO1xuXHRcdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0XHRcdFx0aWYgKHNDb250cm9sID09PSBcImNoYXJ0XCIpIHtcblx0XHRcdFx0XHRcdGlmICgoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB8fCBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdChzUHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzQWN0aW9uLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdFx0XHRhUmVxdWVzdFByb21pc2VzID0gdGhpcy5fc2V0QWN0aW9uRW5hYmxlbWVudEZvclRhYmxlKFxuXHRcdFx0XHRcdFx0XHRvU2VsZWN0ZWRDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdHNBY3Rpb24sXG5cdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0YVJlcXVlc3RQcm9taXNlc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdGlmICghYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0XHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0XHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0YVByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMuc2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgW10pKTtcblx0XHRcdFx0fSBlbHNlIGlmIChhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGggJiYgdHlwZW9mIHNQcm9wZXJ0eSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdC8vIFdoZW4gYWxsIHByb3BlcnR5IHZhbHVlcyBoYXZlIGJlZW4gcmV0cmlldmVkLCBzZXRcblx0XHRcdFx0XHQvLyBUaGUgYXBwbGljYWJsZSBhbmQgbm90LWFwcGxpY2FibGUgc2VsZWN0ZWQgY29udGV4dHMgZm9yIGVhY2ggYWN0aW9uIGFuZFxuXHRcdFx0XHRcdC8vIFRoZSBlbmFibGVkIHByb3BlcnR5IG9mIHRoZSBkeW5hbWljIGFjdGlvbiBpbiBpbnRlcm5hbCBtb2RlbCBjb250ZXh0LlxuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIGFSZXF1ZXN0UHJvbWlzZXMpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoYVByb21pc2VzKTtcblx0fSxcblx0c2V0QWN0aW9uRW5hYmxlbWVudEFmdGVyUGF0Y2g6IGZ1bmN0aW9uIChvVmlldzogVmlldywgb0xpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nLCBvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0KSB7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0Y29uc3Qgb0NvbnRyb2xzID0gKG9JbnRlcm5hbE1vZGVsQ29udGV4dERhdGE/LmNvbnRyb2xzIHx8IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2xJZD86IHN0cmluZyB9Pjtcblx0XHRmb3IgKGNvbnN0IHNLZXkgaW4gb0NvbnRyb2xzKSB7XG5cdFx0XHRpZiAob0NvbnRyb2xzW3NLZXldICYmIG9Db250cm9sc1tzS2V5XS5jb250cm9sSWQpIHtcblx0XHRcdFx0Y29uc3Qgb1RhYmxlID0gb1ZpZXcuYnlJZChzS2V5KTtcblx0XHRcdFx0aWYgKG9UYWJsZSAmJiBvVGFibGUuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdFx0XHRjb25zdCBvUm93QmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCk7XG5cdFx0XHRcdFx0aWYgKG9Sb3dCaW5kaW5nID09IG9MaXN0QmluZGluZykge1xuXHRcdFx0XHRcdFx0QWN0aW9uUnVudGltZS5zZXRBY3Rpb25FbmFibGVtZW50KFxuXHRcdFx0XHRcdFx0XHRvVGFibGUuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0SlNPTi5wYXJzZShvVGFibGUuZGF0YShcIm9wZXJhdGlvbkF2YWlsYWJsZU1hcFwiKS5jdXN0b21EYXRhKSxcblx0XHRcdFx0XHRcdFx0b1RhYmxlLmdldFNlbGVjdGVkQ29udGV4dHMoKSBhcyBDb250ZXh0W10sXG5cdFx0XHRcdFx0XHRcdFwidGFibGVcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWRpdEJ1dHRvblZpc2liaWxpdHlBbmRFbmFibGVtZW50KG9WaWV3OiBWaWV3KSB7XG5cdFx0Y29uc3QgaVZpZXdMZXZlbCA9IChvVmlldy5nZXRWaWV3RGF0YSgpIGFzIEJhc2VNYW5pZmVzdFNldHRpbmdzKT8udmlld0xldmVsLFxuXHRcdCAgICAgIGlzRWRpdGFibGUgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpPy5nZXRQcm9wZXJ0eShcIi9pc0VkaXRhYmxlXCIpO1xuXHRcdGlmICgoaVZpZXdMZXZlbCBhcyBudW1iZXIpID4gMSAmJiAgaXNFZGl0YWJsZSAhPT0gdHJ1ZSkge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KG9WaWV3KTtcblx0XHRcdGNvbnN0IHNNZXRhUGF0aCA9IE1vZGVsSGVscGVyLmdldE1ldGFQYXRoRm9yQ29udGV4dChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzRW50aXR5U2V0ID0gTW9kZWxIZWxwZXIuZ2V0Um9vdEVudGl0eVNldFBhdGgoc01ldGFQYXRoKTtcblx0XHRcdGNvbnN0IG1ldGFDb250ZXh0ID0gb0NvbnRleHQ/LmdldE1vZGVsKCk/LmdldE1ldGFNb2RlbCgpPy5nZXRDb250ZXh0KG9Db250ZXh0Py5nZXRQYXRoKCkpO1xuXHRcdFx0Y29uc3QgY29udmVydGVyQ29udGV4dCA9IENvbnZlcnRlckNvbnRleHQ/LmNyZWF0ZUNvbnZlcnRlckNvbnRleHRGb3JNYWNybyhcblx0XHRcdFx0c0VudGl0eVNldCxcblx0XHRcdFx0bWV0YUNvbnRleHQsXG5cdFx0XHRcdG9BcHBDb21wb25lbnQuZ2V0RGlhZ25vc3RpY3MoKSxcblx0XHRcdFx0bWVyZ2UsXG5cdFx0XHRcdHVuZGVmaW5lZFxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRsZXQgdXBkYXRlSGlkZGVuO1xuXHRcdFx0Ly9GaW5kIHRoZSBVcGRhdGUgSGlkZGVuIG9mIHRoZSByb290IGVudGl0eSBzZXQgYW5kIGJpbmQgdGhlIHByb3BlcnR5IHRvIEFueUVsZW1lbnQsIGFueSBjaGFuZ2VzIGluIHRoZSBwYXRoIG9mIHRoZSByb290IFVwZGF0ZUhpZGRlbiB3aWxsIGJlIHVwZGF0ZWQgdmlhIHRoZSBwcm9wZXJ0eSwgaW50ZXJuYWwgbW9kZWwgY29udGV4dCBpcyB1cGRhdGVkIGJhc2VkIG9uIHRoZSBwcm9wZXJ0eVxuXHRcdFx0Y29uc3QgYlVwZGF0ZUhpZGRlbiA9IGlzRW50aXR5U2V0KGVudGl0eVNldCkgJiYgZW50aXR5U2V0LmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW4/LnZhbHVlT2YoKTtcblx0XHRcdGlmIChiVXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0XHRcdHVwZGF0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmlzVXBkYXRlSGlkZGVuKGVudGl0eVNldCwgZW50aXR5VHlwZSk7XG5cdFx0XHR9XG5cdFx0XHQvL0ZpbmQgdGhlIG9wZXJhdGlvbiBhdmFpbGFibGUgcHJvcGVydHkgb2YgdGhlIHJvb3QgZWRpdCBjb25maWd1cmF0aW9uIGFuZCBmZXRjaCB0aGUgcHJvcGVydHkgdXNpbmcgQW55RWxlbWVudFxuXHRcdFx0Y29uc3Qgc0VkaXRFbmFibGVCaW5kaW5nID0gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoY29udmVydGVyQ29udGV4dCwgdW5kZWZpbmVkKTtcblx0XHRcdGNvbnN0IGRyYWZ0Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3RQYXRoKG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNTdGlja3lSb290UGF0aCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVJvb3RQYXRoKG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNQYXRoID0gZHJhZnRSb290UGF0aCB8fCBzU3RpY2t5Um9vdFBhdGg7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0aWYgKHNQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9Sb290Q29udGV4dCA9IG9WaWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQoc1BhdGgpLmdldEJvdW5kQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdFx0XHRcdGlmICh1cGRhdGVIaWRkZW4gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdGNvbnN0IHNIaWRkZW5FeHByZXNzaW9uID0gY29tcGlsZUV4cHJlc3Npb24oZXF1YWwoZ2V0SGlkZGVuRXhwcmVzc2lvbihjb252ZXJ0ZXJDb250ZXh0LCB1cGRhdGVIaWRkZW4pLCBmYWxzZSkpO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlRWRpdE1vZGVsQ29udGV4dChzSGlkZGVuRXhwcmVzc2lvbiwgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdFZpc2libGVcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc0VkaXRFbmFibGVCaW5kaW5nKSB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVFZGl0TW9kZWxDb250ZXh0KHNFZGl0RW5hYmxlQmluZGluZywgb1ZpZXcsIG9Sb290Q29udGV4dCwgXCJyb290RWRpdEVuYWJsZWRcIiwgb0ludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0TW9kZWxDb250ZXh0OiBmdW5jdGlvbiAoXG5cdFx0c0JpbmRpbmdFeHByZXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0b1ZpZXc6IFZpZXcsXG5cdFx0b1Jvb3RDb250ZXh0OiBDb250ZXh0LFxuXHRcdHNQcm9wZXJ0eTogc3RyaW5nLFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHRcblx0KSB7XG5cdFx0aWYgKHNCaW5kaW5nRXhwcmVzc2lvbikge1xuXHRcdFx0Y29uc3Qgb0hpZGRlbkVsZW1lbnQgPSBuZXcgQW55RWxlbWVudCh7IGFueVRleHQ6IHNCaW5kaW5nRXhwcmVzc2lvbiB9KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LnNldEJpbmRpbmdDb250ZXh0KG51bGwpO1xuXHRcdFx0b1ZpZXcuYWRkRGVwZW5kZW50KG9IaWRkZW5FbGVtZW50KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LmdldEJpbmRpbmcoXCJhbnlUZXh0XCIpO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHQgPSBvSGlkZGVuRWxlbWVudFxuXHRcdFx0XHQuZ2V0TW9kZWwoKVxuXHRcdFx0XHQ/LmJpbmRDb250ZXh0KG9Sb290Q29udGV4dC5nZXRQYXRoKCksIG9Sb290Q29udGV4dCwgeyAkJGdyb3VwSWQ6IFwiJGF1dG8uSGVyb2VzXCIgfSlcblx0XHRcdFx0Py5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdG9IaWRkZW5FbGVtZW50LnNldEJpbmRpbmdDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdG9IaWRkZW5FbGVtZW50Py5nZXRCaW5kaW5nKFwiYW55VGV4dFwiKT8uYXR0YWNoQ2hhbmdlKChvRXZlbnQ6IEV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9OZXdWYWx1ZSA9IChvRXZlbnQuZ2V0U291cmNlKCkgYXMgUHJvcGVydHlCaW5kaW5nKS5nZXRFeHRlcm5hbFZhbHVlKCk7XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzUHJvcGVydHksIG9OZXdWYWx1ZSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0X3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZTogZnVuY3Rpb24gKFxuXHRcdG9TZWxlY3RlZENvbnRleHQ6IENvbnRleHQgfCB1bmRlZmluZWQsXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0c1Byb3BlcnR5OiBzdHJpbmcsXG5cdFx0YVJlcXVlc3RQcm9taXNlczogUHJvbWlzZTxfUmVxdWVzdGVkUHJvcGVydHk+W11cblx0KSB7XG5cdFx0Ly8gUmVzZXQgYWxsIHByb3BlcnRpZXMgYmVmb3JlIGNvbXB1dGF0aW9uXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0fSk7XG5cdFx0Ly8gTm90ZSB0aGF0IG5vbiBkeW5hbWljIGFjdGlvbnMgYXJlIG5vdCBwcm9jZXNzZWQgaGVyZS4gVGhleSBhcmUgZW5hYmxlZCBiZWNhdXNlXG5cdFx0Ly8gb25lIG9yIG1vcmUgYXJlIHNlbGVjdGVkIGFuZCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIGNvbmRpdGlvbiBpbiB0aGUgdGVtcGxhdGluZ1xuXHRcdC8vIGlzIHRoZW4gdW5kZWZpbmVkIGFuZCB0aHVzIHRoZSBidXR0b24gdGFrZXMgdGhlIGRlZmF1bHQgZW5hYmxpbmcsIHdoaWNoIGlzIHRydWUhXG5cdFx0Y29uc3QgYUFwcGxpY2FibGUgPSBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoID0gYCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufS9iRW5hYmxlZGA7XG5cdFx0aWYgKHR5cGVvZiBzUHJvcGVydHkgPT09IFwib2JqZWN0XCIgJiYgc1Byb3BlcnR5ICE9PSBudWxsICYmIHNQcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+O1xuXHRcdFx0XHRjb25zdCBvVHJhbnNmb3JtZWRCaW5kaW5nID0gdHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0c1Byb3BlcnR5LFxuXHRcdFx0XHRcdFwiUGF0aEluTW9kZWxcIixcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKG9CaW5kaW5nRXhwcmVzc2lvbjogUGF0aEluTW9kZWxFeHByZXNzaW9uPFByaW1pdGl2ZVR5cGU+KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb0NvbnRleHREYXRhID8gY29uc3RhbnQob0NvbnRleHREYXRhW29CaW5kaW5nRXhwcmVzc2lvbi5wYXRoXSkgOiBjb25zdGFudChmYWxzZSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbnN0IHNSZXN1bHQgPSBjb21waWxlRXhwcmVzc2lvbihvVHJhbnNmb3JtZWRCaW5kaW5nKTtcblx0XHRcdFx0aWYgKHNSZXN1bHQgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHRcdFx0YUFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhTm90QXBwbGljYWJsZS5wdXNoKG9TZWxlY3RlZENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb21tb25VdGlscy5zZXREeW5hbWljQWN0aW9uQ29udGV4dHMob0ludGVybmFsTW9kZWxDb250ZXh0LCBzQWN0aW9uLCBhQXBwbGljYWJsZSwgYU5vdEFwcGxpY2FibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdGlmIChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHtcblx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKG9TZWxlY3RlZENvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHQvLyBDb2xsZWN0IHByb21pc2VzIHRvIHJldHJpZXZlIHNpbmdsZXRvbiBvciBub3JtYWwgcHJvcGVydHkgdmFsdWUgYXN5bmNocm9ub3VzbHlcblx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnJlcXVlc3RQcm9wZXJ0eShvU2VsZWN0ZWRDb250ZXh0LCBzQWN0aW9uLCBzUHJvcGVydHksIHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgpKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGFSZXF1ZXN0UHJvbWlzZXM7XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBBY3Rpb25SdW50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
|
|
247
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwiX2FkZE1lc3NhZ2VGb3JBY3Rpb25QYXJhbWV0ZXIiLCJtZXNzYWdlTWFuYWdlciIsIm1lc3NhZ2VQYXJhbWV0ZXJzIiwiYWRkTWVzc2FnZXMiLCJtYXAiLCJtZXNzYWdlUGFyYW1ldGVyIiwiYmluZGluZyIsImFjdGlvblBhcmFtZXRlckluZm8iLCJmaWVsZCIsImdldEJpbmRpbmciLCJpc011bHRpVmFsdWUiLCJNZXNzYWdlIiwibWVzc2FnZSIsInR5cGUiLCJwcm9jZXNzb3IiLCJnZXRNb2RlbCIsInBlcnNpc3RlbnQiLCJ0YXJnZXQiLCJnZXRSZXNvbHZlZFBhdGgiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJhY3Rpb25QYXJhbWV0ZXJJbmZvcyIsInJlc291cmNlTW9kZWwiLCJQcm9taXNlIiwiYWxsU2V0dGxlZCIsInZhbGlkYXRpb25Qcm9taXNlIiwicmVxdWlyZWRQYXJhbWV0ZXJJbmZvcyIsImZpbHRlciIsInBhcmFtZXRlckluZm8iLCJnZXRSZXF1aXJlZCIsImFsbE1lc3NhZ2VzIiwiZ2V0TWVzc2FnZU1vZGVsIiwiZ2V0RGF0YSIsImVtcHR5UmVxdWlyZWRGaWVsZHMiLCJyZXF1aXJlZFBhcmFtZXRlckluZm8iLCJmaWVsZElkIiwiZ2V0SWQiLCJyZWxldmFudE1lc3NhZ2VzIiwibXNnIiwiZ2V0Q29udHJvbElkcyIsInNvbWUiLCJjb250cm9sSWQiLCJpbmNsdWRlcyIsImxlbmd0aCIsInZhbHVlIiwidW5kZWZpbmVkIiwiZmllbGRWYWx1ZSIsImdldFZhbHVlIiwiZ2V0VGV4dCIsImdldFBhcmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZmlyc3RJbnZhbGlkUGFyYW1ldGVyIiwiZmluZCIsImhhc0Vycm9yIiwiZ2V0VmFsdWVTdGF0ZSIsImZvY3VzIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsImFsbCIsInNldEFjdGlvbkVuYWJsZW1lbnRBZnRlclBhdGNoIiwib1ZpZXciLCJvTGlzdEJpbmRpbmciLCJvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhIiwib0NvbnRyb2xzIiwiY29udHJvbHMiLCJzS2V5Iiwib1RhYmxlIiwiYnlJZCIsImlzQSIsIm9Sb3dCaW5kaW5nIiwiZ2V0Um93QmluZGluZyIsImdldEJpbmRpbmdDb250ZXh0IiwiSlNPTiIsInBhcnNlIiwiZGF0YSIsImN1c3RvbURhdGEiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwidXBkYXRlRWRpdEJ1dHRvblZpc2liaWxpdHlBbmRFbmFibGVtZW50IiwiaVZpZXdMZXZlbCIsImdldFZpZXdEYXRhIiwidmlld0xldmVsIiwiaXNFZGl0YWJsZSIsImdldFByb3BlcnR5Iiwib0NvbnRleHQiLCJvQXBwQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50Iiwic01ldGFQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXRNZXRhUGF0aEZvckNvbnRleHQiLCJzRW50aXR5U2V0IiwiZ2V0Um9vdEVudGl0eVNldFBhdGgiLCJtZXRhQ29udGV4dCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNFbnRpdHlTZXQiLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiJCRncm91cElkIiwiYXR0YWNoQ2hhbmdlIiwib0V2ZW50Iiwib05ld1ZhbHVlIiwiZ2V0U291cmNlIiwiZ2V0RXh0ZXJuYWxWYWx1ZSIsInNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgiLCJvVHJhbnNmb3JtZWRCaW5kaW5nIiwidHJhbnNmb3JtUmVjdXJzaXZlbHkiLCJvQmluZGluZ0V4cHJlc3Npb24iLCJjb25zdGFudCIsInBhdGgiLCJzUmVzdWx0Iiwic2V0RHluYW1pY0FjdGlvbkNvbnRleHRzIiwicmVxdWVzdFByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBY3Rpb25SdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdHlwZSB7IF9SZXF1ZXN0ZWRQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBQYXRoSW5Nb2RlbEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB7IGlzRW50aXR5U2V0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVHlwZUd1YXJkc1wiO1xuaW1wb3J0IHR5cGUgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2VNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcInNhcC91aS9tZGMvRmllbGRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZEl0ZW0gZnJvbSBcInNhcC91aS9tZGMvZmllbGQvTXVsdGlWYWx1ZUZpZWxkSXRlbVwiO1xuaW1wb3J0IHR5cGUgTXVsdGlWYWx1ZUZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL011bHRpVmFsdWVGaWVsZFwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgUHJvcGVydHlCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvUHJvcGVydHlCaW5kaW5nXCI7XG5pbXBvcnQgQW55RWxlbWVudCBmcm9tIFwiLi9jb250cm9scy9BbnlFbGVtZW50XCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQmFzZU1hbmlmZXN0U2V0dGluZ3MgfSBmcm9tIFwiLi9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldEVkaXRCdXR0b25FbmFibGVkLCBnZXRIaWRkZW5FeHByZXNzaW9uIH0gZnJvbSBcIi4vY29udmVydGVycy9vYmplY3RQYWdlL0hlYWRlckFuZEZvb3RlckFjdGlvblwiO1xuXG50eXBlIEFjdGlvblBhcmFtZXRlciA9IHtcblx0JE5hbWU6IHN0cmluZztcblx0JGlzQ29sbGVjdGlvbjogYm9vbGVhbjtcblx0Ly8gY3VycmVudGx5IHJ1bnRpbWUgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiBpbnRvIHRoZSBtZXRhbW9kZWw6XG5cdC8vIC0gaW4gdGhlIHByZXNzIGhhbmRsZXIgb2YgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHBhcmFtZXRlciBkaWFsb2csIHRoZSB2YWx1ZSBvZiBlYWNoIHBhcmFtZXRlciBpcyBhZGRlZFxuXHQvLyAtIGluIHNldEFjdGlvblBhcmFtZXRlckRlZmF1bHRWYWx1ZSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIGFuZCB0cmFuc2ZlcnJlZCB0byB0aGUgY29udGV4dCAoaW4gT0RhdGFNb2RlbCkgY3JlYXRlZCBmb3IgdGhlIGFjdGlvbiBleGVjdXRpb25cblx0Ly8gdGhpcyBpcyBxdWl0ZSBvZGQsIGFuZCBpdCB3b3VsZCBtYWtlIG11Y2ggbW9yZSBzZW5zZSB0byB0YWtlIHRoZSB2YWx1ZSBmcm9tIGFjdGlvblBhcmFtZXRlckluZm9zXG5cdC8vIC0gaG93ZXZlciwgc2V0QWN0aW9uUGFyYW1ldGVyRGVmYXVsdFZhbHVlIChvciByYXRoZXIgdGhlIHN1cnJvdW5kaW5nIF9leGVjdXRlQWN0aW9uKSBpcyBhbHNvIGNhbGxlZCBmcm9tIG90aGVyIHBsYWNlc1xuXHQvLyA9PiBmb3IgdGhlIHRpbWUgYmVpbmcsIGFkZGluZyB2YWx1ZSBoZXJlIHRvIGF2b2lkIHRzIGVycm9ycywgc3ViamVjdCB0byByZWZhY3RvcmluZ1xuXHQvLyBpbiBjYXNlIG9mIEZpZWxkLCB0aGUgdmFsdWUgaXMgc3RyaW5nLCBpbiBjYXNlIG9mIE11bHRpVmFsdWVGaWVsZCwgaXQncyBNdWx0aVZhbHVlRmllbGRJdGVtW11cblx0dmFsdWU6IHN0cmluZyB8IE11bHRpVmFsdWVGaWVsZEl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBhcmFtZXRlckluZm8gPSB7XG5cdHBhcmFtZXRlcjogQWN0aW9uUGFyYW1ldGVyO1xuXHRmaWVsZDogRmllbGQgfCBNdWx0aVZhbHVlRmllbGQ7XG5cdGlzTXVsdGlWYWx1ZTogYm9vbGVhbjtcblx0dmFsdWU/OiBzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW107XG5cdHZhbGlkYXRpb25Qcm9taXNlPzogUHJvbWlzZTxzdHJpbmcgfCBNdWx0aVZhbHVlRmllbGRJdGVtW10+O1xuXHRoYXNFcnJvcjogYm9vbGVhbjtcbn07XG5cbmNvbnN0IEFjdGlvblJ1bnRpbWUgPSB7XG5cdC8qKlxuXHQgKiBBZGRzIGVycm9yIG1lc3NhZ2VzIGZvciBhbiBhY3Rpb24gcGFyYW1ldGVyIGZpZWxkIHRvIHRoZSBtZXNzYWdlIG1hbmFnZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBtZXNzYWdlUGFyYW1ldGVycyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyIGFuZCBtZXNzYWdlcyByZWZlcnJpbmcgdG8gdGhpcyBwYXJhbWV0ZXJcblx0ICovXG5cdF9hZGRNZXNzYWdlRm9yQWN0aW9uUGFyYW1ldGVyOiBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdG1lc3NhZ2VQYXJhbWV0ZXJzOiB7IGFjdGlvblBhcmFtZXRlckluZm86IEFjdGlvblBhcmFtZXRlckluZm87IG1lc3NhZ2U6IHN0cmluZyB9W11cblx0KSB7XG5cdFx0bWVzc2FnZU1hbmFnZXIuYWRkTWVzc2FnZXMoXG5cdFx0XHRtZXNzYWdlUGFyYW1ldGVycy5tYXAoKG1lc3NhZ2VQYXJhbWV0ZXIpID0+IHtcblx0XHRcdFx0Y29uc3QgYmluZGluZyA9IG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRCaW5kaW5nKFxuXHRcdFx0XHRcdG1lc3NhZ2VQYXJhbWV0ZXIuYWN0aW9uUGFyYW1ldGVySW5mby5pc011bHRpVmFsdWUgPyBcIml0ZW1zXCIgOiBcInZhbHVlXCJcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIG5ldyBNZXNzYWdlKHtcblx0XHRcdFx0XHRtZXNzYWdlOiBtZXNzYWdlUGFyYW1ldGVyLm1lc3NhZ2UsXG5cdFx0XHRcdFx0dHlwZTogXCJFcnJvclwiLFxuXHRcdFx0XHRcdHByb2Nlc3NvcjogYmluZGluZz8uZ2V0TW9kZWwoKSxcblx0XHRcdFx0XHRwZXJzaXN0ZW50OiB0cnVlLFxuXHRcdFx0XHRcdHRhcmdldDogYmluZGluZz8uZ2V0UmVzb2x2ZWRQYXRoKClcblx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiBhbGwgcmVxdWlyZWQgYWN0aW9uIHBhcmFtZXRlcnMgY29udGFpbiBkYXRhIGFuZCBjaGVja3MgZm9yIGFsbCBhY3Rpb24gcGFyYW1ldGVycyBpZiB0aGVcblx0ICogY29udGFpbmVkIGRhdGEgaXMgdmFsaWQuXG5cdCAqXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlTWFuYWdlciBUaGUgYWN0aXZlIE1lc3NhZ2VNYW5hZ2VyIGluc3RhbmNlXG5cdCAqIEBwYXJhbSBhY3Rpb25QYXJhbWV0ZXJJbmZvcyBJbmZvcm1hdGlvbiBpZGVudGlmeWluZyBhbiBhY3Rpb24gcGFyYW1ldGVyXG5cdCAqIEBwYXJhbSByZXNvdXJjZU1vZGVsIFRoZSBtb2RlbCB0byBsb2FkIHRleHQgcmVzb3VyY2VzXG5cdCAqIEByZXR1cm5zIFRoZSB2YWxpZGF0aW9uIHJlc3VsdCBjYW4gYmUgdHJ1ZSBvciBmYWxzZVxuXHQgKi9cblx0dmFsaWRhdGVQcm9wZXJ0aWVzOiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0bWVzc2FnZU1hbmFnZXI6IE1lc3NhZ2VNYW5hZ2VyLFxuXHRcdGFjdGlvblBhcmFtZXRlckluZm9zOiBBY3Rpb25QYXJhbWV0ZXJJbmZvW10sXG5cdFx0cmVzb3VyY2VNb2RlbDogUmVzb3VyY2VNb2RlbFxuXHQpOlByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChhY3Rpb25QYXJhbWV0ZXJJbmZvcy5tYXAoKGFjdGlvblBhcmFtZXRlckluZm8pID0+IGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2UpKTtcblxuXHRcdGNvbnN0IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MgPSBhY3Rpb25QYXJhbWV0ZXJJbmZvcy5maWx0ZXIoKHBhcmFtZXRlckluZm8pID0+IHBhcmFtZXRlckluZm8uZmllbGQuZ2V0UmVxdWlyZWQoKSk7XG5cdFx0Y29uc3QgYWxsTWVzc2FnZXMgPSBtZXNzYWdlTWFuYWdlci5nZXRNZXNzYWdlTW9kZWwoKS5nZXREYXRhKCk7XG5cdFx0Y29uc3QgZW1wdHlSZXF1aXJlZEZpZWxkcyA9IHJlcXVpcmVkUGFyYW1ldGVySW5mb3MuZmlsdGVyKChyZXF1aXJlZFBhcmFtZXRlckluZm8pID0+IHtcblx0XHRcdGNvbnN0IGZpZWxkSWQgPSByZXF1aXJlZFBhcmFtZXRlckluZm8uZmllbGQuZ2V0SWQoKTtcblx0XHRcdGNvbnN0IHJlbGV2YW50TWVzc2FnZXMgPSBhbGxNZXNzYWdlcy5maWx0ZXIoKG1zZzogTWVzc2FnZSkgPT5cblx0XHRcdFx0bXNnLmdldENvbnRyb2xJZHMoKS5zb21lKChjb250cm9sSWQ6IHN0cmluZykgPT4gY29udHJvbElkLmluY2x1ZGVzKGZpZWxkSWQpKVxuXHRcdFx0KTtcblx0XHRcdGlmIChyZWxldmFudE1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmIChyZXF1aXJlZFBhcmFtZXRlckluZm8uaXNNdWx0aVZhbHVlKSB7XG5cdFx0XHRcdHJldHVybiByZXF1aXJlZFBhcmFtZXRlckluZm8udmFsdWUgPT09IHVuZGVmaW5lZCB8fCAhcmVxdWlyZWRQYXJhbWV0ZXJJbmZvLnZhbHVlLmxlbmd0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGZpZWxkVmFsdWUgPSAocmVxdWlyZWRQYXJhbWV0ZXJJbmZvLmZpZWxkIGFzIEZpZWxkKS5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRyZXR1cm4gZmllbGRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkVmFsdWUgPT09IG51bGwgfHwgZmllbGRWYWx1ZSA9PT0gXCJcIjtcblx0XHRcdH1cblx0XHR9KTtcblx0XHQvKiBNZXNzYWdlIGZvciBtaXNzaW5nIG1hbmRhdG9yeSB2YWx1ZSBvZiB0aGUgYWN0aW9uIHBhcmFtZXRlciAqL1xuXHRcdGlmIChlbXB0eVJlcXVpcmVkRmllbGRzLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5fYWRkTWVzc2FnZUZvckFjdGlvblBhcmFtZXRlcihcblx0XHRcdFx0bWVzc2FnZU1hbmFnZXIsXG5cdFx0XHRcdGVtcHR5UmVxdWlyZWRGaWVsZHMubWFwKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiAoe1xuXHRcdFx0XHRcdGFjdGlvblBhcmFtZXRlckluZm86IGFjdGlvblBhcmFtZXRlckluZm8sXG5cdFx0XHRcdFx0bWVzc2FnZTogcmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiQ19PUEVSQVRJT05TX0FDVElPTl9QQVJBTUVURVJfRElBTE9HX01JU1NJTkdfTUFOREFUT1JZX01TR1wiLCBbXG5cdFx0XHRcdFx0XHQoYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRQYXJlbnQoKT8uZ2V0QWdncmVnYXRpb24oXCJsYWJlbFwiKSBhcyBMYWJlbCkuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XSlcblx0XHRcdFx0fSkpXG5cdFx0XHQpO1xuXHRcdH1cblx0XHQvKiBDaGVjayB2YWx1ZSBzdGF0ZSBvZiBhbGwgcGFyYW1ldGVycyAqL1xuXHRcdGNvbnN0IGZpcnN0SW52YWxpZFBhcmFtZXRlciA9IGFjdGlvblBhcmFtZXRlckluZm9zLmZpbmQoXG5cdFx0XHQocGFyYW1ldGVySW5mbykgPT4gcGFyYW1ldGVySW5mby5oYXNFcnJvciB8fCBwYXJhbWV0ZXJJbmZvLmZpZWxkLmdldFZhbHVlU3RhdGUoKSA9PT0gXCJFcnJvclwiIHx8IGVtcHR5UmVxdWlyZWRGaWVsZHMuaW5jbHVkZXMocGFyYW1ldGVySW5mbylcblx0XHQpO1xuXHRcdGlmIChmaXJzdEludmFsaWRQYXJhbWV0ZXIpIHtcblx0XHRcdGZpcnN0SW52YWxpZFBhcmFtZXRlci5maWVsZC5mb2N1cygpO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGFjdGlvbiBlbmFibGVtZW50LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2V0QWN0aW9uRW5hYmxlbWVudFxuXHQgKiBAcGFyYW0gb0ludGVybmFsTW9kZWxDb250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IG1vZGVsXG5cdCAqIEBwYXJhbSBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwIE1hcCBjb250YWluaW5nIHRoZSBvcGVyYXRpb24gYXZhaWxhYmlsaXR5IG9mIGFjdGlvbnNcblx0ICogQHBhcmFtIGFTZWxlY3RlZENvbnRleHRzIEFycmF5IGNvbnRhaW5pbmcgc2VsZWN0ZWQgY29udGV4dHMgb2YgdGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSBzQ29udHJvbCBDb250cm9sIG5hbWVcblx0ICogQHJldHVybnMgVGhlIGFjdGlvbiBlbmFibGVtZW50IHByb21pc2VzXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0QWN0aW9uRW5hYmxlbWVudDogYXN5bmMgZnVuY3Rpb24gKFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdLFxuXHRcdHNDb250cm9sOiBzdHJpbmdcblx0KSB7XG5cdFx0Y29uc3QgYVByb21pc2VzID0gW107XG5cdFx0Zm9yIChjb25zdCBzQWN0aW9uIGluIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXApIHtcblx0XHRcdGxldCBhUmVxdWVzdFByb21pc2VzOiBQcm9taXNlPF9SZXF1ZXN0ZWRQcm9wZXJ0eT5bXSA9IFtdO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIGZhbHNlKTtcblx0XHRcdGNvbnN0IHNQcm9wZXJ0eSA9IG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXBbc0FjdGlvbl07XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IG9TZWxlY3RlZENvbnRleHQgPSBhU2VsZWN0ZWRDb250ZXh0c1tpXTtcblx0XHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdFx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJjaGFydFwiKSB7XG5cdFx0XHRcdFx0XHRpZiAoKHNQcm9wZXJ0eSA9PT0gbnVsbCAmJiAhIW9Db250ZXh0RGF0YVtgIyR7c0FjdGlvbn1gXSkgfHwgb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3Qoc1Byb3BlcnR5KSkge1xuXHRcdFx0XHRcdFx0XHQvL2xvb2sgZm9yIGFjdGlvbiBhZHZlcnRpc2VtZW50IGlmIHByZXNlbnQgYW5kIGl0cyB2YWx1ZSBpcyBub3QgbnVsbFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgdHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcyA9IHRoaXMuX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZShcblx0XHRcdFx0XHRcdFx0b1NlbGVjdGVkQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRzQWN0aW9uLFxuXHRcdFx0XHRcdFx0XHRzUHJvcGVydHksXG5cdFx0XHRcdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXNcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0XHRpZiAoIWFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCkge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdFx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdFx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdFx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIFtdKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoICYmIHR5cGVvZiBzUHJvcGVydHkgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHQvLyBXaGVuIGFsbCBwcm9wZXJ0eSB2YWx1ZXMgaGF2ZSBiZWVuIHJldHJpZXZlZCwgc2V0XG5cdFx0XHRcdFx0Ly8gVGhlIGFwcGxpY2FibGUgYW5kIG5vdC1hcHBsaWNhYmxlIHNlbGVjdGVkIGNvbnRleHRzIGZvciBlYWNoIGFjdGlvbiBhbmRcblx0XHRcdFx0XHQvLyBUaGUgZW5hYmxlZCBwcm9wZXJ0eSBvZiB0aGUgZHluYW1pYyBhY3Rpb24gaW4gaW50ZXJuYWwgbW9kZWwgY29udGV4dC5cblx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaChDb21tb25VdGlscy5zZXRDb250ZXh0c0Jhc2VkT25PcGVyYXRpb25BdmFpbGFibGUob0ludGVybmFsTW9kZWxDb250ZXh0LCBhUmVxdWVzdFByb21pc2VzKSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG5cdH0sXG5cdHNldEFjdGlvbkVuYWJsZW1lbnRBZnRlclBhdGNoOiBmdW5jdGlvbiAob1ZpZXc6IFZpZXcsIG9MaXN0QmluZGluZzogT0RhdGFMaXN0QmluZGluZywgb0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dCkge1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dERhdGEgPSBvSW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdGNvbnN0IG9Db250cm9scyA9IChvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhPy5jb250cm9scyB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgeyBjb250cm9sSWQ/OiBzdHJpbmcgfT47XG5cdFx0Zm9yIChjb25zdCBzS2V5IGluIG9Db250cm9scykge1xuXHRcdFx0aWYgKG9Db250cm9sc1tzS2V5XSAmJiBvQ29udHJvbHNbc0tleV0uY29udHJvbElkKSB7XG5cdFx0XHRcdGNvbnN0IG9UYWJsZSA9IG9WaWV3LmJ5SWQoc0tleSk7XG5cdFx0XHRcdGlmIChvVGFibGUgJiYgb1RhYmxlLmlzQTxUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHRcdFx0Y29uc3Qgb1Jvd0JpbmRpbmcgPSBvVGFibGUuZ2V0Um93QmluZGluZygpO1xuXHRcdFx0XHRcdGlmIChvUm93QmluZGluZyA9PSBvTGlzdEJpbmRpbmcpIHtcblx0XHRcdFx0XHRcdEFjdGlvblJ1bnRpbWUuc2V0QWN0aW9uRW5hYmxlbWVudChcblx0XHRcdFx0XHRcdFx0b1RhYmxlLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdEpTT04ucGFyc2Uob1RhYmxlLmRhdGEoXCJvcGVyYXRpb25BdmFpbGFibGVNYXBcIikuY3VzdG9tRGF0YSksXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRTZWxlY3RlZENvbnRleHRzKCkgYXMgQ29udGV4dFtdLFxuXHRcdFx0XHRcdFx0XHRcInRhYmxlXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHVwZGF0ZUVkaXRCdXR0b25WaXNpYmlsaXR5QW5kRW5hYmxlbWVudChvVmlldzogVmlldykge1xuXHRcdGNvbnN0IGlWaWV3TGV2ZWwgPSAob1ZpZXcuZ2V0Vmlld0RhdGEoKSBhcyBCYXNlTWFuaWZlc3RTZXR0aW5ncyk/LnZpZXdMZXZlbCxcblx0XHQgICAgICBpc0VkaXRhYmxlID0gb1ZpZXcuZ2V0TW9kZWwoXCJ1aVwiKT8uZ2V0UHJvcGVydHkoXCIvaXNFZGl0YWJsZVwiKTtcblx0XHRpZiAoKGlWaWV3TGV2ZWwgYXMgbnVtYmVyKSA+IDEgJiYgIGlzRWRpdGFibGUgIT09IHRydWUpIHtcblx0XHRcdGNvbnN0IG9Db250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChvVmlldyk7XG5cdFx0XHRjb25zdCBzTWV0YVBhdGggPSBNb2RlbEhlbHBlci5nZXRNZXRhUGF0aEZvckNvbnRleHQob0NvbnRleHQpO1xuXHRcdFx0Y29uc3Qgc0VudGl0eVNldCA9IE1vZGVsSGVscGVyLmdldFJvb3RFbnRpdHlTZXRQYXRoKHNNZXRhUGF0aCk7XG5cdFx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG9Db250ZXh0Py5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKT8uZ2V0Q29udGV4dChvQ29udGV4dD8uZ2V0UGF0aCgpKTtcblx0XHRcdGNvbnN0IGNvbnZlcnRlckNvbnRleHQgPSBDb252ZXJ0ZXJDb250ZXh0Py5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRcdHNFbnRpdHlTZXQsXG5cdFx0XHRcdG1ldGFDb250ZXh0LFxuXHRcdFx0XHRvQXBwQ29tcG9uZW50LmdldERpYWdub3N0aWNzKCksXG5cdFx0XHRcdG1lcmdlLFxuXHRcdFx0XHR1bmRlZmluZWRcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0bGV0IHVwZGF0ZUhpZGRlbjtcblx0XHRcdC8vRmluZCB0aGUgVXBkYXRlIEhpZGRlbiBvZiB0aGUgcm9vdCBlbnRpdHkgc2V0IGFuZCBiaW5kIHRoZSBwcm9wZXJ0eSB0byBBbnlFbGVtZW50LCBhbnkgY2hhbmdlcyBpbiB0aGUgcGF0aCBvZiB0aGUgcm9vdCBVcGRhdGVIaWRkZW4gd2lsbCBiZSB1cGRhdGVkIHZpYSB0aGUgcHJvcGVydHksIGludGVybmFsIG1vZGVsIGNvbnRleHQgaXMgdXBkYXRlZCBiYXNlZCBvbiB0aGUgcHJvcGVydHlcblx0XHRcdGNvbnN0IGJVcGRhdGVIaWRkZW4gPSBpc0VudGl0eVNldChlbnRpdHlTZXQpICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuPy52YWx1ZU9mKCk7XG5cdFx0XHRpZiAoYlVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdFx0XHR1cGRhdGVIaWRkZW4gPSBNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly9GaW5kIHRoZSBvcGVyYXRpb24gYXZhaWxhYmxlIHByb3BlcnR5IG9mIHRoZSByb290IGVkaXQgY29uZmlndXJhdGlvbiBhbmQgZmV0Y2ggdGhlIHByb3BlcnR5IHVzaW5nIEFueUVsZW1lbnRcblx0XHRcdGNvbnN0IHNFZGl0RW5hYmxlQmluZGluZyA9IGdldEVkaXRCdXR0b25FbmFibGVkKGNvbnZlcnRlckNvbnRleHQsIHVuZGVmaW5lZCk7XG5cdFx0XHRjb25zdCBkcmFmdFJvb3RQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzU3RpY2t5Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXRTdGlja3lSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzUGF0aCA9IGRyYWZ0Um9vdFBhdGggfHwgc1N0aWNreVJvb3RQYXRoO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdGlmIChzUGF0aCkge1xuXHRcdFx0XHRjb25zdCBvUm9vdENvbnRleHQgPSBvVmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KHNQYXRoKS5nZXRCb3VuZENvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdFx0XHRpZiAodXBkYXRlSGlkZGVuICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRjb25zdCBzSGlkZGVuRXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKGVxdWFsKGdldEhpZGRlbkV4cHJlc3Npb24oY29udmVydGVyQ29udGV4dCwgdXBkYXRlSGlkZGVuKSwgZmFsc2UpKTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUVkaXRNb2RlbENvbnRleHQoc0hpZGRlbkV4cHJlc3Npb24sIG9WaWV3LCBvUm9vdENvbnRleHQsIFwicm9vdEVkaXRWaXNpYmxlXCIsIG9JbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHNFZGl0RW5hYmxlQmluZGluZykge1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlRWRpdE1vZGVsQ29udGV4dChzRWRpdEVuYWJsZUJpbmRpbmcsIG9WaWV3LCBvUm9vdENvbnRleHQsIFwicm9vdEVkaXRFbmFibGVkXCIsIG9JbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWRpdE1vZGVsQ29udGV4dDogZnVuY3Rpb24gKFxuXHRcdHNCaW5kaW5nRXhwcmVzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRcdG9WaWV3OiBWaWV3LFxuXHRcdG9Sb290Q29udGV4dDogQ29udGV4dCxcblx0XHRzUHJvcGVydHk6IHN0cmluZyxcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0XG5cdCkge1xuXHRcdGlmIChzQmluZGluZ0V4cHJlc3Npb24pIHtcblx0XHRcdGNvbnN0IG9IaWRkZW5FbGVtZW50ID0gbmV3IEFueUVsZW1lbnQoeyBhbnlUZXh0OiBzQmluZGluZ0V4cHJlc3Npb24gfSk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChudWxsKTtcblx0XHRcdG9WaWV3LmFkZERlcGVuZGVudChvSGlkZGVuRWxlbWVudCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5nZXRCaW5kaW5nKFwiYW55VGV4dFwiKTtcblx0XHRcdGNvbnN0IG9Db250ZXh0ID0gb0hpZGRlbkVsZW1lbnRcblx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0Py5iaW5kQ29udGV4dChvUm9vdENvbnRleHQuZ2V0UGF0aCgpLCBvUm9vdENvbnRleHQsIHsgJCRncm91cElkOiBcIiRhdXRvLkhlcm9lc1wiIH0pXG5cdFx0XHRcdD8uZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChvQ29udGV4dCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudD8uZ2V0QmluZGluZyhcImFueVRleHRcIik/LmF0dGFjaENoYW5nZSgob0V2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTmV3VmFsdWUgPSAob0V2ZW50LmdldFNvdXJjZSgpIGFzIFByb3BlcnR5QmluZGluZykuZ2V0RXh0ZXJuYWxWYWx1ZSgpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc1Byb3BlcnR5LCBvTmV3VmFsdWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXG5cdF9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGU6IGZ1bmN0aW9uIChcblx0XHRvU2VsZWN0ZWRDb250ZXh0OiBDb250ZXh0IHwgdW5kZWZpbmVkLFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0c0FjdGlvbjogc3RyaW5nLFxuXHRcdHNQcm9wZXJ0eTogc3RyaW5nLFxuXHRcdGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdXG5cdCkge1xuXHRcdC8vIFJlc2V0IGFsbCBwcm9wZXJ0aWVzIGJlZm9yZSBjb21wdXRhdGlvblxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdH0pO1xuXHRcdC8vIE5vdGUgdGhhdCBub24gZHluYW1pYyBhY3Rpb25zIGFyZSBub3QgcHJvY2Vzc2VkIGhlcmUuIFRoZXkgYXJlIGVuYWJsZWQgYmVjYXVzZVxuXHRcdC8vIG9uZSBvciBtb3JlIGFyZSBzZWxlY3RlZCBhbmQgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIHRlbXBsYXRpbmdcblx0XHQvLyBpcyB0aGVuIHVuZGVmaW5lZCBhbmQgdGh1cyB0aGUgYnV0dG9uIHRha2VzIHRoZSBkZWZhdWx0IGVuYWJsaW5nLCB3aGljaCBpcyB0cnVlIVxuXHRcdGNvbnN0IGFBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRhTm90QXBwbGljYWJsZSA9IFtdLFxuXHRcdFx0c0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCA9IGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2R5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn0vYkVuYWJsZWRgO1xuXHRcdGlmICh0eXBlb2Ygc1Byb3BlcnR5ID09PSBcIm9iamVjdFwiICYmIHNQcm9wZXJ0eSAhPT0gbnVsbCAmJiBzUHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdFx0Y29uc3Qgb1RyYW5zZm9ybWVkQmluZGluZyA9IHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KFxuXHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcIlBhdGhJbk1vZGVsXCIsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuXHRcdFx0XHRcdGZ1bmN0aW9uIChvQmluZGluZ0V4cHJlc3Npb246IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjxQcmltaXRpdmVUeXBlPikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9Db250ZXh0RGF0YSA/IGNvbnN0YW50KG9Db250ZXh0RGF0YVtvQmluZGluZ0V4cHJlc3Npb24ucGF0aF0pIDogY29uc3RhbnQoZmFsc2UpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBzUmVzdWx0ID0gY29tcGlsZUV4cHJlc3Npb24ob1RyYW5zZm9ybWVkQmluZGluZyk7XG5cdFx0XHRcdGlmIChzUmVzdWx0ID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0XHRcdGFBcHBsaWNhYmxlLnB1c2gob1NlbGVjdGVkQ29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YU5vdEFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29tbW9uVXRpbHMuc2V0RHluYW1pY0FjdGlvbkNvbnRleHRzKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgc0FjdGlvbiwgYUFwcGxpY2FibGUsIGFOb3RBcHBsaWNhYmxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT47XG5cdFx0XHRpZiAoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB7XG5cdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0fSBlbHNlIGlmIChvU2VsZWN0ZWRDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gQ29sbGVjdCBwcm9taXNlcyB0byByZXRyaWV2ZSBzaW5nbGV0b24gb3Igbm9ybWFsIHByb3BlcnR5IHZhbHVlIGFzeW5jaHJvbm91c2x5XG5cdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXMucHVzaChDb21tb25VdGlscy5yZXF1ZXN0UHJvcGVydHkob1NlbGVjdGVkQ29udGV4dCwgc0FjdGlvbiwgc1Byb3BlcnR5LCBzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhUmVxdWVzdFByb21pc2VzO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUnVudGltZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFpREEsTUFBTUEsYUFBYSxHQUFHO0lBQ3JCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyw2QkFBNkIsRUFBRSxVQUM5QkMsY0FBOEIsRUFDOUJDLGlCQUFrRixFQUNqRjtNQUNERCxjQUFjLENBQUNFLFdBQVcsQ0FDekJELGlCQUFpQixDQUFDRSxHQUFHLENBQUVDLGdCQUFnQixJQUFLO1FBQzNDLE1BQU1DLE9BQU8sR0FBR0QsZ0JBQWdCLENBQUNFLG1CQUFtQixDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FDcEVKLGdCQUFnQixDQUFDRSxtQkFBbUIsQ0FBQ0csWUFBWSxHQUFHLE9BQU8sR0FBRyxPQUFPLENBQ3JFO1FBQ0QsT0FBTyxJQUFJQyxPQUFPLENBQUM7VUFDbEJDLE9BQU8sRUFBRVAsZ0JBQWdCLENBQUNPLE9BQU87VUFDakNDLElBQUksRUFBRSxPQUFPO1VBQ2JDLFNBQVMsRUFBRVIsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVTLFFBQVEsRUFBRTtVQUM5QkMsVUFBVSxFQUFFLElBQUk7VUFDaEJDLE1BQU0sRUFBRVgsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVZLGVBQWU7UUFDakMsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxDQUFDLENBQ0Y7SUFDRixDQUFDO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0Msa0JBQWtCLEVBQUUsZ0JBQ25CbEIsY0FBOEIsRUFDOUJtQixvQkFBMkMsRUFDM0NDLGFBQTRCLEVBQ1Y7TUFDbEIsTUFBTUMsT0FBTyxDQUFDQyxVQUFVLENBQUNILG9CQUFvQixDQUFDaEIsR0FBRyxDQUFFRyxtQkFBbUIsSUFBS0EsbUJBQW1CLENBQUNpQixpQkFBaUIsQ0FBQyxDQUFDO01BRWxILE1BQU1DLHNCQUFzQixHQUFHTCxvQkFBb0IsQ0FBQ00sTUFBTSxDQUFFQyxhQUFhLElBQUtBLGFBQWEsQ0FBQ25CLEtBQUssQ0FBQ29CLFdBQVcsRUFBRSxDQUFDO01BQ2hILE1BQU1DLFdBQVcsR0FBRzVCLGNBQWMsQ0FBQzZCLGVBQWUsRUFBRSxDQUFDQyxPQUFPLEVBQUU7TUFDOUQsTUFBTUMsbUJBQW1CLEdBQUdQLHNCQUFzQixDQUFDQyxNQUFNLENBQUVPLHFCQUFxQixJQUFLO1FBQ3BGLE1BQU1DLE9BQU8sR0FBR0QscUJBQXFCLENBQUN6QixLQUFLLENBQUMyQixLQUFLLEVBQUU7UUFDbkQsTUFBTUMsZ0JBQWdCLEdBQUdQLFdBQVcsQ0FBQ0gsTUFBTSxDQUFFVyxHQUFZLElBQ3hEQSxHQUFHLENBQUNDLGFBQWEsRUFBRSxDQUFDQyxJQUFJLENBQUVDLFNBQWlCLElBQUtBLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDUCxPQUFPLENBQUMsQ0FBQyxDQUM1RTtRQUNELElBQUlFLGdCQUFnQixDQUFDTSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1VBQ2hDLE9BQU8sS0FBSztRQUNiLENBQUMsTUFBTSxJQUFJVCxxQkFBcUIsQ0FBQ3ZCLFlBQVksRUFBRTtVQUM5QyxPQUFPdUIscUJBQXFCLENBQUNVLEtBQUssS0FBS0MsU0FBUyxJQUFJLENBQUNYLHFCQUFxQixDQUFDVSxLQUFLLENBQUNELE1BQU07UUFDeEYsQ0FBQyxNQUFNO1VBQ04sTUFBTUcsVUFBVSxHQUFJWixxQkFBcUIsQ0FBQ3pCLEtBQUssQ0FBV3NDLFFBQVEsRUFBRTtVQUNwRSxPQUFPRCxVQUFVLEtBQUtELFNBQVMsSUFBSUMsVUFBVSxLQUFLLElBQUksSUFBSUEsVUFBVSxLQUFLLEVBQUU7UUFDNUU7TUFDRCxDQUFDLENBQUM7TUFDRjtNQUNBLElBQUliLG1CQUFtQixDQUFDVSxNQUFNLEVBQUU7UUFDL0IsSUFBSSxDQUFDMUMsNkJBQTZCLENBQ2pDQyxjQUFjLEVBQ2QrQixtQkFBbUIsQ0FBQzVCLEdBQUcsQ0FBRUcsbUJBQW1CO1VBQUE7VUFBQSxPQUFNO1lBQ2pEQSxtQkFBbUIsRUFBRUEsbUJBQW1CO1lBQ3hDSyxPQUFPLEVBQUVTLGFBQWEsQ0FBQzBCLE9BQU8sQ0FBQyw0REFBNEQsRUFBRSxDQUM1RiwwQkFBQ3hDLG1CQUFtQixDQUFDQyxLQUFLLENBQUN3QyxTQUFTLEVBQUUsMERBQXJDLHNCQUF1Q0MsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFXRixPQUFPLEVBQUUsQ0FDbkY7VUFDRixDQUFDO1FBQUEsQ0FBQyxDQUFDLENBQ0g7TUFDRjtNQUNBO01BQ0EsTUFBTUcscUJBQXFCLEdBQUc5QixvQkFBb0IsQ0FBQytCLElBQUksQ0FDckR4QixhQUFhLElBQUtBLGFBQWEsQ0FBQ3lCLFFBQVEsSUFBSXpCLGFBQWEsQ0FBQ25CLEtBQUssQ0FBQzZDLGFBQWEsRUFBRSxLQUFLLE9BQU8sSUFBSXJCLG1CQUFtQixDQUFDUyxRQUFRLENBQUNkLGFBQWEsQ0FBQyxDQUMzSTtNQUNELElBQUl1QixxQkFBcUIsRUFBRTtRQUMxQkEscUJBQXFCLENBQUMxQyxLQUFLLENBQUM4QyxLQUFLLEVBQUU7UUFDbkMsT0FBTyxLQUFLO01BQ2IsQ0FBQyxNQUFNO1FBQ04sT0FBTyxJQUFJO01BQ1o7SUFDRCxDQUFDO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLG1CQUFtQixFQUFFLGdCQUNwQkMscUJBQTJDLEVBQzNDQyw0QkFBb0QsRUFDcERDLGlCQUE0QixFQUM1QkMsUUFBZ0IsRUFDZjtNQUNELE1BQU1DLFNBQVMsR0FBRyxFQUFFO01BQ3BCLEtBQUssTUFBTUMsT0FBTyxJQUFJSiw0QkFBNEIsRUFBRTtRQUNuRCxJQUFJSyxnQkFBK0MsR0FBRyxFQUFFO1FBQ3hETixxQkFBcUIsQ0FBQ08sV0FBVyxDQUFDRixPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQ2pELE1BQU1HLFNBQVMsR0FBR1AsNEJBQTRCLENBQUNJLE9BQU8sQ0FBQztRQUN2RCxLQUFLLElBQUlJLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR1AsaUJBQWlCLENBQUNoQixNQUFNLEVBQUV1QixDQUFDLEVBQUUsRUFBRTtVQUNsRCxNQUFNQyxnQkFBZ0IsR0FBR1IsaUJBQWlCLENBQUNPLENBQUMsQ0FBQztVQUM3QyxJQUFJQyxnQkFBZ0IsRUFBRTtZQUNyQixNQUFNQyxZQUFZLEdBQUdELGdCQUFnQixDQUFDRSxTQUFTLEVBQTZCO1lBQzVFLElBQUlULFFBQVEsS0FBSyxPQUFPLEVBQUU7Y0FDekIsSUFBS0ssU0FBUyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUNHLFlBQVksQ0FBRSxJQUFHTixPQUFRLEVBQUMsQ0FBQyxJQUFLSyxnQkFBZ0IsQ0FBQ0UsU0FBUyxDQUFDSixTQUFTLENBQUMsRUFBRTtnQkFDbkc7Z0JBQ0FSLHFCQUFxQixDQUFDTyxXQUFXLENBQUNGLE9BQU8sRUFBRSxJQUFJLENBQUM7Z0JBQ2hEO2NBQ0Q7WUFDRCxDQUFDLE1BQU0sSUFBSUYsUUFBUSxLQUFLLE9BQU8sRUFBRTtjQUNoQ0csZ0JBQWdCLEdBQUcsSUFBSSxDQUFDTyw0QkFBNEIsQ0FDbkRILGdCQUFnQixFQUNoQlYscUJBQXFCLEVBQ3JCSyxPQUFPLEVBQ1BHLFNBQVMsRUFDVEYsZ0JBQWdCLENBQ2hCO1lBQ0Y7VUFDRDtRQUNEO1FBQ0EsSUFBSUgsUUFBUSxLQUFLLE9BQU8sRUFBRTtVQUN6QixJQUFJLENBQUNELGlCQUFpQixDQUFDaEIsTUFBTSxFQUFFO1lBQzlCYyxxQkFBcUIsQ0FBQ08sV0FBVyxDQUFFLGtCQUFpQkYsT0FBUSxFQUFDLEVBQUU7Y0FDOURTLFFBQVEsRUFBRSxLQUFLO2NBQ2ZDLFdBQVcsRUFBRSxFQUFFO2NBQ2ZDLGNBQWMsRUFBRTtZQUNqQixDQUFDLENBQUM7WUFDRlosU0FBUyxDQUFDYSxJQUFJLENBQUNDLFdBQVcsQ0FBQ0Msb0NBQW9DLENBQUNuQixxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztVQUM1RixDQUFDLE1BQU0sSUFBSUUsaUJBQWlCLENBQUNoQixNQUFNLElBQUksT0FBT3NCLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDckU7WUFDQTtZQUNBO1lBQ0FKLFNBQVMsQ0FBQ2EsSUFBSSxDQUFDQyxXQUFXLENBQUNDLG9DQUFvQyxDQUFDbkIscUJBQXFCLEVBQUVNLGdCQUFnQixDQUFDLENBQUM7VUFDMUc7UUFDRDtNQUNEO01BQ0EsT0FBT3hDLE9BQU8sQ0FBQ3NELEdBQUcsQ0FBQ2hCLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBQ0RpQiw2QkFBNkIsRUFBRSxVQUFVQyxLQUFXLEVBQUVDLFlBQThCLEVBQUV2QixxQkFBMkMsRUFBRTtNQUNsSSxNQUFNd0IseUJBQXlCLEdBQUd4QixxQkFBcUIsYUFBckJBLHFCQUFxQix1QkFBckJBLHFCQUFxQixDQUFFWSxTQUFTLEVBQTZCO01BQy9GLE1BQU1hLFNBQVMsR0FBSSxDQUFBRCx5QkFBeUIsYUFBekJBLHlCQUF5Qix1QkFBekJBLHlCQUF5QixDQUFFRSxRQUFRLEtBQUksQ0FBQyxDQUE0QztNQUN2RyxLQUFLLE1BQU1DLElBQUksSUFBSUYsU0FBUyxFQUFFO1FBQzdCLElBQUlBLFNBQVMsQ0FBQ0UsSUFBSSxDQUFDLElBQUlGLFNBQVMsQ0FBQ0UsSUFBSSxDQUFDLENBQUMzQyxTQUFTLEVBQUU7VUFDakQsTUFBTTRDLE1BQU0sR0FBR04sS0FBSyxDQUFDTyxJQUFJLENBQUNGLElBQUksQ0FBQztVQUMvQixJQUFJQyxNQUFNLElBQUlBLE1BQU0sQ0FBQ0UsR0FBRyxDQUFRLGtCQUFrQixDQUFDLEVBQUU7WUFDcEQsTUFBTUMsV0FBVyxHQUFHSCxNQUFNLENBQUNJLGFBQWEsRUFBRTtZQUMxQyxJQUFJRCxXQUFXLElBQUlSLFlBQVksRUFBRTtjQUNoQ2hGLGFBQWEsQ0FBQ3dELG1CQUFtQixDQUNoQzZCLE1BQU0sQ0FBQ0ssaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQ3BDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ1AsTUFBTSxDQUFDUSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLEVBQzNEVCxNQUFNLENBQUNVLG1CQUFtQixFQUFFLEVBQzVCLE9BQU8sQ0FDUDtZQUNGO1VBQ0Q7UUFDRDtNQUNEO0lBQ0QsQ0FBQztJQUVEQyx1Q0FBdUMsQ0FBQ2pCLEtBQVcsRUFBRTtNQUFBO01BQ3BELE1BQU1rQixVQUFVLHlCQUFJbEIsS0FBSyxDQUFDbUIsV0FBVyxFQUFFLHVEQUFwQixtQkFBK0NDLFNBQVM7UUFDckVDLFVBQVUsc0JBQUdyQixLQUFLLENBQUMvRCxRQUFRLENBQUMsSUFBSSxDQUFDLG9EQUFwQixnQkFBc0JxRixXQUFXLENBQUMsYUFBYSxDQUFDO01BQ25FLElBQUtKLFVBQVUsR0FBYyxDQUFDLElBQUtHLFVBQVUsS0FBSyxJQUFJLEVBQUU7UUFBQTtRQUN2RCxNQUFNRSxRQUFRLEdBQUd2QixLQUFLLENBQUNXLGlCQUFpQixFQUFhO1FBQ3JELE1BQU1hLGFBQWEsR0FBRzVCLFdBQVcsQ0FBQzZCLGVBQWUsQ0FBQ3pCLEtBQUssQ0FBQztRQUN4RCxNQUFNMEIsU0FBUyxHQUFHQyxXQUFXLENBQUNDLHFCQUFxQixDQUFDTCxRQUFRLENBQUM7UUFDN0QsTUFBTU0sVUFBVSxHQUFHRixXQUFXLENBQUNHLG9CQUFvQixDQUFDSixTQUFTLENBQUM7UUFDOUQsTUFBTUssV0FBVyxHQUFHUixRQUFRLGFBQVJBLFFBQVEsNkNBQVJBLFFBQVEsQ0FBRXRGLFFBQVEsRUFBRSxnRkFBcEIsbUJBQXNCK0YsWUFBWSxFQUFFLDBEQUFwQyxzQkFBc0NDLFVBQVUsQ0FBQ1YsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVXLE9BQU8sRUFBRSxDQUFDO1FBQ3pGLE1BQU1DLGdCQUFnQixHQUFHQyxnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFQyw4QkFBOEIsQ0FDeEVSLFVBQVUsRUFDVkUsV0FBVyxFQUNYUCxhQUFhLENBQUNjLGNBQWMsRUFBRSxFQUM5QkMsS0FBSyxFQUNMekUsU0FBUyxDQUNUO1FBQ0QsTUFBTTBFLFNBQVMsR0FBR0wsZ0JBQWdCLENBQUNNLFlBQVksRUFBRTtRQUNqRCxNQUFNQyxVQUFVLEdBQUdQLGdCQUFnQixDQUFDUSxhQUFhLEVBQUU7UUFDbkQsSUFBSUMsWUFBWTtRQUNoQjtRQUNBLE1BQU1DLGFBQWEsR0FBR0MsV0FBVyxDQUFDTixTQUFTLENBQUMsOEJBQUlBLFNBQVMsQ0FBQ08sV0FBVyxDQUFDQyxFQUFFLG9GQUF4QixzQkFBMEJDLFlBQVksMkRBQXRDLHVCQUF3Q0MsT0FBTyxFQUFFO1FBQ2pHLElBQUlMLGFBQWEsS0FBSyxJQUFJLEVBQUU7VUFDM0JELFlBQVksR0FBR2pCLFdBQVcsQ0FBQ3dCLGNBQWMsQ0FBQ1gsU0FBUyxFQUFFRSxVQUFVLENBQUM7UUFDakU7UUFDQTtRQUNBLE1BQU1VLGtCQUFrQixHQUFHQyxvQkFBb0IsQ0FBQ2xCLGdCQUFnQixFQUFFckUsU0FBUyxDQUFDO1FBQzVFLE1BQU13RixhQUFhLEdBQUczQixXQUFXLENBQUM0QixnQkFBZ0IsQ0FBQ2hDLFFBQVEsQ0FBQztRQUM1RCxNQUFNaUMsZUFBZSxHQUFHN0IsV0FBVyxDQUFDOEIsaUJBQWlCLENBQUNsQyxRQUFRLENBQUM7UUFDL0QsTUFBTW1DLEtBQUssR0FBR0osYUFBYSxJQUFJRSxlQUFlO1FBQzlDLE1BQU05RSxxQkFBcUIsR0FBR3NCLEtBQUssQ0FBQ1csaUJBQWlCLENBQUMsVUFBVSxDQUF5QjtRQUN6RixJQUFJK0MsS0FBSyxFQUFFO1VBQ1YsTUFBTUMsWUFBWSxHQUFHM0QsS0FBSyxDQUFDL0QsUUFBUSxFQUFFLENBQUMySCxXQUFXLENBQUNGLEtBQUssQ0FBQyxDQUFDRyxlQUFlLEVBQWE7VUFDckYsSUFBSWpCLFlBQVksS0FBSzlFLFNBQVMsRUFBRTtZQUMvQixNQUFNZ0csaUJBQWlCLEdBQUdDLGlCQUFpQixDQUFDQyxLQUFLLENBQUNDLG1CQUFtQixDQUFDOUIsZ0JBQWdCLEVBQUVTLFlBQVksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlHLElBQUksQ0FBQ3NCLHNCQUFzQixDQUFDSixpQkFBaUIsRUFBRTlELEtBQUssRUFBRTJELFlBQVksRUFBRSxpQkFBaUIsRUFBRWpGLHFCQUFxQixDQUFDO1VBQzlHO1VBQ0EsSUFBSTBFLGtCQUFrQixFQUFFO1lBQ3ZCLElBQUksQ0FBQ2Msc0JBQXNCLENBQUNkLGtCQUFrQixFQUFFcEQsS0FBSyxFQUFFMkQsWUFBWSxFQUFFLGlCQUFpQixFQUFFakYscUJBQXFCLENBQUM7VUFDL0c7UUFDRDtNQUNEO0lBQ0QsQ0FBQztJQUVEd0Ysc0JBQXNCLEVBQUUsVUFDdkJDLGtCQUFzQyxFQUN0Q25FLEtBQVcsRUFDWDJELFlBQXFCLEVBQ3JCekUsU0FBaUIsRUFDakJSLHFCQUEyQyxFQUMxQztNQUNELElBQUl5RixrQkFBa0IsRUFBRTtRQUFBO1FBQ3ZCLE1BQU1DLGNBQWMsR0FBRyxJQUFJQyxVQUFVLENBQUM7VUFBRUMsT0FBTyxFQUFFSDtRQUFtQixDQUFDLENBQUM7UUFDdEVDLGNBQWMsQ0FBQ0csaUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ3RDdkUsS0FBSyxDQUFDd0UsWUFBWSxDQUFDSixjQUFjLENBQUM7UUFDbENBLGNBQWMsQ0FBQ3pJLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDcEMsTUFBTTRGLFFBQVEsNEJBQUc2QyxjQUFjLENBQzdCbkksUUFBUSxFQUFFLG9GQURLLHNCQUVkMkgsV0FBVyxDQUFDRCxZQUFZLENBQUN6QixPQUFPLEVBQUUsRUFBRXlCLFlBQVksRUFBRTtVQUFFYyxTQUFTLEVBQUU7UUFBZSxDQUFDLENBQUMsMkRBRmxFLHVCQUdkWixlQUFlLEVBQUU7UUFDcEJPLGNBQWMsQ0FBQ0csaUJBQWlCLENBQUNoRCxRQUFRLENBQUM7UUFDMUM2QyxjQUFjLGFBQWRBLGNBQWMsZ0RBQWRBLGNBQWMsQ0FBRXpJLFVBQVUsQ0FBQyxTQUFTLENBQUMsMERBQXJDLHNCQUF1QytJLFlBQVksQ0FBRUMsTUFBYSxJQUFLO1VBQ3RFLE1BQU1DLFNBQVMsR0FBSUQsTUFBTSxDQUFDRSxTQUFTLEVBQUUsQ0FBcUJDLGdCQUFnQixFQUFFO1VBQzVFcEcscUJBQXFCLENBQUNPLFdBQVcsQ0FBQ0MsU0FBUyxFQUFFMEYsU0FBUyxDQUFDO1FBQ3hELENBQUMsQ0FBQztNQUNIO0lBQ0QsQ0FBQztJQUVEckYsNEJBQTRCLEVBQUUsVUFDN0JILGdCQUFxQyxFQUNyQ1YscUJBQTJDLEVBQzNDSyxPQUFlLEVBQ2ZHLFNBQWlCLEVBQ2pCRixnQkFBK0MsRUFDOUM7TUFDRDtNQUNBTixxQkFBcUIsQ0FBQ08sV0FBVyxDQUFFLGtCQUFpQkYsT0FBUSxFQUFDLEVBQUU7UUFDOURTLFFBQVEsRUFBRSxLQUFLO1FBQ2ZDLFdBQVcsRUFBRSxFQUFFO1FBQ2ZDLGNBQWMsRUFBRTtNQUNqQixDQUFDLENBQUM7TUFDRjtNQUNBO01BQ0E7TUFDQSxNQUFNRCxXQUFXLEdBQUcsRUFBRTtRQUNyQkMsY0FBYyxHQUFHLEVBQUU7UUFDbkJxRix5QkFBeUIsR0FBSSxHQUFFckcscUJBQXFCLENBQUN3RCxPQUFPLEVBQUcsbUJBQWtCbkQsT0FBUSxXQUFVO01BQ3BHLElBQUksT0FBT0csU0FBUyxLQUFLLFFBQVEsSUFBSUEsU0FBUyxLQUFLLElBQUksSUFBSUEsU0FBUyxLQUFLcEIsU0FBUyxFQUFFO1FBQ25GLElBQUlzQixnQkFBZ0IsRUFBRTtVQUNyQixNQUFNQyxZQUFZLEdBQUdELGdCQUFnQixDQUFDRSxTQUFTLEVBQW1DO1VBQ2xGLE1BQU0wRixtQkFBbUIsR0FBR0Msb0JBQW9CLENBQy9DL0YsU0FBUyxFQUNULGFBQWE7VUFDYjtVQUNBLFVBQVVnRyxrQkFBd0QsRUFBRTtZQUNuRSxPQUFPN0YsWUFBWSxHQUFHOEYsUUFBUSxDQUFDOUYsWUFBWSxDQUFDNkYsa0JBQWtCLENBQUNFLElBQUksQ0FBQyxDQUFDLEdBQUdELFFBQVEsQ0FBQyxLQUFLLENBQUM7VUFDeEYsQ0FBQyxFQUNELElBQUksQ0FDSjtVQUNELE1BQU1FLE9BQU8sR0FBR3RCLGlCQUFpQixDQUFDaUIsbUJBQW1CLENBQUM7VUFDdEQsSUFBSUssT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUN2QjNHLHFCQUFxQixDQUFDekMsUUFBUSxFQUFFLENBQUNnRCxXQUFXLENBQUM4Rix5QkFBeUIsRUFBRSxJQUFJLENBQUM7WUFDN0V0RixXQUFXLENBQUNFLElBQUksQ0FBQ1AsZ0JBQWdCLENBQUM7VUFDbkMsQ0FBQyxNQUFNO1lBQ05NLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxnQkFBZ0IsQ0FBQztVQUN0QztRQUNEO1FBQ0FRLFdBQVcsQ0FBQzBGLHdCQUF3QixDQUFDNUcscUJBQXFCLEVBQUVLLE9BQU8sRUFBRVUsV0FBVyxFQUFFQyxjQUFjLENBQUM7TUFDbEcsQ0FBQyxNQUFNO1FBQ04sTUFBTUwsWUFBWSxHQUFHRCxnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFRSxTQUFTLEVBQW1DO1FBQ25GLElBQUlKLFNBQVMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDRyxZQUFZLENBQUUsSUFBR04sT0FBUSxFQUFDLENBQUMsRUFBRTtVQUN4RDtVQUNBTCxxQkFBcUIsQ0FBQ3pDLFFBQVEsRUFBRSxDQUFDZ0QsV0FBVyxDQUFDOEYseUJBQXlCLEVBQUUsSUFBSSxDQUFDO1FBQzlFLENBQUMsTUFBTSxJQUFJM0YsZ0JBQWdCLEtBQUt0QixTQUFTLEVBQUU7VUFDMUM7VUFDQWtCLGdCQUFnQixDQUFDVyxJQUFJLENBQUNDLFdBQVcsQ0FBQzJGLGVBQWUsQ0FBQ25HLGdCQUFnQixFQUFFTCxPQUFPLEVBQUVHLFNBQVMsRUFBRTZGLHlCQUF5QixDQUFDLENBQUM7UUFDcEg7TUFDRDtNQUNBLE9BQU8vRixnQkFBZ0I7SUFDeEI7RUFDRCxDQUFDO0VBQUMsT0FDYS9ELGFBQWE7QUFBQSJ9
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/util/merge","sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/ui/core/message/Message","./controls/AnyElement","./converters/ConverterContext","./converters/objectPage/HeaderAndFooterAction"],function(e,t,n,o,i,a,l,
|
|
5
|
+
sap.ui.define(["sap/base/util/merge","sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","sap/fe/core/helpers/TypeGuards","sap/ui/core/message/Message","./controls/AnyElement","./converters/ConverterContext","./converters/objectPage/HeaderAndFooterAction"],function(e,t,n,o,i,a,s,l,r){"use strict";var d=r.getHiddenExpression;var c=r.getEditButtonEnabled;var u=i.isEntitySet;var g=n.transformRecursively;var f=n.equal;var v=n.constant;var p=n.compileExpression;const b={_addMessageForActionParameter:function(e,t){e.addMessages(t.map(e=>{const t=e.actionParameterInfo.field.getBinding(e.actionParameterInfo.isMultiValue?"items":"value");return new a({message:e.message,type:"Error",processor:t===null||t===void 0?void 0:t.getModel(),persistent:true,target:t===null||t===void 0?void 0:t.getResolvedPath()})}))},validateProperties:async function(e,t,n){await Promise.allSettled(t.map(e=>e.validationPromise));const o=t.filter(e=>e.field.getRequired());const i=e.getMessageModel().getData();const a=o.filter(e=>{const t=e.field.getId();const n=i.filter(e=>e.getControlIds().some(e=>e.includes(t)));if(n.length>0){return false}else if(e.isMultiValue){return e.value===undefined||!e.value.length}else{const t=e.field.getValue();return t===undefined||t===null||t===""}});if(a.length){this._addMessageForActionParameter(e,a.map(e=>{var t;return{actionParameterInfo:e,message:n.getText("C_OPERATIONS_ACTION_PARAMETER_DIALOG_MISSING_MANDATORY_MSG",[((t=e.field.getParent())===null||t===void 0?void 0:t.getAggregation("label")).getText()])}}))}const s=t.find(e=>e.hasError||e.field.getValueState()==="Error"||a.includes(e));if(s){s.field.focus();return false}else{return true}},setActionEnablement:async function(e,n,o,i){const a=[];for(const s in n){let l=[];e.setProperty(s,false);const r=n[s];for(let t=0;t<o.length;t++){const n=o[t];if(n){const t=n.getObject();if(i==="chart"){if(r===null&&!!t[`#${s}`]||n.getObject(r)){e.setProperty(s,true);break}}else if(i==="table"){l=this._setActionEnablementForTable(n,e,s,r,l)}}}if(i==="table"){if(!o.length){e.setProperty(`dynamicActions/${s}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});a.push(t.setContextsBasedOnOperationAvailable(e,[]))}else if(o.length&&typeof r==="string"){a.push(t.setContextsBasedOnOperationAvailable(e,l))}}}return Promise.all(a)},setActionEnablementAfterPatch:function(e,t,n){const o=n===null||n===void 0?void 0:n.getObject();const i=(o===null||o===void 0?void 0:o.controls)||{};for(const n in i){if(i[n]&&i[n].controlId){const o=e.byId(n);if(o&&o.isA("sap.ui.mdc.Table")){const e=o.getRowBinding();if(e==t){b.setActionEnablement(o.getBindingContext("internal"),JSON.parse(o.data("operationAvailableMap").customData),o.getSelectedContexts(),"table")}}}}},updateEditButtonVisibilityAndEnablement(n){var i,a;const s=(i=n.getViewData())===null||i===void 0?void 0:i.viewLevel,r=(a=n.getModel("ui"))===null||a===void 0?void 0:a.getProperty("/isEditable");if(s>1&&r!==true){var g,v,b,m;const i=n.getBindingContext();const a=t.getAppComponent(n);const s=o.getMetaPathForContext(i);const r=o.getRootEntitySetPath(s);const h=i===null||i===void 0?void 0:(g=i.getModel())===null||g===void 0?void 0:(v=g.getMetaModel())===null||v===void 0?void 0:v.getContext(i===null||i===void 0?void 0:i.getPath());const A=l===null||l===void 0?void 0:l.createConverterContextForMacro(r,h,a.getDiagnostics(),e,undefined);const E=A.getEntitySet();const y=A.getEntityType();let P;const M=u(E)&&((b=E.annotations.UI)===null||b===void 0?void 0:(m=b.UpdateHidden)===null||m===void 0?void 0:m.valueOf());if(M!==true){P=o.isUpdateHidden(E,y)}const x=c(A,undefined);const C=o.getDraftRootPath(i);const B=o.getStickyRootPath(i);const O=C||B;const I=n.getBindingContext("internal");if(O){const e=n.getModel().bindContext(O).getBoundContext();if(P!==undefined){const t=p(f(d(A,P),false));this.updateEditModelContext(t,n,e,"rootEditVisible",I)}if(x){this.updateEditModelContext(x,n,e,"rootEditEnabled",I)}}}},updateEditModelContext:function(e,t,n,o,i){if(e){var a,l,r;const d=new s({anyText:e});d.setBindingContext(null);t.addDependent(d);d.getBinding("anyText");const c=(a=d.getModel())===null||a===void 0?void 0:(l=a.bindContext(n.getPath(),n,{$$groupId:"$auto.Heroes"}))===null||l===void 0?void 0:l.getBoundContext();d.setBindingContext(c);d===null||d===void 0?void 0:(r=d.getBinding("anyText"))===null||r===void 0?void 0:r.attachChange(e=>{const t=e.getSource().getExternalValue();i.setProperty(o,t)})}},_setActionEnablementForTable:function(e,n,o,i,a){n.setProperty(`dynamicActions/${o}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});const s=[],l=[],r=`${n.getPath()}/dynamicActions/${o}/bEnabled`;if(typeof i==="object"&&i!==null&&i!==undefined){if(e){const t=e.getObject();const o=g(i,"PathInModel",function(e){return t?v(t[e.path]):v(false)},true);const a=p(o);if(a==="true"){n.getModel().setProperty(r,true);s.push(e)}else{l.push(e)}}t.setDynamicActionContexts(n,o,s,l)}else{const s=e===null||e===void 0?void 0:e.getObject();if(i===null&&!!s[`#${o}`]){n.getModel().setProperty(r,true)}else if(e!==undefined){a.push(t.requestProperty(e,o,i,r))}}return a}};return b},false);
|
|
6
6
|
//# sourceMappingURL=ActionRuntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionRuntime.js","names":["sap","ui","define","merge","CommonUtils","BindingToolkit","ModelHelper","TypeGuards","Message","AnyElement","ConverterContext","HeaderAndFooterAction","getHiddenExpression","getEditButtonEnabled","isEntitySet","transformRecursively","equal","constant","compileExpression","ActionRuntime","_addMessageForActionParameter","messageManager","messageParameters","addMessages","map","messageParameter","binding","actionParameterInfo","field","getBinding","isMultiValue","message","type","processor","getModel","persistent","target","getResolvedPath","validateProperties","async","actionParameterInfos","resourceModel","Promise","allSettled","validationPromise","requiredParameterInfos","filter","parameterInfo","getRequired","allMessages","getMessageModel","getData","emptyRequiredFields","requiredParameterInfo","fieldId","getId","relevantMessages","msg","getControlIds","some","controlId","includes","length","value","undefined","this","_actionParameterInfo$","getText","getParent","getAggregation","firstInvalidParameter","find","hasError","getValueState","focus","setActionEnablement","oInternalModelContext","oActionOperationAvailableMap","aSelectedContexts","sControl","aPromises","sAction","aRequestPromises","setProperty","sProperty","i","oSelectedContext","oContextData","getObject","_setActionEnablementForTable","bEnabled","aApplicable","aNotApplicable","push","setContextsBasedOnOperationAvailable","all","setActionEnablementAfterPatch","oView","oListBinding","oInternalModelContextData","oControls","controls","sKey","oTable","byId","isA","oRowBinding","getRowBinding","getBindingContext","JSON","parse","data","customData","getSelectedContexts","updateEditButtonVisibilityAndEnablement","_oView$getViewData","_oView$getModel","iViewLevel","getViewData","viewLevel","isEditable","getProperty","_oContext$getModel","_oContext$getModel$ge","_entitySet$annotation","_entitySet$annotation2","oContext","oAppComponent","getAppComponent","sMetaPath","getMetaPathForContext","sEntitySet","getRootEntitySetPath","metaContext","getMetaModel","getContext","getPath","converterContext","createConverterContextForMacro","getDiagnostics","entitySet","getEntitySet","entityType","getEntityType","updateHidden","bUpdateHidden","annotations","UI","UpdateHidden","valueOf","isUpdateHidden","sEditEnableBinding","draftRootPath","getDraftRootPath","sStickyRootPath","getStickyRootPath","sPath","oRootContext","bindContext","getBoundContext","sHiddenExpression","updateEditModelContext","sBindingExpression","_oHiddenElement$getMo","_oHiddenElement$getMo2","_oHiddenElement$getBi","oHiddenElement","anyText","setBindingContext","addDependent","$$groupId","attachChange","oEvent","oNewValue","getSource","getExternalValue","sDynamicActionEnabledPath","oTransformedBinding","oBindingExpression","path","sResult","setDynamicActionContexts","requestProperty"],"sources":["ActionRuntime-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,sBAAuB,0BAA2B,qCAAsC,kCAAmC,iCAAkC,8BAA+B,wBAAyB,gCAAiC,iDAAkD,SAAUC,EAAOC,EAAaC,EAAgBC,EAAaC,EAAYC,EAASC,EAAYC,EAAkBC,GACna,aAEA,IAAIC,EAAsBD,EAAsBC,oBAChD,IAAIC,EAAuBF,EAAsBE,qBACjD,IAAIC,EAAcP,EAAWO,YAC7B,IAAIC,EAAuBV,EAAeU,qBAC1C,IAAIC,EAAQX,EAAeW,MAC3B,IAAIC,EAAWZ,EAAeY,SAC9B,IAAIC,EAAoBb,EAAea,kBACvC,MAAMC,EAAgB,CAOpBC,8BAA+B,SAAUC,EAAgBC,GACvDD,EAAeE,YAAYD,EAAkBE,IAAIC,IAC/C,MAAMC,EAAUD,EAAiBE,oBAAoBC,MAAMC,WAAWJ,EAAiBE,oBAAoBG,aAAe,QAAU,SACpI,OAAO,IAAItB,EAAQ,CACjBuB,QAASN,EAAiBM,QAC1BC,KAAM,QACNC,UAAWP,IAAY,MAAQA,SAAiB,OAAS,EAAIA,EAAQQ,WACrEC,WAAY,KACZC,OAAQV,IAAY,MAAQA,SAAiB,OAAS,EAAIA,EAAQW,mBAClE,GAEN,EAWAC,mBAAoBC,eAAgBlB,EAAgBmB,EAAsBC,SAClEC,QAAQC,WAAWH,EAAqBhB,IAAIG,GAAuBA,EAAoBiB,oBAC7F,MAAMC,EAAyBL,EAAqBM,OAAOC,GAAiBA,EAAcnB,MAAMoB,eAChG,MAAMC,EAAc5B,EAAe6B,kBAAkBC,UACrD,MAAMC,EAAsBP,EAAuBC,OAAOO,IACxD,MAAMC,EAAUD,EAAsBzB,MAAM2B,QAC5C,MAAMC,EAAmBP,EAAYH,OAAOW,GAAOA,EAAIC,gBAAgBC,KAAKC,GAAaA,EAAUC,SAASP,KAC5G,GAAIE,EAAiBM,OAAS,EAAG,CAC/B,OAAO,KACT,MAAO,GAAIT,EAAsBvB,aAAc,CAC7C,OAAOuB,EAAsBU,QAAUC,YAAcX,EAAsBU,MAAMD,MACnF,KAAO,CACL,
|
|
1
|
+
{"version":3,"file":"ActionRuntime.js","names":["sap","ui","define","merge","CommonUtils","BindingToolkit","ModelHelper","TypeGuards","Message","AnyElement","ConverterContext","HeaderAndFooterAction","getHiddenExpression","getEditButtonEnabled","isEntitySet","transformRecursively","equal","constant","compileExpression","ActionRuntime","_addMessageForActionParameter","messageManager","messageParameters","addMessages","map","messageParameter","binding","actionParameterInfo","field","getBinding","isMultiValue","message","type","processor","getModel","persistent","target","getResolvedPath","validateProperties","async","actionParameterInfos","resourceModel","Promise","allSettled","validationPromise","requiredParameterInfos","filter","parameterInfo","getRequired","allMessages","getMessageModel","getData","emptyRequiredFields","requiredParameterInfo","fieldId","getId","relevantMessages","msg","getControlIds","some","controlId","includes","length","value","undefined","fieldValue","getValue","this","_actionParameterInfo$","getText","getParent","getAggregation","firstInvalidParameter","find","hasError","getValueState","focus","setActionEnablement","oInternalModelContext","oActionOperationAvailableMap","aSelectedContexts","sControl","aPromises","sAction","aRequestPromises","setProperty","sProperty","i","oSelectedContext","oContextData","getObject","_setActionEnablementForTable","bEnabled","aApplicable","aNotApplicable","push","setContextsBasedOnOperationAvailable","all","setActionEnablementAfterPatch","oView","oListBinding","oInternalModelContextData","oControls","controls","sKey","oTable","byId","isA","oRowBinding","getRowBinding","getBindingContext","JSON","parse","data","customData","getSelectedContexts","updateEditButtonVisibilityAndEnablement","_oView$getViewData","_oView$getModel","iViewLevel","getViewData","viewLevel","isEditable","getProperty","_oContext$getModel","_oContext$getModel$ge","_entitySet$annotation","_entitySet$annotation2","oContext","oAppComponent","getAppComponent","sMetaPath","getMetaPathForContext","sEntitySet","getRootEntitySetPath","metaContext","getMetaModel","getContext","getPath","converterContext","createConverterContextForMacro","getDiagnostics","entitySet","getEntitySet","entityType","getEntityType","updateHidden","bUpdateHidden","annotations","UI","UpdateHidden","valueOf","isUpdateHidden","sEditEnableBinding","draftRootPath","getDraftRootPath","sStickyRootPath","getStickyRootPath","sPath","oRootContext","bindContext","getBoundContext","sHiddenExpression","updateEditModelContext","sBindingExpression","_oHiddenElement$getMo","_oHiddenElement$getMo2","_oHiddenElement$getBi","oHiddenElement","anyText","setBindingContext","addDependent","$$groupId","attachChange","oEvent","oNewValue","getSource","getExternalValue","sDynamicActionEnabledPath","oTransformedBinding","oBindingExpression","path","sResult","setDynamicActionContexts","requestProperty"],"sources":["ActionRuntime-dbg.js"],"mappings":"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"}
|
|
@@ -103,9 +103,8 @@ const ActionRuntime = {
|
|
|
103
103
|
} else if (requiredParameterInfo.isMultiValue) {
|
|
104
104
|
return requiredParameterInfo.value === undefined || !requiredParameterInfo.value.length;
|
|
105
105
|
} else {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
);
|
|
106
|
+
const fieldValue = (requiredParameterInfo.field as Field).getValue();
|
|
107
|
+
return fieldValue === undefined || fieldValue === null || fieldValue === "";
|
|
109
108
|
}
|
|
110
109
|
});
|
|
111
110
|
/* Message for missing mandatory value of the action parameter */
|
|
@@ -165,6 +165,9 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
165
165
|
throw new Error(`viewState extension required for controller ${oRootController.getMetadata().getName()}`);
|
|
166
166
|
}
|
|
167
167
|
if ((!oAppData || Object.keys(oAppData).length === 0) && sNavType == NavType.iAppState) {
|
|
168
|
+
if (!oRootController.viewState._getInitialStateApplied()) {
|
|
169
|
+
oRootController.viewState._setInitialStateApplied();
|
|
170
|
+
}
|
|
168
171
|
return {};
|
|
169
172
|
}
|
|
170
173
|
return oRootController.viewState.applyViewState(this._mCurrentAppState, this._createNavigationParameters(oAppData, sNavType));
|
|
@@ -201,4 +204,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
|
|
|
201
204
|
*/
|
|
202
205
|
return AppStateHandler;
|
|
203
206
|
}, true);
|
|
204
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIkFwcFN0YXRlSGFuZGxlciIsImRlZmluZVVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJuYlNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsIm9Sb3V0ZXJQcm94eSIsImdldFJvdXRlclByb3h5Iiwic0hhc2giLCJnZXRIYXNoIiwib0NvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJiSXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsIm1Jbm5lckFwcFN0YXRlIiwicmV0cmlldmVWaWV3U3RhdGUiLCJvU3RvcmVEYXRhIiwiYXBwU3RhdGUiLCJkZWVwRXF1YWwiLCJzQXBwU3RhdGVLZXkiLCJzdG9yZUlubmVyQXBwU3RhdGVBc3luYyIsInNOZXdIYXNoIiwicmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJuYXZUb0hhc2giLCJ1bmRlZmluZWQiLCJvRXJyb3IiLCJlcnJvciIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJpIiwibGVuZ3RoIiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJ2aWV3SWQiLCJuYXZUeXBlIiwia2V5IiwiYXBwU3RhdGVEYXRhIiwiaHlicmlkIiwiaUFwcFN0YXRlIiwia2V5cyIsImFwcGx5QXBwU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNoZWNrSWZMYXN0U2VlblJlY29yZCIsImxvY2siLCJ0b0VTNlByb21pc2UiLCJwYXJzZU5hdmlnYXRpb24iLCJjYXRjaCIsImFFcnJvckRhdGEiLCJ3YXJuaW5nIiwidGhlbiIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImFwcGx5Vmlld1N0YXRlIiwiZmluYWxseSIsInVubG9jayIsImNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAiLCJyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCIsIkJhc2VPYmplY3QiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBOYXZpZ2F0aW9uUGFyYW1ldGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHRvRVM2UHJvbWlzZSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Ub0VTNlByb21pc2VcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCIuL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwiLi9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5cbmNvbnN0IE5hdlR5cGUgPSBsaWJyYXJ5Lk5hdlR5cGU7XG50eXBlIEFwcFN0YXRlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG50eXBlIEFwcERhdGEgPSB7XG5cdG9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50OiBvYmplY3Q7XG5cdG9TZWxlY3Rpb25WYXJpYW50OiBvYmplY3Q7XG5cdGJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHk6IGJvb2xlYW47XG5cdGFwcFN0YXRlOiBBcHBTdGF0ZTtcblx0aUFwcFN0YXRlPzoge1xuXHRcdGFwcFN0YXRlOiBBcHBTdGF0ZTtcblx0fVxufTtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXG5cdHB1YmxpYyBvQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQ7XG5cblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXG5cdHByaXZhdGUgX21DdXJyZW50QXBwU3RhdGU/OiBBcHBTdGF0ZSA9IHt9O1xuXG5cdG5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdDogbnVtYmVyO1xuXG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IGAke29BcHBDb21wb25lbnQuZ2V0SWQoKX0vQXBwU3RhdGVIYW5kbGVyYDtcblx0XHR0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCA9IDA7XG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cblx0Z2V0SWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgb3IgdXBkYXRlcyB0aGUgYXBwc3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0YXN5bmMgY3JlYXRlQXBwU3RhdGUoKTogUHJvbWlzZTx2b2lkIHwgeyBhcHBTdGF0ZTogb2JqZWN0IH0+IHtcblx0XHRpZiAoIXRoaXMub0FwcENvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkFwcFN0YXRlIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdG9Sb3V0ZXJQcm94eSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0c0hhc2ggPSBvUm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIW9Db250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgY29udHJvbGxlciBleHRlbnNpb24gbm90IGF2YWlsYWJsZSBmb3IgY29udHJvbGxlcjogJHtvQ29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHR9XG5cblx0XHRjb25zdCBtSW5uZXJBcHBTdGF0ZSA9IGF3YWl0IG9Db250cm9sbGVyLnZpZXdTdGF0ZS5yZXRyaWV2ZVZpZXdTdGF0ZSgpO1xuXHRcdGNvbnN0IG9TdG9yZURhdGEgPSB7IGFwcFN0YXRlOiBtSW5uZXJBcHBTdGF0ZSB9O1xuXHRcdGlmIChtSW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIG1Jbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IG1Jbm5lckFwcFN0YXRlO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5uYlNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QrKztcblx0XHRcdFx0Y29uc3Qgc0FwcFN0YXRlS2V5ID0gYXdhaXQgb05hdmlnYXRpb25TZXJ2aWNlLnN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jKG9TdG9yZURhdGEsIHRydWUsIHRydWUpO1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0XHRcdGNvbnN0IHNOZXdIYXNoID0gb05hdmlnYXRpb25TZXJ2aWNlLnJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNIYXNoLCBzQXBwU3RhdGVLZXkpO1xuXHRcdFx0XHR0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdC0tO1xuXHRcdFx0XHRpZiAodGhpcy5uYlNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QgPT09IDAgJiYgc05ld0hhc2ggIT09IHNIYXNoKSB7XG5cdFx0XHRcdFx0b1JvdXRlclByb3h5Lm5hdlRvSGFzaChzTmV3SGFzaCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgIWJJc1N0aWNreU1vZGUpO1xuXHRcdFx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IG5hdlRvSGFzaFwiKTtcblx0XHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3Iob0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9TdG9yZURhdGE7XG5cdH1cblxuXHRfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGE6IEFwcERhdGEsIHNOYXZUeXBlOiBzdHJpbmcpOiBOYXZpZ2F0aW9uUGFyYW1ldGVyIHtcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgb0FwcERhdGEsIHtcblx0XHRcdHNlbGVjdGlvblZhcmlhbnREZWZhdWx0czogb0FwcERhdGEub0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvQXBwRGF0YS5vU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHJlcXVpcmVzU3RhbmRhcmRWYXJpYW50OiAhb0FwcERhdGEuYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSxcblx0XHRcdG5hdmlnYXRpb25UeXBlOiBzTmF2VHlwZVxuXHRcdH0pO1xuXHR9XG5cblx0X2NoZWNrSWZMYXN0U2VlblJlY29yZCh2aWV3PzogVmlldykge1xuXHRcdC8vZ2V0dGluZyB0aGUgaW50ZXJuYWwgbW9kZWwgY29udGV4dCBpbiBvcmRlciB0byBmZXRjaCB0aGUgdGVjaG5pY2Fsa2V5cyBvZiBsYXN0IHNlZW4gcmVjb3JkIGFuZCBjbG9zZSBjb2x1bW4gZmxhZyBzZXQgaW4gdGhlIGludGVybmFscm91dGluZyBmb3IgcmV0YWluaW5nIHNldHRpbmdzIGluIHBlcnNpc3RlbmNlIG1vZGVcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsQ29udGV4dCA9IHZpZXcgJiYgKHZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0aWYgKGludGVybmFsTW9kZWxDb250ZXh0ICYmIGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwiZmNsQ29sdW1uQ2xvc2VkXCIpID09PSB0cnVlKSB7XG5cdFx0XHRjb25zdCB0ZWNobmljYWxLZXlzT2JqZWN0ID0gaW50ZXJuYWxNb2RlbENvbnRleHQgJiYgaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJ0ZWNobmljYWxLZXlzT2ZMYXN0U2VlblJlY29yZFwiKTtcblx0XHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gdmlldz8uZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdFx0Y29uc3QgcGF0aCA9IChiaW5kaW5nQ29udGV4dCAmJiBiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCkpIHx8IFwiXCI7XG5cdFx0XHRjb25zdCBtZXRhTW9kZWwgPSBiaW5kaW5nQ29udGV4dD8uZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRcdGNvbnN0IG1ldGFQYXRoID0gbWV0YU1vZGVsPy5nZXRNZXRhUGF0aChwYXRoKTtcblx0XHRcdGNvbnN0IHRlY2huaWNhbEtleXMgPSBtZXRhTW9kZWw/LmdldE9iamVjdChgJHttZXRhUGF0aH0vJFR5cGUvJEtleWApO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0ZWNobmljYWxLZXlzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGtleVZhbHVlID0gYmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0KClbdGVjaG5pY2FsS2V5c1tpXV07XG5cdFx0XHRcdGlmIChrZXlWYWx1ZSAhPT0gdGVjaG5pY2FsS2V5c09iamVjdFt0ZWNobmljYWxLZXlzW2ldXSkge1xuXHRcdFx0XHRcdGludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwiZmNsQ29sdW1uQ2xvc2VkXCIsIGZhbHNlKTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly90aGUgcmVjb3JkIG9wZW5lZCBpcyBub3QgdGhlIGxhc3Qgc2VlbiBvbmUgOiBubyBuZWVkIHRvIHBlcnNpc3QgdGhlIGNoYW5nZXMsIHJlc2V0IHRvIGRlZmF1bHQgaW5zdGVhZFxuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRfZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhOiBBcHBEYXRhLCB2aWV3SWQ/OiBzdHJpbmcsIG5hdlR5cGU/OiBzdHJpbmcpIHtcblx0XHRsZXQga2V5ID0gXCJcIixcblx0XHRcdGkgPSAwO1xuXHRcdGNvbnN0IGFwcFN0YXRlRGF0YSA9IG5hdlR5cGUgPT09IE5hdlR5cGUuaHlicmlkID8gb0FwcERhdGEuaUFwcFN0YXRlIDogb0FwcERhdGE7XG5cblx0XHRpZiAoYXBwU3RhdGVEYXRhPy5hcHBTdGF0ZSkge1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSkubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV0gPT09IHZpZXdJZCkge1xuXHRcdFx0XHRcdGtleSA9IE9iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFtPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldXTogYXBwU3RhdGVEYXRhLmFwcFN0YXRlW2tleV0gfHwge31cblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEFwcGxpZXMgYW4gYXBwc3RhdGUgYnkgZmV0Y2hpbmcgYXBwZGF0YSBhbmQgcGFzc2luZyBpdCB0byBfYXBwbHlBcHBzdGF0ZVRvUGFnZS5cblx0ICpcblx0ICogQHBhcmFtIHZpZXdJZFxuXHQgKiBAcGFyYW0gdmlld1xuXHQgKiBAZnVuY3Rpb25cblx0ICogQHN0YXRpY1xuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmMgaGFuZGxpbmdcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRhc3luYyBhcHBseUFwcFN0YXRlKHZpZXdJZD86IHN0cmluZywgdmlldz86IFZpZXcpIHtcblx0XHRpZiAoIXRoaXMub0FwcENvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLmdldENhcGFiaWxpdGllcygpLkFwcFN0YXRlIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBjaGVja0lmTGFzdFNlZW5SZWNvcmQgPSB0aGlzLl9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldyk7XG5cdFx0aWYgKGNoZWNrSWZMYXN0U2VlblJlY29yZCA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0Y29uc3Qgb05hdmlnYXRpb25TZXJ2aWNlID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldE5hdmlnYXRpb25TZXJ2aWNlKCk7XG5cdFx0Ly8gVE9ETyBvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkgc2hvdWxkIHJldHVybiBFUzYgcHJvbWlzZSBpbnN0ZWFkIGpRdWVyeS5wcm9taXNlXG5cdFx0cmV0dXJuIHRvRVM2UHJvbWlzZShvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkpXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGFFcnJvckRhdGE6IHVua25vd25bXSkge1xuXHRcdFx0XHRpZiAoIWFFcnJvckRhdGEpIHtcblx0XHRcdFx0XHRhRXJyb3JEYXRhID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLndhcm5pbmcoXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBmYWlsZWRcIiwgYUVycm9yRGF0YVswXSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC8qIGFwcCBkYXRhICovXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzFdLFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMl1cblx0XHRcdFx0XTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYVJlc3VsdHM6IHVua25vd25bXSkgPT4ge1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGRvbmVcIik7XG5cblx0XHRcdFx0Ly8gYVJlc3VsdHNbMV0gPT4gb1N0YXJ0dXBQYXJhbWV0ZXJzIChub3QgZXZhbHVhdGVkKVxuXHRcdFx0XHRjb25zdCBvQXBwRGF0YSA9IChhUmVzdWx0c1swXSB8fCB7fSkgYXMgQXBwRGF0YSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IChhUmVzdWx0c1syXSBhcyBzdHJpbmcpIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdC8vIGFwcGx5IHRoZSBhcHBzdGF0ZSBkZXBlbmRpbmcgdXBvbiB0aGUgdmlldyAoTFIvT1ApXG5cdFx0XHRcdGNvbnN0IGFwcFN0YXRlRGF0YSA9IHRoaXMuX2dldEFwcFN0YXRlRGF0YShvQXBwRGF0YSwgdmlld0lkLCBzTmF2VHlwZSk7XG5cdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPSBzTmF2VHlwZSA9PT0gTmF2VHlwZS5pQXBwU3RhdGUgfHwgc05hdlR5cGUgPT09IE5hdlR5cGUuaHlicmlkID8gYXBwU3RhdGVEYXRhIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciAke29Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoKCFvQXBwRGF0YSB8fCBPYmplY3Qua2V5cyhvQXBwRGF0YSkubGVuZ3RoID09PSAwKSAmJiBzTmF2VHlwZSA9PSBOYXZUeXBlLmlBcHBTdGF0ZSkge1xuXHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5hcHBseVZpZXdTdGF0ZShcblx0XHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlLFxuXHRcdFx0XHRcdHRoaXMuX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhLCBzTmF2VHlwZSlcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJhcHBTdGF0ZSBjb3VsZCBub3QgYmUgYXBwbGllZFwiLCBvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0dGhyb3cgb0Vycm9yO1xuXHRcdFx0fSlcblx0XHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcyk7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcm91dGUgaGFzIGNobmFnZWRcblx0ICovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXQgdGhlIHJvdXRlIGNoYW5nZWQgYnkgaUFQUFN0YXRlLlxuXHQgKi9cblx0cmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0aWYgKHRoaXMuYk5vUm91dGVDaGFuZ2UpIHtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSBmYWxzZTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IEFwcFN0YXRlSGFuZGxlcjtcbiJdLCJtYXBwaW5ncyI6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
|
|
207
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIkFwcFN0YXRlSGFuZGxlciIsImRlZmluZVVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJuYlNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsIm9Sb3V0ZXJQcm94eSIsImdldFJvdXRlclByb3h5Iiwic0hhc2giLCJnZXRIYXNoIiwib0NvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbCIsImdldENvbnRyb2xsZXIiLCJiSXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsIm1Jbm5lckFwcFN0YXRlIiwicmV0cmlldmVWaWV3U3RhdGUiLCJvU3RvcmVEYXRhIiwiYXBwU3RhdGUiLCJkZWVwRXF1YWwiLCJzQXBwU3RhdGVLZXkiLCJzdG9yZUlubmVyQXBwU3RhdGVBc3luYyIsInNOZXdIYXNoIiwicmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJuYXZUb0hhc2giLCJ1bmRlZmluZWQiLCJvRXJyb3IiLCJlcnJvciIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJpIiwibGVuZ3RoIiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJ2aWV3SWQiLCJuYXZUeXBlIiwia2V5IiwiYXBwU3RhdGVEYXRhIiwiaHlicmlkIiwiaUFwcFN0YXRlIiwia2V5cyIsImFwcGx5QXBwU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNoZWNrSWZMYXN0U2VlblJlY29yZCIsImxvY2siLCJ0b0VTNlByb21pc2UiLCJwYXJzZU5hdmlnYXRpb24iLCJjYXRjaCIsImFFcnJvckRhdGEiLCJ3YXJuaW5nIiwidGhlbiIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsIl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQiLCJhcHBseVZpZXdTdGF0ZSIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJCYXNlT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBTdGF0ZUhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBFcXVhbFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0b0VTNlByb21pc2UgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVG9FUzZQcm9taXNlXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgQnVzeUxvY2tlciBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcIi4vaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuXG5jb25zdCBOYXZUeXBlID0gbGlicmFyeS5OYXZUeXBlO1xudHlwZSBBcHBTdGF0ZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xudHlwZSBBcHBEYXRhID0ge1xuXHRvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudDogb2JqZWN0O1xuXHRvU2VsZWN0aW9uVmFyaWFudDogb2JqZWN0O1xuXHRiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5OiBib29sZWFuO1xuXHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdGlBcHBTdGF0ZT86IHtcblx0XHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdH07XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcIilcbmNsYXNzIEFwcFN0YXRlSGFuZGxlciBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgc0lkOiBzdHJpbmc7XG5cblx0cHVibGljIG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblxuXHRwdWJsaWMgYk5vUm91dGVDaGFuZ2U6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBfbUN1cnJlbnRBcHBTdGF0ZT86IEFwcFN0YXRlID0ge307XG5cblx0bmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gYCR7b0FwcENvbXBvbmVudC5nZXRJZCgpfS9BcHBTdGF0ZUhhbmRsZXJgO1xuXHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0ID0gMDtcblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblxuXHRnZXRJZCgpIHtcblx0XHRyZXR1cm4gdGhpcy5zSWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGFcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRhc3luYyBjcmVhdGVBcHBTdGF0ZSgpOiBQcm9taXNlPHZvaWQgfCB7IGFwcFN0YXRlOiBvYmplY3QgfT4ge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpLFxuXHRcdFx0b1JvdXRlclByb3h5ID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRzSGFzaCA9IG9Sb3V0ZXJQcm94eS5nZXRIYXNoKCksXG5cdFx0XHRvQ29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKSxcblx0XHRcdGJJc1N0aWNreU1vZGUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQodGhpcy5vQXBwQ29tcG9uZW50LmdldE1ldGFNb2RlbCgpKTtcblxuXHRcdGlmICghb0NvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiAke29Db250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1Jbm5lckFwcFN0YXRlID0gYXdhaXQgb0NvbnRyb2xsZXIudmlld1N0YXRlLnJldHJpZXZlVmlld1N0YXRlKCk7XG5cdFx0Y29uc3Qgb1N0b3JlRGF0YSA9IHsgYXBwU3RhdGU6IG1Jbm5lckFwcFN0YXRlIH07XG5cdFx0aWYgKG1Jbm5lckFwcFN0YXRlICYmICFkZWVwRXF1YWwodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgbUlubmVyQXBwU3RhdGUpKSB7XG5cdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gbUlubmVyQXBwU3RhdGU7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCsrO1xuXHRcdFx0XHRjb25zdCBzQXBwU3RhdGVLZXkgPSBhd2FpdCBvTmF2aWdhdGlvblNlcnZpY2Uuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMob1N0b3JlRGF0YSwgdHJ1ZSwgdHJ1ZSk7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IEFwcHN0YXRlIHN0b3JlZFwiKTtcblx0XHRcdFx0Y29uc3Qgc05ld0hhc2ggPSBvTmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0hhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdFx0XHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0LS07XG5cdFx0XHRcdGlmICh0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCA9PT0gMCAmJiBzTmV3SGFzaCAhPT0gc0hhc2gpIHtcblx0XHRcdFx0XHRvUm91dGVyUHJveHkubmF2VG9IYXNoKHNOZXdIYXNoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAhYklzU3RpY2t5TW9kZSk7XG5cdFx0XHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogbmF2VG9IYXNoXCIpO1xuXHRcdFx0fSBjYXRjaCAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb1N0b3JlRGF0YTtcblx0fVxuXG5cdF9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YTogQXBwRGF0YSwgc05hdlR5cGU6IHN0cmluZyk6IE5hdmlnYXRpb25QYXJhbWV0ZXIge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHRfY2hlY2tJZkxhc3RTZWVuUmVjb3JkKHZpZXc/OiBWaWV3KSB7XG5cdFx0Ly9nZXR0aW5nIHRoZSBpbnRlcm5hbCBtb2RlbCBjb250ZXh0IGluIG9yZGVyIHRvIGZldGNoIHRoZSB0ZWNobmljYWxrZXlzIG9mIGxhc3Qgc2VlbiByZWNvcmQgYW5kIGNsb3NlIGNvbHVtbiBmbGFnIHNldCBpbiB0aGUgaW50ZXJuYWxyb3V0aW5nIGZvciByZXRhaW5pbmcgc2V0dGluZ3MgaW4gcGVyc2lzdGVuY2UgbW9kZVxuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldyAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRpZiAoaW50ZXJuYWxNb2RlbENvbnRleHQgJiYgaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIikgPT09IHRydWUpIHtcblx0XHRcdGNvbnN0IHRlY2huaWNhbEtleXNPYmplY3QgPSBpbnRlcm5hbE1vZGVsQ29udGV4dCAmJiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInRlY2huaWNhbEtleXNPZkxhc3RTZWVuUmVjb3JkXCIpO1xuXHRcdFx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdFx0XHRjb25zdCBwYXRoID0gKGJpbmRpbmdDb250ZXh0ICYmIGJpbmRpbmdDb250ZXh0LmdldFBhdGgoKSkgfHwgXCJcIjtcblx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IGJpbmRpbmdDb250ZXh0Py5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0Y29uc3QgbWV0YVBhdGggPSBtZXRhTW9kZWw/LmdldE1ldGFQYXRoKHBhdGgpO1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5cyA9IG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke21ldGFQYXRofS8kVHlwZS8kS2V5YCk7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRlY2huaWNhbEtleXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qga2V5VmFsdWUgPSBiaW5kaW5nQ29udGV4dC5nZXRPYmplY3QoKVt0ZWNobmljYWxLZXlzW2ldXTtcblx0XHRcdFx0aWYgKGtleVZhbHVlICE9PSB0ZWNobmljYWxLZXlzT2JqZWN0W3RlY2huaWNhbEtleXNbaV1dKSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIiwgZmFsc2UpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvL3RoZSByZWNvcmQgb3BlbmVkIGlzIG5vdCB0aGUgbGFzdCBzZWVuIG9uZSA6IG5vIG5lZWQgdG8gcGVyc2lzdCB0aGUgY2hhbmdlcywgcmVzZXQgdG8gZGVmYXVsdCBpbnN0ZWFkXG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF9nZXRBcHBTdGF0ZURhdGEob0FwcERhdGE6IEFwcERhdGEsIHZpZXdJZD86IHN0cmluZywgbmF2VHlwZT86IHN0cmluZykge1xuXHRcdGxldCBrZXkgPSBcIlwiLFxuXHRcdFx0aSA9IDA7XG5cdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gbmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyBvQXBwRGF0YS5pQXBwU3RhdGUgOiBvQXBwRGF0YTtcblxuXHRcdGlmIChhcHBTdGF0ZURhdGE/LmFwcFN0YXRlKSB7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXSA9PT0gdmlld0lkKSB7XG5cdFx0XHRcdFx0a2V5ID0gT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoYXBwU3RhdGVEYXRhPy5hcHBTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0W09iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV1dOiBhcHBTdGF0ZURhdGEuYXBwU3RhdGVba2V5XSB8fCB7fVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyBhbiBhcHBzdGF0ZSBieSBmZXRjaGluZyBhcHBkYXRhIGFuZCBwYXNzaW5nIGl0IHRvIF9hcHBseUFwcHN0YXRlVG9QYWdlLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmlld0lkXG5cdCAqIEBwYXJhbSB2aWV3XG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAc3RhdGljXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcblx0ICogQHJldHVybnMgQSBwcm9taXNlIGZvciBhc3luYyBoYW5kbGluZ1xuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGFzeW5jIGFwcGx5QXBwU3RhdGUodmlld0lkPzogc3RyaW5nLCB2aWV3PzogVmlldykge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNoZWNrSWZMYXN0U2VlblJlY29yZCA9IHRoaXMuX2NoZWNrSWZMYXN0U2VlblJlY29yZCh2aWV3KTtcblx0XHRpZiAoY2hlY2tJZkxhc3RTZWVuUmVjb3JkID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMpO1xuXHRcdC8vIERvbmUgZm9yIGJ1c3kgaW5kaWNhdG9yXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gdG9FUzZQcm9taXNlKG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoYUVycm9yRGF0YTogdW5rbm93bltdKSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdIGFzIHN0cmluZyk7XG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0LyogYXBwIGRhdGEgKi9cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMV0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsyXVxuXHRcdFx0XHRdO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChhUmVzdWx0czogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZG9uZVwiKTtcblxuXHRcdFx0XHQvLyBhUmVzdWx0c1sxXSA9PiBvU3RhcnR1cFBhcmFtZXRlcnMgKG5vdCBldmFsdWF0ZWQpXG5cdFx0XHRcdGNvbnN0IG9BcHBEYXRhID0gKGFSZXN1bHRzWzBdIHx8IHt9KSBhcyBBcHBEYXRhLFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gKGFSZXN1bHRzWzJdIGFzIHN0cmluZykgfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRcdFx0Ly8gYXBwbHkgdGhlIGFwcHN0YXRlIGRlcGVuZGluZyB1cG9uIHRoZSB2aWV3IChMUi9PUClcblx0XHRcdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gdGhpcy5fZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhLCB2aWV3SWQsIHNOYXZUeXBlKTtcblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSB8fCBzTmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyBhcHBTdGF0ZURhdGEgOiB1bmRlZmluZWQ7XG5cblx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgZXh0ZW5zaW9uIHJlcXVpcmVkIGZvciBjb250cm9sbGVyICR7b1Jvb3RDb250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICgoIW9BcHBEYXRhIHx8IE9iamVjdC5rZXlzKG9BcHBEYXRhKS5sZW5ndGggPT09IDApICYmIHNOYXZUeXBlID09IE5hdlR5cGUuaUFwcFN0YXRlKSB7XG5cdFx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkKCkpIHtcblx0XHRcdFx0XHRcdG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLmFwcGx5Vmlld1N0YXRlKFxuXHRcdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUsXG5cdFx0XHRcdFx0dGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvciBhcyBzdHJpbmcpO1xuXHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzKTtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogVG8gY2hlY2sgaXMgcm91dGUgaXMgY2hhbmdlZCBieSBjaGFuZ2UgaW4gdGhlIGlBUFBTdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIHRoZSByb3V0ZSBoYXMgY2huYWdlZFxuXHQgKi9cblx0Y2hlY2tJZlJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5iTm9Sb3V0ZUNoYW5nZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXNldCB0aGUgcm91dGUgY2hhbmdlZCBieSBpQVBQU3RhdGUuXG5cdCAqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEBnbG9iYWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgQXBwU3RhdGVIYW5kbGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQWNBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDRCxPQUFPO0VBQUMsSUFhMUJFLGVBQWUsV0FEcEJDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQztJQUFBO0lBWTdDLHlCQUFZQyxhQUEyQixFQUFFO01BQUE7TUFDeEMsOEJBQU87TUFBQyxNQUxEQyxpQkFBaUIsR0FBYyxDQUFDLENBQUM7TUFNeEMsTUFBS0QsYUFBYSxHQUFHQSxhQUFhO01BQ2xDLE1BQUtFLEdBQUcsR0FBSSxHQUFFRixhQUFhLENBQUNHLEtBQUssRUFBRyxrQkFBaUI7TUFDckQsTUFBS0MsMkJBQTJCLEdBQUcsQ0FBQztNQUNwQyxNQUFLQyxjQUFjLEdBQUcsS0FBSztNQUMzQkMsR0FBRyxDQUFDQyxJQUFJLENBQUMseUNBQXlDLENBQUM7TUFBQztJQUNyRDtJQUFDO0lBQUEsT0FFREosS0FBSyxHQUFMLGlCQUFRO01BQ1AsT0FBTyxJQUFJLENBQUNELEdBQUc7SUFDaEI7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQSxPQU1NTSxjQUFjLEdBQXBCLGdDQUE2RDtNQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDUixhQUFhLENBQUNTLDBCQUEwQixFQUFFLENBQUNDLGVBQWUsRUFBRSxDQUFDQyxRQUFRLElBQUlDLFVBQVUsQ0FBQ0MsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzdHO01BQ0Q7TUFFQSxNQUFNQyxrQkFBa0IsR0FBRyxJQUFJLENBQUNkLGFBQWEsQ0FBQ2Usb0JBQW9CLEVBQUU7UUFD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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log","sap/base/util/deepEqual","sap/fe/core/helpers/ClassSupport","sap/fe/core/helpers/ToES6Promise","sap/fe/navigation/library","sap/ui/base/Object","./controllerextensions/BusyLocker","./helpers/ModelHelper"],function(t,e,n,o,a,i,r,
|
|
5
|
+
sap.ui.define(["sap/base/Log","sap/base/util/deepEqual","sap/fe/core/helpers/ClassSupport","sap/fe/core/helpers/ToES6Promise","sap/fe/navigation/library","sap/ui/base/Object","./controllerextensions/BusyLocker","./helpers/ModelHelper"],function(t,e,n,o,a,i,r,p){"use strict";var s,l;var c=n.defineUI5Class;function u(t,e){t.prototype=Object.create(e.prototype);t.prototype.constructor=t;f(t,e)}function f(t,e){f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function t(e,n){e.__proto__=n;return e};return f(t,e)}const h=a.NavType;let S=(s=c("sap.fe.core.AppStateHandler"),s(l=function(n){u(a,n);function a(e){var o;o=n.call(this)||this;o._mCurrentAppState={};o.oAppComponent=e;o.sId=`${e.getId()}/AppStateHandler`;o.nbSimultaneousCreateRequest=0;o.bNoRouteChange=false;t.info("APPSTATE : Appstate handler initialized");return o}var i=a.prototype;i.getId=function t(){return this.sId};i.createAppState=async function n(){if(!this.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState||r.isLocked(this)){return}const o=this.oAppComponent.getNavigationService(),a=this.oAppComponent.getRouterProxy(),i=a.getHash(),s=this.oAppComponent.getRootControl().getController(),l=p.isStickySessionSupported(this.oAppComponent.getMetaModel());if(!s.viewState){throw new Error(`viewState controller extension not available for controller: ${s.getMetadata().getName()}`)}const c=await s.viewState.retrieveViewState();const u={appState:c};if(c&&!e(this._mCurrentAppState,c)){this._mCurrentAppState=c;try{this.nbSimultaneousCreateRequest++;const e=await o.storeInnerAppStateAsync(u,true,true);t.info("APPSTATE: Appstate stored");const n=o.replaceInnerAppStateKey(i,e);this.nbSimultaneousCreateRequest--;if(this.nbSimultaneousCreateRequest===0&&n!==i){a.navToHash(n,undefined,undefined,undefined,!l);this.bNoRouteChange=true}t.info("APPSTATE: navToHash")}catch(e){t.error(e)}}return u};i._createNavigationParameters=function t(e,n){return Object.assign({},e,{selectionVariantDefaults:e.oDefaultedSelectionVariant,selectionVariant:e.oSelectionVariant,requiresStandardVariant:!e.bNavSelVarHasDefaultsOnly,navigationType:n})};i._checkIfLastSeenRecord=function t(e){const n=e&&e.getBindingContext("internal");if(n&&n.getProperty("fclColumnClosed")===true){const t=n&&n.getProperty("technicalKeysOfLastSeenRecord");const o=e===null||e===void 0?void 0:e.getBindingContext();const a=o&&o.getPath()||"";const i=o===null||o===void 0?void 0:o.getModel().getMetaModel();const r=i===null||i===void 0?void 0:i.getMetaPath(a);const p=i===null||i===void 0?void 0:i.getObject(`${r}/$Type/$Key`);for(let e=0;e<p.length;e++){const a=o.getObject()[p[e]];if(a!==t[p[e]]){n.setProperty("fclColumnClosed",false);return true}}}return false};i._getAppStateData=function t(e,n,o){let a="",i=0;const r=o===h.hybrid?e.iAppState:e;if(r!==null&&r!==void 0&&r.appState){for(i=0;i<Object.keys(r.appState).length;i++){if(Object.keys(r.appState)[i]===n){a=Object.keys(r.appState)[i];break}}}if(r!==null&&r!==void 0&&r.appState){return{[Object.keys(r.appState)[i]]:r.appState[a]||{}}}};i.applyAppState=async function e(n,a){if(!this.oAppComponent.getEnvironmentCapabilities().getCapabilities().AppState||r.isLocked(this)){return Promise.resolve()}const i=this._checkIfLastSeenRecord(a);if(i===true){return Promise.resolve()}r.lock(this);r.lock(this.oAppComponent.getRootControl());const p=this.oAppComponent.getNavigationService();return o(p.parseNavigation()).catch(function(e){if(!e){e=[]}t.warning("APPSTATE: Parse Navigation failed",e[0]);return[{},e[1],e[2]]}).then(e=>{t.info("APPSTATE: Parse Navigation done");const o=e[0]||{},a=e[2]||h.initial,i=this.oAppComponent.getRootControl().getController();const r=this._getAppStateData(o,n,a);this._mCurrentAppState=a===h.iAppState||a===h.hybrid?r:undefined;if(!i.viewState){throw new Error(`viewState extension required for controller ${i.getMetadata().getName()}`)}if((!o||Object.keys(o).length===0)&&a==h.iAppState){if(!i.viewState._getInitialStateApplied()){i.viewState._setInitialStateApplied()}return{}}return i.viewState.applyViewState(this._mCurrentAppState,this._createNavigationParameters(o,a))}).catch(function(e){t.error("appState could not be applied",e);throw e}).finally(()=>{r.unlock(this);r.unlock(this.oAppComponent.getRootControl())})};i.checkIfRouteChangedByIApp=function t(){return this.bNoRouteChange};i.resetRouteChangedByIApp=function t(){if(this.bNoRouteChange){this.bNoRouteChange=false}};return a}(i))||l);return S},true);
|
|
6
6
|
//# sourceMappingURL=AppStateHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppStateHandler.js","names":["sap","ui","define","Log","deepEqual","ClassSupport","toES6Promise","library","BaseObject","BusyLocker","ModelHelper","_dec","_class","defineUI5Class","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","NavType","AppStateHandler","_BaseObject","oAppComponent","_this","call","this","_mCurrentAppState","sId","getId","nbSimultaneousCreateRequest","bNoRouteChange","info","_proto","createAppState","async","getEnvironmentCapabilities","getCapabilities","AppState","isLocked","oNavigationService","getNavigationService","oRouterProxy","getRouterProxy","sHash","getHash","oController","getRootControl","getController","bIsStickyMode","isStickySessionSupported","getMetaModel","viewState","Error","getMetadata","getName","mInnerAppState","retrieveViewState","oStoreData","appState","sAppStateKey","storeInnerAppStateAsync","sNewHash","replaceInnerAppStateKey","navToHash","undefined","oError","error","_createNavigationParameters","oAppData","sNavType","assign","selectionVariantDefaults","oDefaultedSelectionVariant","selectionVariant","oSelectionVariant","requiresStandardVariant","bNavSelVarHasDefaultsOnly","navigationType","_checkIfLastSeenRecord","view","internalModelContext","getBindingContext","getProperty","technicalKeysObject","bindingContext","path","getPath","metaModel","getModel","metaPath","getMetaPath","technicalKeys","getObject","i","length","keyValue","setProperty","_getAppStateData","viewId","navType","key","appStateData","hybrid","iAppState","keys","applyAppState","Promise","resolve","checkIfLastSeenRecord","lock","parseNavigation","catch","aErrorData","warning","then","aResults","initial","oRootController","applyViewState","finally","unlock","checkIfRouteChangedByIApp","resetRouteChangedByIApp"],"sources":["AppStateHandler-dbg.js"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AppStateHandler.js","names":["sap","ui","define","Log","deepEqual","ClassSupport","toES6Promise","library","BaseObject","BusyLocker","ModelHelper","_dec","_class","defineUI5Class","_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","NavType","AppStateHandler","_BaseObject","oAppComponent","_this","call","this","_mCurrentAppState","sId","getId","nbSimultaneousCreateRequest","bNoRouteChange","info","_proto","createAppState","async","getEnvironmentCapabilities","getCapabilities","AppState","isLocked","oNavigationService","getNavigationService","oRouterProxy","getRouterProxy","sHash","getHash","oController","getRootControl","getController","bIsStickyMode","isStickySessionSupported","getMetaModel","viewState","Error","getMetadata","getName","mInnerAppState","retrieveViewState","oStoreData","appState","sAppStateKey","storeInnerAppStateAsync","sNewHash","replaceInnerAppStateKey","navToHash","undefined","oError","error","_createNavigationParameters","oAppData","sNavType","assign","selectionVariantDefaults","oDefaultedSelectionVariant","selectionVariant","oSelectionVariant","requiresStandardVariant","bNavSelVarHasDefaultsOnly","navigationType","_checkIfLastSeenRecord","view","internalModelContext","getBindingContext","getProperty","technicalKeysObject","bindingContext","path","getPath","metaModel","getModel","metaPath","getMetaPath","technicalKeys","getObject","i","length","keyValue","setProperty","_getAppStateData","viewId","navType","key","appStateData","hybrid","iAppState","keys","applyAppState","Promise","resolve","checkIfLastSeenRecord","lock","parseNavigation","catch","aErrorData","warning","then","aResults","initial","oRootController","_getInitialStateApplied","_setInitialStateApplied","applyViewState","finally","unlock","checkIfRouteChangedByIApp","resetRouteChangedByIApp"],"sources":["AppStateHandler-dbg.js"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ type AppData = {
|
|
|
21
21
|
appState: AppState;
|
|
22
22
|
iAppState?: {
|
|
23
23
|
appState: AppState;
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
@defineUI5Class("sap.fe.core.AppStateHandler")
|
|
@@ -200,6 +200,9 @@ class AppStateHandler extends BaseObject {
|
|
|
200
200
|
throw new Error(`viewState extension required for controller ${oRootController.getMetadata().getName()}`);
|
|
201
201
|
}
|
|
202
202
|
if ((!oAppData || Object.keys(oAppData).length === 0) && sNavType == NavType.iAppState) {
|
|
203
|
+
if (!oRootController.viewState._getInitialStateApplied()) {
|
|
204
|
+
oRootController.viewState._setInitialStateApplied();
|
|
205
|
+
}
|
|
203
206
|
return {};
|
|
204
207
|
}
|
|
205
208
|
return oRootController.viewState.applyViewState(
|